diff --git a/abi/0.28.0/AdminRole.json b/abi/0.28.0/AdminRole.json new file mode 100644 index 00000000..649a5fad --- /dev/null +++ b/abi/0.28.0/AdminRole.json @@ -0,0 +1,63 @@ +{ + "contractName": "AdminRole", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminRemoved", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/BytesLib.json b/abi/0.28.0/BytesLib.json new file mode 100644 index 00000000..82b42f69 --- /dev/null +++ b/abi/0.28.0/BytesLib.json @@ -0,0 +1,4 @@ +{ + "contractName": "BytesLib", + "abi": [] +} \ No newline at end of file diff --git a/abi/0.28.0/Crowdsale.json b/abi/0.28.0/Crowdsale.json new file mode 100644 index 00000000..c2750b1f --- /dev/null +++ b/abi/0.28.0/Crowdsale.json @@ -0,0 +1,91 @@ +{ + "contractName": "Crowdsale", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "stages", + "type": "Crowdsale.Stage[] storage" + }, + { + "name": "milestones", + "type": "Crowdsale.Milestone[] storage" + }, + { + "name": "parameters", + "type": "uint256[6][]" + }, + { + "name": "bonusConditions", + "type": "uint256[]" + } + ], + "name": "setStages", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "stages", + "type": "Crowdsale.Stage[] storage" + }, + { + "name": "stageIndex", + "type": "uint8" + }, + { + "name": "start", + "type": "uint8" + }, + { + "name": "end", + "type": "uint8" + }, + { + "name": "bonusConditions", + "type": "uint256[]" + } + ], + "name": "setStageBonusConditions", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "stages", + "type": "Crowdsale.Stage[] storage" + }, + { + "name": "milestones", + "type": "Crowdsale.Milestone[] storage" + }, + { + "name": "parameters", + "type": "uint256[4][]" + }, + { + "name": "offsets", + "type": "uint32[]" + }, + { + "name": "namesAndDescriptions", + "type": "bytes" + } + ], + "name": "setMilestones", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/DetailedERC20.json b/abi/0.28.0/DetailedERC20.json new file mode 100644 index 00000000..d3614c74 --- /dev/null +++ b/abi/0.28.0/DetailedERC20.json @@ -0,0 +1,239 @@ +{ + "contractName": "DetailedERC20", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_who", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/ERC20.json b/abi/0.28.0/ERC20.json new file mode 100644 index 00000000..47032e21 --- /dev/null +++ b/abi/0.28.0/ERC20.json @@ -0,0 +1,224 @@ +{ + "contractName": "ERC20", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/ERC20Basic.json b/abi/0.28.0/ERC20Basic.json new file mode 100644 index 00000000..629d88c8 --- /dev/null +++ b/abi/0.28.0/ERC20Basic.json @@ -0,0 +1,83 @@ +{ + "contractName": "ERC20Basic", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_who", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/ERC20Burnable.json b/abi/0.28.0/ERC20Burnable.json new file mode 100644 index 00000000..f4890c20 --- /dev/null +++ b/abi/0.28.0/ERC20Burnable.json @@ -0,0 +1,256 @@ +{ + "contractName": "ERC20Burnable", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/ERC20Detailed.json b/abi/0.28.0/ERC20Detailed.json new file mode 100644 index 00000000..e310438d --- /dev/null +++ b/abi/0.28.0/ERC20Detailed.json @@ -0,0 +1,239 @@ +{ + "contractName": "ERC20Detailed", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "who", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/ERC20Mintable.json b/abi/0.28.0/ERC20Mintable.json new file mode 100644 index 00000000..5378b50d --- /dev/null +++ b/abi/0.28.0/ERC20Mintable.json @@ -0,0 +1,313 @@ +{ + "contractName": "ERC20Mintable", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isMinter", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "MinterAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "MinterRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/ERC20Mock.json b/abi/0.28.0/ERC20Mock.json new file mode 100644 index 00000000..b54f5922 --- /dev/null +++ b/abi/0.28.0/ERC20Mock.json @@ -0,0 +1,406 @@ +{ + "contractName": "ERC20Mock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isMinter", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "MinterAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "MinterRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/Fund.json b/abi/0.28.0/Fund.json new file mode 100644 index 00000000..be4a1cd9 --- /dev/null +++ b/abi/0.28.0/Fund.json @@ -0,0 +1,193 @@ +{ + "contractName": "Fund", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "cost", + "type": "uint256" + } + ], + "name": "FundsReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "AssetRefunded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "TrancheTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "state", + "type": "Fund.State storage" + }, + { + "name": "_invoice", + "type": "uint256[3]" + }, + { + "name": "trancheFeePercent", + "type": "uint256" + }, + { + "name": "serviceWallet", + "type": "address" + }, + { + "name": "rates", + "type": "IRates" + } + ], + "name": "transferTranche", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "state", + "type": "Fund.State storage" + }, + { + "name": "trancheTransferAllowed", + "type": "bool" + }, + { + "name": "crowdsale", + "type": "IW12Crowdsale" + } + ], + "name": "getTrancheInvoice", + "outputs": [ + { + "name": "result", + "type": "uint256[3]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "state", + "type": "Fund.State storage" + }, + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "rates", + "type": "IRates" + } + ], + "name": "refundAssets", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "state", + "type": "Fund.State storage" + }, + { + "name": "investor", + "type": "address" + }, + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "costUSD", + "type": "uint256" + }, + { + "name": "rates", + "type": "IRates" + } + ], + "name": "recordPurchase", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/FundAccount.json b/abi/0.28.0/FundAccount.json new file mode 100644 index 00000000..eeba580e --- /dev/null +++ b/abi/0.28.0/FundAccount.json @@ -0,0 +1,132 @@ +{ + "contractName": "FundAccount", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + }, + { + "name": "_symbol", + "type": "bytes32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + }, + { + "name": "_symbol", + "type": "bytes32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + }, + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "hasDepositIn", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + }, + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "amountOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + } + ], + "name": "symbolsList", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + }, + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "_writeSymbol", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/IAdminRole.json b/abi/0.28.0/IAdminRole.json new file mode 100644 index 00000000..a517a795 --- /dev/null +++ b/abi/0.28.0/IAdminRole.json @@ -0,0 +1,61 @@ +{ + "contractName": "IAdminRole", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/IERC20.json b/abi/0.28.0/IERC20.json new file mode 100644 index 00000000..1ae0a9c5 --- /dev/null +++ b/abi/0.28.0/IERC20.json @@ -0,0 +1,178 @@ +{ + "contractName": "IERC20", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "who", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/IPricerRole.json b/abi/0.28.0/IPricerRole.json new file mode 100644 index 00000000..60c46f6a --- /dev/null +++ b/abi/0.28.0/IPricerRole.json @@ -0,0 +1,61 @@ +{ + "contractName": "IPricerRole", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isPricer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addPricer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removePricer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renouncePricer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/IProjectOwnerRole.json b/abi/0.28.0/IProjectOwnerRole.json new file mode 100644 index 00000000..7fd6d831 --- /dev/null +++ b/abi/0.28.0/IProjectOwnerRole.json @@ -0,0 +1,61 @@ +{ + "contractName": "IProjectOwnerRole", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/IRates.json b/abi/0.28.0/IRates.json new file mode 100644 index 00000000..806bbbd8 --- /dev/null +++ b/abi/0.28.0/IRates.json @@ -0,0 +1,252 @@ +{ + "contractName": "IRates", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "removeSymbol", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "addSymbol", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addPricer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "symbolsList", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removePricer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "hasSymbol", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renouncePricer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSymbolsList", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isPricer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "_address", + "type": "address" + } + ], + "name": "addSymbolWithTokenAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "_address", + "type": "address" + } + ], + "name": "setTokenAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "getTokenAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "isToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "get", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "rate", + "type": "uint256" + } + ], + "name": "set", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/ISymbols.json b/abi/0.28.0/ISymbols.json new file mode 100644 index 00000000..cb25b867 --- /dev/null +++ b/abi/0.28.0/ISymbols.json @@ -0,0 +1,85 @@ +{ + "contractName": "ISymbols", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "symbolsList", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "addSymbol", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "removeSymbol", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "hasSymbol", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSymbolsList", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/ITokenExchange.json b/abi/0.28.0/ITokenExchange.json new file mode 100644 index 00000000..ddf1a84f --- /dev/null +++ b/abi/0.28.0/ITokenExchange.json @@ -0,0 +1,50 @@ +{ + "contractName": "ITokenExchange", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "fromToken", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "exchange", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/ITokenExchanger.json b/abi/0.28.0/ITokenExchanger.json new file mode 100644 index 00000000..7c6ab09b --- /dev/null +++ b/abi/0.28.0/ITokenExchanger.json @@ -0,0 +1,129 @@ +{ + "contractName": "ITokenExchanger", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "fromToken", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "exchange", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "getWTokenByToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "wToken", + "type": "address" + } + ], + "name": "addTokenToListing", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "wToken", + "type": "address" + } + ], + "name": "getTokenByWToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token1", + "type": "address" + }, + { + "name": "token2", + "type": "address" + } + ], + "name": "hasPair", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/ITokenLedger.json b/abi/0.28.0/ITokenLedger.json new file mode 100644 index 00000000..41702e6c --- /dev/null +++ b/abi/0.28.0/ITokenLedger.json @@ -0,0 +1,84 @@ +{ + "contractName": "ITokenLedger", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "wToken", + "type": "address" + } + ], + "name": "addTokenToListing", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token1", + "type": "address" + }, + { + "name": "token2", + "type": "address" + } + ], + "name": "hasPair", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "getWTokenByToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "wToken", + "type": "address" + } + ], + "name": "getTokenByWToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/IW12AtomicSwap.json b/abi/0.28.0/IW12AtomicSwap.json new file mode 100644 index 00000000..606bae0d --- /dev/null +++ b/abi/0.28.0/IW12AtomicSwap.json @@ -0,0 +1,50 @@ +{ + "contractName": "IW12AtomicSwap", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "fromToken", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "exchange", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/IW12Crowdsale.json b/abi/0.28.0/IW12Crowdsale.json new file mode 100644 index 00000000..323430d6 --- /dev/null +++ b/abi/0.28.0/IW12Crowdsale.json @@ -0,0 +1,418 @@ +{ + "contractName": "IW12Crowdsale", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "price", + "type": "uint256" + } + ], + "name": "setParameters", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "parametersOfStages", + "type": "uint256[6][]" + }, + { + "name": "bonusConditionsOfStages", + "type": "uint256[]" + }, + { + "name": "parametersOfMilestones", + "type": "uint256[4][]" + }, + { + "name": "nameAndDescriptionsOffsetOfMilestones", + "type": "uint32[]" + }, + { + "name": "nameAndDescriptionsOfMilestones", + "type": "bytes" + }, + { + "name": "paymentMethodsList", + "type": "bytes32[]" + } + ], + "name": "setup", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getWToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getFund", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "getMilestone", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bytes" + }, + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "getStage", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256[]" + }, + { + "name": "", + "type": "uint256[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentMilestoneIndex", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLastMilestoneIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "milestonesLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentStageIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "getSaleVolumeBonus", + "outputs": [ + { + "name": "bonus", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isEnded", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isSaleActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "buyTokens", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/IW12CrowdsaleFactory.json b/abi/0.28.0/IW12CrowdsaleFactory.json new file mode 100644 index 00000000..daeec4ef --- /dev/null +++ b/abi/0.28.0/IW12CrowdsaleFactory.json @@ -0,0 +1,56 @@ +{ + "contractName": "IW12CrowdsaleFactory", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "_wTokenAddress", + "type": "address" + }, + { + "name": "price", + "type": "uint256" + }, + { + "name": "serviceWallet", + "type": "address" + }, + { + "name": "serviceFee", + "type": "uint256" + }, + { + "name": "WTokenSaleFeePercent", + "type": "uint256" + }, + { + "name": "trancheFeePercent", + "type": "uint256" + }, + { + "name": "swap", + "type": "address" + }, + { + "name": "owners", + "type": "address[]" + } + ], + "name": "createCrowdsale", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/IW12Fund.json b/abi/0.28.0/IW12Fund.json new file mode 100644 index 00000000..b947cd16 --- /dev/null +++ b/abi/0.28.0/IW12Fund.json @@ -0,0 +1,203 @@ +{ + "contractName": "IW12Fund", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_crowdsale", + "type": "address" + } + ], + "name": "setCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_serviceWallet", + "type": "address" + } + ], + "name": "setServiceWallet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_swap", + "type": "address" + } + ], + "name": "setSwap", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "investor", + "type": "address" + }, + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "costUSD", + "type": "uint256" + } + ], + "name": "recordPurchase", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/IW12FundFactory.json b/abi/0.28.0/IW12FundFactory.json new file mode 100644 index 00000000..e6dd020d --- /dev/null +++ b/abi/0.28.0/IW12FundFactory.json @@ -0,0 +1,32 @@ +{ + "contractName": "IW12FundFactory", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "swap", + "type": "address" + }, + { + "name": "serviceWallet", + "type": "address" + }, + { + "name": "trancheFeePercent", + "type": "uint256" + } + ], + "name": "createFund", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/IWToken.json b/abi/0.28.0/IWToken.json new file mode 100644 index 00000000..92dcb750 --- /dev/null +++ b/abi/0.28.0/IWToken.json @@ -0,0 +1,450 @@ +{ + "contractName": "IWToken", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "who", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + }, + { + "name": "_date", + "type": "uint256" + } + ], + "name": "vestingBalanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + }, + { + "name": "_vestingTime", + "type": "uint32" + } + ], + "name": "vestingTransfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_vestingTime", + "type": "uint32" + } + ], + "name": "mint", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "accountBalance", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/IWallets.json b/abi/0.28.0/IWallets.json new file mode 100644 index 00000000..8572ee3d --- /dev/null +++ b/abi/0.28.0/IWallets.json @@ -0,0 +1,42 @@ +{ + "contractName": "IWallets", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "ID", + "type": "uint8" + }, + { + "name": "wallet", + "type": "address" + } + ], + "name": "setWallet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "ID", + "type": "uint8" + } + ], + "name": "getWallet", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/Migrations.json b/abi/0.28.0/Migrations.json new file mode 100644 index 00000000..98b6772e --- /dev/null +++ b/abi/0.28.0/Migrations.json @@ -0,0 +1,86 @@ +{ + "contractName": "Migrations", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": false, + "inputs": [ + { + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "new_address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/MinterRole.json b/abi/0.28.0/MinterRole.json new file mode 100644 index 00000000..eacc3e0b --- /dev/null +++ b/abi/0.28.0/MinterRole.json @@ -0,0 +1,77 @@ +{ + "contractName": "MinterRole", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "MinterAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "MinterRemoved", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isMinter", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/Ownable.json b/abi/0.28.0/Ownable.json new file mode 100644 index 00000000..3920387a --- /dev/null +++ b/abi/0.28.0/Ownable.json @@ -0,0 +1,77 @@ +{ + "contractName": "Ownable", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/PaymentMethods.json b/abi/0.28.0/PaymentMethods.json new file mode 100644 index 00000000..cc72628d --- /dev/null +++ b/abi/0.28.0/PaymentMethods.json @@ -0,0 +1,65 @@ +{ + "contractName": "PaymentMethods", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_methods", + "type": "PaymentMethods.Methods storage" + }, + { + "name": "_list", + "type": "bytes32[]" + } + ], + "name": "update", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_methods", + "type": "PaymentMethods.Methods storage" + }, + { + "name": "_method", + "type": "bytes32" + } + ], + "name": "isAllowed", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_methods", + "type": "PaymentMethods.Methods storage" + } + ], + "name": "list", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/Percent.json b/abi/0.28.0/Percent.json new file mode 100644 index 00000000..eca3687b --- /dev/null +++ b/abi/0.28.0/Percent.json @@ -0,0 +1,164 @@ +{ + "contractName": "Percent", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "ADD_EXP", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EXP", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MIN", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MAX", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + }, + { + "name": "_b", + "type": "uint256" + } + ], + "name": "percent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + }, + { + "name": "_b", + "type": "uint256" + } + ], + "name": "safePercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + } + ], + "name": "isPercent", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + } + ], + "name": "toPercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + } + ], + "name": "fromPercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/PercentMock.json b/abi/0.28.0/PercentMock.json new file mode 100644 index 00000000..ad2e2b91 --- /dev/null +++ b/abi/0.28.0/PercentMock.json @@ -0,0 +1,85 @@ +{ + "contractName": "PercentMock", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + }, + { + "name": "_b", + "type": "uint256" + } + ], + "name": "percent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + } + ], + "name": "isPercent", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + } + ], + "name": "toPercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + } + ], + "name": "fromPercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/PricerRole.json b/abi/0.28.0/PricerRole.json new file mode 100644 index 00000000..d2b7ca19 --- /dev/null +++ b/abi/0.28.0/PricerRole.json @@ -0,0 +1,63 @@ +{ + "contractName": "PricerRole", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "PricerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "PricerRemoved", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isPricer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renouncePricer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/ProjectOwnerRole.json b/abi/0.28.0/ProjectOwnerRole.json new file mode 100644 index 00000000..b877e4e6 --- /dev/null +++ b/abi/0.28.0/ProjectOwnerRole.json @@ -0,0 +1,63 @@ +{ + "contractName": "ProjectOwnerRole", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "ProjectOwnerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "ProjectOwnerRemoved", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/PurchaseProcessing.json b/abi/0.28.0/PurchaseProcessing.json new file mode 100644 index 00000000..87d380b7 --- /dev/null +++ b/abi/0.28.0/PurchaseProcessing.json @@ -0,0 +1,288 @@ +{ + "contractName": "PurchaseProcessing", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "methodUSDRate", + "type": "uint256" + }, + { + "name": "tokenUSDRate", + "type": "uint256" + }, + { + "name": "currentBalanceInTokens", + "type": "uint256" + }, + { + "name": "tokenDecimals", + "type": "uint256" + }, + { + "name": "methodDecimals", + "type": "uint256" + } + ], + "name": "checkInvoiceInput", + "outputs": [ + { + "name": "result", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "paymentAmount", + "type": "uint256" + }, + { + "name": "discount", + "type": "uint256" + }, + { + "name": "volumeBoundaries", + "type": "uint256[]" + }, + { + "name": "volumeBonuses", + "type": "uint256[]" + }, + { + "name": "methodUSDRate", + "type": "uint256" + }, + { + "name": "tokenUSDRate", + "type": "uint256" + }, + { + "name": "tokenDecimals", + "type": "uint256" + }, + { + "name": "methodDecimals", + "type": "uint256" + }, + { + "name": "currentBalanceInTokens", + "type": "uint256" + } + ], + "name": "invoice", + "outputs": [ + { + "name": "result", + "type": "uint256[5]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "discount", + "type": "uint256" + }, + { + "name": "volumeBoundaries", + "type": "uint256[]" + }, + { + "name": "volumeBonuses", + "type": "uint256[]" + }, + { + "name": "methodUSDRate", + "type": "uint256" + }, + { + "name": "tokenUSDRate", + "type": "uint256" + }, + { + "name": "tokenDecimals", + "type": "uint256" + }, + { + "name": "methodDecimals", + "type": "uint256" + }, + { + "name": "currentBalanceInTokens", + "type": "uint256" + } + ], + "name": "invoiceByTokenAmount", + "outputs": [ + { + "name": "result", + "type": "uint256[4]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "tokenFee", + "type": "uint256" + }, + { + "name": "purchaseFee", + "type": "uint256" + } + ], + "name": "fee", + "outputs": [ + { + "name": "result", + "type": "uint256[2]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_fee", + "type": "uint256[2]" + }, + { + "name": "method", + "type": "bytes32" + }, + { + "name": "methodToken", + "type": "address" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "originToken", + "type": "address" + }, + { + "name": "exchanger", + "type": "address" + }, + { + "name": "serviceWallet", + "type": "address" + } + ], + "name": "transferFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_invoice", + "type": "uint256[5]" + }, + { + "name": "_fee", + "type": "uint256[2]" + }, + { + "name": "vesting", + "type": "uint32" + }, + { + "name": "method", + "type": "bytes32" + }, + { + "name": "methodToken", + "type": "address" + }, + { + "name": "token", + "type": "address" + } + ], + "name": "transferPurchase", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + }, + { + "name": "volumeBoundaries", + "type": "uint256[]" + }, + { + "name": "volumeBonuses", + "type": "uint256[]" + } + ], + "name": "getBonus", + "outputs": [ + { + "name": "bonus", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/PurchaseProcessingMock.json b/abi/0.28.0/PurchaseProcessingMock.json new file mode 100644 index 00000000..c4b324ed --- /dev/null +++ b/abi/0.28.0/PurchaseProcessingMock.json @@ -0,0 +1,238 @@ +{ + "contractName": "PurchaseProcessingMock", + "abi": [ + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": true, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "paymentAmount", + "type": "uint256" + }, + { + "name": "methodUSDRate", + "type": "uint256" + }, + { + "name": "tokenUSDRate", + "type": "uint256" + }, + { + "name": "currentBalanceInTokens", + "type": "uint256" + }, + { + "name": "tokenDecimals", + "type": "uint256" + }, + { + "name": "methodDecimals", + "type": "uint256" + } + ], + "name": "checkInvoiceInput", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "paymentAmount", + "type": "uint256" + }, + { + "name": "discount", + "type": "uint256" + }, + { + "name": "volumeBoundaries", + "type": "uint256[]" + }, + { + "name": "volumeBonuses", + "type": "uint256[]" + }, + { + "name": "methodUSDRate", + "type": "uint256" + }, + { + "name": "tokenUSDRate", + "type": "uint256" + }, + { + "name": "tokenDecimals", + "type": "uint256" + }, + { + "name": "methodDecimals", + "type": "uint256" + }, + { + "name": "currentBalanceInTokens", + "type": "uint256" + } + ], + "name": "invoice", + "outputs": [ + { + "name": "", + "type": "uint256[5]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "tokenFee", + "type": "uint256" + }, + { + "name": "purchaseFee", + "type": "uint256" + } + ], + "name": "fee", + "outputs": [ + { + "name": "", + "type": "uint256[2]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_fee", + "type": "uint256[2]" + }, + { + "name": "method", + "type": "bytes32" + }, + { + "name": "methodToken", + "type": "address" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "originToken", + "type": "address" + }, + { + "name": "exchanger", + "type": "address" + }, + { + "name": "serviceWallet", + "type": "address" + } + ], + "name": "transferFee", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_invoice", + "type": "uint256[5]" + }, + { + "name": "_fee", + "type": "uint256[2]" + }, + { + "name": "vesting", + "type": "uint32" + }, + { + "name": "method", + "type": "bytes32" + }, + { + "name": "methodToken", + "type": "address" + }, + { + "name": "token", + "type": "address" + } + ], + "name": "transferPurchase", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + }, + { + "name": "volumeBoundaries", + "type": "uint256[]" + }, + { + "name": "volumeBonuses", + "type": "uint256[]" + } + ], + "name": "getBonus", + "outputs": [ + { + "name": "bonus", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/RBAC.json b/abi/0.28.0/RBAC.json new file mode 100644 index 00000000..b8a3a7f7 --- /dev/null +++ b/abi/0.28.0/RBAC.json @@ -0,0 +1,80 @@ +{ + "contractName": "RBAC", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "name": "role", + "type": "string" + } + ], + "name": "RoleAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "name": "role", + "type": "string" + } + ], + "name": "RoleRemoved", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "_operator", + "type": "address" + }, + { + "name": "_role", + "type": "string" + } + ], + "name": "checkRole", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_operator", + "type": "address" + }, + { + "name": "_role", + "type": "string" + } + ], + "name": "hasRole", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/Rates.json b/abi/0.28.0/Rates.json new file mode 100644 index 00000000..a52d4dc3 --- /dev/null +++ b/abi/0.28.0/Rates.json @@ -0,0 +1,316 @@ +{ + "contractName": "Rates", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "symbolsList", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "hasSymbol", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renouncePricer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSymbolsList", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isPricer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "PricerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "PricerRemoved", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "_address", + "type": "address" + } + ], + "name": "addSymbolWithTokenAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "addSymbol", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "removeSymbol", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "_address", + "type": "address" + } + ], + "name": "setTokenAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "getTokenAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "isToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addPricer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removePricer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "get", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "rate", + "type": "uint256" + } + ], + "name": "set", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/ReentrancyGuard.json b/abi/0.28.0/ReentrancyGuard.json new file mode 100644 index 00000000..77e48378 --- /dev/null +++ b/abi/0.28.0/ReentrancyGuard.json @@ -0,0 +1,11 @@ +{ + "contractName": "ReentrancyGuard", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/Roles.json b/abi/0.28.0/Roles.json new file mode 100644 index 00000000..567239e8 --- /dev/null +++ b/abi/0.28.0/Roles.json @@ -0,0 +1,4 @@ +{ + "contractName": "Roles", + "abi": [] +} \ No newline at end of file diff --git a/abi/0.28.0/SafeERC20.json b/abi/0.28.0/SafeERC20.json new file mode 100644 index 00000000..083544f8 --- /dev/null +++ b/abi/0.28.0/SafeERC20.json @@ -0,0 +1,4 @@ +{ + "contractName": "SafeERC20", + "abi": [] +} \ No newline at end of file diff --git a/abi/0.28.0/SafeMath.json b/abi/0.28.0/SafeMath.json new file mode 100644 index 00000000..c474f9a5 --- /dev/null +++ b/abi/0.28.0/SafeMath.json @@ -0,0 +1,4 @@ +{ + "contractName": "SafeMath", + "abi": [] +} \ No newline at end of file diff --git a/abi/0.28.0/Secondary.json b/abi/0.28.0/Secondary.json new file mode 100644 index 00000000..f071b33f --- /dev/null +++ b/abi/0.28.0/Secondary.json @@ -0,0 +1,51 @@ +{ + "contractName": "Secondary", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/StandardToken.json b/abi/0.28.0/StandardToken.json new file mode 100644 index 00000000..d131c381 --- /dev/null +++ b/abi/0.28.0/StandardToken.json @@ -0,0 +1,224 @@ +{ + "contractName": "StandardToken", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/Symbols.json b/abi/0.28.0/Symbols.json new file mode 100644 index 00000000..5cacb2ea --- /dev/null +++ b/abi/0.28.0/Symbols.json @@ -0,0 +1,85 @@ +{ + "contractName": "Symbols", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "symbolsList", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "addSymbol", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "removeSymbol", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "symbol", + "type": "bytes32" + } + ], + "name": "hasSymbol", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSymbolsList", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/TokenExchanger.json b/abi/0.28.0/TokenExchanger.json new file mode 100644 index 00000000..04c3422b --- /dev/null +++ b/abi/0.28.0/TokenExchanger.json @@ -0,0 +1,259 @@ +{ + "contractName": "TokenExchanger", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "listingWTokenToToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "listingTokenToWToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": true, + "name": "sender", + "type": "address" + } + ], + "name": "Exchange", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "wToken", + "type": "address" + } + ], + "name": "addTokenToListing", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token1", + "type": "address" + }, + { + "name": "token2", + "type": "address" + } + ], + "name": "hasPair", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "getWTokenByToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "wToken", + "type": "address" + } + ], + "name": "getTokenByWToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "fromToken", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "exchange", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/TokenListing.json b/abi/0.28.0/TokenListing.json new file mode 100644 index 00000000..e21348be --- /dev/null +++ b/abi/0.28.0/TokenListing.json @@ -0,0 +1,22 @@ +{ + "contractName": "TokenListing", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": true, + "name": "tokenOwner", + "type": "address" + } + ], + "name": "OwnerWhitelisted", + "type": "event" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/Utils.json b/abi/0.28.0/Utils.json new file mode 100644 index 00000000..faa01e7d --- /dev/null +++ b/abi/0.28.0/Utils.json @@ -0,0 +1,86 @@ +{ + "contractName": "Utils", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + }, + { + "name": "decimals", + "type": "uint256" + }, + { + "name": "rate", + "type": "uint256" + } + ], + "name": "safeConversionByRate", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + }, + { + "name": "decimals", + "type": "uint256" + }, + { + "name": "rate", + "type": "uint256" + } + ], + "name": "safeReverseConversionByRate", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "a", + "type": "uint256" + }, + { + "name": "b", + "type": "uint256" + }, + { + "name": "c", + "type": "uint256" + } + ], + "name": "safeMulDiv", + "outputs": [ + { + "name": "result", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/UtilsMock.json b/abi/0.28.0/UtilsMock.json new file mode 100644 index 00000000..fda5d129 --- /dev/null +++ b/abi/0.28.0/UtilsMock.json @@ -0,0 +1,86 @@ +{ + "contractName": "UtilsMock", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + }, + { + "name": "decimals", + "type": "uint256" + }, + { + "name": "rate", + "type": "uint256" + } + ], + "name": "safeConversionByRate", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + }, + { + "name": "decimals", + "type": "uint256" + }, + { + "name": "rate", + "type": "uint256" + } + ], + "name": "safeReverseConversionByRate", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "a", + "type": "uint256" + }, + { + "name": "b", + "type": "uint256" + }, + { + "name": "c", + "type": "uint256" + } + ], + "name": "safeMulDiv", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/Versionable.json b/abi/0.28.0/Versionable.json new file mode 100644 index 00000000..43ea6b23 --- /dev/null +++ b/abi/0.28.0/Versionable.json @@ -0,0 +1,30 @@ +{ + "contractName": "Versionable", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_version", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/VersionsLedger.json b/abi/0.28.0/VersionsLedger.json new file mode 100644 index 00000000..f9ea6296 --- /dev/null +++ b/abi/0.28.0/VersionsLedger.json @@ -0,0 +1,166 @@ +{ + "contractName": "VersionsLedger", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "addressByVersion", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "versions", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "versionByAddress", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_address", + "type": "address" + }, + { + "name": "version", + "type": "uint256" + } + ], + "name": "setVersion", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getVersions", + "outputs": [ + { + "name": "", + "type": "uint256[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAddresses", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLastVersion", + "outputs": [ + { + "name": "version", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12AtomicSwap.json b/abi/0.28.0/W12AtomicSwap.json new file mode 100644 index 00000000..21e5d364 --- /dev/null +++ b/abi/0.28.0/W12AtomicSwap.json @@ -0,0 +1,186 @@ +{ + "contractName": "W12AtomicSwap", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ledger", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + }, + { + "name": "_ledger", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": true, + "name": "sender", + "type": "address" + } + ], + "name": "Exchange", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "fromToken", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "exchange", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12Crowdsale.json b/abi/0.28.0/W12Crowdsale.json new file mode 100644 index 00000000..0b19a2f8 --- /dev/null +++ b/abi/0.28.0/W12Crowdsale.json @@ -0,0 +1,962 @@ +{ + "contractName": "W12Crowdsale", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "originToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "WTokenSaleFeePercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "rates", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "serviceWallet", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "swap", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "stages", + "outputs": [ + { + "name": "startDate", + "type": "uint32" + }, + { + "name": "endDate", + "type": "uint32" + }, + { + "name": "discount", + "type": "uint256" + }, + { + "name": "vesting", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "serviceFee", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "price", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "fund", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "milestones", + "outputs": [ + { + "name": "endDate", + "type": "uint32" + }, + { + "name": "tranchePercent", + "type": "uint256" + }, + { + "name": "voteEndDate", + "type": "uint32" + }, + { + "name": "withdrawalWindow", + "type": "uint32" + }, + { + "name": "name", + "type": "bytes" + }, + { + "name": "description", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + }, + { + "name": "_originToken", + "type": "address" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_price", + "type": "uint256" + }, + { + "name": "_serviceWallet", + "type": "address" + }, + { + "name": "_swap", + "type": "address" + }, + { + "name": "_serviceFee", + "type": "uint256" + }, + { + "name": "_WTokenSaleFeePercent", + "type": "uint256" + }, + { + "name": "_fund", + "type": "address" + }, + { + "name": "_rates", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "buyer", + "type": "address" + }, + { + "indexed": false, + "name": "tokensBought", + "type": "uint256" + }, + { + "indexed": false, + "name": "cost", + "type": "uint256" + }, + { + "indexed": false, + "name": "change", + "type": "uint256" + } + ], + "name": "TokenPurchase", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "StagesUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "index", + "type": "uint256" + } + ], + "name": "StageUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "MilestonesUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "CrowdsaleSetUpDone", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "UnsoldTokenReturned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "ProjectOwnerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "ProjectOwnerRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminRemoved", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "stagesLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "milestonesLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "getMilestone", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bytes" + }, + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "getStage", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256[]" + }, + { + "name": "", + "type": "uint256[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getEndDate", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentMilestoneIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLastMilestoneIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_price", + "type": "uint256" + } + ], + "name": "setParameters", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "parametersOfStages", + "type": "uint256[6][]" + }, + { + "name": "bonusConditionsOfStages", + "type": "uint256[]" + }, + { + "name": "parametersOfMilestones", + "type": "uint256[4][]" + }, + { + "name": "nameAndDescriptionsOffsetOfMilestones", + "type": "uint32[]" + }, + { + "name": "nameAndDescriptionsOfMilestones", + "type": "bytes" + }, + { + "name": "paymentMethodsList", + "type": "bytes32[]" + } + ], + "name": "setup", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "buyTokens", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getWToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getFund", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getPaymentMethodsList", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_method", + "type": "bytes32" + } + ], + "name": "isPaymentMethodAllowed", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "getInvoice", + "outputs": [ + { + "name": "", + "type": "uint256[5]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "tokenAmount", + "type": "uint256" + } + ], + "name": "getInvoiceByTokenAmount", + "outputs": [ + { + "name": "", + "type": "uint256[4]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "cost", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "name": "", + "type": "uint256[2]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "getSaleVolumeBonus", + "outputs": [ + { + "name": "bonus", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentStageIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "claimRemainingTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isEnded", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isSaleActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12CrowdsaleFactory.json b/abi/0.28.0/W12CrowdsaleFactory.json new file mode 100644 index 00000000..69ccb82e --- /dev/null +++ b/abi/0.28.0/W12CrowdsaleFactory.json @@ -0,0 +1,111 @@ +{ + "contractName": "W12CrowdsaleFactory", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + }, + { + "name": "_fundFactory", + "type": "address" + }, + { + "name": "_rates", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "token", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsaleAddress", + "type": "address" + }, + { + "indexed": false, + "name": "fundAddress", + "type": "address" + } + ], + "name": "CrowdsaleCreated", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "wTokenAddress", + "type": "address" + }, + { + "name": "price", + "type": "uint256" + }, + { + "name": "serviceWallet", + "type": "address" + }, + { + "name": "serviceFee", + "type": "uint256" + }, + { + "name": "WTokenSaleFeePercent", + "type": "uint256" + }, + { + "name": "trancheFeePercent", + "type": "uint256" + }, + { + "name": "swap", + "type": "address" + }, + { + "name": "owners", + "type": "address[]" + } + ], + "name": "createCrowdsale", + "outputs": [ + { + "name": "result", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12CrowdsaleFundStub.json b/abi/0.28.0/W12CrowdsaleFundStub.json new file mode 100644 index 00000000..cdcebf8d --- /dev/null +++ b/abi/0.28.0/W12CrowdsaleFundStub.json @@ -0,0 +1,251 @@ +{ + "contractName": "W12CrowdsaleFundStub", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_crowdsale", + "type": "address" + } + ], + "name": "setCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_serviceWallet", + "type": "address" + } + ], + "name": "setServiceWallet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_swap", + "type": "address" + } + ], + "name": "setSwap", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "_getRecordPurchaseCallResult", + "outputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "bytes32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "investor", + "type": "address" + }, + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "costUSD", + "type": "uint256" + } + ], + "name": "recordPurchase", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + } + ], + "name": "_outEther", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12CrowdsaleStub.json b/abi/0.28.0/W12CrowdsaleStub.json new file mode 100644 index 00000000..93d56df2 --- /dev/null +++ b/abi/0.28.0/W12CrowdsaleStub.json @@ -0,0 +1,1013 @@ +{ + "contractName": "W12CrowdsaleStub", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "buyTokens", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_method", + "type": "bytes32" + } + ], + "name": "isPaymentMethodAllowed", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "originToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLastMilestoneIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "getSaleVolumeBonus", + "outputs": [ + { + "name": "bonus", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "getMilestone", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bytes" + }, + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "getStage", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256[]" + }, + { + "name": "", + "type": "uint256[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "WTokenSaleFeePercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "claimRemainingTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "milestonesLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getWToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "rates", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getPaymentMethodsList", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "serviceWallet", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isSaleActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "stagesLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "swap", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "stages", + "outputs": [ + { + "name": "startDate", + "type": "uint32" + }, + { + "name": "endDate", + "type": "uint32" + }, + { + "name": "discount", + "type": "uint256" + }, + { + "name": "vesting", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "serviceFee", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "getInvoice", + "outputs": [ + { + "name": "", + "type": "uint256[5]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getFund", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "price", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isEnded", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getEndDate", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "fund", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "cost", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "name": "", + "type": "uint256[2]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "parametersOfStages", + "type": "uint256[6][]" + }, + { + "name": "bonusConditionsOfStages", + "type": "uint256[]" + }, + { + "name": "parametersOfMilestones", + "type": "uint256[4][]" + }, + { + "name": "nameAndDescriptionsOffsetOfMilestones", + "type": "uint32[]" + }, + { + "name": "nameAndDescriptionsOfMilestones", + "type": "bytes" + }, + { + "name": "paymentMethodsList", + "type": "bytes32[]" + } + ], + "name": "setup", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentMilestoneIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentStageIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "milestones", + "outputs": [ + { + "name": "endDate", + "type": "uint32" + }, + { + "name": "tranchePercent", + "type": "uint256" + }, + { + "name": "voteEndDate", + "type": "uint32" + }, + { + "name": "withdrawalWindow", + "type": "uint32" + }, + { + "name": "name", + "type": "bytes" + }, + { + "name": "description", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_price", + "type": "uint256" + } + ], + "name": "setParameters", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "tokenAmount", + "type": "uint256" + } + ], + "name": "getInvoiceByTokenAmount", + "outputs": [ + { + "name": "", + "type": "uint256[4]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + }, + { + "name": "_originToken", + "type": "address" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_price", + "type": "uint256" + }, + { + "name": "_serviceWallet", + "type": "address" + }, + { + "name": "_swap", + "type": "address" + }, + { + "name": "_serviceFee", + "type": "uint256" + }, + { + "name": "_WTokenSaleFeePercent", + "type": "uint256" + }, + { + "name": "_fund", + "type": "address" + }, + { + "name": "_rates", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "buyer", + "type": "address" + }, + { + "indexed": false, + "name": "tokensBought", + "type": "uint256" + }, + { + "indexed": false, + "name": "cost", + "type": "uint256" + }, + { + "indexed": false, + "name": "change", + "type": "uint256" + } + ], + "name": "TokenPurchase", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "StagesUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "index", + "type": "uint256" + } + ], + "name": "StageUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "MilestonesUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "CrowdsaleSetUpDone", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "UnsoldTokenReturned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "ProjectOwnerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "ProjectOwnerRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminRemoved", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "_outTokens", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + } + ], + "name": "_outEther", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_WTokenSaleFeePercent", + "type": "uint256" + } + ], + "name": "_setState", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12Fund.json b/abi/0.28.0/W12Fund.json new file mode 100644 index 00000000..092b53b1 --- /dev/null +++ b/abi/0.28.0/W12Fund.json @@ -0,0 +1,752 @@ +{ + "contractName": "W12Fund", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "wToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "rates", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "serviceWallet", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "swap", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "crowdsale", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "trancheFeePercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + }, + { + "name": "_trancheFeePercent", + "type": "uint256" + }, + { + "name": "_rates", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "cost", + "type": "uint256" + } + ], + "name": "FundsReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "AssetRefunded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + } + ], + "name": "TokenRefunded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "TrancheTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "percent", + "type": "uint256" + } + ], + "name": "TrancheReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "ProjectOwnerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "ProjectOwnerRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminRemoved", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_crowdsale", + "type": "address" + } + ], + "name": "setCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_swap", + "type": "address" + } + ], + "name": "setSwap", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_serviceWallet", + "type": "address" + } + ], + "name": "setServiceWallet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "investor", + "type": "address" + }, + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "costUSD", + "type": "uint256" + } + ], + "name": "recordPurchase", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalTranchePercentReleased", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "milestoneIndex", + "type": "uint256" + } + ], + "name": "completedTranches", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalTokenBought", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalTokenRefunded", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_investor", + "type": "address" + }, + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "getInvestorFundedAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_investor", + "type": "address" + } + ], + "name": "getInvestorFundedAssetsSymbols", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_investor", + "type": "address" + } + ], + "name": "getInvestorTokenBoughtAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "getTotalFundedAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getTotalFundedAssetsSymbols", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "getTotalFundedReleased", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getTrancheInvoice", + "outputs": [ + { + "name": "result", + "type": "uint256[3]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "tranche", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokenAmount", + "type": "uint256" + } + ], + "name": "refund", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "tokenRefundAllowed", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "trancheTransferAllowed", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isWithdrawalWindowActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12FundCrowdsaleStub.json b/abi/0.28.0/W12FundCrowdsaleStub.json new file mode 100644 index 00000000..e1b7472d --- /dev/null +++ b/abi/0.28.0/W12FundCrowdsaleStub.json @@ -0,0 +1,562 @@ +{ + "contractName": "W12FundCrowdsaleStub", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "getFund", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "price", + "type": "uint256" + } + ], + "name": "setParameters", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "parametersOfStages", + "type": "uint256[6][]" + }, + { + "name": "bonusConditionsOfStages", + "type": "uint256[]" + }, + { + "name": "parametersOfMilestones", + "type": "uint256[4][]" + }, + { + "name": "nameAndDescriptionsOffsetOfMilestones", + "type": "uint32[]" + }, + { + "name": "nameAndDescriptionsOfMilestones", + "type": "bytes" + }, + { + "name": "paymentMethodsList", + "type": "bytes32[]" + } + ], + "name": "setup", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getWToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "a", + "type": "address" + } + ], + "name": "_getWTokenMockData", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "getMilestone", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bytes" + }, + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idx", + "type": "uint256" + }, + { + "name": "a", + "type": "uint32" + }, + { + "name": "b", + "type": "uint256" + }, + { + "name": "c", + "type": "uint32" + }, + { + "name": "d", + "type": "uint32" + }, + { + "name": "e", + "type": "bytes" + }, + { + "name": "f", + "type": "bytes" + } + ], + "name": "_getMilestoneMockData", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "getStage", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256[]" + }, + { + "name": "", + "type": "uint256[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentMilestoneIndex", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "a", + "type": "uint256" + }, + { + "name": "b", + "type": "bool" + } + ], + "name": "_getCurrentMilestoneIndexMockData", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLastMilestoneIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "a", + "type": "uint256" + }, + { + "name": "b", + "type": "bool" + } + ], + "name": "_getLastMilestoneIndexMockData", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "milestonesLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentStageIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "getSaleVolumeBonus", + "outputs": [ + { + "name": "bonus", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isEnded", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isSaleActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "buyTokens", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12FundFactory.json b/abi/0.28.0/W12FundFactory.json new file mode 100644 index 00000000..4484431d --- /dev/null +++ b/abi/0.28.0/W12FundFactory.json @@ -0,0 +1,73 @@ +{ + "contractName": "W12FundFactory", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + }, + { + "name": "_rates", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "fund", + "type": "address" + } + ], + "name": "FundCreated", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "swap", + "type": "address" + }, + { + "name": "serviceWallet", + "type": "address" + }, + { + "name": "trancheFeePercent", + "type": "uint256" + } + ], + "name": "createFund", + "outputs": [ + { + "name": "result", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12FundStub.json b/abi/0.28.0/W12FundStub.json new file mode 100644 index 00000000..89fbf6a7 --- /dev/null +++ b/abi/0.28.0/W12FundStub.json @@ -0,0 +1,791 @@ +{ + "contractName": "W12FundStub", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "getTotalFundedAssetsSymbols", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "wToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalTranchePercentReleased", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "milestoneIndex", + "type": "uint256" + } + ], + "name": "completedTranches", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_serviceWallet", + "type": "address" + } + ], + "name": "setServiceWallet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokenAmount", + "type": "uint256" + } + ], + "name": "refund", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "rates", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_crowdsale", + "type": "address" + } + ], + "name": "setCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "serviceWallet", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "tokenRefundAllowed", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "tranche", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "getTotalFundedReleased", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "swap", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isWithdrawalWindowActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_investor", + "type": "address" + } + ], + "name": "getInvestorTokenBoughtAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "getTotalFundedAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "crowdsale", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "trancheTransferAllowed", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "trancheFeePercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getTrancheInvoice", + "outputs": [ + { + "name": "result", + "type": "uint256[3]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_swap", + "type": "address" + } + ], + "name": "setSwap", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_investor", + "type": "address" + } + ], + "name": "getInvestorFundedAssetsSymbols", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalTokenBought", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "investor", + "type": "address" + }, + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "costUSD", + "type": "uint256" + } + ], + "name": "recordPurchase", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_investor", + "type": "address" + }, + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "getInvestorFundedAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalTokenRefunded", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + }, + { + "name": "crowdsaleAddress", + "type": "address" + }, + { + "name": "swapAddress", + "type": "address" + }, + { + "name": "wTokenAddress", + "type": "address" + }, + { + "name": "_serviceWallet", + "type": "address" + }, + { + "name": "_trancheFeePercent", + "type": "uint256" + }, + { + "name": "_rates", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "cost", + "type": "uint256" + } + ], + "name": "FundsReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "AssetRefunded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + } + ], + "name": "TokenRefunded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "TrancheTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "percent", + "type": "uint256" + } + ], + "name": "TrancheReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "ProjectOwnerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "ProjectOwnerRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminRemoved", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_symbol", + "type": "bytes32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "_outFunds", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12Lister.json b/abi/0.28.0/W12Lister.json new file mode 100644 index 00000000..39d31b76 --- /dev/null +++ b/abi/0.28.0/W12Lister.json @@ -0,0 +1,704 @@ +{ + "contractName": "W12Lister", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "exchanger", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "factory", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "wallets", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + }, + { + "name": "_wallets", + "type": "address" + }, + { + "name": "_factory", + "type": "address" + }, + { + "name": "_exchanger", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": true, + "name": "tokenOwner", + "type": "address" + } + ], + "name": "OwnerWhitelisted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "token", + "type": "address" + }, + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "owners", + "type": "address[]" + }, + { + "indexed": false, + "name": "name", + "type": "string" + }, + { + "indexed": false, + "name": "symbol", + "type": "string" + } + ], + "name": "TokenWhitelisted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "originalToken", + "type": "address" + }, + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsale", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "placedToken", + "type": "address" + } + ], + "name": "TokenPlaced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "token", + "type": "address" + }, + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsale", + "type": "address" + }, + { + "indexed": false, + "name": "amountForSale", + "type": "uint256" + } + ], + "name": "CrowdsaleInitialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "token", + "type": "address" + }, + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsale", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "CrowdsaleTokenMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminRemoved", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + }, + { + "name": "owners", + "type": "address[]" + }, + { + "name": "feePercent", + "type": "uint256" + }, + { + "name": "ethFeePercent", + "type": "uint256" + }, + { + "name": "WTokenSaleFeePercent", + "type": "uint256" + }, + { + "name": "trancheFeePercent", + "type": "uint256" + } + ], + "name": "whitelistToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "placeToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "amountForSale", + "type": "uint256" + }, + { + "name": "price", + "type": "uint256" + } + ], + "name": "initCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + }, + { + "name": "amountForSale", + "type": "uint256" + } + ], + "name": "addTokensToCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "getTokenOwners", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + } + ], + "name": "getCrowdsaleOwners", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getExchanger", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "getToken", + "outputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + }, + { + "name": "owners", + "type": "address[]" + }, + { + "name": "commissions", + "type": "uint256[4]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "isTokenWhitelisted", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "owner", + "type": "address" + } + ], + "name": "hasTokenOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "getCrowdsales", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + } + ], + "name": "hasCrowdsaleWithAddress", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "hasNotInitialisedCrowdsale", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + } + ], + "name": "getCrowdsale", + "outputs": [ + { + "name": "commissions", + "type": "uint256[4]" + }, + { + "name": "amounts", + "type": "uint256[2]" + }, + { + "name": "owners", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "serviceWallet", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12ListerStub.json b/abi/0.28.0/W12ListerStub.json new file mode 100644 index 00000000..9149a1c2 --- /dev/null +++ b/abi/0.28.0/W12ListerStub.json @@ -0,0 +1,704 @@ +{ + "contractName": "W12ListerStub", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "amountForSale", + "type": "uint256" + }, + { + "name": "price", + "type": "uint256" + } + ], + "name": "initCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "getCrowdsales", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "hasNotInitialisedCrowdsale", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + }, + { + "name": "amountForSale", + "type": "uint256" + } + ], + "name": "addTokensToCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + } + ], + "name": "getCrowdsaleOwners", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getExchanger", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "exchanger", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "serviceWallet", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "getToken", + "outputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + }, + { + "name": "owners", + "type": "address[]" + }, + { + "name": "commissions", + "type": "uint256[4]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "placeToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "getTokenOwners", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + } + ], + "name": "getCrowdsale", + "outputs": [ + { + "name": "commissions", + "type": "uint256[4]" + }, + { + "name": "amounts", + "type": "uint256[2]" + }, + { + "name": "owners", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + }, + { + "name": "owners", + "type": "address[]" + }, + { + "name": "feePercent", + "type": "uint256" + }, + { + "name": "ethFeePercent", + "type": "uint256" + }, + { + "name": "WTokenSaleFeePercent", + "type": "uint256" + }, + { + "name": "trancheFeePercent", + "type": "uint256" + } + ], + "name": "whitelistToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "isTokenWhitelisted", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "factory", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + } + ], + "name": "hasCrowdsaleWithAddress", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "wallets", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "owner", + "type": "address" + } + ], + "name": "hasTokenOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + }, + { + "name": "_wallets", + "type": "address" + }, + { + "name": "_factory", + "type": "address" + }, + { + "name": "_exchanger", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": true, + "name": "tokenOwner", + "type": "address" + } + ], + "name": "OwnerWhitelisted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "token", + "type": "address" + }, + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "owners", + "type": "address[]" + }, + { + "indexed": false, + "name": "name", + "type": "string" + }, + { + "indexed": false, + "name": "symbol", + "type": "string" + } + ], + "name": "TokenWhitelisted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "originalToken", + "type": "address" + }, + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsale", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "placedToken", + "type": "address" + } + ], + "name": "TokenPlaced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "token", + "type": "address" + }, + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsale", + "type": "address" + }, + { + "indexed": false, + "name": "amountForSale", + "type": "uint256" + } + ], + "name": "CrowdsaleInitialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "token", + "type": "address" + }, + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsale", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "CrowdsaleTokenMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminRemoved", + "type": "event" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12Lister__W12CrowdsaleFactoryMock.json b/abi/0.28.0/W12Lister__W12CrowdsaleFactoryMock.json new file mode 100644 index 00000000..bc24e088 --- /dev/null +++ b/abi/0.28.0/W12Lister__W12CrowdsaleFactoryMock.json @@ -0,0 +1,102 @@ +{ + "contractName": "W12Lister__W12CrowdsaleFactoryMock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "_createCrowdsaleCall", + "outputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "_wTokenAddress", + "type": "address" + }, + { + "name": "price", + "type": "uint256" + }, + { + "name": "serviceWallet", + "type": "address" + }, + { + "name": "serviceFee", + "type": "uint256" + }, + { + "name": "WTokenSaleFeePercent", + "type": "uint256" + }, + { + "name": "trancheFeePercent", + "type": "uint256" + }, + { + "name": "swap", + "type": "address" + }, + { + "name": "owners", + "type": "address[]" + } + ], + "name": "createCrowdsale", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12Lister__W12CrowdsaleMock.json b/abi/0.28.0/W12Lister__W12CrowdsaleMock.json new file mode 100644 index 00000000..ed8b96f2 --- /dev/null +++ b/abi/0.28.0/W12Lister__W12CrowdsaleMock.json @@ -0,0 +1,443 @@ +{ + "contractName": "W12Lister__W12CrowdsaleMock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "_addAdminCall", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getFund", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "price", + "type": "uint256" + } + ], + "name": "setParameters", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "parametersOfStages", + "type": "uint256[6][]" + }, + { + "name": "bonusConditionsOfStages", + "type": "uint256[]" + }, + { + "name": "parametersOfMilestones", + "type": "uint256[4][]" + }, + { + "name": "nameAndDescriptionsOffsetOfMilestones", + "type": "uint32[]" + }, + { + "name": "nameAndDescriptionsOfMilestones", + "type": "bytes" + }, + { + "name": "paymentMethodsList", + "type": "bytes32[]" + } + ], + "name": "setup", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getWToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "getMilestone", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bytes" + }, + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "getStage", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256[]" + }, + { + "name": "", + "type": "uint256[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentMilestoneIndex", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLastMilestoneIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "milestonesLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentStageIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "getSaleVolumeBonus", + "outputs": [ + { + "name": "bonus", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isEnded", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isSaleActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "buyTokens", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12Lister__W12FundMock.json b/abi/0.28.0/W12Lister__W12FundMock.json new file mode 100644 index 00000000..bbfea18b --- /dev/null +++ b/abi/0.28.0/W12Lister__W12FundMock.json @@ -0,0 +1,217 @@ +{ + "contractName": "W12Lister__W12FundMock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "_addAdminCall", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_crowdsale", + "type": "address" + } + ], + "name": "setCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_serviceWallet", + "type": "address" + } + ], + "name": "setServiceWallet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_swap", + "type": "address" + } + ], + "name": "setSwap", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "investor", + "type": "address" + }, + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "costUSD", + "type": "uint256" + } + ], + "name": "recordPurchase", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/W12TokenLedger.json b/abi/0.28.0/W12TokenLedger.json new file mode 100644 index 00000000..c5ab4cdf --- /dev/null +++ b/abi/0.28.0/W12TokenLedger.json @@ -0,0 +1,213 @@ +{ + "contractName": "W12TokenLedger", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "listingWTokenToToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "listingTokenToWToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "wToken", + "type": "address" + } + ], + "name": "addTokenToListing", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token1", + "type": "address" + }, + { + "name": "token2", + "type": "address" + } + ], + "name": "hasPair", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "getWTokenByToken", + "outputs": [ + { + "name": "wTokenAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "wToken", + "type": "address" + } + ], + "name": "getTokenByWToken", + "outputs": [ + { + "name": "tokenAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/WToken.json b/abi/0.28.0/WToken.json new file mode 100644 index 00000000..8e117f54 --- /dev/null +++ b/abi/0.28.0/WToken.json @@ -0,0 +1,606 @@ +{ + "contractName": "WToken", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "name": "agingTime", + "type": "uint256" + } + ], + "name": "VestingTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "vestingTime", + "type": "uint32" + } + ], + "name": "vestingTransfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "vestingTime", + "type": "uint32" + } + ], + "name": "mint", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "accountBalance", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + }, + { + "name": "date", + "type": "uint256" + } + ], + "name": "vestingBalanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/WTokenStub.json b/abi/0.28.0/WTokenStub.json new file mode 100644 index 00000000..1215dfc7 --- /dev/null +++ b/abi/0.28.0/WTokenStub.json @@ -0,0 +1,606 @@ +{ + "contractName": "WTokenStub", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + }, + { + "name": "date", + "type": "uint256" + } + ], + "name": "vestingBalanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "vestingTime", + "type": "uint32" + } + ], + "name": "vestingTransfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "vestingTime", + "type": "uint32" + } + ], + "name": "mint", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "accountBalance", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "name": "agingTime", + "type": "uint256" + } + ], + "name": "VestingTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/WTokenTestHelper.json b/abi/0.28.0/WTokenTestHelper.json new file mode 100644 index 00000000..8b3c7f25 --- /dev/null +++ b/abi/0.28.0/WTokenTestHelper.json @@ -0,0 +1,192 @@ +{ + "contractName": "WTokenTestHelper", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "tokenIndexes", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "tokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "tokenAddress", + "type": "address" + } + ], + "name": "NewToken", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + }, + { + "name": "amountToIssue", + "type": "uint256" + } + ], + "name": "createToken", + "outputs": [ + { + "name": "token", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "tokensList", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + } + ], + "name": "hasToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "vestingTime", + "type": "uint32" + } + ], + "name": "mint", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "wallet", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + } + ], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.28.0/Wallets.json b/abi/0.28.0/Wallets.json new file mode 100644 index 00000000..8f82a953 --- /dev/null +++ b/abi/0.28.0/Wallets.json @@ -0,0 +1,119 @@ +{ + "contractName": "Wallets", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "SERVICE_WALLET_ID", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "ID", + "type": "uint8" + }, + { + "indexed": false, + "name": "wallet", + "type": "address" + } + ], + "name": "NewWallet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "ID", + "type": "uint8" + }, + { + "name": "wallet", + "type": "address" + } + ], + "name": "setWallet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "ID", + "type": "uint8" + } + ], + "name": "getWallet", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/build/contracts/AdminRole.json b/build/contracts/AdminRole.json new file mode 100644 index 00000000..5391de0e --- /dev/null +++ b/build/contracts/AdminRole.json @@ -0,0 +1,2216 @@ +{ + "contractName": "AdminRole", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminRemoved", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/access/Roles.sol\";\n\ncontract AdminRole {\n using Roles for Roles.Role;\n\n event AdminAdded(address indexed account);\n event AdminRemoved(address indexed account);\n\n Roles.Role private admins;\n\n constructor() internal {\n _addAdmin(msg.sender);\n }\n\n modifier onlyAdmin() {\n require(isAdmin(msg.sender));\n _;\n }\n\n function isAdmin(address account) public view returns (bool) {\n return admins.has(account);\n }\n\n function renounceAdmin() public {\n _removeAdmin(msg.sender);\n }\n\n function _addAdmin(address account) internal {\n admins.add(account);\n emit AdminAdded(account);\n }\n\n function _removeAdmin(address account) internal {\n admins.remove(account);\n emit AdminRemoved(account);\n }\n}\n", + "sourcePath": "/home/circleci/code/contracts/access/roles/AdminRole.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/access/roles/AdminRole.sol", + "exportedSymbols": { + "AdminRole": [ + 1352 + ] + }, + "id": 1353, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1263, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:3" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", + "file": "openzeppelin-solidity/contracts/access/Roles.sol", + "id": 1264, + "nodeType": "ImportDirective", + "scope": 1353, + "sourceUnit": 12158, + "src": "26:58:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1352, + "linearizedBaseContracts": [ + 1352 + ], + "name": "AdminRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1267, + "libraryName": { + "contractScope": null, + "id": 1265, + "name": "Roles", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12157, + "src": "117:5:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Roles_$12157", + "typeString": "library Roles" + } + }, + "nodeType": "UsingForDirective", + "src": "111:27:3", + "typeName": { + "contractScope": null, + "id": 1266, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12070, + "src": "127:10:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 1271, + "name": "AdminAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 1270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1269, + "indexed": true, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1271, + "src": "161:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "161:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "160:25:3" + }, + "src": "144:42:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 1275, + "name": "AdminRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 1274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1273, + "indexed": true, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1275, + "src": "210:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1272, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "210:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "209:25:3" + }, + "src": "191:44:3" + }, + { + "constant": false, + "id": 1277, + "name": "admins", + "nodeType": "VariableDeclaration", + "scope": 1352, + "src": "241:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role" + }, + "typeName": { + "contractScope": null, + "id": 1276, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12070, + "src": "241:10:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 1285, + "nodeType": "Block", + "src": "296:38:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1281, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "316:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "316:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1280, + "name": "_addAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "306:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "306:21:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1284, + "nodeType": "ExpressionStatement", + "src": "306:21:3" + } + ] + }, + "documentation": null, + "id": 1286, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1278, + "nodeType": "ParameterList", + "parameters": [], + "src": "284:2:3" + }, + "payable": false, + "returnParameters": { + "id": 1279, + "nodeType": "ParameterList", + "parameters": [], + "src": "296:0:3" + }, + "scope": 1352, + "src": "273:61:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1296, + "nodeType": "Block", + "src": "361:56:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1290, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "387:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "387:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1289, + "name": "isAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1310, + "src": "379:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "379:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1288, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "371:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "371:28:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1294, + "nodeType": "ExpressionStatement", + "src": "371:28:3" + }, + { + "id": 1295, + "nodeType": "PlaceholderStatement", + "src": "409:1:3" + } + ] + }, + "documentation": null, + "id": 1297, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1287, + "nodeType": "ParameterList", + "parameters": [], + "src": "358:2:3" + }, + "src": "340:77:3", + "visibility": "internal" + }, + { + "body": { + "id": 1309, + "nodeType": "Block", + "src": "484:43:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1306, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1299, + "src": "512:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1304, + "name": "admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1277, + "src": "501:6:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 1305, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "has", + "nodeType": "MemberAccess", + "referencedDeclaration": 12156, + "src": "501:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "501:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1303, + "id": 1308, + "nodeType": "Return", + "src": "494:26:3" + } + ] + }, + "documentation": null, + "id": 1310, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1299, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1310, + "src": "440:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1298, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "440:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "439:17:3" + }, + "payable": false, + "returnParameters": { + "id": 1303, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1302, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1310, + "src": "478:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1301, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "478:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "477:6:3" + }, + "scope": 1352, + "src": "423:104:3", + "stateMutability": "view", + "superFunction": 1361, + "visibility": "public" + }, + { + "body": { + "id": 1318, + "nodeType": "Block", + "src": "565:41:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1314, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "588:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "588:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1313, + "name": "_removeAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1351, + "src": "575:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "575:24:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1317, + "nodeType": "ExpressionStatement", + "src": "575:24:3" + } + ] + }, + "documentation": null, + "id": 1319, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1311, + "nodeType": "ParameterList", + "parameters": [], + "src": "555:2:3" + }, + "payable": false, + "returnParameters": { + "id": 1312, + "nodeType": "ParameterList", + "parameters": [], + "src": "565:0:3" + }, + "scope": 1352, + "src": "533:73:3", + "stateMutability": "nonpayable", + "superFunction": 1369, + "visibility": "public" + }, + { + "body": { + "id": 1334, + "nodeType": "Block", + "src": "657:70:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1327, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "678:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1324, + "name": "admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1277, + "src": "667:6:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 1326, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12102, + "src": "667:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "667:19:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1329, + "nodeType": "ExpressionStatement", + "src": "667:19:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1331, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "712:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1330, + "name": "AdminAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1271, + "src": "701:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "701:19:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1333, + "nodeType": "EmitStatement", + "src": "696:24:3" + } + ] + }, + "documentation": null, + "id": 1335, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1322, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1321, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1335, + "src": "631:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1320, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "631:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "630:17:3" + }, + "payable": false, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [], + "src": "657:0:3" + }, + "scope": 1352, + "src": "612:115:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1350, + "nodeType": "Block", + "src": "781:75:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1343, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1337, + "src": "805:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1340, + "name": "admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1277, + "src": "791:6:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 1342, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 12133, + "src": "791:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "791:22:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1345, + "nodeType": "ExpressionStatement", + "src": "791:22:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1347, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1337, + "src": "841:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1346, + "name": "AdminRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1275, + "src": "828:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "828:21:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1349, + "nodeType": "EmitStatement", + "src": "823:26:3" + } + ] + }, + "documentation": null, + "id": 1351, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1338, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1337, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1351, + "src": "755:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "755:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "754:17:3" + }, + "payable": false, + "returnParameters": { + "id": 1339, + "nodeType": "ParameterList", + "parameters": [], + "src": "781:0:3" + }, + "scope": 1352, + "src": "733:123:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 1353, + "src": "86:772:3" + } + ], + "src": "0:859:3" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/access/roles/AdminRole.sol", + "exportedSymbols": { + "AdminRole": [ + 1352 + ] + }, + "id": 1353, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1263, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:3" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", + "file": "openzeppelin-solidity/contracts/access/Roles.sol", + "id": 1264, + "nodeType": "ImportDirective", + "scope": 1353, + "sourceUnit": 12158, + "src": "26:58:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1352, + "linearizedBaseContracts": [ + 1352 + ], + "name": "AdminRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1267, + "libraryName": { + "contractScope": null, + "id": 1265, + "name": "Roles", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12157, + "src": "117:5:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Roles_$12157", + "typeString": "library Roles" + } + }, + "nodeType": "UsingForDirective", + "src": "111:27:3", + "typeName": { + "contractScope": null, + "id": 1266, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12070, + "src": "127:10:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 1271, + "name": "AdminAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 1270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1269, + "indexed": true, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1271, + "src": "161:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "161:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "160:25:3" + }, + "src": "144:42:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 1275, + "name": "AdminRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 1274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1273, + "indexed": true, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1275, + "src": "210:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1272, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "210:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "209:25:3" + }, + "src": "191:44:3" + }, + { + "constant": false, + "id": 1277, + "name": "admins", + "nodeType": "VariableDeclaration", + "scope": 1352, + "src": "241:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role" + }, + "typeName": { + "contractScope": null, + "id": 1276, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12070, + "src": "241:10:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 1285, + "nodeType": "Block", + "src": "296:38:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1281, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "316:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "316:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1280, + "name": "_addAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "306:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "306:21:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1284, + "nodeType": "ExpressionStatement", + "src": "306:21:3" + } + ] + }, + "documentation": null, + "id": 1286, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1278, + "nodeType": "ParameterList", + "parameters": [], + "src": "284:2:3" + }, + "payable": false, + "returnParameters": { + "id": 1279, + "nodeType": "ParameterList", + "parameters": [], + "src": "296:0:3" + }, + "scope": 1352, + "src": "273:61:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1296, + "nodeType": "Block", + "src": "361:56:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1290, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "387:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "387:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1289, + "name": "isAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1310, + "src": "379:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "379:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1288, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "371:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "371:28:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1294, + "nodeType": "ExpressionStatement", + "src": "371:28:3" + }, + { + "id": 1295, + "nodeType": "PlaceholderStatement", + "src": "409:1:3" + } + ] + }, + "documentation": null, + "id": 1297, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1287, + "nodeType": "ParameterList", + "parameters": [], + "src": "358:2:3" + }, + "src": "340:77:3", + "visibility": "internal" + }, + { + "body": { + "id": 1309, + "nodeType": "Block", + "src": "484:43:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1306, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1299, + "src": "512:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1304, + "name": "admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1277, + "src": "501:6:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 1305, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "has", + "nodeType": "MemberAccess", + "referencedDeclaration": 12156, + "src": "501:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "501:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1303, + "id": 1308, + "nodeType": "Return", + "src": "494:26:3" + } + ] + }, + "documentation": null, + "id": 1310, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1299, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1310, + "src": "440:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1298, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "440:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "439:17:3" + }, + "payable": false, + "returnParameters": { + "id": 1303, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1302, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1310, + "src": "478:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1301, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "478:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "477:6:3" + }, + "scope": 1352, + "src": "423:104:3", + "stateMutability": "view", + "superFunction": 1361, + "visibility": "public" + }, + { + "body": { + "id": 1318, + "nodeType": "Block", + "src": "565:41:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1314, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "588:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "588:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1313, + "name": "_removeAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1351, + "src": "575:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "575:24:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1317, + "nodeType": "ExpressionStatement", + "src": "575:24:3" + } + ] + }, + "documentation": null, + "id": 1319, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1311, + "nodeType": "ParameterList", + "parameters": [], + "src": "555:2:3" + }, + "payable": false, + "returnParameters": { + "id": 1312, + "nodeType": "ParameterList", + "parameters": [], + "src": "565:0:3" + }, + "scope": 1352, + "src": "533:73:3", + "stateMutability": "nonpayable", + "superFunction": 1369, + "visibility": "public" + }, + { + "body": { + "id": 1334, + "nodeType": "Block", + "src": "657:70:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1327, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "678:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1324, + "name": "admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1277, + "src": "667:6:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 1326, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12102, + "src": "667:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "667:19:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1329, + "nodeType": "ExpressionStatement", + "src": "667:19:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1331, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "712:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1330, + "name": "AdminAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1271, + "src": "701:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "701:19:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1333, + "nodeType": "EmitStatement", + "src": "696:24:3" + } + ] + }, + "documentation": null, + "id": 1335, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1322, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1321, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1335, + "src": "631:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1320, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "631:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "630:17:3" + }, + "payable": false, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [], + "src": "657:0:3" + }, + "scope": 1352, + "src": "612:115:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1350, + "nodeType": "Block", + "src": "781:75:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1343, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1337, + "src": "805:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1340, + "name": "admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1277, + "src": "791:6:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 1342, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 12133, + "src": "791:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "791:22:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1345, + "nodeType": "ExpressionStatement", + "src": "791:22:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1347, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1337, + "src": "841:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1346, + "name": "AdminRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1275, + "src": "828:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "828:21:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1349, + "nodeType": "EmitStatement", + "src": "823:26:3" + } + ] + }, + "documentation": null, + "id": 1351, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1338, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1337, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1351, + "src": "755:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "755:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "754:17:3" + }, + "payable": false, + "returnParameters": { + "id": 1339, + "nodeType": "ParameterList", + "parameters": [], + "src": "781:0:3" + }, + "scope": 1352, + "src": "733:123:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 1353, + "src": "86:772:3" + } + ], + "src": "0:859:3" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.016Z" +} \ No newline at end of file diff --git a/build/contracts/BytesLib.json b/build/contracts/BytesLib.json index 948ef756..05141f5f 100644 --- a/build/contracts/BytesLib.json +++ b/build/contracts/BytesLib.json @@ -3,22 +3,22 @@ "abi": [], "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820c56bc2c56eb23f565dbdb65da5dccbd72fc855f5112d4da72147433b3307ff540029", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820c56bc2c56eb23f565dbdb65da5dccbd72fc855f5112d4da72147433b3307ff540029", - "sourceMap": "326:16501:50:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "326:16501:50:-;;;;;;;;", + "sourceMap": "326:16501:63:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "326:16501:63:-;;;;;;;;", "source": "/*\n * @title Solidity Bytes Arrays Utils\n * @author Gonçalo Sá \n *\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\n */\n\npragma solidity ^0.4.19;\n\n\nlibrary BytesLib {\n function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes) {\n bytes memory tempBytes;\n\n assembly {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // Store the length of the first bytes array at the beginning of\n // the memory for tempBytes.\n let length := mload(_preBytes)\n mstore(tempBytes, length)\n\n // Maintain a memory counter for the current write location in the\n // temp bytes array by adding the 32 bytes for the array length to\n // the starting location.\n let mc := add(tempBytes, 0x20)\n // Stop copying when the memory counter reaches the length of the\n // first bytes array.\n let end := add(mc, length)\n\n for {\n // Initialize a copy counter to the start of the _preBytes data,\n // 32 bytes into its memory.\n let cc := add(_preBytes, 0x20)\n } lt(mc, end) {\n // Increase both counters by 32 bytes each iteration.\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // Write the _preBytes data into the tempBytes memory 32 bytes\n // at a time.\n mstore(mc, mload(cc))\n }\n\n // Add the length of _postBytes to the current length of tempBytes\n // and store it as the new length in the first 32 bytes of the\n // tempBytes memory.\n length := mload(_postBytes)\n mstore(tempBytes, add(length, mload(tempBytes)))\n\n // Move the memory counter back from a multiple of 0x20 to the\n // actual end of the _preBytes data.\n mc := end\n // Stop copying when the memory counter reaches the new combined\n // length of the arrays.\n end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n // Update the free-memory pointer by padding our last write location\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\n // next 32 byte block, then round down to the nearest multiple of\n // 32. If the sum of the length of the two arrays is zero then add \n // one before rounding down to leave a blank 32 bytes (the length block with 0).\n mstore(0x40, and(\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\n not(31) // Round down to the nearest 32 bytes.\n ))\n }\n\n return tempBytes;\n }\n\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\n assembly {\n // Read the first 32 bytes of _preBytes storage, which is the length\n // of the array. (We don't need to use the offset into the slot\n // because arrays use the entire slot.)\n let fslot := sload(_preBytes_slot)\n // Arrays of 31 bytes or less have an even value in their slot,\n // while longer arrays have an odd value. The actual length is\n // the slot divided by two for odd values, and the lowest order\n // byte divided by two for even values.\n // If the slot is even, bitwise and the slot with 255 and divide by\n // two to get the length. If the slot is odd, bitwise and the slot\n // with -1 and divide by two.\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n let newlength := add(slength, mlength)\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n switch add(lt(slength, 32), lt(newlength, 32))\n case 2 {\n // Since the new array still fits in the slot, we just need to\n // update the contents of the slot.\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\n sstore(\n _preBytes_slot,\n // all the modifications to the slot are inside this\n // next block\n add(\n // we can just add to the slot contents because the\n // bytes we want to change are the LSBs\n fslot,\n add(\n mul(\n div(\n // load the bytes from memory\n mload(add(_postBytes, 0x20)),\n // zero all bytes to the right\n exp(0x100, sub(32, mlength))\n ),\n // and now shift left the number of bytes to\n // leave space for the length in the slot\n exp(0x100, sub(32, newlength))\n ),\n // increase length by the double of the memory\n // bytes length\n mul(mlength, 2)\n )\n )\n )\n }\n case 1 {\n // The stored value fits in the slot, but the combined value\n // will exceed it.\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes_slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes_slot, add(mul(newlength, 2), 1))\n\n // The contents of the _postBytes array start 32 bytes into\n // the structure. Our first read should obtain the `submod`\n // bytes that can fit into the unused space in the last word\n // of the stored array. To get this, we read 32 bytes starting\n // from `submod`, so the data we read overlaps with the array\n // contents by `submod` bytes. Masking the lowest-order\n // `submod` bytes allows us to add that value directly to the\n // stored value.\n\n let submod := sub(32, slength)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(\n sc,\n add(\n and(\n fslot,\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\n ),\n and(mload(mc), mask)\n )\n )\n\n for {\n mc := add(mc, 0x20)\n sc := add(sc, 1)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n default {\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes_slot)\n // Start copying to the last used word of the stored array.\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes_slot, add(mul(newlength, 2), 1))\n\n // Copy over the first `submod` bytes of the new data as in\n // case 1 above.\n let slengthmod := mod(slength, 32)\n let mlengthmod := mod(mlength, 32)\n let submod := sub(32, slengthmod)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\n \n for { \n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n }\n }\n\n function slice(bytes _bytes, uint _start, uint _length) internal pure returns (bytes) {\n require(_bytes.length >= (_start + _length));\n\n bytes memory tempBytes;\n\n assembly {\n switch iszero(_length)\n case 0 {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // The first word of the slice result is potentially a partial\n // word read from the original array. To read it, we calculate\n // the length of that partial word and start copying that many\n // bytes into the array. The first word we copy will start with\n // data we don't care about, but the last `lengthmod` bytes will\n // land at the beginning of the contents of the new array. When\n // we're done copying, we overwrite the full first word with\n // the actual length of the slice.\n let lengthmod := and(_length, 31)\n\n // The multiplication in the next line is necessary\n // because when slicing multiples of 32 bytes (lengthmod == 0)\n // the following copy loop was copying the origin's length\n // and then ending prematurely not copying everything it should.\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n let end := add(mc, _length)\n\n for {\n // The multiplication in the next line has the same exact purpose\n // as the one above.\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n mstore(tempBytes, _length)\n\n //update free-memory pointer\n //allocating the array padded to 32 bytes like the compiler does now\n mstore(0x40, and(add(mc, 31), not(31)))\n }\n //if we want a zero-length slice let's just return a zero-length array\n default {\n tempBytes := mload(0x40)\n\n mstore(0x40, add(tempBytes, 0x20))\n }\n }\n\n return tempBytes;\n }\n\n function toAddress(bytes _bytes, uint _start) internal pure returns (address) {\n require(_bytes.length >= (_start + 20));\n address tempAddress;\n\n assembly {\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n }\n\n return tempAddress;\n }\n\n function toUint(bytes _bytes, uint _start) internal pure returns (uint256) {\n require(_bytes.length >= (_start + 32));\n uint256 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempUint;\n }\n\n function toBytes32(bytes _bytes, uint _start) internal pure returns (bytes32) {\n require(_bytes.length >= (_start + 32));\n bytes32 tempBytes32;\n\n assembly {\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempBytes32;\n }\n\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\n bool success = true;\n\n assembly {\n let length := mload(_preBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(length, mload(_postBytes))\n case 1 {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n let mc := add(_preBytes, 0x20)\n let end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n // the next line is the loop condition:\n // while(uint(mc < end) + cb == 2)\n } eq(add(lt(mc, end), cb), 2) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // if any of these checks fails then arrays are not equal\n if iszero(eq(mload(mc), mload(cc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n\n function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\n bool success = true;\n\n assembly {\n // we know _preBytes_offset is 0\n let fslot := sload(_preBytes_slot)\n // Decode the length of the stored array like in concatStorage().\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(slength, mlength)\n case 1 {\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n if iszero(iszero(slength)) {\n switch lt(slength, 32)\n case 1 {\n // blank the last byte which is the length\n fslot := mul(div(fslot, 0x100), 0x100)\n\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\n // unsuccess:\n success := 0\n }\n }\n default {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes_slot)\n let sc := keccak256(0x0, 0x20)\n\n let mc := add(_postBytes, 0x20)\n let end := add(mc, mlength)\n\n // the next line is the loop condition:\n // while(uint(mc < end) + cb == 2)\n for {} eq(add(lt(mc, end), cb), 2) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n if iszero(eq(sload(sc), mload(mc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n}\n", "sourcePath": "solidity-bytes-utils/contracts/BytesLib.sol", "ast": { "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", "exportedSymbols": { "BytesLib": [ - 10473 + 13426 ] }, - "id": 10474, + "id": 13427, "nodeType": "SourceUnit", "nodes": [ { - "id": 10307, + "id": 13260, "literals": [ "solidity", "^", @@ -26,7 +26,7 @@ ".19" ], "nodeType": "PragmaDirective", - "src": "299:24:50" + "src": "299:24:63" }, { "baseContracts": [], @@ -34,29 +34,29 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 10473, + "id": 13426, "linearizedBaseContracts": [ - 10473 + 13426 ], "name": "BytesLib", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 10322, + "id": 13275, "nodeType": "Block", - "src": "444:2804:50", + "src": "444:2804:63", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 10317, + "id": 13270, "name": "tempBytes", "nodeType": "VariableDeclaration", - "scope": 10323, - "src": "454:22:50", + "scope": 13276, + "src": "454:22:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -64,10 +64,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10316, + "id": 13269, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "454:5:50", + "src": "454:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -77,132 +77,132 @@ "visibility": "internal" } ], - "id": 10318, + "id": 13271, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "454:22:50" + "src": "454:22:63" }, { "externalReferences": [ { "tempBytes": { - "declaration": 10317, + "declaration": 13270, "isOffset": false, "isSlot": false, - "src": "640:9:50", + "src": "640:9:63", "valueSize": 1 } }, { "_preBytes": { - "declaration": 10309, + "declaration": 13262, "isOffset": false, "isSlot": false, - "src": "816:9:50", + "src": "816:9:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10317, + "declaration": 13270, "isOffset": false, "isSlot": false, - "src": "846:9:50", + "src": "846:9:63", "valueSize": 1 } }, { "_preBytes": { - "declaration": 10309, + "declaration": 13262, "isOffset": false, "isSlot": false, - "src": "1431:9:50", + "src": "1431:9:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10317, + "declaration": 13270, "isOffset": false, "isSlot": false, - "src": "1088:9:50", + "src": "1088:9:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10311, + "declaration": 13264, "isOffset": false, "isSlot": false, - "src": "2429:10:50", + "src": "2429:10:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10311, + "declaration": 13264, "isOffset": false, "isSlot": false, - "src": "2011:10:50", + "src": "2011:10:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10317, + "declaration": 13270, "isOffset": false, "isSlot": false, - "src": "2042:9:50", + "src": "2042:9:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10317, + "declaration": 13270, "isOffset": false, "isSlot": false, - "src": "2071:9:50", + "src": "2071:9:63", "valueSize": 1 } }, { "_preBytes": { - "declaration": 10309, + "declaration": 13262, "isOffset": false, "isSlot": false, - "src": "3110:9:50", + "src": "3110:9:63", "valueSize": 1 } } ], - "id": 10319, + "id": 13272, "nodeType": "InlineAssembly", "operations": "{\n tempBytes := mload(0x40)\n let length := mload(_preBytes)\n mstore(tempBytes, length)\n let mc := add(tempBytes, 0x20)\n let end := add(mc, length)\n for {\n let cc := add(_preBytes, 0x20)\n }\n lt(mc, end)\n {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n }\n {\n mstore(mc, mload(cc))\n }\n length := mload(_postBytes)\n mstore(tempBytes, add(length, mload(tempBytes)))\n mc := end\n end := add(mc, length)\n for {\n let cc := add(_postBytes, 0x20)\n }\n lt(mc, end)\n {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n }\n {\n mstore(mc, mload(cc))\n }\n mstore(0x40, and(add(add(end, iszero(add(length, mload(_preBytes)))), 31), not(31)))\n}", - "src": "487:2744:50" + "src": "487:2744:63" }, { "expression": { "argumentTypes": null, - "id": 10320, + "id": 13273, "name": "tempBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10317, - "src": "3232:9:50", + "referencedDeclaration": 13270, + "src": "3232:9:63", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 10315, - "id": 10321, + "functionReturnParameters": 13268, + "id": 13274, "nodeType": "Return", - "src": "3225:16:50" + "src": "3225:16:63" } ] }, "documentation": null, - "id": 10323, + "id": 13276, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -210,16 +210,16 @@ "name": "concat", "nodeType": "FunctionDefinition", "parameters": { - "id": 10312, + "id": 13265, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10309, + "id": 13262, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 10323, - "src": "365:22:50", + "scope": 13276, + "src": "365:22:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -227,10 +227,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10308, + "id": 13261, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "365:5:50", + "src": "365:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -241,11 +241,11 @@ }, { "constant": false, - "id": 10311, + "id": 13264, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 10323, - "src": "389:23:50", + "scope": 13276, + "src": "389:23:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -253,10 +253,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10310, + "id": 13263, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "389:5:50", + "src": "389:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -266,20 +266,20 @@ "visibility": "internal" } ], - "src": "364:49:50" + "src": "364:49:63" }, "payable": false, "returnParameters": { - "id": 10315, + "id": 13268, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10314, + "id": 13267, "name": "", "nodeType": "VariableDeclaration", - "scope": 10323, - "src": "437:5:50", + "scope": 13276, + "src": "437:5:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -287,10 +287,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10313, + "id": 13266, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "437:5:50", + "src": "437:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -300,140 +300,140 @@ "visibility": "internal" } ], - "src": "436:7:50" + "src": "436:7:63" }, - "scope": 10473, - "src": "349:2899:50", + "scope": 13426, + "src": "349:2899:63", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10331, + "id": 13284, "nodeType": "Block", - "src": "3336:6032:50", + "src": "3336:6032:63", "statements": [ { "externalReferences": [ { "_preBytes_slot": { - "declaration": 10325, + "declaration": 13278, "isOffset": false, "isSlot": true, - "src": "3597:14:50", + "src": "3597:14:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10327, + "declaration": 13280, "isOffset": false, "isSlot": false, - "src": "4215:10:50", + "src": "4215:10:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10327, + "declaration": 13280, "isOffset": false, "isSlot": false, - "src": "7216:10:50", + "src": "7216:10:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10327, + "declaration": 13280, "isOffset": false, "isSlot": false, - "src": "7165:10:50", + "src": "7165:10:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10327, + "declaration": 13280, "isOffset": false, "isSlot": false, - "src": "8729:10:50", + "src": "8729:10:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10327, + "declaration": 13280, "isOffset": false, "isSlot": false, - "src": "8780:10:50", + "src": "8780:10:63", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 10325, + "declaration": 13278, "isOffset": false, "isSlot": true, - "src": "4891:14:50", + "src": "4891:14:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10327, + "declaration": 13280, "isOffset": false, "isSlot": false, - "src": "5421:10:50", + "src": "5421:10:63", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 10325, + "declaration": 13278, "isOffset": false, "isSlot": true, - "src": "6329:14:50", + "src": "6329:14:63", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 10325, + "declaration": 13278, "isOffset": false, "isSlot": true, - "src": "6474:14:50", + "src": "6474:14:63", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 10325, + "declaration": 13278, "isOffset": false, "isSlot": true, - "src": "8173:14:50", + "src": "8173:14:63", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 10325, + "declaration": 13278, "isOffset": false, "isSlot": true, - "src": "8394:14:50", + "src": "8394:14:63", "valueSize": 1 } } ], - "id": 10330, + "id": 13283, "nodeType": "InlineAssembly", "operations": "{\n let fslot := sload(_preBytes_slot)\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n let newlength := add(slength, mlength)\n switch add(lt(slength, 32), lt(newlength, 32))\n case 2 {\n sstore(_preBytes_slot, add(fslot, add(mul(div(mload(add(_postBytes, 0x20)), exp(0x100, sub(32, mlength))), exp(0x100, sub(32, newlength))), mul(mlength, 2))))\n }\n case 1 {\n mstore(0x0, _preBytes_slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n sstore(_preBytes_slot, add(mul(newlength, 2), 1))\n let submod := sub(32, slength)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\n for {\n mc := add(mc, 0x20)\n sc := add(sc, 1)\n }\n lt(mc, end)\n {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n }\n {\n sstore(sc, mload(mc))\n }\n mask := exp(0x100, sub(mc, end))\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n default {\n mstore(0x0, _preBytes_slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n sstore(_preBytes_slot, add(mul(newlength, 2), 1))\n let slengthmod := mod(slength, 32)\n let mlengthmod := mod(mlength, 32)\n let submod := sub(32, slengthmod)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\n for {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n }\n lt(mc, end)\n {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n }\n {\n sstore(sc, mload(mc))\n }\n mask := exp(0x100, sub(mc, end))\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n}", - "src": "3346:6022:50" + "src": "3346:6022:63" } ] }, "documentation": null, - "id": 10332, + "id": 13285, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -441,16 +441,16 @@ "name": "concatStorage", "nodeType": "FunctionDefinition", "parameters": { - "id": 10328, + "id": 13281, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10325, + "id": 13278, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 10332, - "src": "3277:23:50", + "scope": 13285, + "src": "3277:23:63", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -458,10 +458,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10324, + "id": 13277, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3277:5:50", + "src": "3277:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -472,11 +472,11 @@ }, { "constant": false, - "id": 10327, + "id": 13280, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 10332, - "src": "3302:23:50", + "scope": 13285, + "src": "3302:23:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -484,10 +484,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10326, + "id": 13279, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3302:5:50", + "src": "3302:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -497,26 +497,26 @@ "visibility": "internal" } ], - "src": "3276:50:50" + "src": "3276:50:63" }, "payable": false, "returnParameters": { - "id": 10329, + "id": 13282, "nodeType": "ParameterList", "parameters": [], - "src": "3336:0:50" + "src": "3336:0:63" }, - "scope": 10473, - "src": "3254:6114:50", + "scope": 13426, + "src": "3254:6114:63", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10359, + "id": 13312, "nodeType": "Block", - "src": "9461:2378:50", + "src": "9461:2378:63", "statements": [ { "expression": { @@ -528,7 +528,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10350, + "id": 13303, "isConstant": false, "isLValue": false, "isPure": false, @@ -537,18 +537,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 10344, + "id": 13297, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10334, - "src": "9479:6:50", + "referencedDeclaration": 13287, + "src": "9479:6:63", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 10345, + "id": 13298, "isConstant": false, "isLValue": false, "isPure": false, @@ -556,7 +556,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9479:13:50", + "src": "9479:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -573,19 +573,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10348, + "id": 13301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10346, + "id": 13299, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10336, - "src": "9497:6:50", + "referencedDeclaration": 13289, + "src": "9497:6:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -595,38 +595,38 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 10347, + "id": 13300, "name": "_length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10338, - "src": "9506:7:50", + "referencedDeclaration": 13291, + "src": "9506:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9497:16:50", + "src": "9497:16:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 10349, + "id": 13302, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9496:18:50", + "src": "9496:18:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9479:35:50", + "src": "9479:35:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -640,21 +640,21 @@ "typeString": "bool" } ], - "id": 10343, + "id": 13296, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "9471:7:50", + "referencedDeclaration": 13444, + "src": "9471:7:63", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10351, + "id": 13304, "isConstant": false, "isLValue": false, "isPure": false, @@ -662,26 +662,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9471:44:50", + "src": "9471:44:63", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10352, + "id": 13305, "nodeType": "ExpressionStatement", - "src": "9471:44:50" + "src": "9471:44:63" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 10354, + "id": 13307, "name": "tempBytes", "nodeType": "VariableDeclaration", - "scope": 10360, - "src": "9526:22:50", + "scope": 13313, + "src": "9526:22:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -689,10 +689,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10353, + "id": 13306, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9526:5:50", + "src": "9526:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -702,141 +702,141 @@ "visibility": "internal" } ], - "id": 10355, + "id": 13308, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "9526:22:50" + "src": "9526:22:63" }, { "externalReferences": [ { "tempBytes": { - "declaration": 10354, + "declaration": 13307, "isOffset": false, "isSlot": false, - "src": "11706:9:50", + "src": "11706:9:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10354, + "declaration": 13307, "isOffset": false, "isSlot": false, - "src": "10800:9:50", + "src": "10800:9:63", "valueSize": 1 } }, { "_length": { - "declaration": 10338, + "declaration": 13291, "isOffset": false, "isSlot": false, - "src": "10888:7:50", + "src": "10888:7:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10354, + "declaration": 13307, "isOffset": false, "isSlot": false, - "src": "9780:9:50", + "src": "9780:9:63", "valueSize": 1 } }, { "_length": { - "declaration": 10338, + "declaration": 13291, "isOffset": false, "isSlot": false, - "src": "10449:7:50", + "src": "10449:7:63", "valueSize": 1 } }, { "_length": { - "declaration": 10338, + "declaration": 13291, "isOffset": false, "isSlot": false, - "src": "9596:7:50", + "src": "9596:7:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10354, + "declaration": 13307, "isOffset": false, "isSlot": false, - "src": "11364:9:50", + "src": "11364:9:63", "valueSize": 1 } }, { "_length": { - "declaration": 10338, + "declaration": 13291, "isOffset": false, "isSlot": false, - "src": "11375:7:50", + "src": "11375:7:63", "valueSize": 1 } }, { "_start": { - "declaration": 10336, + "declaration": 13289, "isOffset": false, "isSlot": false, - "src": "11140:6:50", + "src": "11140:6:63", "valueSize": 1 } }, { "_bytes": { - "declaration": 10334, + "declaration": 13287, "isOffset": false, "isSlot": false, - "src": "11089:6:50", + "src": "11089:6:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10354, + "declaration": 13307, "isOffset": false, "isSlot": false, - "src": "11765:9:50", + "src": "11765:9:63", "valueSize": 1 } } ], - "id": 10356, + "id": 13309, "nodeType": "InlineAssembly", "operations": "{\n switch iszero(_length)\n case 0 {\n tempBytes := mload(0x40)\n let lengthmod := and(_length, 31)\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n let end := add(mc, _length)\n for {\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n }\n lt(mc, end)\n {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n }\n {\n mstore(mc, mload(cc))\n }\n mstore(tempBytes, _length)\n mstore(0x40, and(add(mc, 31), not(31)))\n }\n default {\n tempBytes := mload(0x40)\n mstore(0x40, add(tempBytes, 0x20))\n }\n}", - "src": "9559:2263:50" + "src": "9559:2263:63" }, { "expression": { "argumentTypes": null, - "id": 10357, + "id": 13310, "name": "tempBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10354, - "src": "11823:9:50", + "referencedDeclaration": 13307, + "src": "11823:9:63", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 10342, - "id": 10358, + "functionReturnParameters": 13295, + "id": 13311, "nodeType": "Return", - "src": "11816:16:50" + "src": "11816:16:63" } ] }, "documentation": null, - "id": 10360, + "id": 13313, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -844,16 +844,16 @@ "name": "slice", "nodeType": "FunctionDefinition", "parameters": { - "id": 10339, + "id": 13292, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10334, + "id": 13287, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 10360, - "src": "9389:12:50", + "scope": 13313, + "src": "9389:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -861,10 +861,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10333, + "id": 13286, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9389:5:50", + "src": "9389:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -875,11 +875,11 @@ }, { "constant": false, - "id": 10336, + "id": 13289, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 10360, - "src": "9403:11:50", + "scope": 13313, + "src": "9403:11:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -887,10 +887,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10335, + "id": 13288, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9403:4:50", + "src": "9403:4:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -901,11 +901,11 @@ }, { "constant": false, - "id": 10338, + "id": 13291, "name": "_length", "nodeType": "VariableDeclaration", - "scope": 10360, - "src": "9416:12:50", + "scope": 13313, + "src": "9416:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -913,10 +913,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10337, + "id": 13290, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9416:4:50", + "src": "9416:4:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -926,20 +926,20 @@ "visibility": "internal" } ], - "src": "9388:41:50" + "src": "9388:41:63" }, "payable": false, "returnParameters": { - "id": 10342, + "id": 13295, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10341, + "id": 13294, "name": "", "nodeType": "VariableDeclaration", - "scope": 10360, - "src": "9454:5:50", + "scope": 13313, + "src": "9454:5:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -947,10 +947,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10340, + "id": 13293, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9454:5:50", + "src": "9454:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -960,19 +960,19 @@ "visibility": "internal" } ], - "src": "9453:7:50" + "src": "9453:7:63" }, - "scope": 10473, - "src": "9374:2465:50", + "scope": 13426, + "src": "9374:2465:63", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10385, + "id": 13338, "nodeType": "Block", - "src": "11924:243:50", + "src": "11924:243:63", "statements": [ { "expression": { @@ -984,7 +984,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10376, + "id": 13329, "isConstant": false, "isLValue": false, "isPure": false, @@ -993,18 +993,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 10370, + "id": 13323, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10362, - "src": "11942:6:50", + "referencedDeclaration": 13315, + "src": "11942:6:63", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 10371, + "id": 13324, "isConstant": false, "isLValue": false, "isPure": false, @@ -1012,7 +1012,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11942:13:50", + "src": "11942:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1029,19 +1029,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10374, + "id": 13327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10372, + "id": 13325, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10364, - "src": "11960:6:50", + "referencedDeclaration": 13317, + "src": "11960:6:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1052,14 +1052,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3230", - "id": 10373, + "id": 13326, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11969:2:50", + "src": "11969:2:63", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_20_by_1", @@ -1067,27 +1067,27 @@ }, "value": "20" }, - "src": "11960:11:50", + "src": "11960:11:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 10375, + "id": 13328, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11959:13:50", + "src": "11959:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11942:30:50", + "src": "11942:30:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1101,21 +1101,21 @@ "typeString": "bool" } ], - "id": 10369, + "id": 13322, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "11934:7:50", + "referencedDeclaration": 13444, + "src": "11934:7:63", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10377, + "id": 13330, "isConstant": false, "isLValue": false, "isPure": false, @@ -1123,26 +1123,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11934:39:50", + "src": "11934:39:63", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10378, + "id": 13331, "nodeType": "ExpressionStatement", - "src": "11934:39:50" + "src": "11934:39:63" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 10380, + "id": 13333, "name": "tempAddress", "nodeType": "VariableDeclaration", - "scope": 10386, - "src": "11983:19:50", + "scope": 13339, + "src": "11983:19:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1150,10 +1150,10 @@ "typeString": "address" }, "typeName": { - "id": 10379, + "id": 13332, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11983:7:50", + "src": "11983:7:63", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1163,69 +1163,69 @@ "visibility": "internal" } ], - "id": 10381, + "id": 13334, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "11983:19:50" + "src": "11983:19:63" }, { "externalReferences": [ { "tempAddress": { - "declaration": 10380, + "declaration": 13333, "isOffset": false, "isSlot": false, - "src": "12036:11:50", + "src": "12036:11:63", "valueSize": 1 } }, { "_start": { - "declaration": 10364, + "declaration": 13317, "isOffset": false, "isSlot": false, - "src": "12084:6:50", + "src": "12084:6:63", "valueSize": 1 } }, { "_bytes": { - "declaration": 10362, + "declaration": 13315, "isOffset": false, "isSlot": false, - "src": "12069:6:50", + "src": "12069:6:63", "valueSize": 1 } } ], - "id": 10382, + "id": 13335, "nodeType": "InlineAssembly", "operations": "{\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n}", - "src": "12013:135:50" + "src": "12013:135:63" }, { "expression": { "argumentTypes": null, - "id": 10383, + "id": 13336, "name": "tempAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10380, - "src": "12149:11:50", + "referencedDeclaration": 13333, + "src": "12149:11:63", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 10368, - "id": 10384, + "functionReturnParameters": 13321, + "id": 13337, "nodeType": "Return", - "src": "12142:18:50" + "src": "12142:18:63" } ] }, "documentation": null, - "id": 10386, + "id": 13339, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1233,16 +1233,16 @@ "name": "toAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 10365, + "id": 13318, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10362, + "id": 13315, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 10386, - "src": "11864:12:50", + "scope": 13339, + "src": "11864:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1250,10 +1250,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10361, + "id": 13314, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11864:5:50", + "src": "11864:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1264,11 +1264,11 @@ }, { "constant": false, - "id": 10364, + "id": 13317, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 10386, - "src": "11878:11:50", + "scope": 13339, + "src": "11878:11:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1276,10 +1276,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10363, + "id": 13316, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11878:4:50", + "src": "11878:4:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1289,20 +1289,20 @@ "visibility": "internal" } ], - "src": "11863:27:50" + "src": "11863:27:63" }, "payable": false, "returnParameters": { - "id": 10368, + "id": 13321, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10367, + "id": 13320, "name": "", "nodeType": "VariableDeclaration", - "scope": 10386, - "src": "11915:7:50", + "scope": 13339, + "src": "11915:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1310,10 +1310,10 @@ "typeString": "address" }, "typeName": { - "id": 10366, + "id": 13319, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11915:7:50", + "src": "11915:7:63", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1323,19 +1323,19 @@ "visibility": "internal" } ], - "src": "11914:9:50" + "src": "11914:9:63" }, - "scope": 10473, - "src": "11845:322:50", + "scope": 13426, + "src": "11845:322:63", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10411, + "id": 13364, "nodeType": "Block", - "src": "12249:200:50", + "src": "12249:200:63", "statements": [ { "expression": { @@ -1347,7 +1347,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10402, + "id": 13355, "isConstant": false, "isLValue": false, "isPure": false, @@ -1356,18 +1356,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 10396, + "id": 13349, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10388, - "src": "12267:6:50", + "referencedDeclaration": 13341, + "src": "12267:6:63", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 10397, + "id": 13350, "isConstant": false, "isLValue": false, "isPure": false, @@ -1375,7 +1375,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12267:13:50", + "src": "12267:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1392,19 +1392,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10400, + "id": 13353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10398, + "id": 13351, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10390, - "src": "12285:6:50", + "referencedDeclaration": 13343, + "src": "12285:6:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1415,14 +1415,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3332", - "id": 10399, + "id": 13352, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12294:2:50", + "src": "12294:2:63", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -1430,27 +1430,27 @@ }, "value": "32" }, - "src": "12285:11:50", + "src": "12285:11:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 10401, + "id": 13354, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12284:13:50", + "src": "12284:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12267:30:50", + "src": "12267:30:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1464,21 +1464,21 @@ "typeString": "bool" } ], - "id": 10395, + "id": 13348, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "12259:7:50", + "referencedDeclaration": 13444, + "src": "12259:7:63", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10403, + "id": 13356, "isConstant": false, "isLValue": false, "isPure": false, @@ -1486,26 +1486,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12259:39:50", + "src": "12259:39:63", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10404, + "id": 13357, "nodeType": "ExpressionStatement", - "src": "12259:39:50" + "src": "12259:39:63" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 10406, + "id": 13359, "name": "tempUint", "nodeType": "VariableDeclaration", - "scope": 10412, - "src": "12308:16:50", + "scope": 13365, + "src": "12308:16:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1513,10 +1513,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10405, + "id": 13358, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12308:7:50", + "src": "12308:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1526,69 +1526,69 @@ "visibility": "internal" } ], - "id": 10407, + "id": 13360, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "12308:16:50" + "src": "12308:16:63" }, { "externalReferences": [ { "_start": { - "declaration": 10390, + "declaration": 13343, "isOffset": false, "isSlot": false, - "src": "12399:6:50", + "src": "12399:6:63", "valueSize": 1 } }, { "tempUint": { - "declaration": 10406, + "declaration": 13359, "isOffset": false, "isSlot": false, - "src": "12358:8:50", + "src": "12358:8:63", "valueSize": 1 } }, { "_bytes": { - "declaration": 10388, + "declaration": 13341, "isOffset": false, "isSlot": false, - "src": "12384:6:50", + "src": "12384:6:63", "valueSize": 1 } } ], - "id": 10408, + "id": 13361, "nodeType": "InlineAssembly", "operations": "{\n tempUint := mload(add(add(_bytes, 0x20), _start))\n}", - "src": "12335:98:50" + "src": "12335:98:63" }, { "expression": { "argumentTypes": null, - "id": 10409, + "id": 13362, "name": "tempUint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10406, - "src": "12434:8:50", + "referencedDeclaration": 13359, + "src": "12434:8:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 10394, - "id": 10410, + "functionReturnParameters": 13347, + "id": 13363, "nodeType": "Return", - "src": "12427:15:50" + "src": "12427:15:63" } ] }, "documentation": null, - "id": 10412, + "id": 13365, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1596,16 +1596,16 @@ "name": "toUint", "nodeType": "FunctionDefinition", "parameters": { - "id": 10391, + "id": 13344, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10388, + "id": 13341, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 10412, - "src": "12189:12:50", + "scope": 13365, + "src": "12189:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1613,10 +1613,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10387, + "id": 13340, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12189:5:50", + "src": "12189:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1627,11 +1627,11 @@ }, { "constant": false, - "id": 10390, + "id": 13343, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 10412, - "src": "12203:11:50", + "scope": 13365, + "src": "12203:11:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1639,10 +1639,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10389, + "id": 13342, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12203:4:50", + "src": "12203:4:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1652,20 +1652,20 @@ "visibility": "internal" } ], - "src": "12188:27:50" + "src": "12188:27:63" }, "payable": false, "returnParameters": { - "id": 10394, + "id": 13347, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10393, + "id": 13346, "name": "", "nodeType": "VariableDeclaration", - "scope": 10412, - "src": "12240:7:50", + "scope": 13365, + "src": "12240:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1673,10 +1673,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10392, + "id": 13345, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12240:7:50", + "src": "12240:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1686,19 +1686,19 @@ "visibility": "internal" } ], - "src": "12239:9:50" + "src": "12239:9:63" }, - "scope": 10473, - "src": "12173:276:50", + "scope": 13426, + "src": "12173:276:63", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10437, + "id": 13390, "nodeType": "Block", - "src": "12534:209:50", + "src": "12534:209:63", "statements": [ { "expression": { @@ -1710,7 +1710,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10428, + "id": 13381, "isConstant": false, "isLValue": false, "isPure": false, @@ -1719,18 +1719,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 10422, + "id": 13375, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10414, - "src": "12552:6:50", + "referencedDeclaration": 13367, + "src": "12552:6:63", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 10423, + "id": 13376, "isConstant": false, "isLValue": false, "isPure": false, @@ -1738,7 +1738,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12552:13:50", + "src": "12552:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1755,19 +1755,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10426, + "id": 13379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10424, + "id": 13377, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10416, - "src": "12570:6:50", + "referencedDeclaration": 13369, + "src": "12570:6:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1778,14 +1778,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3332", - "id": 10425, + "id": 13378, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12579:2:50", + "src": "12579:2:63", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -1793,27 +1793,27 @@ }, "value": "32" }, - "src": "12570:11:50", + "src": "12570:11:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 10427, + "id": 13380, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12569:13:50", + "src": "12569:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12552:30:50", + "src": "12552:30:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1827,21 +1827,21 @@ "typeString": "bool" } ], - "id": 10421, + "id": 13374, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "12544:7:50", + "referencedDeclaration": 13444, + "src": "12544:7:63", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10429, + "id": 13382, "isConstant": false, "isLValue": false, "isPure": false, @@ -1849,26 +1849,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12544:39:50", + "src": "12544:39:63", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10430, + "id": 13383, "nodeType": "ExpressionStatement", - "src": "12544:39:50" + "src": "12544:39:63" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 10432, + "id": 13385, "name": "tempBytes32", "nodeType": "VariableDeclaration", - "scope": 10438, - "src": "12593:19:50", + "scope": 13391, + "src": "12593:19:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1876,10 +1876,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 10431, + "id": 13384, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12593:7:50", + "src": "12593:7:63", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1889,69 +1889,69 @@ "visibility": "internal" } ], - "id": 10433, + "id": 13386, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "12593:19:50" + "src": "12593:19:63" }, { "externalReferences": [ { "_start": { - "declaration": 10416, + "declaration": 13369, "isOffset": false, "isSlot": false, - "src": "12690:6:50", + "src": "12690:6:63", "valueSize": 1 } }, { "tempBytes32": { - "declaration": 10432, + "declaration": 13385, "isOffset": false, "isSlot": false, - "src": "12646:11:50", + "src": "12646:11:63", "valueSize": 1 } }, { "_bytes": { - "declaration": 10414, + "declaration": 13367, "isOffset": false, "isSlot": false, - "src": "12675:6:50", + "src": "12675:6:63", "valueSize": 1 } } ], - "id": 10434, + "id": 13387, "nodeType": "InlineAssembly", "operations": "{\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n}", - "src": "12623:101:50" + "src": "12623:101:63" }, { "expression": { "argumentTypes": null, - "id": 10435, + "id": 13388, "name": "tempBytes32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10432, - "src": "12725:11:50", + "referencedDeclaration": 13385, + "src": "12725:11:63", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 10420, - "id": 10436, + "functionReturnParameters": 13373, + "id": 13389, "nodeType": "Return", - "src": "12718:18:50" + "src": "12718:18:63" } ] }, "documentation": null, - "id": 10438, + "id": 13391, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1959,16 +1959,16 @@ "name": "toBytes32", "nodeType": "FunctionDefinition", "parameters": { - "id": 10417, + "id": 13370, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10414, + "id": 13367, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 10438, - "src": "12474:12:50", + "scope": 13391, + "src": "12474:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1976,10 +1976,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10413, + "id": 13366, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12474:5:50", + "src": "12474:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1990,11 +1990,11 @@ }, { "constant": false, - "id": 10416, + "id": 13369, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 10438, - "src": "12488:11:50", + "scope": 13391, + "src": "12488:11:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2002,10 +2002,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10415, + "id": 13368, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12488:4:50", + "src": "12488:4:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2015,20 +2015,20 @@ "visibility": "internal" } ], - "src": "12473:27:50" + "src": "12473:27:63" }, "payable": false, "returnParameters": { - "id": 10420, + "id": 13373, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10419, + "id": 13372, "name": "", "nodeType": "VariableDeclaration", - "scope": 10438, - "src": "12525:7:50", + "scope": 13391, + "src": "12525:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2036,10 +2036,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 10418, + "id": 13371, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12525:7:50", + "src": "12525:7:63", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2049,32 +2049,32 @@ "visibility": "internal" } ], - "src": "12524:9:50" + "src": "12524:9:63" }, - "scope": 10473, - "src": "12455:288:50", + "scope": 13426, + "src": "12455:288:63", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10454, + "id": 13407, "nodeType": "Block", - "src": "12842:1320:50", + "src": "12842:1320:63", "statements": [ { "assignments": [ - 10448 + 13401 ], "declarations": [ { "constant": false, - "id": 10448, + "id": 13401, "name": "success", "nodeType": "VariableDeclaration", - "scope": 10455, - "src": "12852:12:50", + "scope": 13408, + "src": "12852:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2082,10 +2082,10 @@ "typeString": "bool" }, "typeName": { - "id": 10447, + "id": 13400, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12852:4:50", + "src": "12852:4:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2095,18 +2095,18 @@ "visibility": "internal" } ], - "id": 10450, + "id": 13403, "initialValue": { "argumentTypes": null, "hexValue": "74727565", - "id": 10449, + "id": 13402, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "12867:4:50", + "src": "12867:4:63", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2115,93 +2115,93 @@ "value": "true" }, "nodeType": "VariableDeclarationStatement", - "src": "12852:19:50" + "src": "12852:19:63" }, { "externalReferences": [ { "_preBytes": { - "declaration": 10440, + "declaration": 13393, "isOffset": false, "isSlot": false, - "src": "12925:9:50", + "src": "12925:9:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10442, + "declaration": 13395, "isOffset": false, "isSlot": false, - "src": "13036:10:50", + "src": "13036:10:63", "valueSize": 1 } }, { "_preBytes": { - "declaration": 10440, + "declaration": 13393, "isOffset": false, "isSlot": false, - "src": "13340:9:50", + "src": "13340:9:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10442, + "declaration": 13395, "isOffset": false, "isSlot": false, - "src": "13457:10:50", + "src": "13457:10:63", "valueSize": 1 } }, { "success": { - "declaration": 10448, + "declaration": 13401, "isOffset": false, "isSlot": false, - "src": "13928:7:50", + "src": "13928:7:63", "valueSize": 1 } }, { "success": { - "declaration": 10448, + "declaration": 13401, "isOffset": false, "isSlot": false, - "src": "14095:7:50", + "src": "14095:7:63", "valueSize": 1 } } ], - "id": 10451, + "id": 13404, "nodeType": "InlineAssembly", "operations": "{\n let length := mload(_preBytes)\n switch eq(length, mload(_postBytes))\n case 1 {\n let cb := 1\n let mc := add(_preBytes, 0x20)\n let end := add(mc, length)\n for {\n let cc := add(_postBytes, 0x20)\n }\n eq(add(lt(mc, end), cb), 2)\n {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n }\n {\n if iszero(eq(mload(mc), mload(cc)))\n {\n success := 0\n cb := 0\n }\n }\n }\n default {\n success := 0\n }\n}", - "src": "12882:1265:50" + "src": "12882:1265:63" }, { "expression": { "argumentTypes": null, - "id": 10452, + "id": 13405, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10448, - "src": "14148:7:50", + "referencedDeclaration": 13401, + "src": "14148:7:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 10446, - "id": 10453, + "functionReturnParameters": 13399, + "id": 13406, "nodeType": "Return", - "src": "14141:14:50" + "src": "14141:14:63" } ] }, "documentation": null, - "id": 10455, + "id": 13408, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2209,16 +2209,16 @@ "name": "equal", "nodeType": "FunctionDefinition", "parameters": { - "id": 10443, + "id": 13396, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10440, + "id": 13393, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 10455, - "src": "12764:22:50", + "scope": 13408, + "src": "12764:22:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2226,10 +2226,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10439, + "id": 13392, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12764:5:50", + "src": "12764:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2240,11 +2240,11 @@ }, { "constant": false, - "id": 10442, + "id": 13395, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 10455, - "src": "12788:23:50", + "scope": 13408, + "src": "12788:23:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2252,10 +2252,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10441, + "id": 13394, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12788:5:50", + "src": "12788:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2265,20 +2265,20 @@ "visibility": "internal" } ], - "src": "12763:49:50" + "src": "12763:49:63" }, "payable": false, "returnParameters": { - "id": 10446, + "id": 13399, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10445, + "id": 13398, "name": "", "nodeType": "VariableDeclaration", - "scope": 10455, - "src": "12836:4:50", + "scope": 13408, + "src": "12836:4:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2286,10 +2286,10 @@ "typeString": "bool" }, "typeName": { - "id": 10444, + "id": 13397, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12836:4:50", + "src": "12836:4:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2299,32 +2299,32 @@ "visibility": "internal" } ], - "src": "12835:6:50" + "src": "12835:6:63" }, - "scope": 10473, - "src": "12749:1413:50", + "scope": 13426, + "src": "12749:1413:63", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10471, + "id": 13424, "nodeType": "Block", - "src": "14269:2556:50", + "src": "14269:2556:63", "statements": [ { "assignments": [ - 10465 + 13418 ], "declarations": [ { "constant": false, - "id": 10465, + "id": 13418, "name": "success", "nodeType": "VariableDeclaration", - "scope": 10472, - "src": "14279:12:50", + "scope": 13425, + "src": "14279:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2332,10 +2332,10 @@ "typeString": "bool" }, "typeName": { - "id": 10464, + "id": 13417, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14279:4:50", + "src": "14279:4:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2345,18 +2345,18 @@ "visibility": "internal" } ], - "id": 10467, + "id": 13420, "initialValue": { "argumentTypes": null, "hexValue": "74727565", - "id": 10466, + "id": 13419, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "14294:4:50", + "src": "14294:4:63", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2365,111 +2365,111 @@ "value": "true" }, "nodeType": "VariableDeclarationStatement", - "src": "14279:19:50" + "src": "14279:19:63" }, { "externalReferences": [ { "_preBytes_slot": { - "declaration": 10457, + "declaration": 13410, "isOffset": false, "isSlot": true, - "src": "14396:14:50", + "src": "14396:14:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10459, + "declaration": 13412, "isOffset": false, "isSlot": false, - "src": "14612:10:50", + "src": "14612:10:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10459, + "declaration": 13412, "isOffset": false, "isSlot": false, - "src": "15317:10:50", + "src": "15317:10:63", "valueSize": 1 } }, { "success": { - "declaration": 10465, + "declaration": 13418, "isOffset": false, "isSlot": false, - "src": "16527:7:50", + "src": "16527:7:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10459, + "declaration": 13412, "isOffset": false, "isSlot": false, - "src": "16007:10:50", + "src": "16007:10:63", "valueSize": 1 } }, { "success": { - "declaration": 10465, + "declaration": 13418, "isOffset": false, "isSlot": false, - "src": "15410:7:50", + "src": "15410:7:63", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 10457, + "declaration": 13410, "isOffset": false, "isSlot": true, - "src": "15897:14:50", + "src": "15897:14:63", "valueSize": 1 } }, { "success": { - "declaration": 10465, + "declaration": 13418, "isOffset": false, "isSlot": false, - "src": "16758:7:50", + "src": "16758:7:63", "valueSize": 1 } } ], - "id": 10468, + "id": 13421, "nodeType": "InlineAssembly", "operations": "{\n let fslot := sload(_preBytes_slot)\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n switch eq(slength, mlength)\n case 1 {\n if iszero(iszero(slength))\n {\n switch lt(slength, 32)\n case 1 {\n fslot := mul(div(fslot, 0x100), 0x100)\n if iszero(eq(fslot, mload(add(_postBytes, 0x20))))\n {\n success := 0\n }\n }\n default {\n let cb := 1\n mstore(0x0, _preBytes_slot)\n let sc := keccak256(0x0, 0x20)\n let mc := add(_postBytes, 0x20)\n let end := add(mc, mlength)\n for {\n }\n eq(add(lt(mc, end), cb), 2)\n {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n }\n {\n if iszero(eq(sload(sc), mload(mc)))\n {\n success := 0\n cb := 0\n }\n }\n }\n }\n }\n default {\n success := 0\n }\n}", - "src": "14309:2501:50" + "src": "14309:2501:63" }, { "expression": { "argumentTypes": null, - "id": 10469, + "id": 13422, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10465, - "src": "16811:7:50", + "referencedDeclaration": 13418, + "src": "16811:7:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 10463, - "id": 10470, + "functionReturnParameters": 13416, + "id": 13423, "nodeType": "Return", - "src": "16804:14:50" + "src": "16804:14:63" } ] }, "documentation": null, - "id": 10472, + "id": 13425, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2477,16 +2477,16 @@ "name": "equalStorage", "nodeType": "FunctionDefinition", "parameters": { - "id": 10460, + "id": 13413, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10457, + "id": 13410, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 10472, - "src": "14190:23:50", + "scope": 13425, + "src": "14190:23:63", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -2494,10 +2494,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10456, + "id": 13409, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "14190:5:50", + "src": "14190:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2508,11 +2508,11 @@ }, { "constant": false, - "id": 10459, + "id": 13412, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 10472, - "src": "14215:23:50", + "scope": 13425, + "src": "14215:23:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2520,10 +2520,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10458, + "id": 13411, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "14215:5:50", + "src": "14215:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2533,20 +2533,20 @@ "visibility": "internal" } ], - "src": "14189:50:50" + "src": "14189:50:63" }, "payable": false, "returnParameters": { - "id": 10463, + "id": 13416, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10462, + "id": 13415, "name": "", "nodeType": "VariableDeclaration", - "scope": 10472, - "src": "14263:4:50", + "scope": 13425, + "src": "14263:4:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2554,10 +2554,10 @@ "typeString": "bool" }, "typeName": { - "id": 10461, + "id": 13414, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14263:4:50", + "src": "14263:4:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2567,33 +2567,33 @@ "visibility": "internal" } ], - "src": "14262:6:50" + "src": "14262:6:63" }, - "scope": 10473, - "src": "14168:2657:50", + "scope": 13426, + "src": "14168:2657:63", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 10474, - "src": "326:16501:50" + "scope": 13427, + "src": "326:16501:63" } ], - "src": "299:16529:50" + "src": "299:16529:63" }, "legacyAST": { "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", "exportedSymbols": { "BytesLib": [ - 10473 + 13426 ] }, - "id": 10474, + "id": 13427, "nodeType": "SourceUnit", "nodes": [ { - "id": 10307, + "id": 13260, "literals": [ "solidity", "^", @@ -2601,7 +2601,7 @@ ".19" ], "nodeType": "PragmaDirective", - "src": "299:24:50" + "src": "299:24:63" }, { "baseContracts": [], @@ -2609,29 +2609,29 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 10473, + "id": 13426, "linearizedBaseContracts": [ - 10473 + 13426 ], "name": "BytesLib", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 10322, + "id": 13275, "nodeType": "Block", - "src": "444:2804:50", + "src": "444:2804:63", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 10317, + "id": 13270, "name": "tempBytes", "nodeType": "VariableDeclaration", - "scope": 10323, - "src": "454:22:50", + "scope": 13276, + "src": "454:22:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2639,10 +2639,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10316, + "id": 13269, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "454:5:50", + "src": "454:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2652,132 +2652,132 @@ "visibility": "internal" } ], - "id": 10318, + "id": 13271, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "454:22:50" + "src": "454:22:63" }, { "externalReferences": [ { "tempBytes": { - "declaration": 10317, + "declaration": 13270, "isOffset": false, "isSlot": false, - "src": "640:9:50", + "src": "640:9:63", "valueSize": 1 } }, { "_preBytes": { - "declaration": 10309, + "declaration": 13262, "isOffset": false, "isSlot": false, - "src": "816:9:50", + "src": "816:9:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10317, + "declaration": 13270, "isOffset": false, "isSlot": false, - "src": "846:9:50", + "src": "846:9:63", "valueSize": 1 } }, { "_preBytes": { - "declaration": 10309, + "declaration": 13262, "isOffset": false, "isSlot": false, - "src": "1431:9:50", + "src": "1431:9:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10317, + "declaration": 13270, "isOffset": false, "isSlot": false, - "src": "1088:9:50", + "src": "1088:9:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10311, + "declaration": 13264, "isOffset": false, "isSlot": false, - "src": "2429:10:50", + "src": "2429:10:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10311, + "declaration": 13264, "isOffset": false, "isSlot": false, - "src": "2011:10:50", + "src": "2011:10:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10317, + "declaration": 13270, "isOffset": false, "isSlot": false, - "src": "2042:9:50", + "src": "2042:9:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10317, + "declaration": 13270, "isOffset": false, "isSlot": false, - "src": "2071:9:50", + "src": "2071:9:63", "valueSize": 1 } }, { "_preBytes": { - "declaration": 10309, + "declaration": 13262, "isOffset": false, "isSlot": false, - "src": "3110:9:50", + "src": "3110:9:63", "valueSize": 1 } } ], - "id": 10319, + "id": 13272, "nodeType": "InlineAssembly", "operations": "{\n tempBytes := mload(0x40)\n let length := mload(_preBytes)\n mstore(tempBytes, length)\n let mc := add(tempBytes, 0x20)\n let end := add(mc, length)\n for {\n let cc := add(_preBytes, 0x20)\n }\n lt(mc, end)\n {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n }\n {\n mstore(mc, mload(cc))\n }\n length := mload(_postBytes)\n mstore(tempBytes, add(length, mload(tempBytes)))\n mc := end\n end := add(mc, length)\n for {\n let cc := add(_postBytes, 0x20)\n }\n lt(mc, end)\n {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n }\n {\n mstore(mc, mload(cc))\n }\n mstore(0x40, and(add(add(end, iszero(add(length, mload(_preBytes)))), 31), not(31)))\n}", - "src": "487:2744:50" + "src": "487:2744:63" }, { "expression": { "argumentTypes": null, - "id": 10320, + "id": 13273, "name": "tempBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10317, - "src": "3232:9:50", + "referencedDeclaration": 13270, + "src": "3232:9:63", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 10315, - "id": 10321, + "functionReturnParameters": 13268, + "id": 13274, "nodeType": "Return", - "src": "3225:16:50" + "src": "3225:16:63" } ] }, "documentation": null, - "id": 10323, + "id": 13276, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2785,16 +2785,16 @@ "name": "concat", "nodeType": "FunctionDefinition", "parameters": { - "id": 10312, + "id": 13265, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10309, + "id": 13262, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 10323, - "src": "365:22:50", + "scope": 13276, + "src": "365:22:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2802,10 +2802,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10308, + "id": 13261, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "365:5:50", + "src": "365:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2816,11 +2816,11 @@ }, { "constant": false, - "id": 10311, + "id": 13264, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 10323, - "src": "389:23:50", + "scope": 13276, + "src": "389:23:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2828,10 +2828,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10310, + "id": 13263, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "389:5:50", + "src": "389:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2841,20 +2841,20 @@ "visibility": "internal" } ], - "src": "364:49:50" + "src": "364:49:63" }, "payable": false, "returnParameters": { - "id": 10315, + "id": 13268, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10314, + "id": 13267, "name": "", "nodeType": "VariableDeclaration", - "scope": 10323, - "src": "437:5:50", + "scope": 13276, + "src": "437:5:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2862,10 +2862,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10313, + "id": 13266, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "437:5:50", + "src": "437:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2875,140 +2875,140 @@ "visibility": "internal" } ], - "src": "436:7:50" + "src": "436:7:63" }, - "scope": 10473, - "src": "349:2899:50", + "scope": 13426, + "src": "349:2899:63", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10331, + "id": 13284, "nodeType": "Block", - "src": "3336:6032:50", + "src": "3336:6032:63", "statements": [ { "externalReferences": [ { "_preBytes_slot": { - "declaration": 10325, + "declaration": 13278, "isOffset": false, "isSlot": true, - "src": "3597:14:50", + "src": "3597:14:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10327, + "declaration": 13280, "isOffset": false, "isSlot": false, - "src": "4215:10:50", + "src": "4215:10:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10327, + "declaration": 13280, "isOffset": false, "isSlot": false, - "src": "7216:10:50", + "src": "7216:10:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10327, + "declaration": 13280, "isOffset": false, "isSlot": false, - "src": "7165:10:50", + "src": "7165:10:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10327, + "declaration": 13280, "isOffset": false, "isSlot": false, - "src": "8729:10:50", + "src": "8729:10:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10327, + "declaration": 13280, "isOffset": false, "isSlot": false, - "src": "8780:10:50", + "src": "8780:10:63", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 10325, + "declaration": 13278, "isOffset": false, "isSlot": true, - "src": "4891:14:50", + "src": "4891:14:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10327, + "declaration": 13280, "isOffset": false, "isSlot": false, - "src": "5421:10:50", + "src": "5421:10:63", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 10325, + "declaration": 13278, "isOffset": false, "isSlot": true, - "src": "6329:14:50", + "src": "6329:14:63", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 10325, + "declaration": 13278, "isOffset": false, "isSlot": true, - "src": "6474:14:50", + "src": "6474:14:63", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 10325, + "declaration": 13278, "isOffset": false, "isSlot": true, - "src": "8173:14:50", + "src": "8173:14:63", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 10325, + "declaration": 13278, "isOffset": false, "isSlot": true, - "src": "8394:14:50", + "src": "8394:14:63", "valueSize": 1 } } ], - "id": 10330, + "id": 13283, "nodeType": "InlineAssembly", "operations": "{\n let fslot := sload(_preBytes_slot)\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n let newlength := add(slength, mlength)\n switch add(lt(slength, 32), lt(newlength, 32))\n case 2 {\n sstore(_preBytes_slot, add(fslot, add(mul(div(mload(add(_postBytes, 0x20)), exp(0x100, sub(32, mlength))), exp(0x100, sub(32, newlength))), mul(mlength, 2))))\n }\n case 1 {\n mstore(0x0, _preBytes_slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n sstore(_preBytes_slot, add(mul(newlength, 2), 1))\n let submod := sub(32, slength)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\n for {\n mc := add(mc, 0x20)\n sc := add(sc, 1)\n }\n lt(mc, end)\n {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n }\n {\n sstore(sc, mload(mc))\n }\n mask := exp(0x100, sub(mc, end))\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n default {\n mstore(0x0, _preBytes_slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n sstore(_preBytes_slot, add(mul(newlength, 2), 1))\n let slengthmod := mod(slength, 32)\n let mlengthmod := mod(mlength, 32)\n let submod := sub(32, slengthmod)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\n for {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n }\n lt(mc, end)\n {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n }\n {\n sstore(sc, mload(mc))\n }\n mask := exp(0x100, sub(mc, end))\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n}", - "src": "3346:6022:50" + "src": "3346:6022:63" } ] }, "documentation": null, - "id": 10332, + "id": 13285, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3016,16 +3016,16 @@ "name": "concatStorage", "nodeType": "FunctionDefinition", "parameters": { - "id": 10328, + "id": 13281, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10325, + "id": 13278, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 10332, - "src": "3277:23:50", + "scope": 13285, + "src": "3277:23:63", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -3033,10 +3033,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10324, + "id": 13277, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3277:5:50", + "src": "3277:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3047,11 +3047,11 @@ }, { "constant": false, - "id": 10327, + "id": 13280, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 10332, - "src": "3302:23:50", + "scope": 13285, + "src": "3302:23:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3059,10 +3059,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10326, + "id": 13279, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3302:5:50", + "src": "3302:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3072,26 +3072,26 @@ "visibility": "internal" } ], - "src": "3276:50:50" + "src": "3276:50:63" }, "payable": false, "returnParameters": { - "id": 10329, + "id": 13282, "nodeType": "ParameterList", "parameters": [], - "src": "3336:0:50" + "src": "3336:0:63" }, - "scope": 10473, - "src": "3254:6114:50", + "scope": 13426, + "src": "3254:6114:63", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10359, + "id": 13312, "nodeType": "Block", - "src": "9461:2378:50", + "src": "9461:2378:63", "statements": [ { "expression": { @@ -3103,7 +3103,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10350, + "id": 13303, "isConstant": false, "isLValue": false, "isPure": false, @@ -3112,18 +3112,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 10344, + "id": 13297, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10334, - "src": "9479:6:50", + "referencedDeclaration": 13287, + "src": "9479:6:63", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 10345, + "id": 13298, "isConstant": false, "isLValue": false, "isPure": false, @@ -3131,7 +3131,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9479:13:50", + "src": "9479:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3148,19 +3148,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10348, + "id": 13301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10346, + "id": 13299, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10336, - "src": "9497:6:50", + "referencedDeclaration": 13289, + "src": "9497:6:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3170,38 +3170,38 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 10347, + "id": 13300, "name": "_length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10338, - "src": "9506:7:50", + "referencedDeclaration": 13291, + "src": "9506:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9497:16:50", + "src": "9497:16:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 10349, + "id": 13302, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9496:18:50", + "src": "9496:18:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9479:35:50", + "src": "9479:35:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3215,21 +3215,21 @@ "typeString": "bool" } ], - "id": 10343, + "id": 13296, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "9471:7:50", + "referencedDeclaration": 13444, + "src": "9471:7:63", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10351, + "id": 13304, "isConstant": false, "isLValue": false, "isPure": false, @@ -3237,26 +3237,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9471:44:50", + "src": "9471:44:63", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10352, + "id": 13305, "nodeType": "ExpressionStatement", - "src": "9471:44:50" + "src": "9471:44:63" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 10354, + "id": 13307, "name": "tempBytes", "nodeType": "VariableDeclaration", - "scope": 10360, - "src": "9526:22:50", + "scope": 13313, + "src": "9526:22:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3264,10 +3264,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10353, + "id": 13306, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9526:5:50", + "src": "9526:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3277,141 +3277,141 @@ "visibility": "internal" } ], - "id": 10355, + "id": 13308, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "9526:22:50" + "src": "9526:22:63" }, { "externalReferences": [ { "tempBytes": { - "declaration": 10354, + "declaration": 13307, "isOffset": false, "isSlot": false, - "src": "11706:9:50", + "src": "11706:9:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10354, + "declaration": 13307, "isOffset": false, "isSlot": false, - "src": "10800:9:50", + "src": "10800:9:63", "valueSize": 1 } }, { "_length": { - "declaration": 10338, + "declaration": 13291, "isOffset": false, "isSlot": false, - "src": "10888:7:50", + "src": "10888:7:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10354, + "declaration": 13307, "isOffset": false, "isSlot": false, - "src": "9780:9:50", + "src": "9780:9:63", "valueSize": 1 } }, { "_length": { - "declaration": 10338, + "declaration": 13291, "isOffset": false, "isSlot": false, - "src": "10449:7:50", + "src": "10449:7:63", "valueSize": 1 } }, { "_length": { - "declaration": 10338, + "declaration": 13291, "isOffset": false, "isSlot": false, - "src": "9596:7:50", + "src": "9596:7:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10354, + "declaration": 13307, "isOffset": false, "isSlot": false, - "src": "11364:9:50", + "src": "11364:9:63", "valueSize": 1 } }, { "_length": { - "declaration": 10338, + "declaration": 13291, "isOffset": false, "isSlot": false, - "src": "11375:7:50", + "src": "11375:7:63", "valueSize": 1 } }, { "_start": { - "declaration": 10336, + "declaration": 13289, "isOffset": false, "isSlot": false, - "src": "11140:6:50", + "src": "11140:6:63", "valueSize": 1 } }, { "_bytes": { - "declaration": 10334, + "declaration": 13287, "isOffset": false, "isSlot": false, - "src": "11089:6:50", + "src": "11089:6:63", "valueSize": 1 } }, { "tempBytes": { - "declaration": 10354, + "declaration": 13307, "isOffset": false, "isSlot": false, - "src": "11765:9:50", + "src": "11765:9:63", "valueSize": 1 } } ], - "id": 10356, + "id": 13309, "nodeType": "InlineAssembly", "operations": "{\n switch iszero(_length)\n case 0 {\n tempBytes := mload(0x40)\n let lengthmod := and(_length, 31)\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n let end := add(mc, _length)\n for {\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n }\n lt(mc, end)\n {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n }\n {\n mstore(mc, mload(cc))\n }\n mstore(tempBytes, _length)\n mstore(0x40, and(add(mc, 31), not(31)))\n }\n default {\n tempBytes := mload(0x40)\n mstore(0x40, add(tempBytes, 0x20))\n }\n}", - "src": "9559:2263:50" + "src": "9559:2263:63" }, { "expression": { "argumentTypes": null, - "id": 10357, + "id": 13310, "name": "tempBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10354, - "src": "11823:9:50", + "referencedDeclaration": 13307, + "src": "11823:9:63", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 10342, - "id": 10358, + "functionReturnParameters": 13295, + "id": 13311, "nodeType": "Return", - "src": "11816:16:50" + "src": "11816:16:63" } ] }, "documentation": null, - "id": 10360, + "id": 13313, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3419,16 +3419,16 @@ "name": "slice", "nodeType": "FunctionDefinition", "parameters": { - "id": 10339, + "id": 13292, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10334, + "id": 13287, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 10360, - "src": "9389:12:50", + "scope": 13313, + "src": "9389:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3436,10 +3436,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10333, + "id": 13286, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9389:5:50", + "src": "9389:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3450,11 +3450,11 @@ }, { "constant": false, - "id": 10336, + "id": 13289, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 10360, - "src": "9403:11:50", + "scope": 13313, + "src": "9403:11:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3462,10 +3462,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10335, + "id": 13288, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9403:4:50", + "src": "9403:4:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3476,11 +3476,11 @@ }, { "constant": false, - "id": 10338, + "id": 13291, "name": "_length", "nodeType": "VariableDeclaration", - "scope": 10360, - "src": "9416:12:50", + "scope": 13313, + "src": "9416:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3488,10 +3488,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10337, + "id": 13290, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9416:4:50", + "src": "9416:4:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3501,20 +3501,20 @@ "visibility": "internal" } ], - "src": "9388:41:50" + "src": "9388:41:63" }, "payable": false, "returnParameters": { - "id": 10342, + "id": 13295, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10341, + "id": 13294, "name": "", "nodeType": "VariableDeclaration", - "scope": 10360, - "src": "9454:5:50", + "scope": 13313, + "src": "9454:5:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3522,10 +3522,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10340, + "id": 13293, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9454:5:50", + "src": "9454:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3535,19 +3535,19 @@ "visibility": "internal" } ], - "src": "9453:7:50" + "src": "9453:7:63" }, - "scope": 10473, - "src": "9374:2465:50", + "scope": 13426, + "src": "9374:2465:63", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10385, + "id": 13338, "nodeType": "Block", - "src": "11924:243:50", + "src": "11924:243:63", "statements": [ { "expression": { @@ -3559,7 +3559,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10376, + "id": 13329, "isConstant": false, "isLValue": false, "isPure": false, @@ -3568,18 +3568,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 10370, + "id": 13323, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10362, - "src": "11942:6:50", + "referencedDeclaration": 13315, + "src": "11942:6:63", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 10371, + "id": 13324, "isConstant": false, "isLValue": false, "isPure": false, @@ -3587,7 +3587,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11942:13:50", + "src": "11942:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3604,19 +3604,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10374, + "id": 13327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10372, + "id": 13325, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10364, - "src": "11960:6:50", + "referencedDeclaration": 13317, + "src": "11960:6:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3627,14 +3627,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3230", - "id": 10373, + "id": 13326, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11969:2:50", + "src": "11969:2:63", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_20_by_1", @@ -3642,27 +3642,27 @@ }, "value": "20" }, - "src": "11960:11:50", + "src": "11960:11:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 10375, + "id": 13328, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11959:13:50", + "src": "11959:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11942:30:50", + "src": "11942:30:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3676,21 +3676,21 @@ "typeString": "bool" } ], - "id": 10369, + "id": 13322, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "11934:7:50", + "referencedDeclaration": 13444, + "src": "11934:7:63", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10377, + "id": 13330, "isConstant": false, "isLValue": false, "isPure": false, @@ -3698,26 +3698,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11934:39:50", + "src": "11934:39:63", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10378, + "id": 13331, "nodeType": "ExpressionStatement", - "src": "11934:39:50" + "src": "11934:39:63" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 10380, + "id": 13333, "name": "tempAddress", "nodeType": "VariableDeclaration", - "scope": 10386, - "src": "11983:19:50", + "scope": 13339, + "src": "11983:19:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3725,10 +3725,10 @@ "typeString": "address" }, "typeName": { - "id": 10379, + "id": 13332, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11983:7:50", + "src": "11983:7:63", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3738,69 +3738,69 @@ "visibility": "internal" } ], - "id": 10381, + "id": 13334, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "11983:19:50" + "src": "11983:19:63" }, { "externalReferences": [ { "tempAddress": { - "declaration": 10380, + "declaration": 13333, "isOffset": false, "isSlot": false, - "src": "12036:11:50", + "src": "12036:11:63", "valueSize": 1 } }, { "_start": { - "declaration": 10364, + "declaration": 13317, "isOffset": false, "isSlot": false, - "src": "12084:6:50", + "src": "12084:6:63", "valueSize": 1 } }, { "_bytes": { - "declaration": 10362, + "declaration": 13315, "isOffset": false, "isSlot": false, - "src": "12069:6:50", + "src": "12069:6:63", "valueSize": 1 } } ], - "id": 10382, + "id": 13335, "nodeType": "InlineAssembly", "operations": "{\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n}", - "src": "12013:135:50" + "src": "12013:135:63" }, { "expression": { "argumentTypes": null, - "id": 10383, + "id": 13336, "name": "tempAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10380, - "src": "12149:11:50", + "referencedDeclaration": 13333, + "src": "12149:11:63", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 10368, - "id": 10384, + "functionReturnParameters": 13321, + "id": 13337, "nodeType": "Return", - "src": "12142:18:50" + "src": "12142:18:63" } ] }, "documentation": null, - "id": 10386, + "id": 13339, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3808,16 +3808,16 @@ "name": "toAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 10365, + "id": 13318, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10362, + "id": 13315, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 10386, - "src": "11864:12:50", + "scope": 13339, + "src": "11864:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3825,10 +3825,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10361, + "id": 13314, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11864:5:50", + "src": "11864:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3839,11 +3839,11 @@ }, { "constant": false, - "id": 10364, + "id": 13317, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 10386, - "src": "11878:11:50", + "scope": 13339, + "src": "11878:11:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3851,10 +3851,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10363, + "id": 13316, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11878:4:50", + "src": "11878:4:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3864,20 +3864,20 @@ "visibility": "internal" } ], - "src": "11863:27:50" + "src": "11863:27:63" }, "payable": false, "returnParameters": { - "id": 10368, + "id": 13321, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10367, + "id": 13320, "name": "", "nodeType": "VariableDeclaration", - "scope": 10386, - "src": "11915:7:50", + "scope": 13339, + "src": "11915:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3885,10 +3885,10 @@ "typeString": "address" }, "typeName": { - "id": 10366, + "id": 13319, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11915:7:50", + "src": "11915:7:63", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3898,19 +3898,19 @@ "visibility": "internal" } ], - "src": "11914:9:50" + "src": "11914:9:63" }, - "scope": 10473, - "src": "11845:322:50", + "scope": 13426, + "src": "11845:322:63", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10411, + "id": 13364, "nodeType": "Block", - "src": "12249:200:50", + "src": "12249:200:63", "statements": [ { "expression": { @@ -3922,7 +3922,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10402, + "id": 13355, "isConstant": false, "isLValue": false, "isPure": false, @@ -3931,18 +3931,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 10396, + "id": 13349, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10388, - "src": "12267:6:50", + "referencedDeclaration": 13341, + "src": "12267:6:63", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 10397, + "id": 13350, "isConstant": false, "isLValue": false, "isPure": false, @@ -3950,7 +3950,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12267:13:50", + "src": "12267:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3967,19 +3967,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10400, + "id": 13353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10398, + "id": 13351, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10390, - "src": "12285:6:50", + "referencedDeclaration": 13343, + "src": "12285:6:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3990,14 +3990,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3332", - "id": 10399, + "id": 13352, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12294:2:50", + "src": "12294:2:63", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -4005,27 +4005,27 @@ }, "value": "32" }, - "src": "12285:11:50", + "src": "12285:11:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 10401, + "id": 13354, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12284:13:50", + "src": "12284:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12267:30:50", + "src": "12267:30:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4039,21 +4039,21 @@ "typeString": "bool" } ], - "id": 10395, + "id": 13348, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "12259:7:50", + "referencedDeclaration": 13444, + "src": "12259:7:63", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10403, + "id": 13356, "isConstant": false, "isLValue": false, "isPure": false, @@ -4061,26 +4061,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12259:39:50", + "src": "12259:39:63", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10404, + "id": 13357, "nodeType": "ExpressionStatement", - "src": "12259:39:50" + "src": "12259:39:63" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 10406, + "id": 13359, "name": "tempUint", "nodeType": "VariableDeclaration", - "scope": 10412, - "src": "12308:16:50", + "scope": 13365, + "src": "12308:16:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4088,10 +4088,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10405, + "id": 13358, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12308:7:50", + "src": "12308:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4101,69 +4101,69 @@ "visibility": "internal" } ], - "id": 10407, + "id": 13360, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "12308:16:50" + "src": "12308:16:63" }, { "externalReferences": [ { "_start": { - "declaration": 10390, + "declaration": 13343, "isOffset": false, "isSlot": false, - "src": "12399:6:50", + "src": "12399:6:63", "valueSize": 1 } }, { "tempUint": { - "declaration": 10406, + "declaration": 13359, "isOffset": false, "isSlot": false, - "src": "12358:8:50", + "src": "12358:8:63", "valueSize": 1 } }, { "_bytes": { - "declaration": 10388, + "declaration": 13341, "isOffset": false, "isSlot": false, - "src": "12384:6:50", + "src": "12384:6:63", "valueSize": 1 } } ], - "id": 10408, + "id": 13361, "nodeType": "InlineAssembly", "operations": "{\n tempUint := mload(add(add(_bytes, 0x20), _start))\n}", - "src": "12335:98:50" + "src": "12335:98:63" }, { "expression": { "argumentTypes": null, - "id": 10409, + "id": 13362, "name": "tempUint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10406, - "src": "12434:8:50", + "referencedDeclaration": 13359, + "src": "12434:8:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 10394, - "id": 10410, + "functionReturnParameters": 13347, + "id": 13363, "nodeType": "Return", - "src": "12427:15:50" + "src": "12427:15:63" } ] }, "documentation": null, - "id": 10412, + "id": 13365, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4171,16 +4171,16 @@ "name": "toUint", "nodeType": "FunctionDefinition", "parameters": { - "id": 10391, + "id": 13344, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10388, + "id": 13341, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 10412, - "src": "12189:12:50", + "scope": 13365, + "src": "12189:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4188,10 +4188,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10387, + "id": 13340, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12189:5:50", + "src": "12189:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4202,11 +4202,11 @@ }, { "constant": false, - "id": 10390, + "id": 13343, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 10412, - "src": "12203:11:50", + "scope": 13365, + "src": "12203:11:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4214,10 +4214,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10389, + "id": 13342, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12203:4:50", + "src": "12203:4:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4227,20 +4227,20 @@ "visibility": "internal" } ], - "src": "12188:27:50" + "src": "12188:27:63" }, "payable": false, "returnParameters": { - "id": 10394, + "id": 13347, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10393, + "id": 13346, "name": "", "nodeType": "VariableDeclaration", - "scope": 10412, - "src": "12240:7:50", + "scope": 13365, + "src": "12240:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4248,10 +4248,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10392, + "id": 13345, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12240:7:50", + "src": "12240:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4261,19 +4261,19 @@ "visibility": "internal" } ], - "src": "12239:9:50" + "src": "12239:9:63" }, - "scope": 10473, - "src": "12173:276:50", + "scope": 13426, + "src": "12173:276:63", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10437, + "id": 13390, "nodeType": "Block", - "src": "12534:209:50", + "src": "12534:209:63", "statements": [ { "expression": { @@ -4285,7 +4285,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10428, + "id": 13381, "isConstant": false, "isLValue": false, "isPure": false, @@ -4294,18 +4294,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 10422, + "id": 13375, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10414, - "src": "12552:6:50", + "referencedDeclaration": 13367, + "src": "12552:6:63", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 10423, + "id": 13376, "isConstant": false, "isLValue": false, "isPure": false, @@ -4313,7 +4313,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12552:13:50", + "src": "12552:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4330,19 +4330,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10426, + "id": 13379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10424, + "id": 13377, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10416, - "src": "12570:6:50", + "referencedDeclaration": 13369, + "src": "12570:6:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4353,14 +4353,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3332", - "id": 10425, + "id": 13378, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12579:2:50", + "src": "12579:2:63", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -4368,27 +4368,27 @@ }, "value": "32" }, - "src": "12570:11:50", + "src": "12570:11:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 10427, + "id": 13380, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12569:13:50", + "src": "12569:13:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12552:30:50", + "src": "12552:30:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4402,21 +4402,21 @@ "typeString": "bool" } ], - "id": 10421, + "id": 13374, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "12544:7:50", + "referencedDeclaration": 13444, + "src": "12544:7:63", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10429, + "id": 13382, "isConstant": false, "isLValue": false, "isPure": false, @@ -4424,26 +4424,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12544:39:50", + "src": "12544:39:63", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10430, + "id": 13383, "nodeType": "ExpressionStatement", - "src": "12544:39:50" + "src": "12544:39:63" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 10432, + "id": 13385, "name": "tempBytes32", "nodeType": "VariableDeclaration", - "scope": 10438, - "src": "12593:19:50", + "scope": 13391, + "src": "12593:19:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4451,10 +4451,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 10431, + "id": 13384, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12593:7:50", + "src": "12593:7:63", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4464,69 +4464,69 @@ "visibility": "internal" } ], - "id": 10433, + "id": 13386, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "12593:19:50" + "src": "12593:19:63" }, { "externalReferences": [ { "_start": { - "declaration": 10416, + "declaration": 13369, "isOffset": false, "isSlot": false, - "src": "12690:6:50", + "src": "12690:6:63", "valueSize": 1 } }, { "tempBytes32": { - "declaration": 10432, + "declaration": 13385, "isOffset": false, "isSlot": false, - "src": "12646:11:50", + "src": "12646:11:63", "valueSize": 1 } }, { "_bytes": { - "declaration": 10414, + "declaration": 13367, "isOffset": false, "isSlot": false, - "src": "12675:6:50", + "src": "12675:6:63", "valueSize": 1 } } ], - "id": 10434, + "id": 13387, "nodeType": "InlineAssembly", "operations": "{\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n}", - "src": "12623:101:50" + "src": "12623:101:63" }, { "expression": { "argumentTypes": null, - "id": 10435, + "id": 13388, "name": "tempBytes32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10432, - "src": "12725:11:50", + "referencedDeclaration": 13385, + "src": "12725:11:63", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 10420, - "id": 10436, + "functionReturnParameters": 13373, + "id": 13389, "nodeType": "Return", - "src": "12718:18:50" + "src": "12718:18:63" } ] }, "documentation": null, - "id": 10438, + "id": 13391, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4534,16 +4534,16 @@ "name": "toBytes32", "nodeType": "FunctionDefinition", "parameters": { - "id": 10417, + "id": 13370, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10414, + "id": 13367, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 10438, - "src": "12474:12:50", + "scope": 13391, + "src": "12474:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4551,10 +4551,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10413, + "id": 13366, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12474:5:50", + "src": "12474:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4565,11 +4565,11 @@ }, { "constant": false, - "id": 10416, + "id": 13369, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 10438, - "src": "12488:11:50", + "scope": 13391, + "src": "12488:11:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4577,10 +4577,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10415, + "id": 13368, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12488:4:50", + "src": "12488:4:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4590,20 +4590,20 @@ "visibility": "internal" } ], - "src": "12473:27:50" + "src": "12473:27:63" }, "payable": false, "returnParameters": { - "id": 10420, + "id": 13373, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10419, + "id": 13372, "name": "", "nodeType": "VariableDeclaration", - "scope": 10438, - "src": "12525:7:50", + "scope": 13391, + "src": "12525:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4611,10 +4611,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 10418, + "id": 13371, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12525:7:50", + "src": "12525:7:63", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4624,32 +4624,32 @@ "visibility": "internal" } ], - "src": "12524:9:50" + "src": "12524:9:63" }, - "scope": 10473, - "src": "12455:288:50", + "scope": 13426, + "src": "12455:288:63", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10454, + "id": 13407, "nodeType": "Block", - "src": "12842:1320:50", + "src": "12842:1320:63", "statements": [ { "assignments": [ - 10448 + 13401 ], "declarations": [ { "constant": false, - "id": 10448, + "id": 13401, "name": "success", "nodeType": "VariableDeclaration", - "scope": 10455, - "src": "12852:12:50", + "scope": 13408, + "src": "12852:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4657,10 +4657,10 @@ "typeString": "bool" }, "typeName": { - "id": 10447, + "id": 13400, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12852:4:50", + "src": "12852:4:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4670,18 +4670,18 @@ "visibility": "internal" } ], - "id": 10450, + "id": 13403, "initialValue": { "argumentTypes": null, "hexValue": "74727565", - "id": 10449, + "id": 13402, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "12867:4:50", + "src": "12867:4:63", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4690,93 +4690,93 @@ "value": "true" }, "nodeType": "VariableDeclarationStatement", - "src": "12852:19:50" + "src": "12852:19:63" }, { "externalReferences": [ { "_preBytes": { - "declaration": 10440, + "declaration": 13393, "isOffset": false, "isSlot": false, - "src": "12925:9:50", + "src": "12925:9:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10442, + "declaration": 13395, "isOffset": false, "isSlot": false, - "src": "13036:10:50", + "src": "13036:10:63", "valueSize": 1 } }, { "_preBytes": { - "declaration": 10440, + "declaration": 13393, "isOffset": false, "isSlot": false, - "src": "13340:9:50", + "src": "13340:9:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10442, + "declaration": 13395, "isOffset": false, "isSlot": false, - "src": "13457:10:50", + "src": "13457:10:63", "valueSize": 1 } }, { "success": { - "declaration": 10448, + "declaration": 13401, "isOffset": false, "isSlot": false, - "src": "13928:7:50", + "src": "13928:7:63", "valueSize": 1 } }, { "success": { - "declaration": 10448, + "declaration": 13401, "isOffset": false, "isSlot": false, - "src": "14095:7:50", + "src": "14095:7:63", "valueSize": 1 } } ], - "id": 10451, + "id": 13404, "nodeType": "InlineAssembly", "operations": "{\n let length := mload(_preBytes)\n switch eq(length, mload(_postBytes))\n case 1 {\n let cb := 1\n let mc := add(_preBytes, 0x20)\n let end := add(mc, length)\n for {\n let cc := add(_postBytes, 0x20)\n }\n eq(add(lt(mc, end), cb), 2)\n {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n }\n {\n if iszero(eq(mload(mc), mload(cc)))\n {\n success := 0\n cb := 0\n }\n }\n }\n default {\n success := 0\n }\n}", - "src": "12882:1265:50" + "src": "12882:1265:63" }, { "expression": { "argumentTypes": null, - "id": 10452, + "id": 13405, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10448, - "src": "14148:7:50", + "referencedDeclaration": 13401, + "src": "14148:7:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 10446, - "id": 10453, + "functionReturnParameters": 13399, + "id": 13406, "nodeType": "Return", - "src": "14141:14:50" + "src": "14141:14:63" } ] }, "documentation": null, - "id": 10455, + "id": 13408, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4784,16 +4784,16 @@ "name": "equal", "nodeType": "FunctionDefinition", "parameters": { - "id": 10443, + "id": 13396, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10440, + "id": 13393, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 10455, - "src": "12764:22:50", + "scope": 13408, + "src": "12764:22:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4801,10 +4801,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10439, + "id": 13392, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12764:5:50", + "src": "12764:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4815,11 +4815,11 @@ }, { "constant": false, - "id": 10442, + "id": 13395, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 10455, - "src": "12788:23:50", + "scope": 13408, + "src": "12788:23:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4827,10 +4827,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10441, + "id": 13394, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12788:5:50", + "src": "12788:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4840,20 +4840,20 @@ "visibility": "internal" } ], - "src": "12763:49:50" + "src": "12763:49:63" }, "payable": false, "returnParameters": { - "id": 10446, + "id": 13399, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10445, + "id": 13398, "name": "", "nodeType": "VariableDeclaration", - "scope": 10455, - "src": "12836:4:50", + "scope": 13408, + "src": "12836:4:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4861,10 +4861,10 @@ "typeString": "bool" }, "typeName": { - "id": 10444, + "id": 13397, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12836:4:50", + "src": "12836:4:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4874,32 +4874,32 @@ "visibility": "internal" } ], - "src": "12835:6:50" + "src": "12835:6:63" }, - "scope": 10473, - "src": "12749:1413:50", + "scope": 13426, + "src": "12749:1413:63", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10471, + "id": 13424, "nodeType": "Block", - "src": "14269:2556:50", + "src": "14269:2556:63", "statements": [ { "assignments": [ - 10465 + 13418 ], "declarations": [ { "constant": false, - "id": 10465, + "id": 13418, "name": "success", "nodeType": "VariableDeclaration", - "scope": 10472, - "src": "14279:12:50", + "scope": 13425, + "src": "14279:12:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4907,10 +4907,10 @@ "typeString": "bool" }, "typeName": { - "id": 10464, + "id": 13417, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14279:4:50", + "src": "14279:4:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4920,18 +4920,18 @@ "visibility": "internal" } ], - "id": 10467, + "id": 13420, "initialValue": { "argumentTypes": null, "hexValue": "74727565", - "id": 10466, + "id": 13419, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "14294:4:50", + "src": "14294:4:63", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4940,111 +4940,111 @@ "value": "true" }, "nodeType": "VariableDeclarationStatement", - "src": "14279:19:50" + "src": "14279:19:63" }, { "externalReferences": [ { "_preBytes_slot": { - "declaration": 10457, + "declaration": 13410, "isOffset": false, "isSlot": true, - "src": "14396:14:50", + "src": "14396:14:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10459, + "declaration": 13412, "isOffset": false, "isSlot": false, - "src": "14612:10:50", + "src": "14612:10:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10459, + "declaration": 13412, "isOffset": false, "isSlot": false, - "src": "15317:10:50", + "src": "15317:10:63", "valueSize": 1 } }, { "success": { - "declaration": 10465, + "declaration": 13418, "isOffset": false, "isSlot": false, - "src": "16527:7:50", + "src": "16527:7:63", "valueSize": 1 } }, { "_postBytes": { - "declaration": 10459, + "declaration": 13412, "isOffset": false, "isSlot": false, - "src": "16007:10:50", + "src": "16007:10:63", "valueSize": 1 } }, { "success": { - "declaration": 10465, + "declaration": 13418, "isOffset": false, "isSlot": false, - "src": "15410:7:50", + "src": "15410:7:63", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 10457, + "declaration": 13410, "isOffset": false, "isSlot": true, - "src": "15897:14:50", + "src": "15897:14:63", "valueSize": 1 } }, { "success": { - "declaration": 10465, + "declaration": 13418, "isOffset": false, "isSlot": false, - "src": "16758:7:50", + "src": "16758:7:63", "valueSize": 1 } } ], - "id": 10468, + "id": 13421, "nodeType": "InlineAssembly", "operations": "{\n let fslot := sload(_preBytes_slot)\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n switch eq(slength, mlength)\n case 1 {\n if iszero(iszero(slength))\n {\n switch lt(slength, 32)\n case 1 {\n fslot := mul(div(fslot, 0x100), 0x100)\n if iszero(eq(fslot, mload(add(_postBytes, 0x20))))\n {\n success := 0\n }\n }\n default {\n let cb := 1\n mstore(0x0, _preBytes_slot)\n let sc := keccak256(0x0, 0x20)\n let mc := add(_postBytes, 0x20)\n let end := add(mc, mlength)\n for {\n }\n eq(add(lt(mc, end), cb), 2)\n {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n }\n {\n if iszero(eq(sload(sc), mload(mc)))\n {\n success := 0\n cb := 0\n }\n }\n }\n }\n }\n default {\n success := 0\n }\n}", - "src": "14309:2501:50" + "src": "14309:2501:63" }, { "expression": { "argumentTypes": null, - "id": 10469, + "id": 13422, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10465, - "src": "16811:7:50", + "referencedDeclaration": 13418, + "src": "16811:7:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 10463, - "id": 10470, + "functionReturnParameters": 13416, + "id": 13423, "nodeType": "Return", - "src": "16804:14:50" + "src": "16804:14:63" } ] }, "documentation": null, - "id": 10472, + "id": 13425, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5052,16 +5052,16 @@ "name": "equalStorage", "nodeType": "FunctionDefinition", "parameters": { - "id": 10460, + "id": 13413, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10457, + "id": 13410, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 10472, - "src": "14190:23:50", + "scope": 13425, + "src": "14190:23:63", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -5069,10 +5069,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10456, + "id": 13409, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "14190:5:50", + "src": "14190:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5083,11 +5083,11 @@ }, { "constant": false, - "id": 10459, + "id": 13412, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 10472, - "src": "14215:23:50", + "scope": 13425, + "src": "14215:23:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5095,10 +5095,10 @@ "typeString": "bytes" }, "typeName": { - "id": 10458, + "id": 13411, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "14215:5:50", + "src": "14215:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5108,20 +5108,20 @@ "visibility": "internal" } ], - "src": "14189:50:50" + "src": "14189:50:63" }, "payable": false, "returnParameters": { - "id": 10463, + "id": 13416, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10462, + "id": 13415, "name": "", "nodeType": "VariableDeclaration", - "scope": 10472, - "src": "14263:4:50", + "scope": 13425, + "src": "14263:4:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5129,10 +5129,10 @@ "typeString": "bool" }, "typeName": { - "id": 10461, + "id": 13414, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14263:4:50", + "src": "14263:4:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5142,20 +5142,20 @@ "visibility": "internal" } ], - "src": "14262:6:50" + "src": "14262:6:63" }, - "scope": 10473, - "src": "14168:2657:50", + "scope": 13426, + "src": "14168:2657:63", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 10474, - "src": "326:16501:50" + "scope": 13427, + "src": "326:16501:63" } ], - "src": "299:16529:50" + "src": "299:16529:63" }, "compiler": { "name": "solc", @@ -5163,5 +5163,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.358Z" + "updatedAt": "2018-12-06T13:14:33.257Z" } \ No newline at end of file diff --git a/build/contracts/Crowdsale.json b/build/contracts/Crowdsale.json new file mode 100644 index 00000000..abe91007 --- /dev/null +++ b/build/contracts/Crowdsale.json @@ -0,0 +1,22419 @@ +{ + "contractName": "Crowdsale", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "stages", + "type": "Crowdsale.Stage[] storage" + }, + { + "name": "milestones", + "type": "Crowdsale.Milestone[] storage" + }, + { + "name": "parameters", + "type": "uint256[6][]" + }, + { + "name": "bonusConditions", + "type": "uint256[]" + } + ], + "name": "setStages", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "stages", + "type": "Crowdsale.Stage[] storage" + }, + { + "name": "stageIndex", + "type": "uint8" + }, + { + "name": "start", + "type": "uint8" + }, + { + "name": "end", + "type": "uint8" + }, + { + "name": "bonusConditions", + "type": "uint256[]" + } + ], + "name": "setStageBonusConditions", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "stages", + "type": "Crowdsale.Stage[] storage" + }, + { + "name": "milestones", + "type": "Crowdsale.Milestone[] storage" + }, + { + "name": "parameters", + "type": "uint256[4][]" + }, + { + "name": "offsets", + "type": "uint32[]" + }, + { + "name": "namesAndDescriptions", + "type": "bytes" + } + ], + "name": "setMilestones", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6114c7610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600436106100545763ffffffff60e060020a600035041663aa11ea238114610059578063ae1c6054146100cd578063e1231f1e146101a0575b600080fd5b81801561006557600080fd5b5060408051602060046084358181013583810280860185019096528085526100cb958335956024803560ff90811697604435821697606435909216963696929560a495949091019291829190850190849080828437509497506102b19650505050505050565b005b8180156100d957600080fd5b50604080516020600460443581810135838102850184019095528484526100cb94823594602480359536959460649492019190819060009085015b82821015610150576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001610114565b5050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094975061069b9650505050505050565b8180156101ac57600080fd5b50604080516020600460443581810135838102850184019095528484526100cb94823594602480359536959460649492019190819060009085015b828210156102235760408051608081810190925290808402870190600490839083908082843750505091835250506001909101906020016101e7565b5050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750610bf39650505050505050565b606080600060ff86161580156102c8575060ff8516155b1561035c576040805160008152602081019091528854899060ff8a169081106102ed57fe5b90600052602060002090600502016003019080519060200190610311929190611252565b506040805160008152602081019091528854899060ff8a1690811061033257fe5b90600052602060002090600502016004019080519060200190610356929190611252565b50610691565b835160ff8616111561036d57600080fd5b60ff8086169087161061037f57600080fd5b600186161561038d57600080fd5b600185161561039b57600080fd5b600260ff878703160460ff166040519080825280602002602001820160405280156103d0578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015610408578160200160208202803883390190505b509150600090505b8460ff168660ff16101561062257838660010160ff1681518110151561043257fe5b9060200190602002015173__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801561048f57600080fd5b505af41580156104a3573d6000803e3d6000fd5b505050506040513d60208110156104b957600080fd5b505115156104c657600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561050d57600080fd5b505af4158015610521573d6000803e3d6000fd5b505050506040513d602081101561053757600080fd5b50518451859060ff60018a011690811061054d57fe5b602090810290910101511061056157600080fd5b60008111156105aa57838660ff1681518110151561057b57fe5b90602001906020020151836001830381518110151561059657fe5b60209081029091010151106105aa57600080fd5b838660ff168151811015156105bb57fe5b9060200190602002015183828151811015156105d357fe5b602090810290910101528351849060ff60018901169081106105f157fe5b90602001906020020151828281518110151561060957fe5b6020908102909101015260029590950194600101610410565b82888860ff1681548110151561063457fe5b90600052602060002090600502016003019080519060200190610658929190611252565b5081888860ff1681548110151561066b57fe5b9060005260206000209060050201600401908051906020019061068f929190611252565b505b5050505050505050565b82546000908110156106f7578251839060001981019081106106b957fe5b60209081029190910181015101518454859060009081106106d657fe5b600091825260209091206005909102015463ffffffff16116106f757600080fd5b6000610703868261129d565b50600090505b82518160ff161015610bec57825163ffffffff90849060ff841690811061072c57fe5b602090810291909101015151111561074357600080fd5b825163ffffffff90849060ff841690811061075a57fe5b6020908102919091018101510151111561077357600080fd5b825163ffffffff90849060ff841690811061078a57fe5b60209081029190910101516060015111156107a457600080fd5b825160ff9084908383169081106107b757fe5b60209081029190910101516080015111156107d157600080fd5b825160ff9084908383169081106107e457fe5b602090810291909101015160a0015111156107fe57600080fd5b42838260ff1681518110151561081057fe5b6020908102919091010151511161082657600080fd5b828160ff1681518110151561083757fe5b60209081029190910181015101518351849060ff841690811061085657fe5b6020908102919091010151511061086c57600080fd5b60008160ff1611156108c357828160ff1681518110151561088957fe5b6020908102919091010151518351849060ff6000198501169081106108aa57fe5b602090810291909101810151015111156108c357600080fd5b828160ff168151811015156108d457fe5b602090810290910101516002602002015173__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801561093857600080fd5b505af415801561094c573d6000803e3d6000fd5b505050506040513d602081101561096257600080fd5b5051151561096f57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156109b657600080fd5b505af41580156109ca573d6000803e3d6000fd5b505050506040513d60208110156109e057600080fd5b50518351849060ff84169081106109f357fe5b60209081029190910101516040015110610a0c57600080fd5b8460c060405190810160405280858460ff16815181101515610a2a57fe5b6020908102919091018101515163ffffffff1682528651910190869060ff8616908110610a5357fe5b602090810290910101516001602002015163ffffffff168152602001858460ff16815181101515610a8057fe5b60209081029091010151600260200201518152602001858460ff16815181101515610aa757fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff000000001916640100000000918716919091021782556040860151938201939093556060850151600282018054909416941693909317909155608083015180519194610b7292600385019290910190611252565b5060a08201518051610b8e916004840191602090910190611252565b50505050610be4856001878054905003858460ff16815181101515610baf57fe5b6020908102919091010151608001518651879060ff8716908110610bcf57fe5b602090810291909101015160a00151866102b1565b600101610709565b5050505050565b60008060008060608060008b805490501115610c5f57886000815181101515610c1857fe5b6020908102919091010151518b548c906000198101908110610c3657fe5b6000918252602090912060059091020154640100000000900463ffffffff1610610c5f57600080fd5b6000610c6b8b826112ce565b50600095506000945060009350600092505b88518360ff16101561112d57885163ffffffff908a9060ff8616908110610ca057fe5b6020908102919091010151511115610cb757600080fd5b885163ffffffff908a9060ff8616908110610cce57fe5b60209081029190910181015101511115610ce757600080fd5b885163ffffffff908a9060ff8616908110610cfe57fe5b6020908102919091010151604001511115610d1857600080fd5b42898460ff16815181101515610d2a57fe5b60209081029190910101515111610d4057600080fd5b888360ff16815181101515610d5157fe5b60209081029190910101515189518a9060ff8616908110610d6e57fe5b602090810291909101810151015111610d8657600080fd5b888360ff16815181101515610d9757fe5b602090810291909101810151015189518a9060ff8616908110610db657fe5b60209081029190910101516040015111610dcf57600080fd5b60008360ff161115610e2657888360ff16815181101515610dec57fe5b60209081029190910101515189518a9060ff600019870116908110610e0d57fe5b60209081029190910101516040015110610e2657600080fd5b888360ff16815181101515610e3757fe5b60209081029190910181015160600151604080517f520b006600000000000000000000000000000000000000000000000000000000815260048101929092525173__Percent_______________________________9263520b00669260248082019391829003018186803b158015610eae57600080fd5b505af4158015610ec2573d6000803e3d6000fd5b505050506040513d6020811015610ed857600080fd5b50511515610ee557600080fd5b610f17868987815181101515610ef757fe5b9060200190602002015163ffffffff16896111b89092919063ffffffff16565b9150610f498886815181101515610f2a57fe5b9060200190602002015163ffffffff168761123990919063ffffffff16565b9550610f60868987600101815181101515610ef757fe5b9050610f768886600101815181101515610f2a57fe5b9550610f8985600263ffffffff61123916565b9450610fb5898460ff16815181101515610f9f57fe5b6020908102919091010151606001518590611239565b93508960c0604051908101604052808b8660ff16815181101515610fd557fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff8816908110610ffe57fe5b602090810290910101516003602002015181526020018b8660ff1681518110151561102557fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff1681518110151561105257fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff000000001993909516931692909217169190911790556080830151805161110192600385019201906112fa565b5060a0820151805161111d9160048401916020909101906112fa565b505060019094019350610c7d9050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561117457600080fd5b505af4158015611188573d6000803e3d6000fd5b505050506040513d602081101561119e57600080fd5b505184146111ab57600080fd5b5050505050505050505050565b6060808284018551101515156111cd57600080fd5b821580156111e657604051915060208201604052611230565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561121f578051835260209283019201611207565b5050858452601f01601f1916604052505b50949350505050565b60008282018381101561124b57600080fd5b9392505050565b82805482825590600052602060002090810192821561128d579160200282015b8281111561128d578251825591602001919060010190611272565b50611299929150611367565b5090565b8154818355818111156112c9576005028160050283600052602060002091820191016112c99190611384565b505050565b8154818355818111156112c9576005028160050283600052602060002091820191016112c991906113dd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061133b57805160ff191683800117855561128d565b8280016001018555821561128d579182018281111561128d578251825591602001919060010190611272565b61138191905b80821115611299576000815560010161136d565b90565b61138191905b8082111561129957805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff191690556113c66003830182611436565b6113d4600483016000611436565b5060050161138a565b61138191905b8082111561129957805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff1916905561141f6003830182611457565b61142d600483016000611457565b506005016113e3565b50805460008255906000526020600020908101906114549190611367565b50565b50805460018160011615610100020316600290046000825580601f1061147d5750611454565b601f01602090049060005260206000209081019061145491906113675600a165627a7a72305820fdda2cb47eb636cb186ccf682f338a262fd13df3bacf646a0920def0151c963a0029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100545763ffffffff60e060020a600035041663aa11ea238114610059578063ae1c6054146100cd578063e1231f1e146101a0575b600080fd5b81801561006557600080fd5b5060408051602060046084358181013583810280860185019096528085526100cb958335956024803560ff90811697604435821697606435909216963696929560a495949091019291829190850190849080828437509497506102b19650505050505050565b005b8180156100d957600080fd5b50604080516020600460443581810135838102850184019095528484526100cb94823594602480359536959460649492019190819060009085015b82821015610150576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001610114565b5050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094975061069b9650505050505050565b8180156101ac57600080fd5b50604080516020600460443581810135838102850184019095528484526100cb94823594602480359536959460649492019190819060009085015b828210156102235760408051608081810190925290808402870190600490839083908082843750505091835250506001909101906020016101e7565b5050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750610bf39650505050505050565b606080600060ff86161580156102c8575060ff8516155b1561035c576040805160008152602081019091528854899060ff8a169081106102ed57fe5b90600052602060002090600502016003019080519060200190610311929190611252565b506040805160008152602081019091528854899060ff8a1690811061033257fe5b90600052602060002090600502016004019080519060200190610356929190611252565b50610691565b835160ff8616111561036d57600080fd5b60ff8086169087161061037f57600080fd5b600186161561038d57600080fd5b600185161561039b57600080fd5b600260ff878703160460ff166040519080825280602002602001820160405280156103d0578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015610408578160200160208202803883390190505b509150600090505b8460ff168660ff16101561062257838660010160ff1681518110151561043257fe5b9060200190602002015173__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801561048f57600080fd5b505af41580156104a3573d6000803e3d6000fd5b505050506040513d60208110156104b957600080fd5b505115156104c657600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561050d57600080fd5b505af4158015610521573d6000803e3d6000fd5b505050506040513d602081101561053757600080fd5b50518451859060ff60018a011690811061054d57fe5b602090810290910101511061056157600080fd5b60008111156105aa57838660ff1681518110151561057b57fe5b90602001906020020151836001830381518110151561059657fe5b60209081029091010151106105aa57600080fd5b838660ff168151811015156105bb57fe5b9060200190602002015183828151811015156105d357fe5b602090810290910101528351849060ff60018901169081106105f157fe5b90602001906020020151828281518110151561060957fe5b6020908102909101015260029590950194600101610410565b82888860ff1681548110151561063457fe5b90600052602060002090600502016003019080519060200190610658929190611252565b5081888860ff1681548110151561066b57fe5b9060005260206000209060050201600401908051906020019061068f929190611252565b505b5050505050505050565b82546000908110156106f7578251839060001981019081106106b957fe5b60209081029190910181015101518454859060009081106106d657fe5b600091825260209091206005909102015463ffffffff16116106f757600080fd5b6000610703868261129d565b50600090505b82518160ff161015610bec57825163ffffffff90849060ff841690811061072c57fe5b602090810291909101015151111561074357600080fd5b825163ffffffff90849060ff841690811061075a57fe5b6020908102919091018101510151111561077357600080fd5b825163ffffffff90849060ff841690811061078a57fe5b60209081029190910101516060015111156107a457600080fd5b825160ff9084908383169081106107b757fe5b60209081029190910101516080015111156107d157600080fd5b825160ff9084908383169081106107e457fe5b602090810291909101015160a0015111156107fe57600080fd5b42838260ff1681518110151561081057fe5b6020908102919091010151511161082657600080fd5b828160ff1681518110151561083757fe5b60209081029190910181015101518351849060ff841690811061085657fe5b6020908102919091010151511061086c57600080fd5b60008160ff1611156108c357828160ff1681518110151561088957fe5b6020908102919091010151518351849060ff6000198501169081106108aa57fe5b602090810291909101810151015111156108c357600080fd5b828160ff168151811015156108d457fe5b602090810290910101516002602002015173__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801561093857600080fd5b505af415801561094c573d6000803e3d6000fd5b505050506040513d602081101561096257600080fd5b5051151561096f57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156109b657600080fd5b505af41580156109ca573d6000803e3d6000fd5b505050506040513d60208110156109e057600080fd5b50518351849060ff84169081106109f357fe5b60209081029190910101516040015110610a0c57600080fd5b8460c060405190810160405280858460ff16815181101515610a2a57fe5b6020908102919091018101515163ffffffff1682528651910190869060ff8616908110610a5357fe5b602090810290910101516001602002015163ffffffff168152602001858460ff16815181101515610a8057fe5b60209081029091010151600260200201518152602001858460ff16815181101515610aa757fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff000000001916640100000000918716919091021782556040860151938201939093556060850151600282018054909416941693909317909155608083015180519194610b7292600385019290910190611252565b5060a08201518051610b8e916004840191602090910190611252565b50505050610be4856001878054905003858460ff16815181101515610baf57fe5b6020908102919091010151608001518651879060ff8716908110610bcf57fe5b602090810291909101015160a00151866102b1565b600101610709565b5050505050565b60008060008060608060008b805490501115610c5f57886000815181101515610c1857fe5b6020908102919091010151518b548c906000198101908110610c3657fe5b6000918252602090912060059091020154640100000000900463ffffffff1610610c5f57600080fd5b6000610c6b8b826112ce565b50600095506000945060009350600092505b88518360ff16101561112d57885163ffffffff908a9060ff8616908110610ca057fe5b6020908102919091010151511115610cb757600080fd5b885163ffffffff908a9060ff8616908110610cce57fe5b60209081029190910181015101511115610ce757600080fd5b885163ffffffff908a9060ff8616908110610cfe57fe5b6020908102919091010151604001511115610d1857600080fd5b42898460ff16815181101515610d2a57fe5b60209081029190910101515111610d4057600080fd5b888360ff16815181101515610d5157fe5b60209081029190910101515189518a9060ff8616908110610d6e57fe5b602090810291909101810151015111610d8657600080fd5b888360ff16815181101515610d9757fe5b602090810291909101810151015189518a9060ff8616908110610db657fe5b60209081029190910101516040015111610dcf57600080fd5b60008360ff161115610e2657888360ff16815181101515610dec57fe5b60209081029190910101515189518a9060ff600019870116908110610e0d57fe5b60209081029190910101516040015110610e2657600080fd5b888360ff16815181101515610e3757fe5b60209081029190910181015160600151604080517f520b006600000000000000000000000000000000000000000000000000000000815260048101929092525173__Percent_______________________________9263520b00669260248082019391829003018186803b158015610eae57600080fd5b505af4158015610ec2573d6000803e3d6000fd5b505050506040513d6020811015610ed857600080fd5b50511515610ee557600080fd5b610f17868987815181101515610ef757fe5b9060200190602002015163ffffffff16896111b89092919063ffffffff16565b9150610f498886815181101515610f2a57fe5b9060200190602002015163ffffffff168761123990919063ffffffff16565b9550610f60868987600101815181101515610ef757fe5b9050610f768886600101815181101515610f2a57fe5b9550610f8985600263ffffffff61123916565b9450610fb5898460ff16815181101515610f9f57fe5b6020908102919091010151606001518590611239565b93508960c0604051908101604052808b8660ff16815181101515610fd557fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff8816908110610ffe57fe5b602090810290910101516003602002015181526020018b8660ff1681518110151561102557fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff1681518110151561105257fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff000000001993909516931692909217169190911790556080830151805161110192600385019201906112fa565b5060a0820151805161111d9160048401916020909101906112fa565b505060019094019350610c7d9050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561117457600080fd5b505af4158015611188573d6000803e3d6000fd5b505050506040513d602081101561119e57600080fd5b505184146111ab57600080fd5b5050505050505050505050565b6060808284018551101515156111cd57600080fd5b821580156111e657604051915060208201604052611230565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561121f578051835260209283019201611207565b5050858452601f01601f1916604052505b50949350505050565b60008282018381101561124b57600080fd5b9392505050565b82805482825590600052602060002090810192821561128d579160200282015b8281111561128d578251825591602001919060010190611272565b50611299929150611367565b5090565b8154818355818111156112c9576005028160050283600052602060002091820191016112c99190611384565b505050565b8154818355818111156112c9576005028160050283600052602060002091820191016112c991906113dd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061133b57805160ff191683800117855561128d565b8280016001018555821561128d579182018281111561128d578251825591602001919060010190611272565b61138191905b80821115611299576000815560010161136d565b90565b61138191905b8082111561129957805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff191690556113c66003830182611436565b6113d4600483016000611436565b5060050161138a565b61138191905b8082111561129957805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff1916905561141f6003830182611457565b61142d600483016000611457565b506005016113e3565b50805460008255906000526020600020908101906114549190611367565b50565b50805460018160011615610100020316600290046000825580601f1061147d5750611454565b601f01602090049060005260206000209081019061145491906113675600a165627a7a72305820fdda2cb47eb636cb186ccf682f338a262fd13df3bacf646a0920def0151c963a0029", + "sourceMap": "165:6311:17:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "165:6311:17:-;;;;;;;;;;;;-1:-1:-1;;;165:6311:17;;;;;;;;;;;;;;;;;;;;;;;2954:1263;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2954:1263:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2954:1263:17;;-1:-1:-1;2954:1263:17;;-1:-1:-1;;;;;;;2954:1263:17;;;1049:1733;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1049:1733:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1049:1733:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1049:1733:17;;;-1:-1:-1;;1049:1733:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1049:1733:17;;-1:-1:-1;1049:1733:17;;-1:-1:-1;;;;;;;1049:1733:17;4640:1834;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4640:1834:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4640:1834:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4640:1834:17;;;-1:-1:-1;;4640:1834:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4640:1834:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4640:1834:17;;;;-1:-1:-1;4640:1834:17;-1:-1:-1;4640:1834:17;;-1:-1:-1;4640:1834:17;;;;;;;;-1:-1:-1;4640:1834:17;;-1:-1:-1;4640:1834:17;;-1:-1:-1;;;;;;;4640:1834:17;2954:1263;3480:24;;3609:6;3144:10;;;;:22;;;;-1:-1:-1;3158:8:17;;;;3144:22;3140:187;;;3220:13;;;3231:1;3220:13;;;;;;;;3182:18;;:6;;:18;;;;;;;;;;;;;;;;;;;;:35;;:51;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3282:13:17;;;3293:1;3282:13;;;;;;;;3247:18;;:6;;:18;;;;;;;;;;;;;;;;;;;;:32;;:48;;;;;;;;;;;;:::i;:::-;;3310:7;;3140:187;3352:22;;3345:29;;;;;3337:38;;;;;;3393:11;;;;;;;;3385:20;;;;;;3423:9;;;:14;3415:23;;;;;;3456:7;;;:12;3448:21;;;;;;3534:1;3518:17;3519:11;;;3518:17;;3507:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;3507:29:17;-1:-1:-1;3480:56:17;-1:-1:-1;3597:1:17;3581:17;3582:11;;;3581:17;;3570:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;3570:29:17;;3546:53;;3618:1;3609:10;;3630:470;3645:3;3637:11;;:5;:11;;;3630:470;;;3699:15;3715:5;3723:1;3715:9;3699:26;;;;;;;;;;;;;;;;;;;;:36;;;;:38;;;;;-1:-1:-1;;;3699:38:17;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3699:38:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3699:38:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3699:38:17;3691:47;;;;;;;;3789:7;:11;:13;;;;;-1:-1:-1;;;3789:13:17;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3789:13:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3789:13:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3789:13:17;3760:26;;:15;;:26;3784:1;3776:9;;3760:26;;;;;;;;;;;;;;;;;:42;3752:51;;;;;;3856:1;3852;:5;3848:95;;;3905:15;3921:5;3905:22;;;;;;;;;;;;;;;;;;;;3885:10;3900:1;3896;:5;3885:17;;;;;;;;;;;;;;;;;;;:42;3877:51;;;;;;3973:15;3989:5;3973:22;;;;;;;;;;;;;;;;;;;;3957:10;3968:1;3957:13;;;;;;;;;;;;;;;;;;:38;4022:26;;:15;;:26;4046:1;4038:9;;4022:26;;;;;;;;;;;;;;;;4009:7;4017:1;4009:10;;;;;;;;;;;;;;;;;;:39;4088:1;4079:10;;;;;4062:3;;3630:470;;;4148:10;4110:6;4117:10;4110:18;;;;;;;;;;;;;;;;;;;;;;:35;;:48;;;;;;;;;;;;:::i;:::-;;4203:7;4168:6;4175:10;4168:18;;;;;;;;;;;;;;;;;;;;;;:32;;:42;;;;;;;;;;;;:::i;:::-;;2954:1263;;;;;;;;;:::o;1049:1733::-;1229:17;;1475:7;;1229:21;-1:-1:-1;1225:207:17;;;1395:17;;1384:10;;-1:-1:-1;;1395:21:17;;;1384:33;;;;;;;;;;;;;;;;;:36;;1360:13;;:10;;1371:1;;1360:13;;;;;;;;;;;;;;;;;;;:21;;;:60;1352:69;;;;;;1458:1;1442:17;:6;1458:1;1442:17;:::i;:::-;;1485:1;1475:11;;1470:1306;1492:10;:17;1488:1;:21;;;1470:1306;;;1568:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:31;;1560:40;;;;;;1622:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:31;;1614:40;;;;;;1676:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:31;;1668:40;;;;;;1730:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:30;;1722:39;;;;;;1783:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:30;;1775:39;;;;;;1883:3;1864:10;1875:1;1864:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;1856:31;;;;;;1928:10;1939:1;1928:13;;;;;;;;;;;;;;;;;;;;;;;:16;;1909:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:35;1901:44;;;;;;1968:1;1964;:5;;;1960:93;;;2021:10;2032:1;2021:13;;;;;;;;;;;;;;;;;;;;;;:16;1997:17;;:10;;:17;-1:-1:-1;;2008:5:17;;1997:17;;;;;;;;;;;;;;;;;;;:20;;:40;;1989:49;;;;;;2105:10;2116:1;2105:13;;;;;;;;;;;;;;;;;;;;;2119:1;2105:16;;;;:26;;;;:28;;;;;-1:-1:-1;;;2105:28:17;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2105:28:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2105:28:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2105:28:17;2097:37;;;;;;;;2175:7;:11;:13;;;;;-1:-1:-1;;;2175:13:17;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2175:13:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2175:13:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2175:13:17;2156;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:32;2148:41;;;;;;2204:6;2216:315;;;;;;;;;2258:10;2269:1;2258:13;;;;;;;;;;;;;;;;;;;;;;;:16;2216:315;;;;2309:13;;2216:315;;;2309:10;;:13;;;;;;;;;;;;;;;;;;;2323:1;2309:16;;;;2216:315;;;;;;2354:10;2365:1;2354:13;;;;;;;;;;;;;;;;;;;;;2368:1;2354:16;;;;2216:315;;;;2404:10;2415:1;2404:13;;;;;;;;;;;;;;;;;;;;;;;:16;;;2216:315;;;;2457:13;;;2468:1;2457:13;;;;;;;;2216:315;;;;;;;2503:13;;;;;;;;;;2216:315;;;-1:-1:-1;2216:315:17;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;2204:328:17;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2204:328:17;;;;;;;;-1:-1:-1;;2204:328:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:18:-1;;2204:328:17;;;;;;;;;;;:::i;:::-;-1:-1:-1;2204:328:17;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2547:218;2588:6;2634:1;2618:6;:13;;;;:17;2660:10;2671:1;2660:13;;;;;;;;;;;;;;;;;;;;;;:16;;;2701:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;2736:15;2547:23;:218::i;:::-;1511:3;;1470:1306;;;1049:1733;;;;;:::o;4640:1834::-;5001:11;5026:6;5046:18;5084:7;5715:17;5840:24;4870:1;4854:6;:13;;;;:17;4850:109;;;4931:10;4942:1;4931:13;;;;;;;;;;;;;;;;;;;;:16;4902:13;;;;-1:-1:-1;;4902:17:17;;;4895:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:52;4887:61;;;;;;4989:1;4969:21;:10;4989:1;4969:21;:::i;:::-;;5015:1;5001:15;;5035:1;5026:10;;5067:1;5046:22;;5094:1;5084:11;;5079:1339;5101:10;:17;5097:1;:21;;;5079:1339;;;5177:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:31;;5169:40;;;;;;5231:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:31;;5223:40;;;;;;5285:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:31;;5277:40;;;;;;5386:3;5367:10;5378:1;5367:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;5359:31;;;;;;5431:10;5442:1;5431:13;;;;;;;;;;;;;;;;;;;;;;:16;5412:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:35;5404:44;;;;;;5489:10;5500:1;5489:13;;;;;;;;;;;;;;;;;;;;;;;:16;;5470:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:35;5462:44;;;;;;5529:1;5525;:5;;;5521:92;;;5581:10;5592:1;5581:13;;;;;;;;;;;;;;;;;;;;;;:16;5558:17;;:10;;:17;-1:-1:-1;;5569:5:17;;5558:17;;;;;;;;;;;;;;;;;;:20;;;:39;5550:48;;;;;;5671:10;5682:1;5671:13;;;;;;;;;;;;;;;;;;;;;;;:16;;;:28;;;;;;;;;;;;;;:26;;;;:28;;;;;;;;;;;:26;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;5671:28:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5671:28:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5671:28:17;5663:37;;;;;;;;5735:46;5762:6;5770:7;5778:1;5770:10;;;;;;;;;;;;;;;;;;5735:46;;:20;:26;;:46;;;;;:::i;:::-;5715:66;;5804:22;5815:7;5823:1;5815:10;;;;;;;;;;;;;;;;;;5804:22;;:6;:10;;:22;;;;:::i;:::-;5795:31;;5867:50;5894:6;5902:7;5910:1;5914;5910:5;5902:14;;;;;;;;;5867:50;5840:77;;5940:26;5951:7;5959:1;5963;5959:5;5951:14;;;;;;;;;5940:26;5931:35;-1:-1:-1;5984:8:17;:1;5990;5984:8;:5;:8;:::i;:::-;5980:12;;6023:35;6041:10;6052:1;6041:13;;;;;;;;;;;;;;;;;;;;;;:16;;;6023:13;;:17;:35::i;:::-;6007:51;;6073:10;6089:317;;;;;;;;;6134:10;6145:1;6134:13;;;;;;;;;;;;;;;;;;;;;;;:16;6089:317;;;;6186:13;;6089:317;;;6186:10;;:13;;;;;;;;;;;;;;;;;;;6200:1;6186:16;;;;6089:317;;;;6241:10;6252:1;6241:13;;;;;;;;;;;;;;;;;;;;;6255:1;6241:16;;;;6089:317;;;;;;6302:10;6313:1;6302:13;;;;;;;;;;;;;;;;;;;;;6316:1;6302:16;;;;;;;;;6089:317;;;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;6073:334:17;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6073:334:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6073:334:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6073:334:17;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;5120:3:17;;;;;-1:-1:-1;5079:1339:17;;-1:-1:-1;5079:1339:17;;6453:7;:11;:13;;;;;-1:-1:-1;;;6453:13:17;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6453:13:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6453:13:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6453:13:17;6436:30;;6428:39;;;;;;4640:1834;;;;;;;;;;;:::o;9374:2465:63:-;9454:5;9526:22;9506:7;9497:6;:16;9479:6;:13;:35;;9471:44;;;;;;;;9589:15;;9617:1967;;;;11725:4;11719:11;11706:24;;11776:4;11765:9;11761:20;11755:4;11748:34;9582:2214;;9617:1967;9799:4;9793:11;9780:24;;10458:2;10449:7;10445:16;10840:9;10833:17;10827:4;10823:28;10811:9;10800;10796:25;10792:60;10888:7;10884:2;10880:16;11140:6;11126:9;11119:17;11113:4;11109:28;11097:9;11089:6;11085:22;11081:57;11077:70;10914:425;11173:3;11169:2;11166:11;10914:425;;;11311:9;;11300:21;;11214:4;11206:13;;;;11246;10914:425;;;-1:-1:-1;;11357:26:63;;;11565:2;11548:11;-1:-1:-1;;11544:25:63;11538:4;11531:39;-1:-1:-1;9582:2214:63;-1:-1:-1;11823:9:63;9374:2465;-1:-1:-1;;;;9374:2465:63:o;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;;1397:1;1272:131;-1:-1:-1;;;1272:131:54:o;165:6311:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;165:6311:17;;;-1:-1:-1;165:6311:17;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;165:6311:17;;;;;;;;;;;;;;;-1:-1:-1;;165:6311:17;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;165:6311:17;;;;;;;;;;;;;;;-1:-1:-1;;165:6311:17;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"solidity-bytes-utils/contracts/BytesLib.sol\";\nimport \"./Percent.sol\";\n\nlibrary Crowdsale {\n using SafeMath for uint;\n using Percent for uint;\n using BytesLib for bytes;\n\n struct Stage {\n uint32 startDate;\n uint32 endDate;\n uint discount;\n uint32 vesting;\n uint[] volumeBoundaries;\n uint[] volumeBonuses;\n }\n\n struct Milestone {\n uint32 endDate;\n uint tranchePercent;\n uint32 voteEndDate;\n uint32 withdrawalWindow;\n bytes name;\n bytes description;\n }\n\n /**\n * @dev Update stages\n * @param parameters List of primary parameters:\n * [\n * uint32 startDate,\n * uint32 endDate,\n * uint discount,\n * uint32 vesting,\n * uint8 startIndexOfBonusConditions\n * uint8 endIndexOfBonusConditions\n * ],\n * @param bonusConditions List of bonus conditions:\n * [uint boundary, uint bonus, ...]\n */\n function setStages(\n Stage[] storage stages,\n Milestone[] storage milestones,\n uint[6][] parameters,\n uint[] bonusConditions\n ) public {\n if (milestones.length > 0) {\n // end date of firs milestone must be greater then end date of last stage\n require(milestones[0].endDate > parameters[parameters.length - 1][1]);\n }\n\n stages.length = 0;\n\n for (uint8 i = 0; i < parameters.length; i++) {\n // check overflow\n require(parameters[i][0] <= uint32(- 1));\n require(parameters[i][1] <= uint32(- 1));\n require(parameters[i][3] <= uint32(- 1));\n require(parameters[i][4] <= uint8(- 1));\n require(parameters[i][5] <= uint8(- 1));\n\n // check dates\n require(parameters[i][0] > now);\n require(parameters[i][0] < parameters[i][1]);\n\n if (i > 0) {\n require(parameters[i - 1][1] <= parameters[i][0]);\n }\n\n // check discount\n require(parameters[i][2].isPercent());\n require(parameters[i][2] < Percent.MAX());\n\n stages.push(Stage({\n startDate: uint32(parameters[i][0]),\n endDate: uint32(parameters[i][1]),\n discount: parameters[i][2],\n vesting: uint32(parameters[i][3]),\n volumeBoundaries: new uint[](0),\n volumeBonuses: new uint[](0)\n }));\n\n setStageBonusConditions(\n stages,\n uint8(stages.length - 1),\n uint8(parameters[i][4]),\n uint8(parameters[i][5]),\n bonusConditions\n );\n }\n }\n\n /**\n * @dev Set stage bonus conditions by stage index\n * @param bonusConditions List of bonus conditions:\n * [uint boundary, uint bonus, ...]\n */\n function setStageBonusConditions(\n Stage[] storage stages,\n uint8 stageIndex,\n uint8 start,\n uint8 end,\n uint[] bonusConditions\n ) public {\n if (start == 0 && end == 0) {\n stages[stageIndex].volumeBoundaries = new uint[](0);\n stages[stageIndex].volumeBonuses = new uint[](0);\n\n return;\n }\n\n require(end <= bonusConditions.length);\n require(start < end);\n require(start % 2 == 0);\n require(end % 2 == 0);\n\n uint[] memory boundaries = new uint[]((end - start) / 2);\n uint[] memory bonuses = new uint[]((end - start) / 2);\n uint k = 0;\n\n while (start < end) {\n // check bonus\n require(bonusConditions[start + 1].isPercent());\n require(bonusConditions[start + 1] < Percent.MAX());\n\n // check boundary\n if (k > 0) {\n require(boundaries[k - 1] < bonusConditions[start]);\n }\n\n boundaries[k] = bonusConditions[start];\n bonuses[k] = bonusConditions[start + 1];\n k++;\n start += 2;\n }\n\n stages[stageIndex].volumeBoundaries = boundaries;\n stages[stageIndex].volumeBonuses = bonuses;\n }\n\n /**\n * @dev Update milestones\n * @param parameters List of primary parameters:\n * [\n * uint32 endDate,\n * uint32 voteEndDate,\n * uint32 withdrawalWindow,\n * uint tranchPercent\n * ]\n * @param offsets Offsets of names and descriptions in namesAndDescriptions:\n * [uint32 offset1, uint32 offset2, ...]\n * @param namesAndDescriptions Names and descriptions\n */\n function setMilestones(\n Stage[] storage stages,\n Milestone[] storage milestones,\n uint[4][] parameters,\n uint32[] offsets,\n bytes namesAndDescriptions\n ) public {\n if (stages.length > 0) {\n require(stages[stages.length - 1].endDate < parameters[0][0]);\n }\n\n milestones.length = 0;\n\n uint offset = 0;\n uint k = 0;\n uint totalPercents = 0;\n\n for (uint8 i = 0; i < parameters.length; i++) {\n // check overflow\n require(parameters[i][0] <= uint32(- 1));\n require(parameters[i][1] <= uint32(- 1));\n require(parameters[i][2] <= uint32(- 1));\n\n // check dates\n require(parameters[i][0] > now);\n require(parameters[i][1] > parameters[i][0]);\n require(parameters[i][2] > parameters[i][1]);\n\n if (i > 0) {\n require(parameters[i - 1][2] < parameters[i][0]);\n }\n\n // check tranch percent\n require(parameters[i][3].isPercent());\n\n bytes memory name = namesAndDescriptions.slice(offset, offsets[k]);\n offset = offset.add(offsets[k]);\n bytes memory description = namesAndDescriptions.slice(offset, offsets[k + 1]);\n offset = offset.add(offsets[k + 1]);\n k = k.add(2);\n\n totalPercents = totalPercents.add(parameters[i][3]);\n\n milestones.push(Milestone({\n endDate : uint32(parameters[i][0]),\n tranchePercent : parameters[i][3],\n voteEndDate : uint32(parameters[i][1]),\n withdrawalWindow : uint32(parameters[i][2]),\n name : name,\n description : description\n }));\n }\n\n require(totalPercents == Percent.MAX());\n }\n}\n", + "sourcePath": "/home/circleci/code/contracts/libs/Crowdsale.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/libs/Crowdsale.sol", + "exportedSymbols": { + "Crowdsale": [ + 5200 + ] + }, + "id": 5201, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4422, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:17" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 4423, + "nodeType": "ImportDirective", + "scope": 5201, + "sourceUnit": 12389, + "src": "26:59:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", + "file": "solidity-bytes-utils/contracts/BytesLib.sol", + "id": 4424, + "nodeType": "ImportDirective", + "scope": 5201, + "sourceUnit": 13427, + "src": "86:53:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", + "file": "./Percent.sol", + "id": 4425, + "nodeType": "ImportDirective", + "scope": 5201, + "sourceUnit": 6432, + "src": "140:23:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5200, + "linearizedBaseContracts": [ + 5200 + ], + "name": "Crowdsale", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4428, + "libraryName": { + "contractScope": null, + "id": 4426, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "195:8:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "189:24:17", + "typeName": { + "id": 4427, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "208:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 4431, + "libraryName": { + "contractScope": null, + "id": 4429, + "name": "Percent", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6431, + "src": "224:7:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Percent_$6431", + "typeString": "library Percent" + } + }, + "nodeType": "UsingForDirective", + "src": "218:23:17", + "typeName": { + "id": 4430, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "236:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 4434, + "libraryName": { + "contractScope": null, + "id": 4432, + "name": "BytesLib", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13426, + "src": "252:8:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BytesLib_$13426", + "typeString": "library BytesLib" + } + }, + "nodeType": "UsingForDirective", + "src": "246:25:17", + "typeName": { + "id": 4433, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "265:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + { + "canonicalName": "Crowdsale.Stage", + "id": 4449, + "members": [ + { + "constant": false, + "id": 4436, + "name": "startDate", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "300:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4435, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "300:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4438, + "name": "endDate", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "326:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4437, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "326:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4440, + "name": "discount", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "350:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4439, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "350:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4442, + "name": "vesting", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "373:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4441, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "373:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4445, + "name": "volumeBoundaries", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "397:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4443, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "397:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4444, + "length": null, + "nodeType": "ArrayTypeName", + "src": "397:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4448, + "name": "volumeBonuses", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "430:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4446, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "430:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4447, + "length": null, + "nodeType": "ArrayTypeName", + "src": "430:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Stage", + "nodeType": "StructDefinition", + "scope": 5200, + "src": "277:180:17", + "visibility": "public" + }, + { + "canonicalName": "Crowdsale.Milestone", + "id": 4462, + "members": [ + { + "constant": false, + "id": 4451, + "name": "endDate", + "nodeType": "VariableDeclaration", + "scope": 4462, + "src": "490:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4450, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "490:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4453, + "name": "tranchePercent", + "nodeType": "VariableDeclaration", + "scope": 4462, + "src": "514:19:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4452, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "514:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4455, + "name": "voteEndDate", + "nodeType": "VariableDeclaration", + "scope": 4462, + "src": "543:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4454, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "543:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4457, + "name": "withdrawalWindow", + "nodeType": "VariableDeclaration", + "scope": 4462, + "src": "571:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4456, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "571:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4459, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 4462, + "src": "604:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4458, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "604:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4461, + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 4462, + "src": "624:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4460, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "624:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Milestone", + "nodeType": "StructDefinition", + "scope": 5200, + "src": "463:185:17", + "visibility": "public" + }, + { + "body": { + "id": 4720, + "nodeType": "Block", + "src": "1215:1567:17", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4479, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4468, + "src": "1229:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone storage ref[] storage pointer" + } + }, + "id": 4480, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1229:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1249:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1229:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4500, + "nodeType": "IfStatement", + "src": "1225:207:17", + "trueBody": { + "id": 4499, + "nodeType": "Block", + "src": "1252:180:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4484, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4468, + "src": "1360:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone storage ref[] storage pointer" + } + }, + "id": 4486, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1371:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1360:13:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" + } + }, + "id": 4487, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "endDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4451, + "src": "1360:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4488, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1384:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4493, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4489, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1395:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1395:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1415:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1395:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1384:33:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4495, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1418:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1384:36:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1360:60:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4483, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1352:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1352:69:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4498, + "nodeType": "ExpressionStatement", + "src": "1352:69:17" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 4505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4501, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4465, + "src": "1442:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4503, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1442:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 4504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1458:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1442:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4506, + "nodeType": "ExpressionStatement", + "src": "1442:17:17" + }, + { + "body": { + "id": 4718, + "nodeType": "Block", + "src": "1516:1260:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4519, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1568:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4521, + "indexExpression": { + "argumentTypes": null, + "id": 4520, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1579:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1568:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4523, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1582:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1568:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1595:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1597:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1588:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1588:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1568:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4518, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1560:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1560:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4530, + "nodeType": "ExpressionStatement", + "src": "1560:40:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4532, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1622:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4534, + "indexExpression": { + "argumentTypes": null, + "id": 4533, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1633:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1622:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4536, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1636:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1622:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1649:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1651:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1642:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1642:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1622:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4531, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1614:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1614:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4543, + "nodeType": "ExpressionStatement", + "src": "1614:40:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4545, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1676:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4547, + "indexExpression": { + "argumentTypes": null, + "id": 4546, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1687:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1676:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4549, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 4548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1690:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1676:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1703:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4551, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1705:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1696:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1696:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1676:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4544, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1668:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1668:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4556, + "nodeType": "ExpressionStatement", + "src": "1668:40:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4558, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1730:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4560, + "indexExpression": { + "argumentTypes": null, + "id": 4559, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1741:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1730:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4562, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 4561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1744:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1730:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1756:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1758:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1750:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 4566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1750:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1730:30:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4557, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1722:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1722:39:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4569, + "nodeType": "ExpressionStatement", + "src": "1722:39:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4571, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1783:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4573, + "indexExpression": { + "argumentTypes": null, + "id": 4572, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1794:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1783:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4575, + "indexExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 4574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1797:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1783:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1809:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1811:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1803:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 4579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1803:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1783:30:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4570, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1775:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1775:39:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4582, + "nodeType": "ExpressionStatement", + "src": "1775:39:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4584, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1864:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4586, + "indexExpression": { + "argumentTypes": null, + "id": 4585, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1875:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1864:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4588, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1878:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1864:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 4589, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "1883:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1864:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4583, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1856:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1856:31:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4592, + "nodeType": "ExpressionStatement", + "src": "1856:31:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4594, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1909:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4596, + "indexExpression": { + "argumentTypes": null, + "id": 4595, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1920:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1909:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4598, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1923:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1909:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4599, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1928:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4601, + "indexExpression": { + "argumentTypes": null, + "id": 4600, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1939:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1928:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4603, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1942:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1928:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1909:35:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4593, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1901:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1901:44:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4606, + "nodeType": "ExpressionStatement", + "src": "1901:44:17" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4607, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1964:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1968:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1964:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4627, + "nodeType": "IfStatement", + "src": "1960:93:17", + "trueBody": { + "id": 4626, + "nodeType": "Block", + "src": "1971:82:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4611, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1997:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4615, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4612, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2008:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2012:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2008:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1997:17:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4617, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2015:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1997:20:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4618, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2021:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4620, + "indexExpression": { + "argumentTypes": null, + "id": 4619, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2032:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2021:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4622, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2035:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2021:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1997:40:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4610, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1989:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1989:49:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4625, + "nodeType": "ExpressionStatement", + "src": "1989:49:17" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4629, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2105:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4631, + "indexExpression": { + "argumentTypes": null, + "id": 4630, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2116:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2105:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4633, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2119:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2105:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "2105:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 4635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2105:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4628, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2097:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2097:37:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4637, + "nodeType": "ExpressionStatement", + "src": "2097:37:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4639, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2156:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4641, + "indexExpression": { + "argumentTypes": null, + "id": 4640, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2167:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2156:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4643, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2170:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2156:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4644, + "name": "Percent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6431, + "src": "2175:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", + "typeString": "type(library Percent)" + } + }, + "id": 4645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "MAX", + "nodeType": "MemberAccess", + "referencedDeclaration": 6331, + "src": "2175:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 4646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2175:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2156:32:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4638, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2148:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2148:41:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4649, + "nodeType": "ExpressionStatement", + "src": "2148:41:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4655, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2258:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4657, + "indexExpression": { + "argumentTypes": null, + "id": 4656, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2269:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2258:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4659, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2272:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2258:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2251:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2251:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4662, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2309:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4664, + "indexExpression": { + "argumentTypes": null, + "id": 4663, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2320:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2309:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4666, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2323:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2309:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2302:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2302:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4668, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2354:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4670, + "indexExpression": { + "argumentTypes": null, + "id": 4669, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2365:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2354:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4672, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2368:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2354:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4674, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2404:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4676, + "indexExpression": { + "argumentTypes": null, + "id": 4675, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2415:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4678, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 4677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2418:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2397:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2397:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4683, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2468:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2457:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 4680, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2461:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4681, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2461:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 4684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2457:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2514:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2503:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 4685, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2507:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4686, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2507:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 4689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2503:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 4653, + "name": "Stage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4449, + "src": "2216:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Stage_$4449_storage_ptr_$", + "typeString": "type(struct Crowdsale.Stage storage pointer)" + } + }, + "id": 4690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "startDate", + "endDate", + "discount", + "vesting", + "volumeBoundaries", + "volumeBonuses" + ], + "nodeType": "FunctionCall", + "src": "2216:315:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_memory", + "typeString": "struct Crowdsale.Stage memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Stage_$4449_memory", + "typeString": "struct Crowdsale.Stage memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4650, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4465, + "src": "2204:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2204:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Stage_$4449_storage_$returns$_t_uint256_$", + "typeString": "function (struct Crowdsale.Stage storage ref) returns (uint256)" + } + }, + "id": 4691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2204:328:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4692, + "nodeType": "ExpressionStatement", + "src": "2204:328:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4694, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4465, + "src": "2588:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4696, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4465, + "src": "2618:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2618:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2634:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2618:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2612:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 4700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2612:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4702, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2660:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4704, + "indexExpression": { + "argumentTypes": null, + "id": 4703, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2671:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4706, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 4705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2674:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2654:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 4707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2654:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4709, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2701:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4711, + "indexExpression": { + "argumentTypes": null, + "id": 4710, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2712:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2701:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4713, + "indexExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 4712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2715:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2701:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2695:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 4714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2695:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 4715, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4476, + "src": "2736:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 4693, + "name": "setStageBonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4915, + "src": "2547:23:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr_$_t_uint8_$_t_uint8_$_t_uint8_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (struct Crowdsale.Stage storage ref[] storage pointer,uint8,uint8,uint8,uint256[] memory)" + } + }, + "id": 4716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2547:218:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4717, + "nodeType": "ExpressionStatement", + "src": "2547:218:17" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4511, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1488:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4512, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1492:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1492:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1488:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4719, + "initializationExpression": { + "assignments": [ + 4508 + ], + "declarations": [ + { + "constant": false, + "id": 4508, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "1475:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4507, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1475:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4510, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1485:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1475:11:17" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1511:3:17", + "subExpression": { + "argumentTypes": null, + "id": 4515, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1511:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 4517, + "nodeType": "ExpressionStatement", + "src": "1511:3:17" + }, + "nodeType": "ForStatement", + "src": "1470:1306:17" + } + ] + }, + "documentation": "@dev Update stages\n@param parameters List of primary parameters:\n[\n uint32 startDate,\n uint32 endDate,\n uint discount,\n uint32 vesting,\n uint8 startIndexOfBonusConditions\n uint8 endIndexOfBonusConditions\n],\n@param bonusConditions List of bonus conditions:\n[uint boundary, uint bonus, ...]", + "id": 4721, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setStages", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4477, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4465, + "name": "stages", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "1077:22:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4463, + "name": "Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4449, + "src": "1077:5:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" + } + }, + "id": 4464, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1077:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4468, + "name": "milestones", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "1109:30:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4466, + "name": "Milestone", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4462, + "src": "1109:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$4462_storage_ptr", + "typeString": "struct Crowdsale.Milestone" + } + }, + "id": 4467, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1109:11:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4473, + "name": "parameters", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "1149:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 4469, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1149:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4471, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 4470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1154:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "1149:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "id": 4472, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1149:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", + "typeString": "uint256[6][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4476, + "name": "bonusConditions", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "1179:22:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4474, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1179:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4475, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1179:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1067:140:17" + }, + "payable": false, + "returnParameters": { + "id": 4478, + "nodeType": "ParameterList", + "parameters": [], + "src": "1215:0:17" + }, + "scope": 5200, + "src": "1049:1733:17", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4914, + "nodeType": "Block", + "src": "3130:1087:17", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4736, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3144:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3153:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3144:10:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4739, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3158:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3165:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3158:8:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3144:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4767, + "nodeType": "IfStatement", + "src": "3140:187:17", + "trueBody": { + "id": 4766, + "nodeType": "Block", + "src": "3168:159:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4743, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4724, + "src": "3182:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4745, + "indexExpression": { + "argumentTypes": null, + "id": 4744, + "name": "stageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4726, + "src": "3189:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3182:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 4746, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 4445, + "src": "3182:35:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3231:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3220:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 4747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3224:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4748, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3224:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 4751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3220:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "src": "3182:51:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4753, + "nodeType": "ExpressionStatement", + "src": "3182:51:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 4763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4754, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4724, + "src": "3247:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4756, + "indexExpression": { + "argumentTypes": null, + "id": 4755, + "name": "stageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4726, + "src": "3254:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3247:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 4757, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 4448, + "src": "3247:32:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3293:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3282:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 4758, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3286:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4759, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3286:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 4762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3282:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "src": "3247:48:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4764, + "nodeType": "ExpressionStatement", + "src": "3247:48:17" + }, + { + "expression": null, + "functionReturnParameters": 4735, + "id": 4765, + "nodeType": "Return", + "src": "3310:7:17" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4769, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3345:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4770, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "3352:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3352:22:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3345:29:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4768, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3337:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3337:38:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4774, + "nodeType": "ExpressionStatement", + "src": "3337:38:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4776, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3393:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 4777, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3401:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3393:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4775, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3385:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3385:20:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4780, + "nodeType": "ExpressionStatement", + "src": "3385:20:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4782, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3423:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3431:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "3423:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3436:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3423:14:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4781, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3415:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3415:23:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4788, + "nodeType": "ExpressionStatement", + "src": "3415:23:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4790, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3456:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3462:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "3456:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3467:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3456:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4789, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3448:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3448:21:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4796, + "nodeType": "ExpressionStatement", + "src": "3448:21:17" + }, + { + "assignments": [ + 4800 + ], + "declarations": [ + { + "constant": false, + "id": 4800, + "name": "boundaries", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3480:24:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4798, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3480:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4799, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3480:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4811, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4804, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3519:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4805, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3525:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3519:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 4807, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3518:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3534:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "3518:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 4803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3507:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 4801, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3511:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4802, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3511:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 4810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3507:29:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3480:56:17" + }, + { + "assignments": [ + 4815 + ], + "declarations": [ + { + "constant": false, + "id": 4815, + "name": "bonuses", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3546:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4813, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3546:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4814, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3546:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4826, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4819, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3582:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4820, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3588:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3582:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 4822, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3581:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3597:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "3581:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 4818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3570:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 4816, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3574:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4817, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3574:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 4825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3570:29:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3546:53:17" + }, + { + "assignments": [ + 4828 + ], + "declarations": [ + { + "constant": false, + "id": 4828, + "name": "k", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3609:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4827, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3609:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4830, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3618:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3609:10:17" + }, + { + "body": { + "id": 4898, + "nodeType": "Block", + "src": "3650:450:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4835, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "3699:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4839, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4836, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3715:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3723:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3715:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3699:26:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "3699:36:17", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 4841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3699:38:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4834, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3691:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3691:47:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4843, + "nodeType": "ExpressionStatement", + "src": "3691:47:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4845, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "3760:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4849, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4846, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3776:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3784:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3776:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3760:26:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4850, + "name": "Percent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6431, + "src": "3789:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", + "typeString": "type(library Percent)" + } + }, + "id": 4851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "MAX", + "nodeType": "MemberAccess", + "referencedDeclaration": 6331, + "src": "3789:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 4852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3789:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3760:42:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4844, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3752:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3752:51:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4855, + "nodeType": "ExpressionStatement", + "src": "3752:51:17" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4856, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4828, + "src": "3852:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3856:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3852:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4872, + "nodeType": "IfStatement", + "src": "3848:95:17", + "trueBody": { + "id": 4871, + "nodeType": "Block", + "src": "3859:84:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4860, + "name": "boundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4800, + "src": "3885:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4864, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4861, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4828, + "src": "3896:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3900:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3896:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3885:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4865, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "3905:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4867, + "indexExpression": { + "argumentTypes": null, + "id": 4866, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3921:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3905:22:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3885:42:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4859, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3877:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3877:51:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4870, + "nodeType": "ExpressionStatement", + "src": "3877:51:17" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 4879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4873, + "name": "boundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4800, + "src": "3957:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4875, + "indexExpression": { + "argumentTypes": null, + "id": 4874, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4828, + "src": "3968:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3957:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4876, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "3973:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4878, + "indexExpression": { + "argumentTypes": null, + "id": 4877, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3989:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3973:22:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3957:38:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4880, + "nodeType": "ExpressionStatement", + "src": "3957:38:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 4889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4881, + "name": "bonuses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "4009:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4883, + "indexExpression": { + "argumentTypes": null, + "id": 4882, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4828, + "src": "4017:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4009:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4884, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "4022:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4888, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4885, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "4038:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4046:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4038:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4022:26:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4009:39:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4890, + "nodeType": "ExpressionStatement", + "src": "4009:39:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 4892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4062:3:17", + "subExpression": { + "argumentTypes": null, + "id": 4891, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4828, + "src": "4062:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4893, + "nodeType": "ExpressionStatement", + "src": "4062:3:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 4896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4894, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "4079:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "32", + "id": 4895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4088:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "4079:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 4897, + "nodeType": "ExpressionStatement", + "src": "4079:10:17" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4831, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3637:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 4832, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3645:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3637:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4899, + "nodeType": "WhileStatement", + "src": "3630:470:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 4905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4900, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4724, + "src": "4110:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4902, + "indexExpression": { + "argumentTypes": null, + "id": 4901, + "name": "stageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4726, + "src": "4117:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4110:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 4903, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 4445, + "src": "4110:35:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4904, + "name": "boundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4800, + "src": "4148:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "4110:48:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4906, + "nodeType": "ExpressionStatement", + "src": "4110:48:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 4912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4907, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4724, + "src": "4168:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4909, + "indexExpression": { + "argumentTypes": null, + "id": 4908, + "name": "stageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4726, + "src": "4175:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4168:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 4910, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 4448, + "src": "4168:32:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4911, + "name": "bonuses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "4203:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "4168:42:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4913, + "nodeType": "ExpressionStatement", + "src": "4168:42:17" + } + ] + }, + "documentation": "@dev Set stage bonus conditions by stage index\n@param bonusConditions List of bonus conditions:\n[uint boundary, uint bonus, ...]", + "id": 4915, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setStageBonusConditions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4724, + "name": "stages", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "2996:22:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4722, + "name": "Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4449, + "src": "2996:5:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" + } + }, + "id": 4723, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2996:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4726, + "name": "stageIndex", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3028:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4725, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3028:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4728, + "name": "start", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3054:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4727, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3054:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4730, + "name": "end", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3075:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4729, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3075:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4733, + "name": "bonusConditions", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3094:22:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4731, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3094:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4732, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3094:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2986:136:17" + }, + "payable": false, + "returnParameters": { + "id": 4735, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:0:17" + }, + "scope": 5200, + "src": "2954:1263:17", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5198, + "nodeType": "Block", + "src": "4840:1634:17", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4934, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4918, + "src": "4854:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4935, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4854:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4870:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4854:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4955, + "nodeType": "IfStatement", + "src": "4850:109:17", + "trueBody": { + "id": 4954, + "nodeType": "Block", + "src": "4873:86:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4939, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4918, + "src": "4895:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4944, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4940, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4918, + "src": "4902:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4941, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4902:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4942, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4918:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4902:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4895:25:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 4945, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "endDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4438, + "src": "4895:33:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4946, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "4931:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 4948, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4947, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4942:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4931:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 4950, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4945:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4931:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4895:52:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4938, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "4887:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4887:61:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4953, + "nodeType": "ExpressionStatement", + "src": "4887:61:17" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 4960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4956, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4921, + "src": "4969:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone storage ref[] storage pointer" + } + }, + "id": 4958, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4969:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4989:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4969:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4961, + "nodeType": "ExpressionStatement", + "src": "4969:21:17" + }, + { + "assignments": [ + 4963 + ], + "declarations": [ + { + "constant": false, + "id": 4963, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "5001:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4962, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5001:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4965, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5015:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5001:15:17" + }, + { + "assignments": [ + 4967 + ], + "declarations": [ + { + "constant": false, + "id": 4967, + "name": "k", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "5026:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4966, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5026:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4969, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5035:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5026:10:17" + }, + { + "assignments": [ + 4971 + ], + "declarations": [ + { + "constant": false, + "id": 4971, + "name": "totalPercents", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "5046:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4970, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5046:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4973, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5067:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5046:22:17" + }, + { + "body": { + "id": 5188, + "nodeType": "Block", + "src": "5125:1293:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4986, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5177:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 4988, + "indexExpression": { + "argumentTypes": null, + "id": 4987, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5188:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5177:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 4990, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4989, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5191:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5177:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "5204:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5206:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5197:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5197:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "5177:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4985, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5169:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5169:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4997, + "nodeType": "ExpressionStatement", + "src": "5169:40:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4999, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5231:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5001, + "indexExpression": { + "argumentTypes": null, + "id": 5000, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5242:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5231:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5003, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5245:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5231:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "5258:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5260:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5251:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 5007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5251:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "5231:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4998, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5223:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5223:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5010, + "nodeType": "ExpressionStatement", + "src": "5223:40:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5012, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5285:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5014, + "indexExpression": { + "argumentTypes": null, + "id": 5013, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5296:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5285:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5016, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5299:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5285:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "5312:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5314:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5305:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5305:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "5285:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5011, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5277:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5277:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5023, + "nodeType": "ExpressionStatement", + "src": "5277:40:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5025, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5367:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5027, + "indexExpression": { + "argumentTypes": null, + "id": 5026, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5378:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5367:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5029, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5381:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5367:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5030, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "5386:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5367:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5024, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5359:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5359:31:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5033, + "nodeType": "ExpressionStatement", + "src": "5359:31:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5035, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5412:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5037, + "indexExpression": { + "argumentTypes": null, + "id": 5036, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5423:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5412:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5039, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5426:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5412:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5040, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5431:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5042, + "indexExpression": { + "argumentTypes": null, + "id": 5041, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5442:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5431:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5044, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5445:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5431:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5412:35:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5034, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5404:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5404:44:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5047, + "nodeType": "ExpressionStatement", + "src": "5404:44:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5049, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5470:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5051, + "indexExpression": { + "argumentTypes": null, + "id": 5050, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5481:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5470:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5053, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5484:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5470:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5054, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5489:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5056, + "indexExpression": { + "argumentTypes": null, + "id": 5055, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5500:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5489:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5058, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5503:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5489:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5470:35:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5048, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5462:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5462:44:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5061, + "nodeType": "ExpressionStatement", + "src": "5462:44:17" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5062, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5525:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5529:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5525:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5082, + "nodeType": "IfStatement", + "src": "5521:92:17", + "trueBody": { + "id": 5081, + "nodeType": "Block", + "src": "5532:81:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5066, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5558:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5070, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5067, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5569:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5573:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5569:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5558:17:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5072, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5576:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5558:20:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5073, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5581:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5075, + "indexExpression": { + "argumentTypes": null, + "id": 5074, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5592:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5581:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5077, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5595:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5581:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5558:39:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5065, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5550:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5550:48:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5080, + "nodeType": "ExpressionStatement", + "src": "5550:48:17" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5084, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5671:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5086, + "indexExpression": { + "argumentTypes": null, + "id": 5085, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5682:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5671:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5087, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5685:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5671:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "5671:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 5090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5671:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5083, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5663:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5663:37:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5092, + "nodeType": "ExpressionStatement", + "src": "5663:37:17" + }, + { + "assignments": [ + 5094 + ], + "declarations": [ + { + "constant": false, + "id": 5094, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "5715:17:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5093, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5715:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4963, + "src": "5762:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5098, + "name": "offsets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4929, + "src": "5770:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 5100, + "indexExpression": { + "argumentTypes": null, + "id": 5099, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "5778:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5770:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "namesAndDescriptions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4931, + "src": "5735:20:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 13313, + "src": "5735:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 5101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5735:46:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5715:66:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 5110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5103, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4963, + "src": "5795:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5106, + "name": "offsets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4929, + "src": "5815:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 5108, + "indexExpression": { + "argumentTypes": null, + "id": 5107, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "5823:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5815:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5104, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4963, + "src": "5804:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5804:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5804:22:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5795:31:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5111, + "nodeType": "ExpressionStatement", + "src": "5795:31:17" + }, + { + "assignments": [ + 5113 + ], + "declarations": [ + { + "constant": false, + "id": 5113, + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "5840:24:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5112, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5840:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5123, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5116, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4963, + "src": "5894:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5117, + "name": "offsets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4929, + "src": "5902:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 5121, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5118, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "5910:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5914:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5910:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5902:14:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5114, + "name": "namesAndDescriptions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4931, + "src": "5867:20:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 13313, + "src": "5867:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 5122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5867:50:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5840:77:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 5133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5124, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4963, + "src": "5931:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5127, + "name": "offsets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4929, + "src": "5951:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 5131, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5128, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "5959:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5963:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5959:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5951:14:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5125, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4963, + "src": "5940:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5940:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5940:26:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5931:35:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5134, + "nodeType": "ExpressionStatement", + "src": "5931:35:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 5140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5135, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "5980:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "32", + "id": 5138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5990:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + } + ], + "expression": { + "argumentTypes": null, + "id": 5136, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "5984:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5984:5:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5984:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5980:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5141, + "nodeType": "ExpressionStatement", + "src": "5980:12:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 5151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5142, + "name": "totalPercents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4971, + "src": "6007:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5145, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "6041:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5147, + "indexExpression": { + "argumentTypes": null, + "id": 5146, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "6052:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6041:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6055:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6041:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5143, + "name": "totalPercents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4971, + "src": "6023:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "6023:17:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6023:35:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6007:51:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5152, + "nodeType": "ExpressionStatement", + "src": "6007:51:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "6134:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "6145:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6134:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5162, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6148:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6134:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6127:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6127:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5164, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "6186:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5166, + "indexExpression": { + "argumentTypes": null, + "id": 5165, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "6197:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6186:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5168, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6200:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6186:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5170, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "6241:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5172, + "indexExpression": { + "argumentTypes": null, + "id": 5171, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "6252:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6241:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5174, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6255:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6241:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6234:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 5175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6234:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5177, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "6302:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5179, + "indexExpression": { + "argumentTypes": null, + "id": 5178, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "6313:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6302:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5181, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6316:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6302:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6295:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 5182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6295:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 5183, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5094, + "src": "6344:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 5184, + "name": "description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6380:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 5156, + "name": "Milestone", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4462, + "src": "6089:9:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Milestone_$4462_storage_ptr_$", + "typeString": "type(struct Crowdsale.Milestone storage pointer)" + } + }, + "id": 5185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "endDate", + "tranchePercent", + "voteEndDate", + "withdrawalWindow", + "name", + "description" + ], + "nodeType": "FunctionCall", + "src": "6089:317:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$4462_memory", + "typeString": "struct Crowdsale.Milestone memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Milestone_$4462_memory", + "typeString": "struct Crowdsale.Milestone memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5153, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4921, + "src": "6073:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone storage ref[] storage pointer" + } + }, + "id": 5155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6073:15:17", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$4462_storage_$returns$_t_uint256_$", + "typeString": "function (struct Crowdsale.Milestone storage ref) returns (uint256)" + } + }, + "id": 5186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6073:334:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5187, + "nodeType": "ExpressionStatement", + "src": "6073:334:17" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4978, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5097:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4979, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5101:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 4980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5101:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5097:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5189, + "initializationExpression": { + "assignments": [ + 4975 + ], + "declarations": [ + { + "constant": false, + "id": 4975, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "5084:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4974, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5084:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4977, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5094:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5084:11:17" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5120:3:17", + "subExpression": { + "argumentTypes": null, + "id": 4982, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5120:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 4984, + "nodeType": "ExpressionStatement", + "src": "5120:3:17" + }, + "nodeType": "ForStatement", + "src": "5079:1339:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5191, + "name": "totalPercents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4971, + "src": "6436:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5192, + "name": "Percent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6431, + "src": "6453:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", + "typeString": "type(library Percent)" + } + }, + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "MAX", + "nodeType": "MemberAccess", + "referencedDeclaration": 6331, + "src": "6453:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 5194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6453:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6436:30:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5190, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6428:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6428:39:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5197, + "nodeType": "ExpressionStatement", + "src": "6428:39:17" + } + ] + }, + "documentation": "@dev Update milestones\n@param parameters List of primary parameters:\n[\n uint32 endDate,\n uint32 voteEndDate,\n uint32 withdrawalWindow,\n uint tranchPercent\n]\n@param offsets Offsets of names and descriptions in namesAndDescriptions:\n[uint32 offset1, uint32 offset2, ...]\n@param namesAndDescriptions Names and descriptions", + "id": 5199, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setMilestones", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4932, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4918, + "name": "stages", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "4672:22:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4916, + "name": "Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4449, + "src": "4672:5:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" + } + }, + "id": 4917, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4672:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4921, + "name": "milestones", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "4704:30:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4919, + "name": "Milestone", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4462, + "src": "4704:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$4462_storage_ptr", + "typeString": "struct Crowdsale.Milestone" + } + }, + "id": 4920, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4704:11:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4926, + "name": "parameters", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "4744:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 4922, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4744:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4924, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4749:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "4744:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "id": 4925, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4744:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", + "typeString": "uint256[4][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4929, + "name": "offsets", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "4774:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 4927, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4774:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 4928, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4774:8:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4931, + "name": "namesAndDescriptions", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "4800:26:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4930, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4800:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4662:170:17" + }, + "payable": false, + "returnParameters": { + "id": 4933, + "nodeType": "ParameterList", + "parameters": [], + "src": "4840:0:17" + }, + "scope": 5200, + "src": "4640:1834:17", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5201, + "src": "165:6311:17" + } + ], + "src": "0:6477:17" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/libs/Crowdsale.sol", + "exportedSymbols": { + "Crowdsale": [ + 5200 + ] + }, + "id": 5201, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4422, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:17" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 4423, + "nodeType": "ImportDirective", + "scope": 5201, + "sourceUnit": 12389, + "src": "26:59:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", + "file": "solidity-bytes-utils/contracts/BytesLib.sol", + "id": 4424, + "nodeType": "ImportDirective", + "scope": 5201, + "sourceUnit": 13427, + "src": "86:53:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", + "file": "./Percent.sol", + "id": 4425, + "nodeType": "ImportDirective", + "scope": 5201, + "sourceUnit": 6432, + "src": "140:23:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5200, + "linearizedBaseContracts": [ + 5200 + ], + "name": "Crowdsale", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4428, + "libraryName": { + "contractScope": null, + "id": 4426, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "195:8:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "189:24:17", + "typeName": { + "id": 4427, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "208:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 4431, + "libraryName": { + "contractScope": null, + "id": 4429, + "name": "Percent", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6431, + "src": "224:7:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Percent_$6431", + "typeString": "library Percent" + } + }, + "nodeType": "UsingForDirective", + "src": "218:23:17", + "typeName": { + "id": 4430, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "236:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 4434, + "libraryName": { + "contractScope": null, + "id": 4432, + "name": "BytesLib", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13426, + "src": "252:8:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BytesLib_$13426", + "typeString": "library BytesLib" + } + }, + "nodeType": "UsingForDirective", + "src": "246:25:17", + "typeName": { + "id": 4433, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "265:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + { + "canonicalName": "Crowdsale.Stage", + "id": 4449, + "members": [ + { + "constant": false, + "id": 4436, + "name": "startDate", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "300:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4435, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "300:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4438, + "name": "endDate", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "326:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4437, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "326:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4440, + "name": "discount", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "350:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4439, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "350:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4442, + "name": "vesting", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "373:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4441, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "373:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4445, + "name": "volumeBoundaries", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "397:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4443, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "397:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4444, + "length": null, + "nodeType": "ArrayTypeName", + "src": "397:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4448, + "name": "volumeBonuses", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "430:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4446, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "430:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4447, + "length": null, + "nodeType": "ArrayTypeName", + "src": "430:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Stage", + "nodeType": "StructDefinition", + "scope": 5200, + "src": "277:180:17", + "visibility": "public" + }, + { + "canonicalName": "Crowdsale.Milestone", + "id": 4462, + "members": [ + { + "constant": false, + "id": 4451, + "name": "endDate", + "nodeType": "VariableDeclaration", + "scope": 4462, + "src": "490:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4450, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "490:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4453, + "name": "tranchePercent", + "nodeType": "VariableDeclaration", + "scope": 4462, + "src": "514:19:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4452, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "514:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4455, + "name": "voteEndDate", + "nodeType": "VariableDeclaration", + "scope": 4462, + "src": "543:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4454, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "543:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4457, + "name": "withdrawalWindow", + "nodeType": "VariableDeclaration", + "scope": 4462, + "src": "571:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4456, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "571:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4459, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 4462, + "src": "604:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4458, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "604:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4461, + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 4462, + "src": "624:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4460, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "624:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Milestone", + "nodeType": "StructDefinition", + "scope": 5200, + "src": "463:185:17", + "visibility": "public" + }, + { + "body": { + "id": 4720, + "nodeType": "Block", + "src": "1215:1567:17", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4479, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4468, + "src": "1229:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone storage ref[] storage pointer" + } + }, + "id": 4480, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1229:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1249:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1229:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4500, + "nodeType": "IfStatement", + "src": "1225:207:17", + "trueBody": { + "id": 4499, + "nodeType": "Block", + "src": "1252:180:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4484, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4468, + "src": "1360:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone storage ref[] storage pointer" + } + }, + "id": 4486, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1371:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1360:13:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" + } + }, + "id": 4487, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "endDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4451, + "src": "1360:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4488, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1384:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4493, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4489, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1395:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1395:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1415:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1395:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1384:33:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4495, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1418:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1384:36:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1360:60:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4483, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1352:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1352:69:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4498, + "nodeType": "ExpressionStatement", + "src": "1352:69:17" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 4505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4501, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4465, + "src": "1442:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4503, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1442:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 4504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1458:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1442:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4506, + "nodeType": "ExpressionStatement", + "src": "1442:17:17" + }, + { + "body": { + "id": 4718, + "nodeType": "Block", + "src": "1516:1260:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4519, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1568:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4521, + "indexExpression": { + "argumentTypes": null, + "id": 4520, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1579:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1568:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4523, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1582:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1568:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1595:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1597:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1588:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1588:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1568:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4518, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1560:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1560:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4530, + "nodeType": "ExpressionStatement", + "src": "1560:40:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4532, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1622:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4534, + "indexExpression": { + "argumentTypes": null, + "id": 4533, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1633:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1622:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4536, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1636:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1622:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1649:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1651:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1642:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1642:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1622:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4531, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1614:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1614:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4543, + "nodeType": "ExpressionStatement", + "src": "1614:40:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4545, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1676:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4547, + "indexExpression": { + "argumentTypes": null, + "id": 4546, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1687:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1676:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4549, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 4548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1690:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1676:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1703:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4551, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1705:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1696:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1696:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1676:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4544, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1668:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1668:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4556, + "nodeType": "ExpressionStatement", + "src": "1668:40:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4558, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1730:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4560, + "indexExpression": { + "argumentTypes": null, + "id": 4559, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1741:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1730:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4562, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 4561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1744:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1730:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1756:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1758:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1750:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 4566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1750:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1730:30:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4557, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1722:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1722:39:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4569, + "nodeType": "ExpressionStatement", + "src": "1722:39:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4571, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1783:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4573, + "indexExpression": { + "argumentTypes": null, + "id": 4572, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1794:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1783:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4575, + "indexExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 4574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1797:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1783:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1809:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1811:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1803:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 4579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1803:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1783:30:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4570, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1775:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1775:39:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4582, + "nodeType": "ExpressionStatement", + "src": "1775:39:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4584, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1864:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4586, + "indexExpression": { + "argumentTypes": null, + "id": 4585, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1875:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1864:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4588, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1878:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1864:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 4589, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "1883:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1864:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4583, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1856:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1856:31:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4592, + "nodeType": "ExpressionStatement", + "src": "1856:31:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4594, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1909:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4596, + "indexExpression": { + "argumentTypes": null, + "id": 4595, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1920:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1909:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4598, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1923:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1909:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4599, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1928:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4601, + "indexExpression": { + "argumentTypes": null, + "id": 4600, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1939:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1928:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4603, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1942:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1928:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1909:35:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4593, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1901:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1901:44:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4606, + "nodeType": "ExpressionStatement", + "src": "1901:44:17" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4607, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1964:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1968:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1964:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4627, + "nodeType": "IfStatement", + "src": "1960:93:17", + "trueBody": { + "id": 4626, + "nodeType": "Block", + "src": "1971:82:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4611, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1997:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4615, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4612, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2008:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2012:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2008:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1997:17:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4617, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2015:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1997:20:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4618, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2021:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4620, + "indexExpression": { + "argumentTypes": null, + "id": 4619, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2032:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2021:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4622, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2035:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2021:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1997:40:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4610, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1989:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1989:49:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4625, + "nodeType": "ExpressionStatement", + "src": "1989:49:17" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4629, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2105:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4631, + "indexExpression": { + "argumentTypes": null, + "id": 4630, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2116:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2105:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4633, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2119:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2105:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "2105:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 4635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2105:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4628, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2097:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2097:37:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4637, + "nodeType": "ExpressionStatement", + "src": "2097:37:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4639, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2156:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4641, + "indexExpression": { + "argumentTypes": null, + "id": 4640, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2167:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2156:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4643, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2170:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2156:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4644, + "name": "Percent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6431, + "src": "2175:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", + "typeString": "type(library Percent)" + } + }, + "id": 4645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "MAX", + "nodeType": "MemberAccess", + "referencedDeclaration": 6331, + "src": "2175:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 4646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2175:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2156:32:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4638, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2148:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2148:41:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4649, + "nodeType": "ExpressionStatement", + "src": "2148:41:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4655, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2258:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4657, + "indexExpression": { + "argumentTypes": null, + "id": 4656, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2269:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2258:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4659, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2272:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2258:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2251:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2251:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4662, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2309:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4664, + "indexExpression": { + "argumentTypes": null, + "id": 4663, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2320:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2309:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4666, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2323:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2309:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2302:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2302:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4668, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2354:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4670, + "indexExpression": { + "argumentTypes": null, + "id": 4669, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2365:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2354:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4672, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2368:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2354:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4674, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2404:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4676, + "indexExpression": { + "argumentTypes": null, + "id": 4675, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2415:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4678, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 4677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2418:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2397:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2397:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4683, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2468:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2457:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 4680, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2461:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4681, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2461:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 4684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2457:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2514:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2503:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 4685, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2507:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4686, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2507:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 4689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2503:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 4653, + "name": "Stage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4449, + "src": "2216:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Stage_$4449_storage_ptr_$", + "typeString": "type(struct Crowdsale.Stage storage pointer)" + } + }, + "id": 4690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "startDate", + "endDate", + "discount", + "vesting", + "volumeBoundaries", + "volumeBonuses" + ], + "nodeType": "FunctionCall", + "src": "2216:315:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_memory", + "typeString": "struct Crowdsale.Stage memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Stage_$4449_memory", + "typeString": "struct Crowdsale.Stage memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4650, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4465, + "src": "2204:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2204:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Stage_$4449_storage_$returns$_t_uint256_$", + "typeString": "function (struct Crowdsale.Stage storage ref) returns (uint256)" + } + }, + "id": 4691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2204:328:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4692, + "nodeType": "ExpressionStatement", + "src": "2204:328:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4694, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4465, + "src": "2588:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4696, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4465, + "src": "2618:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2618:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2634:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2618:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2612:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 4700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2612:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4702, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2660:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4704, + "indexExpression": { + "argumentTypes": null, + "id": 4703, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2671:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4706, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 4705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2674:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2654:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 4707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2654:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4709, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "2701:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4711, + "indexExpression": { + "argumentTypes": null, + "id": 4710, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "2712:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2701:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory", + "typeString": "uint256[6] memory" + } + }, + "id": 4713, + "indexExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 4712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2715:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2701:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2695:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 4714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2695:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 4715, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4476, + "src": "2736:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 4693, + "name": "setStageBonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4915, + "src": "2547:23:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr_$_t_uint8_$_t_uint8_$_t_uint8_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (struct Crowdsale.Stage storage ref[] storage pointer,uint8,uint8,uint8,uint256[] memory)" + } + }, + "id": 4716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2547:218:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4717, + "nodeType": "ExpressionStatement", + "src": "2547:218:17" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4511, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1488:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4512, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1492:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + "id": 4513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1492:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1488:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4719, + "initializationExpression": { + "assignments": [ + 4508 + ], + "declarations": [ + { + "constant": false, + "id": 4508, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "1475:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4507, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1475:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4510, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1485:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1475:11:17" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1511:3:17", + "subExpression": { + "argumentTypes": null, + "id": 4515, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "1511:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 4517, + "nodeType": "ExpressionStatement", + "src": "1511:3:17" + }, + "nodeType": "ForStatement", + "src": "1470:1306:17" + } + ] + }, + "documentation": "@dev Update stages\n@param parameters List of primary parameters:\n[\n uint32 startDate,\n uint32 endDate,\n uint discount,\n uint32 vesting,\n uint8 startIndexOfBonusConditions\n uint8 endIndexOfBonusConditions\n],\n@param bonusConditions List of bonus conditions:\n[uint boundary, uint bonus, ...]", + "id": 4721, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setStages", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4477, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4465, + "name": "stages", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "1077:22:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4463, + "name": "Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4449, + "src": "1077:5:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" + } + }, + "id": 4464, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1077:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4468, + "name": "milestones", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "1109:30:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4466, + "name": "Milestone", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4462, + "src": "1109:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$4462_storage_ptr", + "typeString": "struct Crowdsale.Milestone" + } + }, + "id": 4467, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1109:11:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4473, + "name": "parameters", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "1149:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 4469, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1149:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4471, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 4470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1154:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "1149:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "id": 4472, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1149:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", + "typeString": "uint256[6][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4476, + "name": "bonusConditions", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "1179:22:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4474, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1179:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4475, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1179:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1067:140:17" + }, + "payable": false, + "returnParameters": { + "id": 4478, + "nodeType": "ParameterList", + "parameters": [], + "src": "1215:0:17" + }, + "scope": 5200, + "src": "1049:1733:17", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4914, + "nodeType": "Block", + "src": "3130:1087:17", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4736, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3144:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3153:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3144:10:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4739, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3158:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3165:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3158:8:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3144:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4767, + "nodeType": "IfStatement", + "src": "3140:187:17", + "trueBody": { + "id": 4766, + "nodeType": "Block", + "src": "3168:159:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4743, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4724, + "src": "3182:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4745, + "indexExpression": { + "argumentTypes": null, + "id": 4744, + "name": "stageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4726, + "src": "3189:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3182:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 4746, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 4445, + "src": "3182:35:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3231:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3220:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 4747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3224:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4748, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3224:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 4751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3220:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "src": "3182:51:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4753, + "nodeType": "ExpressionStatement", + "src": "3182:51:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 4763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4754, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4724, + "src": "3247:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4756, + "indexExpression": { + "argumentTypes": null, + "id": 4755, + "name": "stageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4726, + "src": "3254:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3247:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 4757, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 4448, + "src": "3247:32:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3293:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3282:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 4758, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3286:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4759, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3286:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 4762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3282:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "src": "3247:48:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4764, + "nodeType": "ExpressionStatement", + "src": "3247:48:17" + }, + { + "expression": null, + "functionReturnParameters": 4735, + "id": 4765, + "nodeType": "Return", + "src": "3310:7:17" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4769, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3345:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4770, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "3352:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3352:22:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3345:29:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4768, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3337:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3337:38:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4774, + "nodeType": "ExpressionStatement", + "src": "3337:38:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4776, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3393:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 4777, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3401:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3393:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4775, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3385:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3385:20:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4780, + "nodeType": "ExpressionStatement", + "src": "3385:20:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4782, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3423:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3431:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "3423:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3436:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3423:14:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4781, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3415:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3415:23:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4788, + "nodeType": "ExpressionStatement", + "src": "3415:23:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4790, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3456:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3462:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "3456:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3467:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3456:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4789, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3448:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3448:21:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4796, + "nodeType": "ExpressionStatement", + "src": "3448:21:17" + }, + { + "assignments": [ + 4800 + ], + "declarations": [ + { + "constant": false, + "id": 4800, + "name": "boundaries", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3480:24:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4798, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3480:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4799, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3480:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4811, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4804, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3519:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4805, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3525:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3519:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 4807, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3518:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3534:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "3518:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 4803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3507:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 4801, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3511:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4802, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3511:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 4810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3507:29:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3480:56:17" + }, + { + "assignments": [ + 4815 + ], + "declarations": [ + { + "constant": false, + "id": 4815, + "name": "bonuses", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3546:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4813, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3546:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4814, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3546:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4826, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4819, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3582:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4820, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3588:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3582:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 4822, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3581:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 4823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3597:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "3581:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 4818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3570:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 4816, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3574:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4817, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3574:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 4825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3570:29:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3546:53:17" + }, + { + "assignments": [ + 4828 + ], + "declarations": [ + { + "constant": false, + "id": 4828, + "name": "k", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3609:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4827, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3609:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4830, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3618:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3609:10:17" + }, + { + "body": { + "id": 4898, + "nodeType": "Block", + "src": "3650:450:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4835, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "3699:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4839, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4836, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3715:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3723:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3715:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3699:26:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "3699:36:17", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 4841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3699:38:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4834, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3691:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3691:47:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4843, + "nodeType": "ExpressionStatement", + "src": "3691:47:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4845, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "3760:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4849, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4846, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3776:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3784:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3776:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3760:26:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4850, + "name": "Percent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6431, + "src": "3789:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", + "typeString": "type(library Percent)" + } + }, + "id": 4851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "MAX", + "nodeType": "MemberAccess", + "referencedDeclaration": 6331, + "src": "3789:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 4852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3789:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3760:42:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4844, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3752:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3752:51:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4855, + "nodeType": "ExpressionStatement", + "src": "3752:51:17" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4856, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4828, + "src": "3852:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3856:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3852:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4872, + "nodeType": "IfStatement", + "src": "3848:95:17", + "trueBody": { + "id": 4871, + "nodeType": "Block", + "src": "3859:84:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4860, + "name": "boundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4800, + "src": "3885:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4864, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4861, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4828, + "src": "3896:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3900:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3896:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3885:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4865, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "3905:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4867, + "indexExpression": { + "argumentTypes": null, + "id": 4866, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3921:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3905:22:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3885:42:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4859, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3877:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3877:51:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4870, + "nodeType": "ExpressionStatement", + "src": "3877:51:17" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 4879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4873, + "name": "boundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4800, + "src": "3957:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4875, + "indexExpression": { + "argumentTypes": null, + "id": 4874, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4828, + "src": "3968:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3957:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4876, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "3973:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4878, + "indexExpression": { + "argumentTypes": null, + "id": 4877, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3989:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3973:22:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3957:38:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4880, + "nodeType": "ExpressionStatement", + "src": "3957:38:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 4889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4881, + "name": "bonuses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "4009:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4883, + "indexExpression": { + "argumentTypes": null, + "id": 4882, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4828, + "src": "4017:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4009:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4884, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "4022:15:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4888, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4885, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "4038:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4046:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4038:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4022:26:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4009:39:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4890, + "nodeType": "ExpressionStatement", + "src": "4009:39:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 4892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4062:3:17", + "subExpression": { + "argumentTypes": null, + "id": 4891, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4828, + "src": "4062:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4893, + "nodeType": "ExpressionStatement", + "src": "4062:3:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 4896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4894, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "4079:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "32", + "id": 4895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4088:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "4079:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 4897, + "nodeType": "ExpressionStatement", + "src": "4079:10:17" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4831, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4728, + "src": "3637:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 4832, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4730, + "src": "3645:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3637:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4899, + "nodeType": "WhileStatement", + "src": "3630:470:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 4905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4900, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4724, + "src": "4110:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4902, + "indexExpression": { + "argumentTypes": null, + "id": 4901, + "name": "stageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4726, + "src": "4117:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4110:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 4903, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 4445, + "src": "4110:35:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4904, + "name": "boundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4800, + "src": "4148:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "4110:48:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4906, + "nodeType": "ExpressionStatement", + "src": "4110:48:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 4912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4907, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4724, + "src": "4168:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4909, + "indexExpression": { + "argumentTypes": null, + "id": 4908, + "name": "stageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4726, + "src": "4175:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4168:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 4910, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 4448, + "src": "4168:32:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4911, + "name": "bonuses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "4203:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "4168:42:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4913, + "nodeType": "ExpressionStatement", + "src": "4168:42:17" + } + ] + }, + "documentation": "@dev Set stage bonus conditions by stage index\n@param bonusConditions List of bonus conditions:\n[uint boundary, uint bonus, ...]", + "id": 4915, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setStageBonusConditions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4724, + "name": "stages", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "2996:22:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4722, + "name": "Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4449, + "src": "2996:5:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" + } + }, + "id": 4723, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2996:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4726, + "name": "stageIndex", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3028:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4725, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3028:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4728, + "name": "start", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3054:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4727, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3054:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4730, + "name": "end", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3075:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4729, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3075:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4733, + "name": "bonusConditions", + "nodeType": "VariableDeclaration", + "scope": 4915, + "src": "3094:22:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4731, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3094:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4732, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3094:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2986:136:17" + }, + "payable": false, + "returnParameters": { + "id": 4735, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:0:17" + }, + "scope": 5200, + "src": "2954:1263:17", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5198, + "nodeType": "Block", + "src": "4840:1634:17", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4934, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4918, + "src": "4854:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4935, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4854:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4870:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4854:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4955, + "nodeType": "IfStatement", + "src": "4850:109:17", + "trueBody": { + "id": 4954, + "nodeType": "Block", + "src": "4873:86:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4939, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4918, + "src": "4895:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4944, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4940, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4918, + "src": "4902:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage storage ref[] storage pointer" + } + }, + "id": 4941, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4902:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4942, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4918:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4902:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4895:25:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 4945, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "endDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4438, + "src": "4895:33:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4946, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "4931:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 4948, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4947, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4942:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4931:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 4950, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4945:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4931:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4895:52:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4938, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "4887:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4887:61:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4953, + "nodeType": "ExpressionStatement", + "src": "4887:61:17" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 4960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4956, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4921, + "src": "4969:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone storage ref[] storage pointer" + } + }, + "id": 4958, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4969:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4989:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4969:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4961, + "nodeType": "ExpressionStatement", + "src": "4969:21:17" + }, + { + "assignments": [ + 4963 + ], + "declarations": [ + { + "constant": false, + "id": 4963, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "5001:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4962, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5001:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4965, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5015:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5001:15:17" + }, + { + "assignments": [ + 4967 + ], + "declarations": [ + { + "constant": false, + "id": 4967, + "name": "k", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "5026:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4966, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5026:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4969, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5035:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5026:10:17" + }, + { + "assignments": [ + 4971 + ], + "declarations": [ + { + "constant": false, + "id": 4971, + "name": "totalPercents", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "5046:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4970, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5046:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4973, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5067:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5046:22:17" + }, + { + "body": { + "id": 5188, + "nodeType": "Block", + "src": "5125:1293:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4986, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5177:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 4988, + "indexExpression": { + "argumentTypes": null, + "id": 4987, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5188:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5177:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 4990, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4989, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5191:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5177:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "5204:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5206:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5197:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5197:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "5177:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4985, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5169:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5169:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4997, + "nodeType": "ExpressionStatement", + "src": "5169:40:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4999, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5231:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5001, + "indexExpression": { + "argumentTypes": null, + "id": 5000, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5242:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5231:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5003, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5245:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5231:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "5258:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5260:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5251:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 5007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5251:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "5231:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4998, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5223:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5223:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5010, + "nodeType": "ExpressionStatement", + "src": "5223:40:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5012, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5285:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5014, + "indexExpression": { + "argumentTypes": null, + "id": 5013, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5296:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5285:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5016, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5299:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5285:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "5312:3:17", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5314:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5305:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5305:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "5285:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5011, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5277:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5277:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5023, + "nodeType": "ExpressionStatement", + "src": "5277:40:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5025, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5367:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5027, + "indexExpression": { + "argumentTypes": null, + "id": 5026, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5378:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5367:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5029, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5381:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5367:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5030, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "5386:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5367:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5024, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5359:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5359:31:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5033, + "nodeType": "ExpressionStatement", + "src": "5359:31:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5035, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5412:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5037, + "indexExpression": { + "argumentTypes": null, + "id": 5036, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5423:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5412:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5039, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5426:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5412:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5040, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5431:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5042, + "indexExpression": { + "argumentTypes": null, + "id": 5041, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5442:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5431:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5044, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5445:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5431:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5412:35:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5034, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5404:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5404:44:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5047, + "nodeType": "ExpressionStatement", + "src": "5404:44:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5049, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5470:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5051, + "indexExpression": { + "argumentTypes": null, + "id": 5050, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5481:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5470:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5053, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5484:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5470:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5054, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5489:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5056, + "indexExpression": { + "argumentTypes": null, + "id": 5055, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5500:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5489:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5058, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5503:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5489:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5470:35:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5048, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5462:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5462:44:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5061, + "nodeType": "ExpressionStatement", + "src": "5462:44:17" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5062, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5525:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5529:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5525:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5082, + "nodeType": "IfStatement", + "src": "5521:92:17", + "trueBody": { + "id": 5081, + "nodeType": "Block", + "src": "5532:81:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5066, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5558:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5070, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5067, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5569:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5573:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5569:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5558:17:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5072, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5576:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5558:20:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5073, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5581:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5075, + "indexExpression": { + "argumentTypes": null, + "id": 5074, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5592:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5581:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5077, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5595:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5581:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5558:39:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5065, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5550:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5550:48:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5080, + "nodeType": "ExpressionStatement", + "src": "5550:48:17" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5084, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5671:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5086, + "indexExpression": { + "argumentTypes": null, + "id": 5085, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5682:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5671:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5087, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5685:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5671:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "5671:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 5090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5671:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5083, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5663:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5663:37:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5092, + "nodeType": "ExpressionStatement", + "src": "5663:37:17" + }, + { + "assignments": [ + 5094 + ], + "declarations": [ + { + "constant": false, + "id": 5094, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "5715:17:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5093, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5715:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4963, + "src": "5762:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5098, + "name": "offsets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4929, + "src": "5770:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 5100, + "indexExpression": { + "argumentTypes": null, + "id": 5099, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "5778:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5770:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "namesAndDescriptions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4931, + "src": "5735:20:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 13313, + "src": "5735:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 5101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5735:46:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5715:66:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 5110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5103, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4963, + "src": "5795:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5106, + "name": "offsets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4929, + "src": "5815:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 5108, + "indexExpression": { + "argumentTypes": null, + "id": 5107, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "5823:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5815:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5104, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4963, + "src": "5804:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5804:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5804:22:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5795:31:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5111, + "nodeType": "ExpressionStatement", + "src": "5795:31:17" + }, + { + "assignments": [ + 5113 + ], + "declarations": [ + { + "constant": false, + "id": 5113, + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "5840:24:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5112, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5840:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5123, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5116, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4963, + "src": "5894:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5117, + "name": "offsets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4929, + "src": "5902:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 5121, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5118, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "5910:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5914:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5910:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5902:14:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5114, + "name": "namesAndDescriptions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4931, + "src": "5867:20:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 13313, + "src": "5867:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 5122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5867:50:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5840:77:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 5133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5124, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4963, + "src": "5931:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5127, + "name": "offsets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4929, + "src": "5951:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 5131, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5128, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "5959:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5963:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5959:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5951:14:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5125, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4963, + "src": "5940:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5940:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5940:26:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5931:35:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5134, + "nodeType": "ExpressionStatement", + "src": "5931:35:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 5140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5135, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "5980:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "32", + "id": 5138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5990:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + } + ], + "expression": { + "argumentTypes": null, + "id": 5136, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "5984:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5984:5:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5984:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5980:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5141, + "nodeType": "ExpressionStatement", + "src": "5980:12:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 5151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5142, + "name": "totalPercents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4971, + "src": "6007:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5145, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "6041:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5147, + "indexExpression": { + "argumentTypes": null, + "id": 5146, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "6052:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6041:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6055:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6041:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5143, + "name": "totalPercents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4971, + "src": "6023:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "6023:17:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6023:35:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6007:51:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5152, + "nodeType": "ExpressionStatement", + "src": "6007:51:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "6134:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "6145:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6134:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5162, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6148:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6134:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6127:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6127:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5164, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "6186:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5166, + "indexExpression": { + "argumentTypes": null, + "id": 5165, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "6197:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6186:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5168, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6200:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6186:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5170, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "6241:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5172, + "indexExpression": { + "argumentTypes": null, + "id": 5171, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "6252:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6241:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5174, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6255:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6241:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6234:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 5175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6234:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5177, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "6302:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 5179, + "indexExpression": { + "argumentTypes": null, + "id": 5178, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "6313:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6302:13:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 5181, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6316:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6302:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6295:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 5182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6295:24:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 5183, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5094, + "src": "6344:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 5184, + "name": "description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6380:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 5156, + "name": "Milestone", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4462, + "src": "6089:9:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Milestone_$4462_storage_ptr_$", + "typeString": "type(struct Crowdsale.Milestone storage pointer)" + } + }, + "id": 5185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "endDate", + "tranchePercent", + "voteEndDate", + "withdrawalWindow", + "name", + "description" + ], + "nodeType": "FunctionCall", + "src": "6089:317:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$4462_memory", + "typeString": "struct Crowdsale.Milestone memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Milestone_$4462_memory", + "typeString": "struct Crowdsale.Milestone memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5153, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4921, + "src": "6073:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone storage ref[] storage pointer" + } + }, + "id": 5155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6073:15:17", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$4462_storage_$returns$_t_uint256_$", + "typeString": "function (struct Crowdsale.Milestone storage ref) returns (uint256)" + } + }, + "id": 5186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6073:334:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5187, + "nodeType": "ExpressionStatement", + "src": "6073:334:17" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4978, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5097:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4979, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4926, + "src": "5101:10:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 4980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5101:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5097:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5189, + "initializationExpression": { + "assignments": [ + 4975 + ], + "declarations": [ + { + "constant": false, + "id": 4975, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "5084:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4974, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5084:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4977, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5094:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5084:11:17" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5120:3:17", + "subExpression": { + "argumentTypes": null, + "id": 4982, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4975, + "src": "5120:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 4984, + "nodeType": "ExpressionStatement", + "src": "5120:3:17" + }, + "nodeType": "ForStatement", + "src": "5079:1339:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5191, + "name": "totalPercents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4971, + "src": "6436:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5192, + "name": "Percent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6431, + "src": "6453:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", + "typeString": "type(library Percent)" + } + }, + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "MAX", + "nodeType": "MemberAccess", + "referencedDeclaration": 6331, + "src": "6453:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 5194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6453:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6436:30:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5190, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6428:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6428:39:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5197, + "nodeType": "ExpressionStatement", + "src": "6428:39:17" + } + ] + }, + "documentation": "@dev Update milestones\n@param parameters List of primary parameters:\n[\n uint32 endDate,\n uint32 voteEndDate,\n uint32 withdrawalWindow,\n uint tranchPercent\n]\n@param offsets Offsets of names and descriptions in namesAndDescriptions:\n[uint32 offset1, uint32 offset2, ...]\n@param namesAndDescriptions Names and descriptions", + "id": 5199, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setMilestones", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4932, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4918, + "name": "stages", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "4672:22:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4916, + "name": "Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4449, + "src": "4672:5:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" + } + }, + "id": 4917, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4672:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4921, + "name": "milestones", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "4704:30:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4919, + "name": "Milestone", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4462, + "src": "4704:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$4462_storage_ptr", + "typeString": "struct Crowdsale.Milestone" + } + }, + "id": 4920, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4704:11:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4926, + "name": "parameters", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "4744:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 4922, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4744:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4924, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4749:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "4744:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "id": 4925, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4744:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", + "typeString": "uint256[4][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4929, + "name": "offsets", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "4774:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 4927, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4774:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 4928, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4774:8:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4931, + "name": "namesAndDescriptions", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "4800:26:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4930, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4800:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4662:170:17" + }, + "payable": false, + "returnParameters": { + "id": 4933, + "nodeType": "ParameterList", + "parameters": [], + "src": "4840:0:17" + }, + "scope": 5200, + "src": "4640:1834:17", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5201, + "src": "165:6311:17" + } + ], + "src": "0:6477:17" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": { + "4": { + "events": {}, + "links": { + "Percent": "0x04596c9a67ad5870686616d58c2a8198f8b94b34" + }, + "address": "0x7e8264c85babb6c0b41734622ac220c2bf7d57a0", + "transactionHash": "0xaa9f153b394e9ddb79985e3847c2db3178d3144bd0669de43abab38382c7518c" + } + }, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:18:18.760Z" +} \ No newline at end of file diff --git a/build/contracts/ERC20.json b/build/contracts/ERC20.json index 3f4a1eba..5c3fc4a2 100644 --- a/build/contracts/ERC20.json +++ b/build/contracts/ERC20.json @@ -1,6 +1,50 @@ { "contractName": "ERC20", "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, { "constant": true, "inputs": [], @@ -19,7 +63,7 @@ "constant": true, "inputs": [ { - "name": "_who", + "name": "owner", "type": "address" } ], @@ -34,15 +78,38 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ { - "name": "_to", + "name": "to", "type": "address" }, { - "name": "_value", + "name": "value", "type": "uint256" } ], @@ -58,89 +125,68 @@ "type": "function" }, { - "anonymous": false, + "constant": false, "inputs": [ { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, "name": "spender", "type": "address" }, { - "indexed": false, "name": "value", "type": "uint256" } ], - "name": "Approval", - "type": "event" + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, + "constant": false, "inputs": [ { - "indexed": true, "name": "from", "type": "address" }, { - "indexed": true, "name": "to", "type": "address" }, { - "indexed": false, "name": "value", "type": "uint256" } ], - "name": "Transfer", - "type": "event" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - } - ], - "name": "allowance", + "name": "transferFrom", "outputs": [ { "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { - "name": "_from", - "type": "address" - }, - { - "name": "_to", + "name": "spender", "type": "address" }, { - "name": "_value", + "name": "addedValue", "type": "uint256" } ], - "name": "transferFrom", + "name": "increaseAllowance", "outputs": [ { "name": "", @@ -155,15 +201,15 @@ "constant": false, "inputs": [ { - "name": "_spender", + "name": "spender", "type": "address" }, { - "name": "_value", + "name": "subtractedValue", "type": "uint256" } ], - "name": "approve", + "name": "decreaseAllowance", "outputs": [ { "name": "", @@ -175,24 +221,24 @@ "type": "function" } ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"./ERC20Basic.sol\";\n\n\n/**\n * @title ERC20 interface\n * @dev see https://github.com/ethereum/EIPs/issues/20\n */\ncontract ERC20 is ERC20Basic {\n function allowance(address _owner, address _spender)\n public view returns (uint256);\n\n function transferFrom(address _from, address _to, uint256 _value)\n public returns (bool);\n\n function approve(address _spender, uint256 _value) public returns (bool);\n event Approval(\n address indexed owner,\n address indexed spender,\n uint256 value\n );\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50610595806100206000396000f30060806040526004361061008d5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461009257806318160ddd146100ca57806323b872dd146100f1578063395093511461011b57806370a082311461013f578063a457c2d714610160578063a9059cbb14610184578063dd62ed3e146101a8575b600080fd5b34801561009e57600080fd5b506100b6600160a060020a03600435166024356101cf565b604080519115158252519081900360200190f35b3480156100d657600080fd5b506100df61024d565b60408051918252519081900360200190f35b3480156100fd57600080fd5b506100b6600160a060020a0360043581169060243516604435610253565b34801561012757600080fd5b506100b6600160a060020a03600435166024356102f0565b34801561014b57600080fd5b506100df600160a060020a03600435166103a0565b34801561016c57600080fd5b506100b6600160a060020a03600435166024356103bb565b34801561019057600080fd5b506100b6600160a060020a0360043516602435610406565b3480156101b457600080fd5b506100df600160a060020a036004358116906024351661041c565b6000600160a060020a03831615156101e657600080fd5b336000818152600160209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b600160a060020a038316600090815260016020908152604080832033845290915281205482111561028357600080fd5b600160a060020a03841660009081526001602090815260408083203384529091529020546102b7908363ffffffff61044716565b600160a060020a03851660009081526001602090815260408083203384529091529020556102e684848461045e565b5060019392505050565b6000600160a060020a038316151561030757600080fd5b336000908152600160209081526040808320600160a060020a038716845290915290205461033b908363ffffffff61055016565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a031660009081526020819052604090205490565b6000600160a060020a03831615156103d257600080fd5b336000908152600160209081526040808320600160a060020a038716845290915290205461033b908363ffffffff61044716565b600061041333848461045e565b50600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6000808383111561045757600080fd5b5050900390565b600160a060020a03831660009081526020819052604090205481111561048357600080fd5b600160a060020a038216151561049857600080fd5b600160a060020a0383166000908152602081905260409020546104c1908263ffffffff61044716565b600160a060020a0380851660009081526020819052604080822093909355908416815220546104f6908263ffffffff61055016565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282018381101561056257600080fd5b93925050505600a165627a7a723058208ca24c2b0761cfd5072794f576e2534f42b34a6794af731eb79a7351c0f922200029", + "deployedBytecode": "0x60806040526004361061008d5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461009257806318160ddd146100ca57806323b872dd146100f1578063395093511461011b57806370a082311461013f578063a457c2d714610160578063a9059cbb14610184578063dd62ed3e146101a8575b600080fd5b34801561009e57600080fd5b506100b6600160a060020a03600435166024356101cf565b604080519115158252519081900360200190f35b3480156100d657600080fd5b506100df61024d565b60408051918252519081900360200190f35b3480156100fd57600080fd5b506100b6600160a060020a0360043581169060243516604435610253565b34801561012757600080fd5b506100b6600160a060020a03600435166024356102f0565b34801561014b57600080fd5b506100df600160a060020a03600435166103a0565b34801561016c57600080fd5b506100b6600160a060020a03600435166024356103bb565b34801561019057600080fd5b506100b6600160a060020a0360043516602435610406565b3480156101b457600080fd5b506100df600160a060020a036004358116906024351661041c565b6000600160a060020a03831615156101e657600080fd5b336000818152600160209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b600160a060020a038316600090815260016020908152604080832033845290915281205482111561028357600080fd5b600160a060020a03841660009081526001602090815260408083203384529091529020546102b7908363ffffffff61044716565b600160a060020a03851660009081526001602090815260408083203384529091529020556102e684848461045e565b5060019392505050565b6000600160a060020a038316151561030757600080fd5b336000908152600160209081526040808320600160a060020a038716845290915290205461033b908363ffffffff61055016565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a031660009081526020819052604090205490565b6000600160a060020a03831615156103d257600080fd5b336000908152600160209081526040808320600160a060020a038716845290915290205461033b908363ffffffff61044716565b600061041333848461045e565b50600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6000808383111561045757600080fd5b5050900390565b600160a060020a03831660009081526020819052604090205481111561048357600080fd5b600160a060020a038216151561049857600080fd5b600160a060020a0383166000908152602081905260409020546104c1908263ffffffff61044716565b600160a060020a0380851660009081526020819052604080822093909355908416815220546104f6908263ffffffff61055016565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282018381101561056257600080fd5b93925050505600a165627a7a723058208ca24c2b0761cfd5072794f576e2534f42b34a6794af731eb79a7351c0f922200029", + "sourceMap": "369:6595:56:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;369:6595:56;;;;;;;", + "deployedSourceMap": "369:6595:56:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2380:220:56;-1:-1:-1;;;;;2380:220:56;;;;;;;;;;;;;;;;;;;;;;;;;640:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:83:56;;;;;;;;;;;;;;;;;;;;2872:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2872:288:56;-1:-1:-1;;;;;2872:288:56;;;;;;;;;;;;3611:330;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3611:330:56;-1:-1:-1;;;;;3611:330:56;;;;;;;920:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;920:98:56;-1:-1:-1;;;;;920:98:56;;;;;4397:340;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4397:340:56;-1:-1:-1;;;;;4397:340:56;;;;;;;1637:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1637:127:56;-1:-1:-1;;;;;1637:127:56;;;;;;;1335:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1335:150:56;-1:-1:-1;;;;;1335:150:56;;;;;;;;;;2380:220;2445:4;-1:-1:-1;;;;;2465:21:56;;;;2457:30;;;;;;2503:10;2494:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;2494:29:56;;;;;;;;;;;;:37;;;2542:36;;;;;;;2494:29;;2503:10;2542:36;;;;;;;;;;;-1:-1:-1;2591:4:56;2380:220;;;;:::o;640:83::-;706:12;;640:83;:::o;2872:288::-;-1:-1:-1;;;;;3006:14:56;;2975:4;3006:14;;;:8;:14;;;;;;;;3021:10;3006:26;;;;;;;;2997:35;;;2989:44;;;;;;-1:-1:-1;;;;;3069:14:56;;;;;;:8;:14;;;;;;;;3084:10;3069:26;;;;;;;;:37;;3100:5;3069:37;:30;:37;:::i;:::-;-1:-1:-1;;;;;3040:14:56;;;;;;:8;:14;;;;;;;;3055:10;3040:26;;;;;;;:66;3112:26;3049:4;3128:2;3132:5;3112:9;:26::i;:::-;-1:-1:-1;3151:4:56;2872:288;;;;;:::o;3611:330::-;3711:4;-1:-1:-1;;;;;3733:21:56;;;;3725:30;;;;;;3811:10;3802:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3802:29:56;;;;;;;;;;:45;;3836:10;3802:45;:33;:45;:::i;:::-;3771:10;3762:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3762:29:56;;;;;;;;;;;;:86;;;3859:60;;;;;;3762:29;;3859:60;;;;;;;;;;;-1:-1:-1;3932:4:56;3611:330;;;;:::o;920:98::-;-1:-1:-1;;;;;997:16:56;975:7;997:16;;;;;;;;;;;;920:98::o;4397:340::-;4502:4;-1:-1:-1;;;;;4524:21:56;;;;4516:30;;;;;;4602:10;4593:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4593:29:56;;;;;;;;;;:50;;4627:15;4593:50;:33;:50;:::i;1637:127::-;1698:4;1710:32;1720:10;1732:2;1736:5;1710:9;:32::i;:::-;-1:-1:-1;1755:4:56;1637:127;;;;:::o;1335:150::-;-1:-1:-1;;;;;1456:15:56;;;1432:7;1456:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1335:150::o;1078:131:54:-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;4937:277:56:-;-1:-1:-1;;;;;5029:15:56;;:9;:15;;;;;;;;;;;5020:24;;;5012:33;;;;;;-1:-1:-1;;;;;5059:16:56;;;;5051:25;;;;;;-1:-1:-1;;;;;5101:15:56;;:9;:15;;;;;;;;;;;:26;;5121:5;5101:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5083:15:56;;;:9;:15;;;;;;;;;;;:44;;;;5149:13;;;;;;;:24;;5167:5;5149:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5133:13:56;;;:9;:13;;;;;;;;;;;;:40;;;;5184:25;;;;;;;5133:13;;5184:25;;;;;;;;;;;;;4937:277;;;:::o;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;;1397:1;1272:131;-1:-1:-1;;;1272:131:54:o", + "source": "pragma solidity ^0.4.24;\n\nimport \"./IERC20.sol\";\nimport \"../../math/SafeMath.sol\";\n\n/**\n * @title Standard ERC20 token\n *\n * @dev Implementation of the basic standard token.\n * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n * Originally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\n */\ncontract ERC20 is IERC20 {\n using SafeMath for uint256;\n\n mapping (address => uint256) private _balances;\n\n mapping (address => mapping (address => uint256)) private _allowed;\n\n uint256 private _totalSupply;\n\n /**\n * @dev Total number of tokens in existence\n */\n function totalSupply() public view returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner The address to query the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address owner) public view returns (uint256) {\n return _balances[owner];\n }\n\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param owner address The address which owns the funds.\n * @param spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(\n address owner,\n address spender\n )\n public\n view\n returns (uint256)\n {\n return _allowed[owner][spender];\n }\n\n /**\n * @dev Transfer token for a specified address\n * @param to The address to transfer to.\n * @param value The amount to be transferred.\n */\n function transfer(address to, uint256 value) public returns (bool) {\n _transfer(msg.sender, to, value);\n return true;\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param spender The address which will spend the funds.\n * @param value The amount of tokens to be spent.\n */\n function approve(address spender, uint256 value) public returns (bool) {\n require(spender != address(0));\n\n _allowed[msg.sender][spender] = value;\n emit Approval(msg.sender, spender, value);\n return true;\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @param from address The address which you want to send tokens from\n * @param to address The address which you want to transfer to\n * @param value uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address from,\n address to,\n uint256 value\n )\n public\n returns (bool)\n {\n require(value <= _allowed[from][msg.sender]);\n\n _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed_[_spender] == 0. To increment\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param spender The address which will spend the funds.\n * @param addedValue The amount of tokens to increase the allowance by.\n */\n function increaseAllowance(\n address spender,\n uint256 addedValue\n )\n public\n returns (bool)\n {\n require(spender != address(0));\n\n _allowed[msg.sender][spender] = (\n _allowed[msg.sender][spender].add(addedValue));\n emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);\n return true;\n }\n\n /**\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed_[_spender] == 0. To decrement\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param spender The address which will spend the funds.\n * @param subtractedValue The amount of tokens to decrease the allowance by.\n */\n function decreaseAllowance(\n address spender,\n uint256 subtractedValue\n )\n public\n returns (bool)\n {\n require(spender != address(0));\n\n _allowed[msg.sender][spender] = (\n _allowed[msg.sender][spender].sub(subtractedValue));\n emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);\n return true;\n }\n\n /**\n * @dev Transfer token for a specified addresses\n * @param from The address to transfer from.\n * @param to The address to transfer to.\n * @param value The amount to be transferred.\n */\n function _transfer(address from, address to, uint256 value) internal {\n require(value <= _balances[from]);\n require(to != address(0));\n\n _balances[from] = _balances[from].sub(value);\n _balances[to] = _balances[to].add(value);\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Internal function that mints an amount of the token and assigns it to\n * an account. This encapsulates the modification of balances such that the\n * proper events are emitted.\n * @param account The account that will receive the created tokens.\n * @param value The amount that will be created.\n */\n function _mint(address account, uint256 value) internal {\n require(account != 0);\n _totalSupply = _totalSupply.add(value);\n _balances[account] = _balances[account].add(value);\n emit Transfer(address(0), account, value);\n }\n\n /**\n * @dev Internal function that burns an amount of the token of a given\n * account.\n * @param account The account whose tokens will be burnt.\n * @param value The amount that will be burnt.\n */\n function _burn(address account, uint256 value) internal {\n require(account != 0);\n require(value <= _balances[account]);\n\n _totalSupply = _totalSupply.sub(value);\n _balances[account] = _balances[account].sub(value);\n emit Transfer(account, address(0), value);\n }\n\n /**\n * @dev Internal function that burns an amount of the token of a given\n * account, deducting from the sender's allowance for said account. Uses the\n * internal burn function.\n * @param account The account whose tokens will be burnt.\n * @param value The amount that will be burnt.\n */\n function _burnFrom(address account, uint256 value) internal {\n require(value <= _allowed[account][msg.sender]);\n\n // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted,\n // this function needs to emit an event with the updated approval.\n _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(\n value);\n _burn(account, value);\n }\n}\n", "sourcePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "ast": { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "ERC20": [ - 10211 + 12897 ] }, - "id": 10212, + "id": 12898, "nodeType": "SourceUnit", "nodes": [ { - "id": 10170, + "id": 12455, "literals": [ "solidity", "^", @@ -200,16 +246,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:47" + "src": "0:24:56" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 12456, + "nodeType": "ImportDirective", + "scope": 12898, + "sourceUnit": 13084, + "src": "26:22:56", + "symbolAliases": [], + "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", - "file": "./ERC20Basic.sol", - "id": 10171, + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "../../math/SafeMath.sol", + "id": 12457, "nodeType": "ImportDirective", - "scope": 10212, - "sourceUnit": 10244, - "src": "26:26:47", + "scope": 12898, + "sourceUnit": 12389, + "src": "49:33:56", "symbolAliases": [], "unitAlias": "" }, @@ -219,82 +276,351 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 10172, - "name": "ERC20Basic", + "id": 12458, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10243, - "src": "162:10:47", + "referencedDeclaration": 13083, + "src": "387:6:56", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$10243", - "typeString": "contract ERC20Basic" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 10173, + "id": 12459, "nodeType": "InheritanceSpecifier", - "src": "162:10:47" + "src": "387:6:56" } ], "contractDependencies": [ - 10243 + 13083 ], "contractKind": "contract", - "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", - "fullyImplemented": false, - "id": 10211, + "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\nhttps://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\nOriginally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol", + "fullyImplemented": true, + "id": 12897, "linearizedBaseContracts": [ - 10211, - 10243 + 12897, + 13083 ], "name": "ERC20", "nodeType": "ContractDefinition", "nodes": [ { - "body": null, - "documentation": null, - "id": 10182, - "implemented": false, + "id": 12462, + "libraryName": { + "contractScope": null, + "id": 12460, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "404:8:56", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "398:27:56", + "typeName": { + "id": 12461, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "417:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 12466, + "name": "_balances", + "nodeType": "VariableDeclaration", + "scope": 12897, + "src": "429:46:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 12465, + "keyType": { + "id": 12463, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "438:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "429:28:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 12464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "449:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 12472, + "name": "_allowed", + "nodeType": "VariableDeclaration", + "scope": 12897, + "src": "480:66:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 12471, + "keyType": { + "id": 12467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "489:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "480:49:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 12470, + "keyType": { + "id": 12468, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "509:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "500:28:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 12469, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "520:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 12474, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 12897, + "src": "551:28:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "551:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 12481, + "nodeType": "Block", + "src": "693:30:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12479, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12474, + "src": "706:12:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12478, + "id": 12480, + "nodeType": "Return", + "src": "699:19:56" + } + ] + }, + "documentation": "@dev Total number of tokens in existence", + "id": 12482, + "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "allowance", + "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 10178, + "id": 12475, + "nodeType": "ParameterList", + "parameters": [], + "src": "660:2:56" + }, + "payable": false, + "returnParameters": { + "id": 12478, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10175, - "name": "_owner", + "id": 12477, + "name": "", "nodeType": "VariableDeclaration", - "scope": 10182, - "src": "196:14:47", + "scope": 12482, + "src": "684:7:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 10174, - "name": "address", + "id": 12476, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "196:7:47", + "src": "684:7:56", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" - }, + } + ], + "src": "683:9:56" + }, + "scope": 12897, + "src": "640:83:56", + "stateMutability": "view", + "superFunction": 13021, + "visibility": "public" + }, + { + "body": { + "id": 12493, + "nodeType": "Block", + "src": "984:34:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12489, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "997:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12491, + "indexExpression": { + "argumentTypes": null, + "id": 12490, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12484, + "src": "1007:5:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "997:16:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12488, + "id": 12492, + "nodeType": "Return", + "src": "990:23:56" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address.\n@param owner The address to query the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "id": 12494, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12485, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 10177, - "name": "_spender", + "id": 12484, + "name": "owner", "nodeType": "VariableDeclaration", - "scope": 10182, - "src": "212:16:47", + "scope": 12494, + "src": "939:13:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -302,10 +628,10 @@ "typeString": "address" }, "typeName": { - "id": 10176, + "id": 12483, "name": "address", "nodeType": "ElementaryTypeName", - "src": "212:7:47", + "src": "939:7:56", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -315,20 +641,20 @@ "visibility": "internal" } ], - "src": "195:34:47" + "src": "938:15:56" }, "payable": false, "returnParameters": { - "id": 10181, + "id": 12488, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10180, + "id": 12487, "name": "", "nodeType": "VariableDeclaration", - "scope": 10182, - "src": "255:7:47", + "scope": 12494, + "src": "975:7:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -336,10 +662,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10179, + "id": 12486, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "255:7:47", + "src": "975:7:56", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -349,35 +675,114 @@ "visibility": "internal" } ], - "src": "254:9:47" + "src": "974:9:56" }, - "scope": 10211, - "src": "177:87:47", + "scope": 12897, + "src": "920:98:56", "stateMutability": "view", - "superFunction": null, + "superFunction": 13028, "visibility": "public" }, { - "body": null, - "documentation": null, - "id": 10193, - "implemented": false, + "body": { + "id": 12509, + "nodeType": "Block", + "src": "1443:42:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12503, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "1456:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12505, + "indexExpression": { + "argumentTypes": null, + "id": 12504, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12496, + "src": "1465:5:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1456:15:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12507, + "indexExpression": { + "argumentTypes": null, + "id": 12506, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12498, + "src": "1472:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1456:24:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12502, + "id": 12508, + "nodeType": "Return", + "src": "1449:31:56" + } + ] + }, + "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param owner address The address which owns the funds.\n@param spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", + "id": 12510, + "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "transferFrom", + "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 10189, + "id": 12499, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10184, - "name": "_from", + "id": 12496, + "name": "owner", "nodeType": "VariableDeclaration", - "scope": 10193, - "src": "290:13:47", + "scope": 12510, + "src": "1359:13:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -385,10 +790,10 @@ "typeString": "address" }, "typeName": { - "id": 10183, + "id": 12495, "name": "address", "nodeType": "ElementaryTypeName", - "src": "290:7:47", + "src": "1359:7:56", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -399,11 +804,11 @@ }, { "constant": false, - "id": 10186, - "name": "_to", + "id": 12498, + "name": "spender", "nodeType": "VariableDeclaration", - "scope": 10193, - "src": "305:11:47", + "scope": 12510, + "src": "1378:15:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -411,10 +816,10 @@ "typeString": "address" }, "typeName": { - "id": 10185, + "id": 12497, "name": "address", "nodeType": "ElementaryTypeName", - "src": "305:7:47", + "src": "1378:7:56", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -422,14 +827,22 @@ }, "value": null, "visibility": "internal" - }, + } + ], + "src": "1353:45:56" + }, + "payable": false, + "returnParameters": { + "id": 12502, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 10188, - "name": "_value", + "id": 12501, + "name": "", "nodeType": "VariableDeclaration", - "scope": 10193, - "src": "318:14:47", + "scope": 12510, + "src": "1432:7:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -437,10 +850,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10187, + "id": 12500, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "318:7:47", + "src": "1432:7:56", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -450,69 +863,169 @@ "visibility": "internal" } ], - "src": "289:44:47" + "src": "1431:9:56" }, - "payable": false, - "returnParameters": { - "id": 10192, - "nodeType": "ParameterList", - "parameters": [ + "scope": 12897, + "src": "1335:150:56", + "stateMutability": "view", + "superFunction": 13037, + "visibility": "public" + }, + { + "body": { + "id": 12528, + "nodeType": "Block", + "src": "1704:60:56", + "statements": [ { - "constant": false, - "id": 10191, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10193, - "src": "354:4:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12520, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "1720:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1720:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12522, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12512, + "src": "1732:2:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12523, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12514, + "src": "1736:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12519, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12767, + "src": "1710:9:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1710:32:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "typeName": { - "id": 10190, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "354:4:47", + "id": 12525, + "nodeType": "ExpressionStatement", + "src": "1710:32:56" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1755:4:56", + "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" - } + }, + "value": "true" }, - "value": null, - "visibility": "internal" + "functionReturnParameters": 12518, + "id": 12527, + "nodeType": "Return", + "src": "1748:11:56" } - ], - "src": "353:6:47" + ] }, - "scope": 10211, - "src": "268:92:47", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 10202, - "implemented": false, + "documentation": "@dev Transfer token for a specified address\n@param to The address to transfer to.\n@param value The amount to be transferred.", + "id": 12529, + "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "approve", + "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 10198, + "id": 12515, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10195, - "name": "_spender", + "id": 12512, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 10202, - "src": "381:16:47", + "scope": 12529, + "src": "1655:10:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -520,10 +1033,10 @@ "typeString": "address" }, "typeName": { - "id": 10194, + "id": 12511, "name": "address", "nodeType": "ElementaryTypeName", - "src": "381:7:47", + "src": "1655:7:56", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -534,11 +1047,11 @@ }, { "constant": false, - "id": 10197, - "name": "_value", + "id": 12514, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 10202, - "src": "399:14:47", + "scope": 12529, + "src": "1667:13:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -546,10 +1059,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10196, + "id": 12513, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "399:7:47", + "src": "1667:7:56", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -559,20 +1072,20 @@ "visibility": "internal" } ], - "src": "380:34:47" + "src": "1654:27:56" }, "payable": false, "returnParameters": { - "id": 10201, + "id": 12518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10200, + "id": 12517, "name": "", "nodeType": "VariableDeclaration", - "scope": 10202, - "src": "431:4:47", + "scope": 12529, + "src": "1698:4:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -580,10 +1093,10 @@ "typeString": "bool" }, "typeName": { - "id": 10199, + "id": 12516, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "431:4:47", + "src": "1698:4:56", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -593,205 +1106,417 @@ "visibility": "internal" } ], - "src": "430:6:47" + "src": "1697:6:56" }, - "scope": 10211, - "src": "364:73:47", + "scope": 12897, + "src": "1637:127:56", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 13046, "visibility": "public" }, { - "anonymous": false, - "documentation": null, - "id": 10210, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 10209, - "nodeType": "ParameterList", - "parameters": [ + "body": { + "id": 12564, + "nodeType": "Block", + "src": "2451:149:56", + "statements": [ { - "constant": false, - "id": 10204, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 10210, - "src": "460:21:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10203, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "460:7:47", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12539, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12531, + "src": "2465:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2484:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2476:7:56", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2476:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2465:21:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12538, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2457:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2457:30:56", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 12545, + "nodeType": "ExpressionStatement", + "src": "2457:30:56" }, { - "constant": false, - "id": 10206, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 10210, - "src": "487:23:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10205, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "487:7:47", + "expression": { + "argumentTypes": null, + "id": 12553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12546, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "2494:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12550, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12547, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2503:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2503:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2494:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12551, + "indexExpression": { + "argumentTypes": null, + "id": 12549, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12531, + "src": "2515:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2494:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12552, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12533, + "src": "2526:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2494:37:56", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "value": null, - "visibility": "internal" + "id": 12554, + "nodeType": "ExpressionStatement", + "src": "2494:37:56" }, { - "constant": false, - "id": 10208, - "indexed": false, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 10210, - "src": "516:13:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "516:7:47", + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12556, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2551:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2551:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12558, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12531, + "src": "2563:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12559, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12533, + "src": "2572:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12555, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13082, + "src": "2542:8:56", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2542:36:56", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 12561, + "nodeType": "EmitStatement", + "src": "2537:41:56" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2591:4:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 12537, + "id": 12563, + "nodeType": "Return", + "src": "2584:11:56" } - ], - "src": "454:79:47" - }, - "src": "440:94:47" - } - ], - "scope": 10212, - "src": "144:392:47" - } - ], - "src": "0:537:47" - }, - "legacyAST": { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "exportedSymbols": { - "ERC20": [ - 10211 - ] - }, - "id": 10212, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 10170, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:47" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", - "file": "./ERC20Basic.sol", - "id": 10171, - "nodeType": "ImportDirective", - "scope": 10212, - "sourceUnit": 10244, - "src": "26:26:47", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10172, - "name": "ERC20Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10243, - "src": "162:10:47", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$10243", - "typeString": "contract ERC20Basic" - } + ] }, - "id": 10173, - "nodeType": "InheritanceSpecifier", - "src": "162:10:47" - } - ], - "contractDependencies": [ - 10243 - ], - "contractKind": "contract", - "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", - "fullyImplemented": false, - "id": 10211, - "linearizedBaseContracts": [ - 10211, - 10243 - ], - "name": "ERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 10182, - "implemented": false, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param spender The address which will spend the funds.\n@param value The amount of tokens to be spent.", + "id": 12565, + "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "allowance", + "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 10178, + "id": 12534, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10175, - "name": "_owner", + "id": 12531, + "name": "spender", "nodeType": "VariableDeclaration", - "scope": 10182, - "src": "196:14:47", + "scope": 12565, + "src": "2397:15:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -799,10 +1524,10 @@ "typeString": "address" }, "typeName": { - "id": 10174, + "id": 12530, "name": "address", "nodeType": "ElementaryTypeName", - "src": "196:7:47", + "src": "2397:7:56", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -813,94 +1538,609 @@ }, { "constant": false, - "id": 10177, - "name": "_spender", + "id": 12533, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 10182, - "src": "212:16:47", + "scope": 12565, + "src": "2414:13:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 10176, - "name": "address", + "id": 12532, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "212:7:47", + "src": "2414:7:56", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "195:34:47" + "src": "2396:32:56" }, "payable": false, "returnParameters": { - "id": 10181, + "id": 12537, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10180, + "id": 12536, "name": "", "nodeType": "VariableDeclaration", - "scope": 10182, - "src": "255:7:47", + "scope": 12565, + "src": "2445:4:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "id": 10179, - "name": "uint256", + "id": 12535, + "name": "bool", "nodeType": "ElementaryTypeName", - "src": "255:7:47", + "src": "2445:4:56", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "value": null, "visibility": "internal" } ], - "src": "254:9:47" + "src": "2444:6:56" }, - "scope": 10211, - "src": "177:87:47", - "stateMutability": "view", - "superFunction": null, + "scope": 12897, + "src": "2380:220:56", + "stateMutability": "nonpayable", + "superFunction": 13055, "visibility": "public" }, { - "body": null, - "documentation": null, - "id": 10193, - "implemented": false, + "body": { + "id": 12612, + "nodeType": "Block", + "src": "2983:177:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12577, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12571, + "src": "2997:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12578, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "3006:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12580, + "indexExpression": { + "argumentTypes": null, + "id": 12579, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12567, + "src": "3015:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3006:14:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12583, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12581, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3021:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3021:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3006:26:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2997:35:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12576, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2989:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2989:44:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12586, + "nodeType": "ExpressionStatement", + "src": "2989:44:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12587, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "3040:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12591, + "indexExpression": { + "argumentTypes": null, + "id": 12588, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12567, + "src": "3049:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3040:14:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12592, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3055:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3055:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3040:26:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12600, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12571, + "src": "3100:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12593, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "3069:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12595, + "indexExpression": { + "argumentTypes": null, + "id": 12594, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12567, + "src": "3078:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3069:14:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12598, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12596, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3084:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3084:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3069:26:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "3069:30:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3069:37:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3040:66:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12603, + "nodeType": "ExpressionStatement", + "src": "3040:66:56" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12605, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12567, + "src": "3122:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12606, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12569, + "src": "3128:2:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12607, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12571, + "src": "3132:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12604, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12767, + "src": "3112:9:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3112:26:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12609, + "nodeType": "ExpressionStatement", + "src": "3112:26:56" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3151:4:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 12575, + "id": 12611, + "nodeType": "Return", + "src": "3144:11:56" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another\n@param from address The address which you want to send tokens from\n@param to address The address which you want to transfer to\n@param value uint256 the amount of tokens to be transferred", + "id": 12613, + "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 10189, + "id": 12572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10184, - "name": "_from", + "id": 12567, + "name": "from", "nodeType": "VariableDeclaration", - "scope": 10193, - "src": "290:13:47", + "scope": 12613, + "src": "2899:12:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -908,10 +2148,10 @@ "typeString": "address" }, "typeName": { - "id": 10183, + "id": 12566, "name": "address", "nodeType": "ElementaryTypeName", - "src": "290:7:47", + "src": "2899:7:56", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -922,11 +2162,11 @@ }, { "constant": false, - "id": 10186, - "name": "_to", + "id": 12569, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 10193, - "src": "305:11:47", + "scope": 12613, + "src": "2917:10:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -934,10 +2174,10 @@ "typeString": "address" }, "typeName": { - "id": 10185, + "id": 12568, "name": "address", "nodeType": "ElementaryTypeName", - "src": "305:7:47", + "src": "2917:7:56", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -948,11 +2188,11 @@ }, { "constant": false, - "id": 10188, - "name": "_value", + "id": 12571, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 10193, - "src": "318:14:47", + "scope": 12613, + "src": "2933:13:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -960,10 +2200,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10187, + "id": 12570, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "318:7:47", + "src": "2933:7:56", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -973,20 +2213,20 @@ "visibility": "internal" } ], - "src": "289:44:47" + "src": "2893:57:56" }, "payable": false, "returnParameters": { - "id": 10192, + "id": 12575, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10191, + "id": 12574, "name": "", "nodeType": "VariableDeclaration", - "scope": 10193, - "src": "354:4:47", + "scope": 12613, + "src": "2975:4:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -994,10 +2234,10 @@ "typeString": "bool" }, "typeName": { - "id": 10190, + "id": 12573, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "354:4:47", + "src": "2975:4:56", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1007,35 +2247,626 @@ "visibility": "internal" } ], - "src": "353:6:47" + "src": "2974:6:56" }, - "scope": 10211, - "src": "268:92:47", + "scope": 12897, + "src": "2872:288:56", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 13066, "visibility": "public" }, { - "body": null, - "documentation": null, - "id": 10202, - "implemented": false, + "body": { + "id": 12662, + "nodeType": "Block", + "src": "3719:222:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12623, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "3733:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3752:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3744:7:56", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3744:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3733:21:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12622, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3725:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3725:30:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12629, + "nodeType": "ExpressionStatement", + "src": "3725:30:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12630, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "3762:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12634, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12631, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3771:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3771:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3762:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12635, + "indexExpression": { + "argumentTypes": null, + "id": 12633, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "3783:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3762:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12643, + "name": "addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12617, + "src": "3836:10:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12636, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "3802:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12639, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12637, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3811:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3811:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3802:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12641, + "indexExpression": { + "argumentTypes": null, + "id": 12640, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "3823:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3802:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "3802:33:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3802:45:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 12645, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3794:54:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3762:86:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12647, + "nodeType": "ExpressionStatement", + "src": "3762:86:56" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12649, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3868:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3868:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12651, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "3880:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12652, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "3889:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12655, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12653, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3898:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3898:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3889:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12657, + "indexExpression": { + "argumentTypes": null, + "id": 12656, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "3910:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3889:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12648, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13082, + "src": "3859:8:56", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3859:60:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12659, + "nodeType": "EmitStatement", + "src": "3854:65:56" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3932:4:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 12621, + "id": 12661, + "nodeType": "Return", + "src": "3925:11:56" + } + ] + }, + "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param addedValue The amount of tokens to increase the allowance by.", + "id": 12663, + "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "approve", + "name": "increaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 10198, + "id": 12618, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10195, - "name": "_spender", + "id": 12615, + "name": "spender", "nodeType": "VariableDeclaration", - "scope": 10202, - "src": "381:16:47", + "scope": 12663, + "src": "3643:15:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1043,10 +2874,10 @@ "typeString": "address" }, "typeName": { - "id": 10194, + "id": 12614, "name": "address", "nodeType": "ElementaryTypeName", - "src": "381:7:47", + "src": "3643:7:56", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1057,11 +2888,11 @@ }, { "constant": false, - "id": 10197, - "name": "_value", + "id": 12617, + "name": "addedValue", "nodeType": "VariableDeclaration", - "scope": 10202, - "src": "399:14:47", + "scope": 12663, + "src": "3664:18:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1069,10 +2900,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10196, + "id": 12616, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "399:7:47", + "src": "3664:7:56", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1082,20 +2913,20 @@ "visibility": "internal" } ], - "src": "380:34:47" + "src": "3637:49:56" }, "payable": false, "returnParameters": { - "id": 10201, + "id": 12621, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10200, + "id": 12620, "name": "", "nodeType": "VariableDeclaration", - "scope": 10202, - "src": "431:4:47", + "scope": 12663, + "src": "3711:4:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1103,10 +2934,10 @@ "typeString": "bool" }, "typeName": { - "id": 10199, + "id": 12619, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "431:4:47", + "src": "3711:4:56", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1116,59 +2947,626 @@ "visibility": "internal" } ], - "src": "430:6:47" + "src": "3710:6:56" }, - "scope": 10211, - "src": "364:73:47", + "scope": 12897, + "src": "3611:330:56", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { - "anonymous": false, - "documentation": null, - "id": 10210, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 10209, - "nodeType": "ParameterList", - "parameters": [ + "body": { + "id": 12712, + "nodeType": "Block", + "src": "4510:227:56", + "statements": [ { - "constant": false, - "id": 10204, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 10210, - "src": "460:21:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12673, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12665, + "src": "4524:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4543:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4535:7:56", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4535:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4524:21:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12672, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "4516:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4516:30:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "typeName": { - "id": 10203, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "460:7:47", + "id": 12679, + "nodeType": "ExpressionStatement", + "src": "4516:30:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12680, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "4553:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12684, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12681, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4562:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4562:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4553:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12685, + "indexExpression": { + "argumentTypes": null, + "id": 12683, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12665, + "src": "4574:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4553:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12693, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12667, + "src": "4627:15:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12686, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "4593:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12689, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12687, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4602:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4602:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4593:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12691, + "indexExpression": { + "argumentTypes": null, + "id": 12690, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12665, + "src": "4614:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4593:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "4593:33:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4593:50:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 12695, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4585:59:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4553:91:56", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "value": null, - "visibility": "internal" + "id": 12697, + "nodeType": "ExpressionStatement", + "src": "4553:91:56" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12699, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4664:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4664:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12701, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12665, + "src": "4676:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12702, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "4685:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12705, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12703, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4694:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4694:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4685:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12707, + "indexExpression": { + "argumentTypes": null, + "id": 12706, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12665, + "src": "4706:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4685:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12698, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13082, + "src": "4655:8:56", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4655:60:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12709, + "nodeType": "EmitStatement", + "src": "4650:65:56" }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4728:4:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 12671, + "id": 12711, + "nodeType": "Return", + "src": "4721:11:56" + } + ] + }, + "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param subtractedValue The amount of tokens to decrease the allowance by.", + "id": 12713, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decreaseAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12668, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 10206, - "indexed": true, + "id": 12665, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 10210, - "src": "487:23:47", + "scope": 12713, + "src": "4429:15:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1176,10 +3574,10 @@ "typeString": "address" }, "typeName": { - "id": 10205, + "id": 12664, "name": "address", "nodeType": "ElementaryTypeName", - "src": "487:7:47", + "src": "4429:7:56", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1190,12 +3588,11 @@ }, { "constant": false, - "id": 10208, - "indexed": false, - "name": "value", + "id": 12667, + "name": "subtractedValue", "nodeType": "VariableDeclaration", - "scope": 10210, - "src": "516:13:47", + "scope": 12713, + "src": "4450:23:56", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1203,10 +3600,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10207, + "id": 12666, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "516:7:47", + "src": "4450:7:56", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1216,16 +3613,8593 @@ "visibility": "internal" } ], - "src": "454:79:47" + "src": "4423:54:56" }, - "src": "440:94:47" + "payable": false, + "returnParameters": { + "id": 12671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12670, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12713, + "src": "4502:4:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12669, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4502:4:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4501:6:56" + }, + "scope": 12897, + "src": "4397:340:56", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12766, + "nodeType": "Block", + "src": "5006:208:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12723, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12719, + "src": "5020:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12724, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5029:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12726, + "indexExpression": { + "argumentTypes": null, + "id": 12725, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12715, + "src": "5039:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5029:15:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5020:24:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12722, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5012:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5012:33:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12729, + "nodeType": "ExpressionStatement", + "src": "5012:33:56" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12731, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12717, + "src": "5059:2:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5073:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5065:7:56", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5065:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5059:16:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12730, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5051:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5051:25:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12737, + "nodeType": "ExpressionStatement", + "src": "5051:25:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12738, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5083:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12740, + "indexExpression": { + "argumentTypes": null, + "id": 12739, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12715, + "src": "5093:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5083:15:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12745, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12719, + "src": "5121:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12741, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5101:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12743, + "indexExpression": { + "argumentTypes": null, + "id": 12742, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12715, + "src": "5111:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5101:15:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "5101:19:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5101:26:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5083:44:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12748, + "nodeType": "ExpressionStatement", + "src": "5083:44:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12749, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5133:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12751, + "indexExpression": { + "argumentTypes": null, + "id": 12750, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12717, + "src": "5143:2:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5133:13:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12756, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12719, + "src": "5167:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12752, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5149:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12754, + "indexExpression": { + "argumentTypes": null, + "id": 12753, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12717, + "src": "5159:2:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5149:13:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5149:17:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5149:24:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5133:40:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12759, + "nodeType": "ExpressionStatement", + "src": "5133:40:56" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12761, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12715, + "src": "5193:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12762, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12717, + "src": "5199:2:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12763, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12719, + "src": "5203:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12760, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13074, + "src": "5184:8:56", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5184:25:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12765, + "nodeType": "EmitStatement", + "src": "5179:30:56" + } + ] + }, + "documentation": "@dev Transfer token for a specified addresses\n@param from The address to transfer from.\n@param to The address to transfer to.\n@param value The amount to be transferred.", + "id": 12767, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12715, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 12767, + "src": "4956:12:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12714, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4956:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12717, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 12767, + "src": "4970:10:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12716, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4970:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12719, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12767, + "src": "4982:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12718, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4982:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4955:41:56" + }, + "payable": false, + "returnParameters": { + "id": 12721, + "nodeType": "ParameterList", + "parameters": [], + "src": "5006:0:56" + }, + "scope": 12897, + "src": "4937:277:56", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12806, + "nodeType": "Block", + "src": "5597:179:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12775, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12769, + "src": "5611:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5622:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5611:12:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12774, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5603:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5603:21:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12779, + "nodeType": "ExpressionStatement", + "src": "5603:21:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12780, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12474, + "src": "5630:12:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12783, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12771, + "src": "5662:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12781, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12474, + "src": "5645:12:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5645:16:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5645:23:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5630:38:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12786, + "nodeType": "ExpressionStatement", + "src": "5630:38:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12787, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5674:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12789, + "indexExpression": { + "argumentTypes": null, + "id": 12788, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12769, + "src": "5684:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5674:18:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12794, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12771, + "src": "5718:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12790, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5695:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12792, + "indexExpression": { + "argumentTypes": null, + "id": 12791, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12769, + "src": "5705:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5695:18:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5695:22:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5695:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5674:50:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12797, + "nodeType": "ExpressionStatement", + "src": "5674:50:56" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5752:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5744:7:56", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12801, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5744:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12802, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12769, + "src": "5756:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12803, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12771, + "src": "5765:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12798, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13074, + "src": "5735:8:56", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5735:36:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12805, + "nodeType": "EmitStatement", + "src": "5730:41:56" + } + ] + }, + "documentation": "@dev Internal function that mints an amount of the token and assigns it to\nan account. This encapsulates the modification of balances such that the\nproper events are emitted.\n@param account The account that will receive the created tokens.\n@param value The amount that will be created.", + "id": 12807, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12769, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12807, + "src": "5556:15:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12768, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5556:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12771, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12807, + "src": "5573:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5573:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5555:32:56" + }, + "payable": false, + "returnParameters": { + "id": 12773, + "nodeType": "ParameterList", + "parameters": [], + "src": "5597:0:56" + }, + "scope": 12897, + "src": "5541:235:56", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12854, + "nodeType": "Block", + "src": "6044:222:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12815, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "6058:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6069:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6058:12:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12814, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6050:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6050:21:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12819, + "nodeType": "ExpressionStatement", + "src": "6050:21:56" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12821, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12811, + "src": "6085:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12822, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "6094:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12824, + "indexExpression": { + "argumentTypes": null, + "id": 12823, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "6104:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6094:18:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6085:27:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12820, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6077:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6077:36:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12827, + "nodeType": "ExpressionStatement", + "src": "6077:36:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12828, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12474, + "src": "6120:12:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12831, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12811, + "src": "6152:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12829, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12474, + "src": "6135:12:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "6135:16:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6135:23:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6120:38:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12834, + "nodeType": "ExpressionStatement", + "src": "6120:38:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12835, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "6164:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12837, + "indexExpression": { + "argumentTypes": null, + "id": 12836, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "6174:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6164:18:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12842, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12811, + "src": "6208:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12838, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "6185:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12840, + "indexExpression": { + "argumentTypes": null, + "id": 12839, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "6195:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6185:18:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "6185:22:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6185:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6164:50:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12845, + "nodeType": "ExpressionStatement", + "src": "6164:50:56" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12847, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "6234:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6251:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6243:7:56", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6243:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12851, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12811, + "src": "6255:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12846, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13074, + "src": "6225:8:56", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6225:36:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12853, + "nodeType": "EmitStatement", + "src": "6220:41:56" + } + ] + }, + "documentation": "@dev Internal function that burns an amount of the token of a given\naccount.\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.", + "id": 12855, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12809, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12855, + "src": "6003:15:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12808, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6003:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12811, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12855, + "src": "6020:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12810, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6020:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6002:32:56" + }, + "payable": false, + "returnParameters": { + "id": 12813, + "nodeType": "ParameterList", + "parameters": [], + "src": "6044:0:56" + }, + "scope": 12897, + "src": "5988:278:56", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12895, + "nodeType": "Block", + "src": "6632:330:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12863, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12859, + "src": "6646:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12864, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "6655:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12866, + "indexExpression": { + "argumentTypes": null, + "id": 12865, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12857, + "src": "6664:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6655:17:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12869, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12867, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6673:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6673:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6655:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6646:38:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12862, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6638:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6638:47:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12872, + "nodeType": "ExpressionStatement", + "src": "6638:47:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12873, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "6851:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12877, + "indexExpression": { + "argumentTypes": null, + "id": 12874, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12857, + "src": "6860:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6851:17:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12878, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12875, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6869:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6869:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6851:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12886, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12859, + "src": "6924:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12879, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "6883:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12881, + "indexExpression": { + "argumentTypes": null, + "id": 12880, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12857, + "src": "6892:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6883:17:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12884, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12882, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6901:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6901:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6883:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "6883:33:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6883:47:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6851:79:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12889, + "nodeType": "ExpressionStatement", + "src": "6851:79:56" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12891, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12857, + "src": "6942:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12892, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12859, + "src": "6951:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12890, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12855, + "src": "6936:5:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6936:21:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12894, + "nodeType": "ExpressionStatement", + "src": "6936:21:56" + } + ] + }, + "documentation": "@dev Internal function that burns an amount of the token of a given\naccount, deducting from the sender's allowance for said account. Uses the\ninternal burn function.\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.", + "id": 12896, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_burnFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12857, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12896, + "src": "6591:15:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12859, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12896, + "src": "6608:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6608:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:32:56" + }, + "payable": false, + "returnParameters": { + "id": 12861, + "nodeType": "ParameterList", + "parameters": [], + "src": "6632:0:56" + }, + "scope": 12897, + "src": "6572:390:56", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 12898, + "src": "369:6595:56" + } + ], + "src": "0:6965:56" + }, + "legacyAST": { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "ERC20": [ + 12897 + ] + }, + "id": 12898, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12455, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:56" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 12456, + "nodeType": "ImportDirective", + "scope": 12898, + "sourceUnit": 13084, + "src": "26:22:56", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "../../math/SafeMath.sol", + "id": 12457, + "nodeType": "ImportDirective", + "scope": 12898, + "sourceUnit": 12389, + "src": "49:33:56", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12458, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13083, + "src": "387:6:56", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 12459, + "nodeType": "InheritanceSpecifier", + "src": "387:6:56" + } + ], + "contractDependencies": [ + 13083 + ], + "contractKind": "contract", + "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\nhttps://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\nOriginally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol", + "fullyImplemented": true, + "id": 12897, + "linearizedBaseContracts": [ + 12897, + 13083 + ], + "name": "ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 12462, + "libraryName": { + "contractScope": null, + "id": 12460, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "404:8:56", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "398:27:56", + "typeName": { + "id": 12461, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "417:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 12466, + "name": "_balances", + "nodeType": "VariableDeclaration", + "scope": 12897, + "src": "429:46:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 12465, + "keyType": { + "id": 12463, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "438:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "429:28:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 12464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "449:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 12472, + "name": "_allowed", + "nodeType": "VariableDeclaration", + "scope": 12897, + "src": "480:66:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 12471, + "keyType": { + "id": 12467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "489:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "480:49:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 12470, + "keyType": { + "id": 12468, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "509:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "500:28:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 12469, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "520:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 12474, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 12897, + "src": "551:28:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "551:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 12481, + "nodeType": "Block", + "src": "693:30:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12479, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12474, + "src": "706:12:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12478, + "id": 12480, + "nodeType": "Return", + "src": "699:19:56" + } + ] + }, + "documentation": "@dev Total number of tokens in existence", + "id": 12482, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12475, + "nodeType": "ParameterList", + "parameters": [], + "src": "660:2:56" + }, + "payable": false, + "returnParameters": { + "id": 12478, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12477, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12482, + "src": "684:7:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12476, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "684:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "683:9:56" + }, + "scope": 12897, + "src": "640:83:56", + "stateMutability": "view", + "superFunction": 13021, + "visibility": "public" + }, + { + "body": { + "id": 12493, + "nodeType": "Block", + "src": "984:34:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12489, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "997:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12491, + "indexExpression": { + "argumentTypes": null, + "id": 12490, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12484, + "src": "1007:5:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "997:16:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12488, + "id": 12492, + "nodeType": "Return", + "src": "990:23:56" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address.\n@param owner The address to query the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "id": 12494, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12484, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 12494, + "src": "939:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12483, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "939:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "938:15:56" + }, + "payable": false, + "returnParameters": { + "id": 12488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12487, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12494, + "src": "975:7:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12486, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "975:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "974:9:56" + }, + "scope": 12897, + "src": "920:98:56", + "stateMutability": "view", + "superFunction": 13028, + "visibility": "public" + }, + { + "body": { + "id": 12509, + "nodeType": "Block", + "src": "1443:42:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12503, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "1456:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12505, + "indexExpression": { + "argumentTypes": null, + "id": 12504, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12496, + "src": "1465:5:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1456:15:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12507, + "indexExpression": { + "argumentTypes": null, + "id": 12506, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12498, + "src": "1472:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1456:24:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12502, + "id": 12508, + "nodeType": "Return", + "src": "1449:31:56" + } + ] + }, + "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param owner address The address which owns the funds.\n@param spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", + "id": 12510, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12499, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12496, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 12510, + "src": "1359:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12495, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1359:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12498, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 12510, + "src": "1378:15:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1378:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1353:45:56" + }, + "payable": false, + "returnParameters": { + "id": 12502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12501, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12510, + "src": "1432:7:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1432:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1431:9:56" + }, + "scope": 12897, + "src": "1335:150:56", + "stateMutability": "view", + "superFunction": 13037, + "visibility": "public" + }, + { + "body": { + "id": 12528, + "nodeType": "Block", + "src": "1704:60:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12520, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "1720:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1720:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12522, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12512, + "src": "1732:2:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12523, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12514, + "src": "1736:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12519, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12767, + "src": "1710:9:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1710:32:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12525, + "nodeType": "ExpressionStatement", + "src": "1710:32:56" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1755:4:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 12518, + "id": 12527, + "nodeType": "Return", + "src": "1748:11:56" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param to The address to transfer to.\n@param value The amount to be transferred.", + "id": 12529, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12515, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12512, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 12529, + "src": "1655:10:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1655:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12514, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12529, + "src": "1667:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12513, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1667:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1654:27:56" + }, + "payable": false, + "returnParameters": { + "id": 12518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12517, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12529, + "src": "1698:4:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12516, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1698:4:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1697:6:56" + }, + "scope": 12897, + "src": "1637:127:56", + "stateMutability": "nonpayable", + "superFunction": 13046, + "visibility": "public" + }, + { + "body": { + "id": 12564, + "nodeType": "Block", + "src": "2451:149:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12539, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12531, + "src": "2465:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2484:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2476:7:56", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2476:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2465:21:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12538, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2457:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2457:30:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12545, + "nodeType": "ExpressionStatement", + "src": "2457:30:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12546, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "2494:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12550, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12547, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2503:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2503:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2494:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12551, + "indexExpression": { + "argumentTypes": null, + "id": 12549, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12531, + "src": "2515:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2494:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12552, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12533, + "src": "2526:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2494:37:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12554, + "nodeType": "ExpressionStatement", + "src": "2494:37:56" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12556, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2551:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2551:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12558, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12531, + "src": "2563:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12559, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12533, + "src": "2572:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12555, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13082, + "src": "2542:8:56", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2542:36:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12561, + "nodeType": "EmitStatement", + "src": "2537:41:56" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2591:4:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 12537, + "id": 12563, + "nodeType": "Return", + "src": "2584:11:56" + } + ] + }, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param spender The address which will spend the funds.\n@param value The amount of tokens to be spent.", + "id": 12565, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12531, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 12565, + "src": "2397:15:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2397:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12533, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12565, + "src": "2414:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2414:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2396:32:56" + }, + "payable": false, + "returnParameters": { + "id": 12537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12536, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12565, + "src": "2445:4:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12535, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2445:4:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:6:56" + }, + "scope": 12897, + "src": "2380:220:56", + "stateMutability": "nonpayable", + "superFunction": 13055, + "visibility": "public" + }, + { + "body": { + "id": 12612, + "nodeType": "Block", + "src": "2983:177:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12577, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12571, + "src": "2997:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12578, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "3006:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12580, + "indexExpression": { + "argumentTypes": null, + "id": 12579, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12567, + "src": "3015:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3006:14:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12583, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12581, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3021:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3021:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3006:26:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2997:35:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12576, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2989:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2989:44:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12586, + "nodeType": "ExpressionStatement", + "src": "2989:44:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12587, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "3040:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12591, + "indexExpression": { + "argumentTypes": null, + "id": 12588, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12567, + "src": "3049:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3040:14:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12592, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3055:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3055:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3040:26:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12600, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12571, + "src": "3100:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12593, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "3069:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12595, + "indexExpression": { + "argumentTypes": null, + "id": 12594, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12567, + "src": "3078:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3069:14:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12598, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12596, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3084:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3084:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3069:26:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "3069:30:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3069:37:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3040:66:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12603, + "nodeType": "ExpressionStatement", + "src": "3040:66:56" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12605, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12567, + "src": "3122:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12606, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12569, + "src": "3128:2:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12607, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12571, + "src": "3132:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12604, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12767, + "src": "3112:9:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3112:26:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12609, + "nodeType": "ExpressionStatement", + "src": "3112:26:56" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3151:4:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 12575, + "id": 12611, + "nodeType": "Return", + "src": "3144:11:56" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another\n@param from address The address which you want to send tokens from\n@param to address The address which you want to transfer to\n@param value uint256 the amount of tokens to be transferred", + "id": 12613, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12567, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 12613, + "src": "2899:12:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12566, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2899:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12569, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 12613, + "src": "2917:10:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2917:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12571, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12613, + "src": "2933:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2933:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2893:57:56" + }, + "payable": false, + "returnParameters": { + "id": 12575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12574, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12613, + "src": "2975:4:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12573, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2975:4:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2974:6:56" + }, + "scope": 12897, + "src": "2872:288:56", + "stateMutability": "nonpayable", + "superFunction": 13066, + "visibility": "public" + }, + { + "body": { + "id": 12662, + "nodeType": "Block", + "src": "3719:222:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12623, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "3733:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3752:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3744:7:56", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3744:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3733:21:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12622, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3725:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3725:30:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12629, + "nodeType": "ExpressionStatement", + "src": "3725:30:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12630, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "3762:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12634, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12631, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3771:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3771:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3762:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12635, + "indexExpression": { + "argumentTypes": null, + "id": 12633, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "3783:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3762:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12643, + "name": "addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12617, + "src": "3836:10:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12636, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "3802:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12639, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12637, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3811:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3811:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3802:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12641, + "indexExpression": { + "argumentTypes": null, + "id": 12640, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "3823:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3802:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "3802:33:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3802:45:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 12645, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3794:54:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3762:86:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12647, + "nodeType": "ExpressionStatement", + "src": "3762:86:56" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12649, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3868:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3868:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12651, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "3880:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12652, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "3889:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12655, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12653, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3898:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3898:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3889:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12657, + "indexExpression": { + "argumentTypes": null, + "id": 12656, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "3910:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3889:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12648, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13082, + "src": "3859:8:56", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3859:60:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12659, + "nodeType": "EmitStatement", + "src": "3854:65:56" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3932:4:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 12621, + "id": 12661, + "nodeType": "Return", + "src": "3925:11:56" + } + ] + }, + "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param addedValue The amount of tokens to increase the allowance by.", + "id": 12663, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "increaseAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12615, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 12663, + "src": "3643:15:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12614, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3643:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12617, + "name": "addedValue", + "nodeType": "VariableDeclaration", + "scope": 12663, + "src": "3664:18:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3664:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3637:49:56" + }, + "payable": false, + "returnParameters": { + "id": 12621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12620, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12663, + "src": "3711:4:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12619, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3711:4:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3710:6:56" + }, + "scope": 12897, + "src": "3611:330:56", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12712, + "nodeType": "Block", + "src": "4510:227:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12673, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12665, + "src": "4524:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4543:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4535:7:56", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4535:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4524:21:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12672, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "4516:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4516:30:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12679, + "nodeType": "ExpressionStatement", + "src": "4516:30:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12680, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "4553:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12684, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12681, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4562:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4562:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4553:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12685, + "indexExpression": { + "argumentTypes": null, + "id": 12683, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12665, + "src": "4574:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4553:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12693, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12667, + "src": "4627:15:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12686, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "4593:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12689, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12687, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4602:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4602:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4593:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12691, + "indexExpression": { + "argumentTypes": null, + "id": 12690, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12665, + "src": "4614:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4593:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "4593:33:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4593:50:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 12695, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4585:59:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4553:91:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12697, + "nodeType": "ExpressionStatement", + "src": "4553:91:56" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12699, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4664:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4664:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12701, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12665, + "src": "4676:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12702, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "4685:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12705, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12703, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4694:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4694:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4685:20:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12707, + "indexExpression": { + "argumentTypes": null, + "id": 12706, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12665, + "src": "4706:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4685:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12698, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13082, + "src": "4655:8:56", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4655:60:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12709, + "nodeType": "EmitStatement", + "src": "4650:65:56" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4728:4:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 12671, + "id": 12711, + "nodeType": "Return", + "src": "4721:11:56" + } + ] + }, + "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param subtractedValue The amount of tokens to decrease the allowance by.", + "id": 12713, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decreaseAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12665, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 12713, + "src": "4429:15:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4429:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12667, + "name": "subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 12713, + "src": "4450:23:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4450:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4423:54:56" + }, + "payable": false, + "returnParameters": { + "id": 12671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12670, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12713, + "src": "4502:4:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12669, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4502:4:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4501:6:56" + }, + "scope": 12897, + "src": "4397:340:56", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12766, + "nodeType": "Block", + "src": "5006:208:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12723, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12719, + "src": "5020:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12724, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5029:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12726, + "indexExpression": { + "argumentTypes": null, + "id": 12725, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12715, + "src": "5039:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5029:15:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5020:24:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12722, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5012:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5012:33:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12729, + "nodeType": "ExpressionStatement", + "src": "5012:33:56" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12731, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12717, + "src": "5059:2:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5073:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5065:7:56", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5065:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5059:16:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12730, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5051:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5051:25:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12737, + "nodeType": "ExpressionStatement", + "src": "5051:25:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12738, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5083:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12740, + "indexExpression": { + "argumentTypes": null, + "id": 12739, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12715, + "src": "5093:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5083:15:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12745, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12719, + "src": "5121:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12741, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5101:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12743, + "indexExpression": { + "argumentTypes": null, + "id": 12742, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12715, + "src": "5111:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5101:15:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "5101:19:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5101:26:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5083:44:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12748, + "nodeType": "ExpressionStatement", + "src": "5083:44:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12749, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5133:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12751, + "indexExpression": { + "argumentTypes": null, + "id": 12750, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12717, + "src": "5143:2:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5133:13:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12756, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12719, + "src": "5167:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12752, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5149:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12754, + "indexExpression": { + "argumentTypes": null, + "id": 12753, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12717, + "src": "5159:2:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5149:13:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5149:17:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5149:24:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5133:40:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12759, + "nodeType": "ExpressionStatement", + "src": "5133:40:56" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12761, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12715, + "src": "5193:4:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12762, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12717, + "src": "5199:2:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12763, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12719, + "src": "5203:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12760, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13074, + "src": "5184:8:56", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5184:25:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12765, + "nodeType": "EmitStatement", + "src": "5179:30:56" + } + ] + }, + "documentation": "@dev Transfer token for a specified addresses\n@param from The address to transfer from.\n@param to The address to transfer to.\n@param value The amount to be transferred.", + "id": 12767, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12715, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 12767, + "src": "4956:12:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12714, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4956:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12717, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 12767, + "src": "4970:10:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12716, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4970:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12719, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12767, + "src": "4982:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12718, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4982:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4955:41:56" + }, + "payable": false, + "returnParameters": { + "id": 12721, + "nodeType": "ParameterList", + "parameters": [], + "src": "5006:0:56" + }, + "scope": 12897, + "src": "4937:277:56", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12806, + "nodeType": "Block", + "src": "5597:179:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12775, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12769, + "src": "5611:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5622:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5611:12:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12774, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5603:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5603:21:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12779, + "nodeType": "ExpressionStatement", + "src": "5603:21:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12780, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12474, + "src": "5630:12:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12783, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12771, + "src": "5662:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12781, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12474, + "src": "5645:12:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5645:16:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5645:23:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5630:38:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12786, + "nodeType": "ExpressionStatement", + "src": "5630:38:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12787, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5674:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12789, + "indexExpression": { + "argumentTypes": null, + "id": 12788, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12769, + "src": "5684:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5674:18:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12794, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12771, + "src": "5718:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12790, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "5695:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12792, + "indexExpression": { + "argumentTypes": null, + "id": 12791, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12769, + "src": "5705:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5695:18:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5695:22:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5695:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5674:50:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12797, + "nodeType": "ExpressionStatement", + "src": "5674:50:56" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5752:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5744:7:56", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12801, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5744:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12802, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12769, + "src": "5756:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12803, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12771, + "src": "5765:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12798, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13074, + "src": "5735:8:56", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5735:36:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12805, + "nodeType": "EmitStatement", + "src": "5730:41:56" + } + ] + }, + "documentation": "@dev Internal function that mints an amount of the token and assigns it to\nan account. This encapsulates the modification of balances such that the\nproper events are emitted.\n@param account The account that will receive the created tokens.\n@param value The amount that will be created.", + "id": 12807, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12769, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12807, + "src": "5556:15:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12768, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5556:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12771, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12807, + "src": "5573:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5573:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5555:32:56" + }, + "payable": false, + "returnParameters": { + "id": 12773, + "nodeType": "ParameterList", + "parameters": [], + "src": "5597:0:56" + }, + "scope": 12897, + "src": "5541:235:56", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12854, + "nodeType": "Block", + "src": "6044:222:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12815, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "6058:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6069:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6058:12:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12814, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6050:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6050:21:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12819, + "nodeType": "ExpressionStatement", + "src": "6050:21:56" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12821, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12811, + "src": "6085:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12822, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "6094:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12824, + "indexExpression": { + "argumentTypes": null, + "id": 12823, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "6104:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6094:18:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6085:27:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12820, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6077:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6077:36:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12827, + "nodeType": "ExpressionStatement", + "src": "6077:36:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12828, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12474, + "src": "6120:12:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12831, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12811, + "src": "6152:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12829, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12474, + "src": "6135:12:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "6135:16:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6135:23:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6120:38:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12834, + "nodeType": "ExpressionStatement", + "src": "6120:38:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12835, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "6164:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12837, + "indexExpression": { + "argumentTypes": null, + "id": 12836, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "6174:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6164:18:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12842, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12811, + "src": "6208:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12838, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12466, + "src": "6185:9:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12840, + "indexExpression": { + "argumentTypes": null, + "id": 12839, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "6195:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6185:18:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "6185:22:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6185:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6164:50:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12845, + "nodeType": "ExpressionStatement", + "src": "6164:50:56" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12847, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "6234:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6251:1:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6243:7:56", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6243:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12851, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12811, + "src": "6255:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12846, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13074, + "src": "6225:8:56", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 12852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6225:36:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12853, + "nodeType": "EmitStatement", + "src": "6220:41:56" + } + ] + }, + "documentation": "@dev Internal function that burns an amount of the token of a given\naccount.\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.", + "id": 12855, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12809, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12855, + "src": "6003:15:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12808, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6003:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12811, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12855, + "src": "6020:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12810, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6020:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6002:32:56" + }, + "payable": false, + "returnParameters": { + "id": 12813, + "nodeType": "ParameterList", + "parameters": [], + "src": "6044:0:56" + }, + "scope": 12897, + "src": "5988:278:56", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12895, + "nodeType": "Block", + "src": "6632:330:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12863, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12859, + "src": "6646:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12864, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "6655:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12866, + "indexExpression": { + "argumentTypes": null, + "id": 12865, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12857, + "src": "6664:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6655:17:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12869, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12867, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6673:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6673:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6655:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6646:38:56", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12862, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6638:7:56", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6638:47:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12872, + "nodeType": "ExpressionStatement", + "src": "6638:47:56" + }, + { + "expression": { + "argumentTypes": null, + "id": 12888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12873, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "6851:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12877, + "indexExpression": { + "argumentTypes": null, + "id": 12874, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12857, + "src": "6860:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6851:17:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12878, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12875, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6869:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6869:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6851:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12886, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12859, + "src": "6924:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12879, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12472, + "src": "6883:8:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 12881, + "indexExpression": { + "argumentTypes": null, + "id": 12880, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12857, + "src": "6892:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6883:17:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12884, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12882, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6901:3:56", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6901:10:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6883:29:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "6883:33:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6883:47:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6851:79:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12889, + "nodeType": "ExpressionStatement", + "src": "6851:79:56" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12891, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12857, + "src": "6942:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12892, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12859, + "src": "6951:5:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12890, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12855, + "src": "6936:5:56", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6936:21:56", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12894, + "nodeType": "ExpressionStatement", + "src": "6936:21:56" + } + ] + }, + "documentation": "@dev Internal function that burns an amount of the token of a given\naccount, deducting from the sender's allowance for said account. Uses the\ninternal burn function.\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.", + "id": 12896, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_burnFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12857, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12896, + "src": "6591:15:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:56", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12859, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12896, + "src": "6608:13:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6608:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:32:56" + }, + "payable": false, + "returnParameters": { + "id": 12861, + "nodeType": "ParameterList", + "parameters": [], + "src": "6632:0:56" + }, + "scope": 12897, + "src": "6572:390:56", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" } ], - "scope": 10212, - "src": "144:392:47" + "scope": 12898, + "src": "369:6595:56" } ], - "src": "0:537:47" + "src": "0:6965:56" }, "compiler": { "name": "solc", @@ -1233,5 +12207,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.354Z" + "updatedAt": "2018-12-06T13:14:33.244Z" } \ No newline at end of file diff --git a/build/contracts/ERC20Burnable.json b/build/contracts/ERC20Burnable.json new file mode 100644 index 00000000..a8eda4b6 --- /dev/null +++ b/build/contracts/ERC20Burnable.json @@ -0,0 +1,1037 @@ +{ + "contractName": "ERC20Burnable", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610764806100206000396000f3006080604052600436106100a35763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b381146100a857806318160ddd146100e057806323b872dd14610107578063395093511461013157806342966c681461015557806370a082311461016f57806379cc679014610190578063a457c2d7146101b4578063a9059cbb146101d8578063dd62ed3e146101fc575b600080fd5b3480156100b457600080fd5b506100cc600160a060020a0360043516602435610223565b604080519115158252519081900360200190f35b3480156100ec57600080fd5b506100f56102a1565b60408051918252519081900360200190f35b34801561011357600080fd5b506100cc600160a060020a03600435811690602435166044356102a7565b34801561013d57600080fd5b506100cc600160a060020a0360043516602435610344565b34801561016157600080fd5b5061016d6004356103f4565b005b34801561017b57600080fd5b506100f5600160a060020a0360043516610401565b34801561019c57600080fd5b5061016d600160a060020a036004351660243561041c565b3480156101c057600080fd5b506100cc600160a060020a036004351660243561042a565b3480156101e457600080fd5b506100cc600160a060020a0360043516602435610475565b34801561020857600080fd5b506100f5600160a060020a036004358116906024351661048b565b6000600160a060020a038316151561023a57600080fd5b336000818152600160209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b600160a060020a03831660009081526001602090815260408083203384529091528120548211156102d757600080fd5b600160a060020a038416600090815260016020908152604080832033845290915290205461030b908363ffffffff6104b616565b600160a060020a038516600090815260016020908152604080832033845290915290205561033a8484846104cd565b5060019392505050565b6000600160a060020a038316151561035b57600080fd5b336000908152600160209081526040808320600160a060020a038716845290915290205461038f908363ffffffff6105bf16565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6103fe33826105d8565b50565b600160a060020a031660009081526020819052604090205490565b61042682826106a6565b5050565b6000600160a060020a038316151561044157600080fd5b336000908152600160209081526040808320600160a060020a038716845290915290205461038f908363ffffffff6104b616565b60006104823384846104cd565b50600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b600080838311156104c657600080fd5b5050900390565b600160a060020a0383166000908152602081905260409020548111156104f257600080fd5b600160a060020a038216151561050757600080fd5b600160a060020a038316600090815260208190526040902054610530908263ffffffff6104b616565b600160a060020a038085166000908152602081905260408082209390935590841681522054610565908263ffffffff6105bf16565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828201838110156105d157600080fd5b9392505050565b600160a060020a03821615156105ed57600080fd5b600160a060020a03821660009081526020819052604090205481111561061257600080fd5b600254610625908263ffffffff6104b616565b600255600160a060020a038216600090815260208190526040902054610651908263ffffffff6104b616565b600160a060020a038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a03821660009081526001602090815260408083203384529091529020548111156106d657600080fd5b600160a060020a038216600090815260016020908152604080832033845290915290205461070a908263ffffffff6104b616565b600160a060020a038316600090815260016020908152604080832033845290915290205561042682826105d85600a165627a7a723058208ef9a07694aa009f0e050008bdee17f6e79c390a829e61e1623b3350352d29860029", + "deployedBytecode": "0x6080604052600436106100a35763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b381146100a857806318160ddd146100e057806323b872dd14610107578063395093511461013157806342966c681461015557806370a082311461016f57806379cc679014610190578063a457c2d7146101b4578063a9059cbb146101d8578063dd62ed3e146101fc575b600080fd5b3480156100b457600080fd5b506100cc600160a060020a0360043516602435610223565b604080519115158252519081900360200190f35b3480156100ec57600080fd5b506100f56102a1565b60408051918252519081900360200190f35b34801561011357600080fd5b506100cc600160a060020a03600435811690602435166044356102a7565b34801561013d57600080fd5b506100cc600160a060020a0360043516602435610344565b34801561016157600080fd5b5061016d6004356103f4565b005b34801561017b57600080fd5b506100f5600160a060020a0360043516610401565b34801561019c57600080fd5b5061016d600160a060020a036004351660243561041c565b3480156101c057600080fd5b506100cc600160a060020a036004351660243561042a565b3480156101e457600080fd5b506100cc600160a060020a0360043516602435610475565b34801561020857600080fd5b506100f5600160a060020a036004358116906024351661048b565b6000600160a060020a038316151561023a57600080fd5b336000818152600160209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b600160a060020a03831660009081526001602090815260408083203384529091528120548211156102d757600080fd5b600160a060020a038416600090815260016020908152604080832033845290915290205461030b908363ffffffff6104b616565b600160a060020a038516600090815260016020908152604080832033845290915290205561033a8484846104cd565b5060019392505050565b6000600160a060020a038316151561035b57600080fd5b336000908152600160209081526040808320600160a060020a038716845290915290205461038f908363ffffffff6105bf16565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6103fe33826105d8565b50565b600160a060020a031660009081526020819052604090205490565b61042682826106a6565b5050565b6000600160a060020a038316151561044157600080fd5b336000908152600160209081526040808320600160a060020a038716845290915290205461038f908363ffffffff6104b616565b60006104823384846104cd565b50600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b600080838311156104c657600080fd5b5050900390565b600160a060020a0383166000908152602081905260409020548111156104f257600080fd5b600160a060020a038216151561050757600080fd5b600160a060020a038316600090815260208190526040902054610530908263ffffffff6104b616565b600160a060020a038085166000908152602081905260408082209390935590841681522054610565908263ffffffff6105bf16565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828201838110156105d157600080fd5b9392505050565b600160a060020a03821615156105ed57600080fd5b600160a060020a03821660009081526020819052604090205481111561061257600080fd5b600254610625908263ffffffff6104b616565b600255600160a060020a038216600090815260208190526040902054610651908263ffffffff6104b616565b600160a060020a038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a03821660009081526001602090815260408083203384529091529020548111156106d657600080fd5b600160a060020a038216600090815260016020908152604080832033845290915290205461070a908263ffffffff6104b616565b600160a060020a038316600090815260016020908152604080832033845290915290205561042682826105d85600a165627a7a723058208ef9a07694aa009f0e050008bdee17f6e79c390a829e61e1623b3350352d29860029", + "sourceMap": "141:546:57:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;141:546:57;;;;;;;", + "deployedSourceMap": "141:546:57:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:220:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2380:220:56;-1:-1:-1;;;;;2380:220:56;;;;;;;;;;;;;;;;;;;;;;;;;640:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:83:56;;;;;;;;;;;;;;;;;;;;2872:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2872:288:56;-1:-1:-1;;;;;2872:288:56;;;;;;;;;;;;3611:330;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3611:330:56;-1:-1:-1;;;;;3611:330:56;;;;;;;287:71:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;287:71:57;;;;;;;920:98:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;920:98:56;-1:-1:-1;;;;;920:98:56;;;;;598:87:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;598:87:57;-1:-1:-1;;;;;598:87:57;;;;;;;4397:340:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4397:340:56;-1:-1:-1;;;;;4397:340:56;;;;;;;1637:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1637:127:56;-1:-1:-1;;;;;1637:127:56;;;;;;;1335:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1335:150:56;-1:-1:-1;;;;;1335:150:56;;;;;;;;;;2380:220;2445:4;-1:-1:-1;;;;;2465:21:56;;;;2457:30;;;;;;2503:10;2494:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;2494:29:56;;;;;;;;;;;;:37;;;2542:36;;;;;;;2494:29;;2503:10;2542:36;;;;;;;;;;;-1:-1:-1;2591:4:56;2380:220;;;;:::o;640:83::-;706:12;;640:83;:::o;2872:288::-;-1:-1:-1;;;;;3006:14:56;;2975:4;3006:14;;;:8;:14;;;;;;;;3021:10;3006:26;;;;;;;;2997:35;;;2989:44;;;;;;-1:-1:-1;;;;;3069:14:56;;;;;;:8;:14;;;;;;;;3084:10;3069:26;;;;;;;;:37;;3100:5;3069:37;:30;:37;:::i;:::-;-1:-1:-1;;;;;3040:14:56;;;;;;:8;:14;;;;;;;;3055:10;3040:26;;;;;;;:66;3112:26;3049:4;3128:2;3132:5;3112:9;:26::i;:::-;-1:-1:-1;3151:4:56;2872:288;;;;;:::o;3611:330::-;3711:4;-1:-1:-1;;;;;3733:21:56;;;;3725:30;;;;;;3811:10;3802:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3802:29:56;;;;;;;;;;:45;;3836:10;3802:45;:33;:45;:::i;:::-;3771:10;3762:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3762:29:56;;;;;;;;;;;;:86;;;3859:60;;;;;;3762:29;;3859:60;;;;;;;;;;;-1:-1:-1;3932:4:56;3611:330;;;;:::o;287:71:57:-;329:24;335:10;347:5;329;:24::i;:::-;287:71;:::o;920:98:56:-;-1:-1:-1;;;;;997:16:56;975:7;997:16;;;;;;;;;;;;920:98::o;598:87:57:-;658:22;668:4;674:5;658:9;:22::i;:::-;598:87;;:::o;4397:340:56:-;4502:4;-1:-1:-1;;;;;4524:21:56;;;;4516:30;;;;;;4602:10;4593:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4593:29:56;;;;;;;;;;:50;;4627:15;4593:50;:33;:50;:::i;1637:127::-;1698:4;1710:32;1720:10;1732:2;1736:5;1710:9;:32::i;:::-;-1:-1:-1;1755:4:56;1637:127;;;;:::o;1335:150::-;-1:-1:-1;;;;;1456:15:56;;;1432:7;1456:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1335:150::o;1078:131:54:-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;4937:277:56:-;-1:-1:-1;;;;;5029:15:56;;:9;:15;;;;;;;;;;;5020:24;;;5012:33;;;;;;-1:-1:-1;;;;;5059:16:56;;;;5051:25;;;;;;-1:-1:-1;;;;;5101:15:56;;:9;:15;;;;;;;;;;;:26;;5121:5;5101:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5083:15:56;;;:9;:15;;;;;;;;;;;:44;;;;5149:13;;;;;;;:24;;5167:5;5149:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5133:13:56;;;:9;:13;;;;;;;;;;;;:40;;;;5184:25;;;;;;;5133:13;;5184:25;;;;;;;;;;;;;4937:277;;;:::o;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;;1397:1;1272:131;-1:-1:-1;;;1272:131:54:o;5988:278:56:-;-1:-1:-1;;;;;6058:12:56;;;;6050:21;;;;;;-1:-1:-1;;;;;6094:18:56;;:9;:18;;;;;;;;;;;6085:27;;;6077:36;;;;;;6135:12;;:23;;6152:5;6135:23;:16;:23;:::i;:::-;6120:12;:38;-1:-1:-1;;;;;6185:18:56;;:9;:18;;;;;;;;;;;:29;;6208:5;6185:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6164:18:56;;:9;:18;;;;;;;;;;;:50;;;;6225:36;;;;;;;6164:9;;6225:36;;;;;;;;;;;5988:278;;:::o;6572:390::-;-1:-1:-1;;;;;6655:17:56;;;;;;:8;:17;;;;;;;;6673:10;6655:29;;;;;;;;6646:38;;;6638:47;;;;;;-1:-1:-1;;;;;6883:17:56;;;;;;:8;:17;;;;;;;;6901:10;6883:29;;;;;;;;:47;;6924:5;6883:47;:33;:47;:::i;:::-;-1:-1:-1;;;;;6851:17:56;;;;;;:8;:17;;;;;;;;6869:10;6851:29;;;;;;;:79;6936:21;6860:7;6951:5;6936;:21::i", + "source": "pragma solidity ^0.4.24;\n\nimport \"./ERC20.sol\";\n\n/**\n * @title Burnable Token\n * @dev Token that can be irreversibly burned (destroyed).\n */\ncontract ERC20Burnable is ERC20 {\n\n /**\n * @dev Burns a specific amount of tokens.\n * @param value The amount of token to be burned.\n */\n function burn(uint256 value) public {\n _burn(msg.sender, value);\n }\n\n /**\n * @dev Burns a specific amount of tokens from the target address and decrements allowance\n * @param from address The address which you want to send tokens from\n * @param value uint256 The amount of token to be burned\n */\n function burnFrom(address from, uint256 value) public {\n _burnFrom(from, value);\n }\n}\n", + "sourcePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", + "ast": { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", + "exportedSymbols": { + "ERC20Burnable": [ + 12928 + ] + }, + "id": 12929, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12899, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:57" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "./ERC20.sol", + "id": 12900, + "nodeType": "ImportDirective", + "scope": 12929, + "sourceUnit": 12898, + "src": "26:21:57", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12901, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12897, + "src": "167:5:57", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$12897", + "typeString": "contract ERC20" + } + }, + "id": 12902, + "nodeType": "InheritanceSpecifier", + "src": "167:5:57" + } + ], + "contractDependencies": [ + 12897, + 13083 + ], + "contractKind": "contract", + "documentation": "@title Burnable Token\n@dev Token that can be irreversibly burned (destroyed).", + "fullyImplemented": true, + "id": 12928, + "linearizedBaseContracts": [ + 12928, + 12897, + 13083 + ], + "name": "ERC20Burnable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 12913, + "nodeType": "Block", + "src": "323:35:57", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12908, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "335:3:57", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "335:10:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12910, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12904, + "src": "347:5:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12907, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12855, + "src": "329:5:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "329:24:57", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12912, + "nodeType": "ExpressionStatement", + "src": "329:24:57" + } + ] + }, + "documentation": "@dev Burns a specific amount of tokens.\n@param value The amount of token to be burned.", + "id": 12914, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12905, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12904, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12914, + "src": "301:13:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12903, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "301:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "300:15:57" + }, + "payable": false, + "returnParameters": { + "id": 12906, + "nodeType": "ParameterList", + "parameters": [], + "src": "323:0:57" + }, + "scope": 12928, + "src": "287:71:57", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12926, + "nodeType": "Block", + "src": "652:33:57", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12922, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12916, + "src": "668:4:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12923, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12918, + "src": "674:5:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12921, + "name": "_burnFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12896, + "src": "658:9:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "658:22:57", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12925, + "nodeType": "ExpressionStatement", + "src": "658:22:57" + } + ] + }, + "documentation": "@dev Burns a specific amount of tokens from the target address and decrements allowance\n@param from address The address which you want to send tokens from\n@param value uint256 The amount of token to be burned", + "id": 12927, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burnFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12916, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 12927, + "src": "616:12:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12915, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "616:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12918, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12927, + "src": "630:13:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12917, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "630:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "615:29:57" + }, + "payable": false, + "returnParameters": { + "id": 12920, + "nodeType": "ParameterList", + "parameters": [], + "src": "652:0:57" + }, + "scope": 12928, + "src": "598:87:57", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 12929, + "src": "141:546:57" + } + ], + "src": "0:688:57" + }, + "legacyAST": { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", + "exportedSymbols": { + "ERC20Burnable": [ + 12928 + ] + }, + "id": 12929, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12899, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:57" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "./ERC20.sol", + "id": 12900, + "nodeType": "ImportDirective", + "scope": 12929, + "sourceUnit": 12898, + "src": "26:21:57", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12901, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12897, + "src": "167:5:57", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$12897", + "typeString": "contract ERC20" + } + }, + "id": 12902, + "nodeType": "InheritanceSpecifier", + "src": "167:5:57" + } + ], + "contractDependencies": [ + 12897, + 13083 + ], + "contractKind": "contract", + "documentation": "@title Burnable Token\n@dev Token that can be irreversibly burned (destroyed).", + "fullyImplemented": true, + "id": 12928, + "linearizedBaseContracts": [ + 12928, + 12897, + 13083 + ], + "name": "ERC20Burnable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 12913, + "nodeType": "Block", + "src": "323:35:57", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12908, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "335:3:57", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "335:10:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12910, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12904, + "src": "347:5:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12907, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12855, + "src": "329:5:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "329:24:57", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12912, + "nodeType": "ExpressionStatement", + "src": "329:24:57" + } + ] + }, + "documentation": "@dev Burns a specific amount of tokens.\n@param value The amount of token to be burned.", + "id": 12914, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12905, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12904, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12914, + "src": "301:13:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12903, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "301:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "300:15:57" + }, + "payable": false, + "returnParameters": { + "id": 12906, + "nodeType": "ParameterList", + "parameters": [], + "src": "323:0:57" + }, + "scope": 12928, + "src": "287:71:57", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12926, + "nodeType": "Block", + "src": "652:33:57", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12922, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12916, + "src": "668:4:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12923, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12918, + "src": "674:5:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12921, + "name": "_burnFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12896, + "src": "658:9:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "658:22:57", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12925, + "nodeType": "ExpressionStatement", + "src": "658:22:57" + } + ] + }, + "documentation": "@dev Burns a specific amount of tokens from the target address and decrements allowance\n@param from address The address which you want to send tokens from\n@param value uint256 The amount of token to be burned", + "id": 12927, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burnFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12916, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 12927, + "src": "616:12:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12915, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "616:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12918, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 12927, + "src": "630:13:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12917, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "630:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "615:29:57" + }, + "payable": false, + "returnParameters": { + "id": 12920, + "nodeType": "ParameterList", + "parameters": [], + "src": "652:0:57" + }, + "scope": 12928, + "src": "598:87:57", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 12929, + "src": "141:546:57" + } + ], + "src": "0:688:57" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.029Z" +} \ No newline at end of file diff --git a/build/contracts/ERC20Detailed.json b/build/contracts/ERC20Detailed.json new file mode 100644 index 00000000..857566d6 --- /dev/null +++ b/build/contracts/ERC20Detailed.json @@ -0,0 +1,1546 @@ +{ + "contractName": "ERC20Detailed", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "who", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.24;\n\nimport \"./IERC20.sol\";\n\n/**\n * @title ERC20Detailed token\n * @dev The decimals are only for visualization purposes.\n * All the operations are done using the smallest and indivisible token unit,\n * just as on Ethereum all the operations are done in wei.\n */\ncontract ERC20Detailed is IERC20 {\n string private _name;\n string private _symbol;\n uint8 private _decimals;\n\n constructor(string name, string symbol, uint8 decimals) public {\n _name = name;\n _symbol = symbol;\n _decimals = decimals;\n }\n\n /**\n * @return the name of the token.\n */\n function name() public view returns(string) {\n return _name;\n }\n\n /**\n * @return the symbol of the token.\n */\n function symbol() public view returns(string) {\n return _symbol;\n }\n\n /**\n * @return the number of decimals of the token.\n */\n function decimals() public view returns(uint8) {\n return _decimals;\n }\n}\n", + "sourcePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "ast": { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "exportedSymbols": { + "ERC20Detailed": [ + 12986 + ] + }, + "id": 12987, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12930, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:58" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 12931, + "nodeType": "ImportDirective", + "scope": 12987, + "sourceUnit": 13084, + "src": "26:22:58", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12932, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13083, + "src": "309:6:58", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 12933, + "nodeType": "InheritanceSpecifier", + "src": "309:6:58" + } + ], + "contractDependencies": [ + 13083 + ], + "contractKind": "contract", + "documentation": "@title ERC20Detailed token\n@dev The decimals are only for visualization purposes.\nAll the operations are done using the smallest and indivisible token unit,\njust as on Ethereum all the operations are done in wei.", + "fullyImplemented": false, + "id": 12986, + "linearizedBaseContracts": [ + 12986, + 13083 + ], + "name": "ERC20Detailed", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 12935, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 12986, + "src": "320:20:58", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 12934, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "320:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 12937, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 12986, + "src": "344:22:58", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 12936, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "344:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 12939, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 12986, + "src": "370:23:58", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 12938, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "370:5:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 12960, + "nodeType": "Block", + "src": "461:71:58", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12948, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12935, + "src": "467:5:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12949, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12941, + "src": "475:4:58", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "467:12:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 12951, + "nodeType": "ExpressionStatement", + "src": "467:12:58" + }, + { + "expression": { + "argumentTypes": null, + "id": 12954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12952, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12937, + "src": "485:7:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12953, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12943, + "src": "495:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "485:16:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 12955, + "nodeType": "ExpressionStatement", + "src": "485:16:58" + }, + { + "expression": { + "argumentTypes": null, + "id": 12958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12956, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12939, + "src": "507:9:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12957, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12945, + "src": "519:8:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "507:20:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 12959, + "nodeType": "ExpressionStatement", + "src": "507:20:58" + } + ] + }, + "documentation": null, + "id": 12961, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12941, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 12961, + "src": "410:11:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 12940, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "410:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12943, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 12961, + "src": "423:13:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 12942, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "423:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12945, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 12961, + "src": "438:14:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 12944, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "438:5:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "409:44:58" + }, + "payable": false, + "returnParameters": { + "id": 12947, + "nodeType": "ParameterList", + "parameters": [], + "src": "461:0:58" + }, + "scope": 12986, + "src": "398:134:58", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12968, + "nodeType": "Block", + "src": "628:23:58", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12966, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12935, + "src": "641:5:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 12965, + "id": 12967, + "nodeType": "Return", + "src": "634:12:58" + } + ] + }, + "documentation": "@return the name of the token.", + "id": 12969, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12962, + "nodeType": "ParameterList", + "parameters": [], + "src": "597:2:58" + }, + "payable": false, + "returnParameters": { + "id": 12965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12964, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12969, + "src": "620:6:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 12963, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "620:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "619:8:58" + }, + "scope": 12986, + "src": "584:67:58", + "stateMutability": "view", + "superFunction": 10474, + "visibility": "public" + }, + { + "body": { + "id": 12976, + "nodeType": "Block", + "src": "751:25:58", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12974, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12937, + "src": "764:7:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 12973, + "id": 12975, + "nodeType": "Return", + "src": "757:14:58" + } + ] + }, + "documentation": "@return the symbol of the token.", + "id": 12977, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12970, + "nodeType": "ParameterList", + "parameters": [], + "src": "720:2:58" + }, + "payable": false, + "returnParameters": { + "id": 12973, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12972, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12977, + "src": "743:6:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 12971, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "743:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "742:8:58" + }, + "scope": 12986, + "src": "705:71:58", + "stateMutability": "view", + "superFunction": 10479, + "visibility": "public" + }, + { + "body": { + "id": 12984, + "nodeType": "Block", + "src": "889:27:58", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12982, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12939, + "src": "902:9:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 12981, + "id": 12983, + "nodeType": "Return", + "src": "895:16:58" + } + ] + }, + "documentation": "@return the number of decimals of the token.", + "id": 12985, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12978, + "nodeType": "ParameterList", + "parameters": [], + "src": "859:2:58" + }, + "payable": false, + "returnParameters": { + "id": 12981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12980, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12985, + "src": "882:5:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 12979, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "882:5:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "881:7:58" + }, + "scope": 12986, + "src": "842:74:58", + "stateMutability": "view", + "superFunction": 10484, + "visibility": "public" + } + ], + "scope": 12987, + "src": "283:635:58" + } + ], + "src": "0:919:58" + }, + "legacyAST": { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "exportedSymbols": { + "ERC20Detailed": [ + 12986 + ] + }, + "id": 12987, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12930, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:58" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 12931, + "nodeType": "ImportDirective", + "scope": 12987, + "sourceUnit": 13084, + "src": "26:22:58", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12932, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13083, + "src": "309:6:58", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 12933, + "nodeType": "InheritanceSpecifier", + "src": "309:6:58" + } + ], + "contractDependencies": [ + 13083 + ], + "contractKind": "contract", + "documentation": "@title ERC20Detailed token\n@dev The decimals are only for visualization purposes.\nAll the operations are done using the smallest and indivisible token unit,\njust as on Ethereum all the operations are done in wei.", + "fullyImplemented": false, + "id": 12986, + "linearizedBaseContracts": [ + 12986, + 13083 + ], + "name": "ERC20Detailed", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 12935, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 12986, + "src": "320:20:58", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 12934, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "320:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 12937, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 12986, + "src": "344:22:58", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 12936, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "344:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 12939, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 12986, + "src": "370:23:58", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 12938, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "370:5:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 12960, + "nodeType": "Block", + "src": "461:71:58", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12948, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12935, + "src": "467:5:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12949, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12941, + "src": "475:4:58", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "467:12:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 12951, + "nodeType": "ExpressionStatement", + "src": "467:12:58" + }, + { + "expression": { + "argumentTypes": null, + "id": 12954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12952, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12937, + "src": "485:7:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12953, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12943, + "src": "495:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "485:16:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 12955, + "nodeType": "ExpressionStatement", + "src": "485:16:58" + }, + { + "expression": { + "argumentTypes": null, + "id": 12958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12956, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12939, + "src": "507:9:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12957, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12945, + "src": "519:8:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "507:20:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 12959, + "nodeType": "ExpressionStatement", + "src": "507:20:58" + } + ] + }, + "documentation": null, + "id": 12961, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12941, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 12961, + "src": "410:11:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 12940, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "410:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12943, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 12961, + "src": "423:13:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 12942, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "423:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12945, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 12961, + "src": "438:14:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 12944, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "438:5:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "409:44:58" + }, + "payable": false, + "returnParameters": { + "id": 12947, + "nodeType": "ParameterList", + "parameters": [], + "src": "461:0:58" + }, + "scope": 12986, + "src": "398:134:58", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12968, + "nodeType": "Block", + "src": "628:23:58", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12966, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12935, + "src": "641:5:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 12965, + "id": 12967, + "nodeType": "Return", + "src": "634:12:58" + } + ] + }, + "documentation": "@return the name of the token.", + "id": 12969, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12962, + "nodeType": "ParameterList", + "parameters": [], + "src": "597:2:58" + }, + "payable": false, + "returnParameters": { + "id": 12965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12964, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12969, + "src": "620:6:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 12963, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "620:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "619:8:58" + }, + "scope": 12986, + "src": "584:67:58", + "stateMutability": "view", + "superFunction": 10474, + "visibility": "public" + }, + { + "body": { + "id": 12976, + "nodeType": "Block", + "src": "751:25:58", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12974, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12937, + "src": "764:7:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 12973, + "id": 12975, + "nodeType": "Return", + "src": "757:14:58" + } + ] + }, + "documentation": "@return the symbol of the token.", + "id": 12977, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12970, + "nodeType": "ParameterList", + "parameters": [], + "src": "720:2:58" + }, + "payable": false, + "returnParameters": { + "id": 12973, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12972, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12977, + "src": "743:6:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 12971, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "743:6:58", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "742:8:58" + }, + "scope": 12986, + "src": "705:71:58", + "stateMutability": "view", + "superFunction": 10479, + "visibility": "public" + }, + { + "body": { + "id": 12984, + "nodeType": "Block", + "src": "889:27:58", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12982, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12939, + "src": "902:9:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 12981, + "id": 12983, + "nodeType": "Return", + "src": "895:16:58" + } + ] + }, + "documentation": "@return the number of decimals of the token.", + "id": 12985, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12978, + "nodeType": "ParameterList", + "parameters": [], + "src": "859:2:58" + }, + "payable": false, + "returnParameters": { + "id": 12981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12980, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12985, + "src": "882:5:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 12979, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "882:5:58", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "881:7:58" + }, + "scope": 12986, + "src": "842:74:58", + "stateMutability": "view", + "superFunction": 10484, + "visibility": "public" + } + ], + "scope": 12987, + "src": "283:635:58" + } + ], + "src": "0:919:58" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.029Z" +} \ No newline at end of file diff --git a/build/contracts/ERC20Mintable.json b/build/contracts/ERC20Mintable.json new file mode 100644 index 00000000..e49157a0 --- /dev/null +++ b/build/contracts/ERC20Mintable.json @@ -0,0 +1,1000 @@ +{ + "contractName": "ERC20Mintable", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isMinter", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "MinterAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "MinterRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526100163364010000000061001b810204565b6100f8565b6100336003826401000000006107e761006a82021704565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b600160a060020a038116151561007f57600080fd5b61009282826401000000006100c1810204565b1561009c57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156100d857600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6108ad806101076000396000f3006080604052600436106100b95763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b381146100be57806318160ddd146100f657806323b872dd1461011d578063395093511461014757806340c10f191461016b57806370a082311461018f578063983b2d56146101b057806398650275146101d3578063a457c2d7146101e8578063a9059cbb1461020c578063aa271e1a14610230578063dd62ed3e14610251575b600080fd5b3480156100ca57600080fd5b506100e2600160a060020a0360043516602435610278565b604080519115158252519081900360200190f35b34801561010257600080fd5b5061010b6102f6565b60408051918252519081900360200190f35b34801561012957600080fd5b506100e2600160a060020a03600435811690602435166044356102fc565b34801561015357600080fd5b506100e2600160a060020a0360043516602435610399565b34801561017757600080fd5b506100e2600160a060020a0360043516602435610449565b34801561019b57600080fd5b5061010b600160a060020a0360043516610472565b3480156101bc57600080fd5b506101d1600160a060020a036004351661048d565b005b3480156101df57600080fd5b506101d16104ad565b3480156101f457600080fd5b506100e2600160a060020a03600435166024356104b8565b34801561021857600080fd5b506100e2600160a060020a0360043516602435610503565b34801561023c57600080fd5b506100e2600160a060020a0360043516610510565b34801561025d57600080fd5b5061010b600160a060020a0360043581169060243516610529565b6000600160a060020a038316151561028f57600080fd5b336000818152600160209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b600160a060020a038316600090815260016020908152604080832033845290915281205482111561032c57600080fd5b600160a060020a0384166000908152600160209081526040808320338452909152902054610360908363ffffffff61055416565b600160a060020a038516600090815260016020908152604080832033845290915290205561038f84848461056b565b5060019392505050565b6000600160a060020a03831615156103b057600080fd5b336000908152600160209081526040808320600160a060020a03871684529091529020546103e4908363ffffffff61065d16565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600061045433610510565b151561045f57600080fd5b6104698383610676565b50600192915050565b600160a060020a031660009081526020819052604090205490565b61049633610510565b15156104a157600080fd5b6104aa81610720565b50565b6104b633610768565b565b6000600160a060020a03831615156104cf57600080fd5b336000908152600160209081526040808320600160a060020a03871684529091529020546103e4908363ffffffff61055416565b600061046933848461056b565b600061052360038363ffffffff6107b016565b92915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6000808383111561056457600080fd5b5050900390565b600160a060020a03831660009081526020819052604090205481111561059057600080fd5b600160a060020a03821615156105a557600080fd5b600160a060020a0383166000908152602081905260409020546105ce908263ffffffff61055416565b600160a060020a038085166000908152602081905260408082209390935590841681522054610603908263ffffffff61065d16565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282018381101561066f57600080fd5b9392505050565b600160a060020a038216151561068b57600080fd5b60025461069e908263ffffffff61065d16565b600255600160a060020a0382166000908152602081905260409020546106ca908263ffffffff61065d16565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b61073160038263ffffffff6107e716565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61077960038263ffffffff61083516565b604051600160a060020a038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000600160a060020a03821615156107c757600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a03811615156107fc57600080fd5b61080682826107b0565b1561081057600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561084a57600080fd5b61085482826107b0565b151561085f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a72305820fe0771769b34b3c17599a51dc67b88fa1305f77a19267cbcef93394083a5434d0029", + "deployedBytecode": "0x6080604052600436106100b95763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b381146100be57806318160ddd146100f657806323b872dd1461011d578063395093511461014757806340c10f191461016b57806370a082311461018f578063983b2d56146101b057806398650275146101d3578063a457c2d7146101e8578063a9059cbb1461020c578063aa271e1a14610230578063dd62ed3e14610251575b600080fd5b3480156100ca57600080fd5b506100e2600160a060020a0360043516602435610278565b604080519115158252519081900360200190f35b34801561010257600080fd5b5061010b6102f6565b60408051918252519081900360200190f35b34801561012957600080fd5b506100e2600160a060020a03600435811690602435166044356102fc565b34801561015357600080fd5b506100e2600160a060020a0360043516602435610399565b34801561017757600080fd5b506100e2600160a060020a0360043516602435610449565b34801561019b57600080fd5b5061010b600160a060020a0360043516610472565b3480156101bc57600080fd5b506101d1600160a060020a036004351661048d565b005b3480156101df57600080fd5b506101d16104ad565b3480156101f457600080fd5b506100e2600160a060020a03600435166024356104b8565b34801561021857600080fd5b506100e2600160a060020a0360043516602435610503565b34801561023c57600080fd5b506100e2600160a060020a0360043516610510565b34801561025d57600080fd5b5061010b600160a060020a0360043581169060243516610529565b6000600160a060020a038316151561028f57600080fd5b336000818152600160209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b600160a060020a038316600090815260016020908152604080832033845290915281205482111561032c57600080fd5b600160a060020a0384166000908152600160209081526040808320338452909152902054610360908363ffffffff61055416565b600160a060020a038516600090815260016020908152604080832033845290915290205561038f84848461056b565b5060019392505050565b6000600160a060020a03831615156103b057600080fd5b336000908152600160209081526040808320600160a060020a03871684529091529020546103e4908363ffffffff61065d16565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600061045433610510565b151561045f57600080fd5b6104698383610676565b50600192915050565b600160a060020a031660009081526020819052604090205490565b61049633610510565b15156104a157600080fd5b6104aa81610720565b50565b6104b633610768565b565b6000600160a060020a03831615156104cf57600080fd5b336000908152600160209081526040808320600160a060020a03871684529091529020546103e4908363ffffffff61055416565b600061046933848461056b565b600061052360038363ffffffff6107b016565b92915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6000808383111561056457600080fd5b5050900390565b600160a060020a03831660009081526020819052604090205481111561059057600080fd5b600160a060020a03821615156105a557600080fd5b600160a060020a0383166000908152602081905260409020546105ce908263ffffffff61055416565b600160a060020a038085166000908152602081905260408082209390935590841681522054610603908263ffffffff61065d16565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282018381101561066f57600080fd5b9392505050565b600160a060020a038216151561068b57600080fd5b60025461069e908263ffffffff61065d16565b600255600160a060020a0382166000908152602081905260409020546106ca908263ffffffff61065d16565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b61073160038263ffffffff6107e716565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61077960038263ffffffff61083516565b604051600160a060020a038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000600160a060020a03821615156107c757600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a03811615156107fc57600080fd5b61080682826107b0565b1561081057600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561084a57600080fd5b61085482826107b0565b151561085f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a72305820fe0771769b34b3c17599a51dc67b88fa1305f77a19267cbcef93394083a5434d0029", + "sourceMap": "153:423:59:-;;;260:22:53;271:10;260;;;;:22;:::i;:::-;153:423:59;;629:108:53;681:20;:7;693;681:11;;;;;;:20;:::i;:::-;712;;-1:-1:-1;;;;;712:20:53;;;;;;;;629:108;:::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;153:423:59:-;;;;;;;", + "deployedSourceMap": "153:423:59:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:220:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2380:220:56;-1:-1:-1;;;;;2380:220:56;;;;;;;;;;;;;;;;;;;;;;;;;640:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:83:56;;;;;;;;;;;;;;;;;;;;2872:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2872:288:56;-1:-1:-1;;;;;2872:288:56;;;;;;;;;;;;3611:330;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3611:330:56;-1:-1:-1;;;;;3611:330:56;;;;;;;430:144:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;430:144:59;-1:-1:-1;;;;;430:144:59;;;;;;;920:98:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;920:98:56;-1:-1:-1;;;;;920:98:56;;;;;468:84:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;468:84:53;-1:-1:-1;;;;;468:84:53;;;;;;;556:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;556:69:53;;;;4397:340:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4397:340:56;-1:-1:-1;;;;;4397:340:56;;;;;;;1637:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1637:127:56;-1:-1:-1;;;;;1637:127:56;;;;;;;364:100:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;364:100:53;-1:-1:-1;;;;;364:100:53;;;;;1335:150:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1335:150:56;-1:-1:-1;;;;;1335:150:56;;;;;;;;;;2380:220;2445:4;-1:-1:-1;;;;;2465:21:56;;;;2457:30;;;;;;2503:10;2494:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;2494:29:56;;;;;;;;;;;;:37;;;2542:36;;;;;;;2494:29;;2503:10;2542:36;;;;;;;;;;;-1:-1:-1;2591:4:56;2380:220;;;;:::o;640:83::-;706:12;;640:83;:::o;2872:288::-;-1:-1:-1;;;;;3006:14:56;;2975:4;3006:14;;;:8;:14;;;;;;;;3021:10;3006:26;;;;;;;;2997:35;;;2989:44;;;;;;-1:-1:-1;;;;;3069:14:56;;;;;;:8;:14;;;;;;;;3084:10;3069:26;;;;;;;;:37;;3100:5;3069:37;:30;:37;:::i;:::-;-1:-1:-1;;;;;3040:14:56;;;;;;:8;:14;;;;;;;;3055:10;3040:26;;;;;;;:66;3112:26;3049:4;3128:2;3132:5;3112:9;:26::i;:::-;-1:-1:-1;3151:4:56;2872:288;;;;;:::o;3611:330::-;3711:4;-1:-1:-1;;;;;3733:21:56;;;;3725:30;;;;;;3811:10;3802:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3802:29:56;;;;;;;;;;:45;;3836:10;3802:45;:33;:45;:::i;:::-;3771:10;3762:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3762:29:56;;;;;;;;;;;;:86;;;3859:60;;;;;;3762:29;;3859:60;;;;;;;;;;;-1:-1:-1;3932:4:56;3611:330;;;;:::o;430:144:59:-;522:4;327:20:53;336:10;327:8;:20::i;:::-;319:29;;;;;;;;536:16:59;542:2;546:5;536;:16::i;:::-;-1:-1:-1;565:4:59;430:144;;;;:::o;920:98:56:-;-1:-1:-1;;;;;997:16:56;975:7;997:16;;;;;;;;;;;;920:98::o;468:84:53:-;327:20;336:10;327:8;:20::i;:::-;319:29;;;;;;;;528:19;539:7;528:10;:19::i;:::-;468:84;:::o;556:69::-;595:25;609:10;595:13;:25::i;:::-;556:69::o;4397:340:56:-;4502:4;-1:-1:-1;;;;;4524:21:56;;;;4516:30;;;;;;4602:10;4593:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4593:29:56;;;;;;;;;;:50;;4627:15;4593:50;:33;:50;:::i;1637:127::-;1698:4;1710:32;1720:10;1732:2;1736:5;1710:9;:32::i;364:100:53:-;420:4;439:20;:7;451;439:20;:11;:20;:::i;:::-;432:27;364:100;-1:-1:-1;;364:100:53:o;1335:150:56:-;-1:-1:-1;;;;;1456:15:56;;;1432:7;1456:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1335:150::o;1078:131:54:-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;4937:277:56:-;-1:-1:-1;;;;;5029:15:56;;:9;:15;;;;;;;;;;;5020:24;;;5012:33;;;;;;-1:-1:-1;;;;;5059:16:56;;;;5051:25;;;;;;-1:-1:-1;;;;;5101:15:56;;:9;:15;;;;;;;;;;;:26;;5121:5;5101:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5083:15:56;;;:9;:15;;;;;;;;;;;:44;;;;5149:13;;;;;;;:24;;5167:5;5149:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5133:13:56;;;:9;:13;;;;;;;;;;;;:40;;;;5184:25;;;;;;;5133:13;;5184:25;;;;;;;;;;;;;4937:277;;;:::o;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;;1397:1;1272:131;-1:-1:-1;;;1272:131:54:o;5541:235:56:-;-1:-1:-1;;;;;5611:12:56;;;;5603:21;;;;;;5645:12;;:23;;5662:5;5645:23;:16;:23;:::i;:::-;5630:12;:38;-1:-1:-1;;;;;5695:18:56;;:9;:18;;;;;;;;;;;:29;;5718:5;5695:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;5674:18:56;;:9;:18;;;;;;;;;;;:50;;;;5735:36;;;;;;;5674:18;;:9;;5735:36;;;;;;;;;;5541:235;;:::o;629:108:53:-;681:20;:7;693;681:20;:11;:20;:::i;:::-;712;;-1:-1:-1;;;;;712:20:53;;;;;;;;629:108;:::o;741:116::-;796:23;:7;811;796:23;:14;:23;:::i;:::-;830:22;;-1:-1:-1;;;;;830:22:53;;;;;;;;741:116;:::o;725:166:52:-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;244:167::-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;:18::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;477:170::-;-1:-1:-1;;;;;552:21:52;;;;544:30;;;;;;588:18;592:4;598:7;588:3;:18::i;:::-;580:27;;;;;;;;-1:-1:-1;;;;;614:20:52;637:5;614:20;;;;;;;;;;;:28;;-1:-1:-1;;614:28:52;;;477:170::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"./ERC20.sol\";\nimport \"../../access/roles/MinterRole.sol\";\n\n/**\n * @title ERC20Mintable\n * @dev ERC20 minting logic\n */\ncontract ERC20Mintable is ERC20, MinterRole {\n /**\n * @dev Function to mint tokens\n * @param to The address that will receive the minted tokens.\n * @param value The amount of tokens to mint.\n * @return A boolean that indicates if the operation was successful.\n */\n function mint(\n address to,\n uint256 value\n )\n public\n onlyMinter\n returns (bool)\n {\n _mint(to, value);\n return true;\n }\n}\n", + "sourcePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Mintable.sol", + "ast": { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Mintable.sol", + "exportedSymbols": { + "ERC20Mintable": [ + 13014 + ] + }, + "id": 13015, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12988, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:59" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "./ERC20.sol", + "id": 12989, + "nodeType": "ImportDirective", + "scope": 13015, + "sourceUnit": 12898, + "src": "26:21:59", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/access/roles/MinterRole.sol", + "file": "../../access/roles/MinterRole.sol", + "id": 12990, + "nodeType": "ImportDirective", + "scope": 13015, + "sourceUnit": 12261, + "src": "48:43:59", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12991, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12897, + "src": "179:5:59", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$12897", + "typeString": "contract ERC20" + } + }, + "id": 12992, + "nodeType": "InheritanceSpecifier", + "src": "179:5:59" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12993, + "name": "MinterRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12260, + "src": "186:10:59", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MinterRole_$12260", + "typeString": "contract MinterRole" + } + }, + "id": 12994, + "nodeType": "InheritanceSpecifier", + "src": "186:10:59" + } + ], + "contractDependencies": [ + 12260, + 12897, + 13083 + ], + "contractKind": "contract", + "documentation": "@title ERC20Mintable\n@dev ERC20 minting logic", + "fullyImplemented": true, + "id": 13014, + "linearizedBaseContracts": [ + 13014, + 12260, + 12897, + 13083 + ], + "name": "ERC20Mintable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 13012, + "nodeType": "Block", + "src": "530:44:59", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12996, + "src": "542:2:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13007, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12998, + "src": "546:5:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13005, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12807, + "src": "536:5:59", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 13008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "536:16:59", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13009, + "nodeType": "ExpressionStatement", + "src": "536:16:59" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 13010, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "565:4:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 13004, + "id": 13011, + "nodeType": "Return", + "src": "558:11:59" + } + ] + }, + "documentation": "@dev Function to mint tokens\n@param to The address that will receive the minted tokens.\n@param value The amount of tokens to mint.\n@return A boolean that indicates if the operation was successful.", + "id": 13013, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 13001, + "modifierName": { + "argumentTypes": null, + "id": 13000, + "name": "onlyMinter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12193, + "src": "498:10:59", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "498:10:59" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12999, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12996, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 13013, + "src": "449:10:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "449:7:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12998, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13013, + "src": "465:13:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12997, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "465:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "443:39:59" + }, + "payable": false, + "returnParameters": { + "id": 13004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13003, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13013, + "src": "522:4:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13002, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "522:4:59", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "521:6:59" + }, + "scope": 13014, + "src": "430:144:59", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 13015, + "src": "153:423:59" + } + ], + "src": "0:577:59" + }, + "legacyAST": { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Mintable.sol", + "exportedSymbols": { + "ERC20Mintable": [ + 13014 + ] + }, + "id": 13015, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12988, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:59" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "./ERC20.sol", + "id": 12989, + "nodeType": "ImportDirective", + "scope": 13015, + "sourceUnit": 12898, + "src": "26:21:59", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/access/roles/MinterRole.sol", + "file": "../../access/roles/MinterRole.sol", + "id": 12990, + "nodeType": "ImportDirective", + "scope": 13015, + "sourceUnit": 12261, + "src": "48:43:59", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12991, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12897, + "src": "179:5:59", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$12897", + "typeString": "contract ERC20" + } + }, + "id": 12992, + "nodeType": "InheritanceSpecifier", + "src": "179:5:59" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12993, + "name": "MinterRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12260, + "src": "186:10:59", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MinterRole_$12260", + "typeString": "contract MinterRole" + } + }, + "id": 12994, + "nodeType": "InheritanceSpecifier", + "src": "186:10:59" + } + ], + "contractDependencies": [ + 12260, + 12897, + 13083 + ], + "contractKind": "contract", + "documentation": "@title ERC20Mintable\n@dev ERC20 minting logic", + "fullyImplemented": true, + "id": 13014, + "linearizedBaseContracts": [ + 13014, + 12260, + 12897, + 13083 + ], + "name": "ERC20Mintable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 13012, + "nodeType": "Block", + "src": "530:44:59", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12996, + "src": "542:2:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13007, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12998, + "src": "546:5:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13005, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12807, + "src": "536:5:59", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 13008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "536:16:59", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13009, + "nodeType": "ExpressionStatement", + "src": "536:16:59" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 13010, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "565:4:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 13004, + "id": 13011, + "nodeType": "Return", + "src": "558:11:59" + } + ] + }, + "documentation": "@dev Function to mint tokens\n@param to The address that will receive the minted tokens.\n@param value The amount of tokens to mint.\n@return A boolean that indicates if the operation was successful.", + "id": 13013, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 13001, + "modifierName": { + "argumentTypes": null, + "id": 13000, + "name": "onlyMinter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12193, + "src": "498:10:59", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "498:10:59" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12999, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12996, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 13013, + "src": "449:10:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "449:7:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12998, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13013, + "src": "465:13:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12997, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "465:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "443:39:59" + }, + "payable": false, + "returnParameters": { + "id": 13004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13003, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13013, + "src": "522:4:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13002, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "522:4:59", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "521:6:59" + }, + "scope": 13014, + "src": "430:144:59", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 13015, + "src": "153:423:59" + } + ], + "src": "0:577:59" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.029Z" +} \ No newline at end of file diff --git a/build/contracts/ERC20Mock.json b/build/contracts/ERC20Mock.json new file mode 100644 index 00000000..93cbe5b6 --- /dev/null +++ b/build/contracts/ERC20Mock.json @@ -0,0 +1,1101 @@ +{ + "contractName": "ERC20Mock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isMinter", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "MinterAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "MinterRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162000e7c38038062000e7c833981016040908152815160208084015192840151918401805190949390930192849184918491620000589160009186019062000188565b5081516200006e90600190602085019062000188565b506002805460ff191660ff92909216919091179055506200009a905033640100000000620000a3810204565b5050506200022d565b620000be60068264010000000062000b79620000f582021704565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b600160a060020a03811615156200010b57600080fd5b62000120828264010000000062000150810204565b156200012b57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200016857600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001cb57805160ff1916838001178555620001fb565b82800160010185558215620001fb579182015b82811115620001fb578251825591602001919060010190620001de565b50620002099291506200020d565b5090565b6200022a91905b8082111562000209576000815560010162000214565b90565b610c3f806200023d6000396000f3006080604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100f5578063095ea7b31461017f57806318160ddd146101b757806323b872dd146101de578063313ce56714610208578063395093511461023357806340c10f191461025757806342966c681461027b57806370a082311461029557806379cc6790146102b657806395d89b41146102da578063983b2d56146102ef5780639865027514610310578063a457c2d714610325578063a9059cbb14610349578063aa271e1a1461036d578063dd62ed3e1461038e575b600080fd5b34801561010157600080fd5b5061010a6103b5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014457818101518382015260200161012c565b50505050905090810190601f1680156101715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018b57600080fd5b506101a3600160a060020a036004351660243561044b565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101cc6104c9565b60408051918252519081900360200190f35b3480156101ea57600080fd5b506101a3600160a060020a03600435811690602435166044356104cf565b34801561021457600080fd5b5061021d61056c565b6040805160ff9092168252519081900360200190f35b34801561023f57600080fd5b506101a3600160a060020a0360043516602435610575565b34801561026357600080fd5b506101a3600160a060020a0360043516602435610625565b34801561028757600080fd5b5061029360043561063a565b005b3480156102a157600080fd5b506101cc600160a060020a0360043516610647565b3480156102c257600080fd5b50610293600160a060020a0360043516602435610662565b3480156102e657600080fd5b5061010a610670565b3480156102fb57600080fd5b50610293600160a060020a03600435166106d0565b34801561031c57600080fd5b506102936106d9565b34801561033157600080fd5b506101a3600160a060020a03600435166024356106e4565b34801561035557600080fd5b506101a3600160a060020a036004351660243561072f565b34801561037957600080fd5b506101a3600160a060020a036004351661073c565b34801561039a57600080fd5b506101cc600160a060020a0360043581169060243516610755565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104415780601f1061041657610100808354040283529160200191610441565b820191906000526020600020905b81548152906001019060200180831161042457829003601f168201915b5050505050905090565b6000600160a060020a038316151561046257600080fd5b336000818152600460209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60055490565b600160a060020a03831660009081526004602090815260408083203384529091528120548211156104ff57600080fd5b600160a060020a0384166000908152600460209081526040808320338452909152902054610533908363ffffffff61078016565b600160a060020a0385166000908152600460209081526040808320338452909152902055610562848484610797565b5060019392505050565b60025460ff1690565b6000600160a060020a038316151561058c57600080fd5b336000908152600460209081526040808320600160a060020a03871684529091529020546105c0908363ffffffff61088b16565b336000818152600460209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600061063183836108a4565b50600192915050565b6106443382610950565b50565b600160a060020a031660009081526003602052604090205490565b61066c8282610a20565b5050565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156104415780601f1061041657610100808354040283529160200191610441565b61064481610ab2565b6106e233610afa565b565b6000600160a060020a03831615156106fb57600080fd5b336000908152600460209081526040808320600160a060020a03871684529091529020546105c0908363ffffffff61078016565b6000610631338484610797565b600061074f60068363ffffffff610b4216565b92915050565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205490565b6000808383111561079057600080fd5b5050900390565b600160a060020a0383166000908152600360205260409020548111156107bc57600080fd5b600160a060020a03821615156107d157600080fd5b600160a060020a0383166000908152600360205260409020546107fa908263ffffffff61078016565b600160a060020a03808516600090815260036020526040808220939093559084168152205461082f908263ffffffff61088b16565b600160a060020a0380841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282018381101561089d57600080fd5b9392505050565b600160a060020a03821615156108b957600080fd5b6005546108cc908263ffffffff61088b16565b600555600160a060020a0382166000908152600360205260409020546108f8908263ffffffff61088b16565b600160a060020a03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a038216151561096557600080fd5b600160a060020a03821660009081526003602052604090205481111561098a57600080fd5b60055461099d908263ffffffff61078016565b600555600160a060020a0382166000908152600360205260409020546109c9908263ffffffff61078016565b600160a060020a0383166000818152600360209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a0382166000908152600460209081526040808320338452909152902054811115610a5057600080fd5b600160a060020a0382166000908152600460209081526040808320338452909152902054610a84908263ffffffff61078016565b600160a060020a038316600090815260046020908152604080832033845290915290205561066c8282610950565b610ac360068263ffffffff610b7916565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610b0b60068263ffffffff610bc716565b604051600160a060020a038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000600160a060020a0382161515610b5957600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a0381161515610b8e57600080fd5b610b988282610b42565b15610ba257600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0381161515610bdc57600080fd5b610be68282610b42565b1515610bf157600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a723058207882176bbda711581cbbcaf46a4dda5cbf0b2dce3047163793cb0ad44515d6a50029", + "deployedBytecode": "0x6080604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100f5578063095ea7b31461017f57806318160ddd146101b757806323b872dd146101de578063313ce56714610208578063395093511461023357806340c10f191461025757806342966c681461027b57806370a082311461029557806379cc6790146102b657806395d89b41146102da578063983b2d56146102ef5780639865027514610310578063a457c2d714610325578063a9059cbb14610349578063aa271e1a1461036d578063dd62ed3e1461038e575b600080fd5b34801561010157600080fd5b5061010a6103b5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014457818101518382015260200161012c565b50505050905090810190601f1680156101715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018b57600080fd5b506101a3600160a060020a036004351660243561044b565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101cc6104c9565b60408051918252519081900360200190f35b3480156101ea57600080fd5b506101a3600160a060020a03600435811690602435166044356104cf565b34801561021457600080fd5b5061021d61056c565b6040805160ff9092168252519081900360200190f35b34801561023f57600080fd5b506101a3600160a060020a0360043516602435610575565b34801561026357600080fd5b506101a3600160a060020a0360043516602435610625565b34801561028757600080fd5b5061029360043561063a565b005b3480156102a157600080fd5b506101cc600160a060020a0360043516610647565b3480156102c257600080fd5b50610293600160a060020a0360043516602435610662565b3480156102e657600080fd5b5061010a610670565b3480156102fb57600080fd5b50610293600160a060020a03600435166106d0565b34801561031c57600080fd5b506102936106d9565b34801561033157600080fd5b506101a3600160a060020a03600435166024356106e4565b34801561035557600080fd5b506101a3600160a060020a036004351660243561072f565b34801561037957600080fd5b506101a3600160a060020a036004351661073c565b34801561039a57600080fd5b506101cc600160a060020a0360043581169060243516610755565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104415780601f1061041657610100808354040283529160200191610441565b820191906000526020600020905b81548152906001019060200180831161042457829003601f168201915b5050505050905090565b6000600160a060020a038316151561046257600080fd5b336000818152600460209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60055490565b600160a060020a03831660009081526004602090815260408083203384529091528120548211156104ff57600080fd5b600160a060020a0384166000908152600460209081526040808320338452909152902054610533908363ffffffff61078016565b600160a060020a0385166000908152600460209081526040808320338452909152902055610562848484610797565b5060019392505050565b60025460ff1690565b6000600160a060020a038316151561058c57600080fd5b336000908152600460209081526040808320600160a060020a03871684529091529020546105c0908363ffffffff61088b16565b336000818152600460209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600061063183836108a4565b50600192915050565b6106443382610950565b50565b600160a060020a031660009081526003602052604090205490565b61066c8282610a20565b5050565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156104415780601f1061041657610100808354040283529160200191610441565b61064481610ab2565b6106e233610afa565b565b6000600160a060020a03831615156106fb57600080fd5b336000908152600460209081526040808320600160a060020a03871684529091529020546105c0908363ffffffff61078016565b6000610631338484610797565b600061074f60068363ffffffff610b4216565b92915050565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205490565b6000808383111561079057600080fd5b5050900390565b600160a060020a0383166000908152600360205260409020548111156107bc57600080fd5b600160a060020a03821615156107d157600080fd5b600160a060020a0383166000908152600360205260409020546107fa908263ffffffff61078016565b600160a060020a03808516600090815260036020526040808220939093559084168152205461082f908263ffffffff61088b16565b600160a060020a0380841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282018381101561089d57600080fd5b9392505050565b600160a060020a03821615156108b957600080fd5b6005546108cc908263ffffffff61088b16565b600555600160a060020a0382166000908152600360205260409020546108f8908263ffffffff61088b16565b600160a060020a03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a038216151561096557600080fd5b600160a060020a03821660009081526003602052604090205481111561098a57600080fd5b60055461099d908263ffffffff61078016565b600555600160a060020a0382166000908152600360205260409020546109c9908263ffffffff61078016565b600160a060020a0383166000818152600360209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a0382166000908152600460209081526040808320338452909152902054811115610a5057600080fd5b600160a060020a0382166000908152600460209081526040808320338452909152902054610a84908263ffffffff61078016565b600160a060020a038316600090815260046020908152604080832033845290915290205561066c8282610950565b610ac360068263ffffffff610b7916565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610b0b60068263ffffffff610bc716565b604051600160a060020a038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000600160a060020a0382161515610b5957600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a0381161515610b8e57600080fd5b610b988282610b42565b15610ba257600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0381161515610bdc57600080fd5b610be68282610b42565b1515610bf157600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a723058207882176bbda711581cbbcaf46a4dda5cbf0b2dce3047163793cb0ad44515d6a50029", + "sourceMap": "309:221:35:-;;;381:103;8:9:-1;5:2;;;30:1;27;20:12;5:2;381:103:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;467:12:58;;381:103:35;;;;;;;;;;;;;467:12:58;;:5;;:12;;;;:::i;:::-;-1:-1:-1;485:16:58;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;507:9:58;:20;;-1:-1:-1;;507:20:58;;;;;;;;;;;;-1:-1:-1;260:22:53;;-1:-1:-1;271:10:53;260;;;;:22;:::i;:::-;381:103:35;;;309:221;;629:108:53;681:20;:7;693;681:11;;;;;;:20;:::i;:::-;712;;-1:-1:-1;;;;;712:20:53;;;;;;;;629:108;:::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;309:221:35:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;309:221:35;;;-1:-1:-1;309:221:35;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "309:221:35:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;584:67:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;584:67:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:220:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2380:220:56;-1:-1:-1;;;;;2380:220:56;;;;;;;;;;;;;;;;;;;;;;;;;640:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:83:56;;;;;;;;;;;;;;;;;;;;2872:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2872:288:56;-1:-1:-1;;;;;2872:288:56;;;;;;;;;;;;842:74:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;842:74:58;;;;;;;;;;;;;;;;;;;;;;;3611:330:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3611:330:56;-1:-1:-1;;;;;3611:330:56;;;;;;;430:144:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;430:144:59;-1:-1:-1;;;;;430:144:59;;;;;;;287:71:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;287:71:57;;;;;;;920:98:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;920:98:56;-1:-1:-1;;;;;920:98:56;;;;;598:87:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;598:87:57;-1:-1:-1;;;;;598:87:57;;;;;;;705:71:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;705:71:58;;;;468:84:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;468:84:53;-1:-1:-1;;;;;468:84:53;;;;;556:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;556:69:53;;;;4397:340:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4397:340:56;-1:-1:-1;;;;;4397:340:56;;;;;;;1637:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1637:127:56;-1:-1:-1;;;;;1637:127:56;;;;;;;364:100:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;364:100:53;-1:-1:-1;;;;;364:100:53;;;;;1335:150:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1335:150:56;-1:-1:-1;;;;;1335:150:56;;;;;;;;;;584:67:58;641:5;634:12;;;;;;;;-1:-1:-1;;634:12:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;620:6;;634:12;;641:5;;634:12;;641:5;634:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67;:::o;2380:220:56:-;2445:4;-1:-1:-1;;;;;2465:21:56;;;;2457:30;;;;;;2503:10;2494:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;2494:29:56;;;;;;;;;;;;:37;;;2542:36;;;;;;;2494:29;;2503:10;2542:36;;;;;;;;;;;-1:-1:-1;2591:4:56;2380:220;;;;:::o;640:83::-;706:12;;640:83;:::o;2872:288::-;-1:-1:-1;;;;;3006:14:56;;2975:4;3006:14;;;:8;:14;;;;;;;;3021:10;3006:26;;;;;;;;2997:35;;;2989:44;;;;;;-1:-1:-1;;;;;3069:14:56;;;;;;:8;:14;;;;;;;;3084:10;3069:26;;;;;;;;:37;;3100:5;3069:37;:30;:37;:::i;:::-;-1:-1:-1;;;;;3040:14:56;;;;;;:8;:14;;;;;;;;3055:10;3040:26;;;;;;;:66;3112:26;3049:4;3128:2;3132:5;3112:9;:26::i;:::-;-1:-1:-1;3151:4:56;2872:288;;;;;:::o;842:74:58:-;902:9;;;;842:74;:::o;3611:330:56:-;3711:4;-1:-1:-1;;;;;3733:21:56;;;;3725:30;;;;;;3811:10;3802:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3802:29:56;;;;;;;;;;:45;;3836:10;3802:45;:33;:45;:::i;:::-;3771:10;3762:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3762:29:56;;;;;;;;;;;;:86;;;3859:60;;;;;;3762:29;;3859:60;;;;;;;;;;;-1:-1:-1;3932:4:56;3611:330;;;;:::o;430:144:59:-;522:4;536:16;542:2;546:5;536;:16::i;:::-;-1:-1:-1;565:4:59;430:144;;;;:::o;287:71:57:-;329:24;335:10;347:5;329;:24::i;:::-;287:71;:::o;920:98:56:-;-1:-1:-1;;;;;997:16:56;975:7;997:16;;;:9;:16;;;;;;;920:98::o;598:87:57:-;658:22;668:4;674:5;658:9;:22::i;:::-;598:87;;:::o;705:71:58:-;764:7;757:14;;;;;;;;-1:-1:-1;;757:14:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;743:6;;757:14;;764:7;;757:14;;764:7;757:14;;;;;;;;;;;;;;;;;;;;;;;;468:84:53;528:19;539:7;528:10;:19::i;556:69::-;595:25;609:10;595:13;:25::i;:::-;556:69::o;4397:340:56:-;4502:4;-1:-1:-1;;;;;4524:21:56;;;;4516:30;;;;;;4602:10;4593:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4593:29:56;;;;;;;;;;:50;;4627:15;4593:50;:33;:50;:::i;1637:127::-;1698:4;1710:32;1720:10;1732:2;1736:5;1710:9;:32::i;364:100:53:-;420:4;439:20;:7;451;439:20;:11;:20;:::i;:::-;432:27;364:100;-1:-1:-1;;364:100:53:o;1335:150:56:-;-1:-1:-1;;;;;1456:15:56;;;1432:7;1456:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1335:150::o;1078:131:54:-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;4937:277:56:-;-1:-1:-1;;;;;5029:15:56;;;;;;:9;:15;;;;;;5020:24;;;5012:33;;;;;;-1:-1:-1;;;;;5059:16:56;;;;5051:25;;;;;;-1:-1:-1;;;;;5101:15:56;;;;;;:9;:15;;;;;;:26;;5121:5;5101:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5083:15:56;;;;;;;:9;:15;;;;;;:44;;;;5149:13;;;;;;;:24;;5167:5;5149:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5133:13:56;;;;;;;:9;:13;;;;;;;;;:40;;;;5184:25;;;;;;;5133:13;;5184:25;;;;;;;;;;;;;4937:277;;;:::o;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;;1397:1;1272:131;-1:-1:-1;;;1272:131:54:o;5541:235:56:-;-1:-1:-1;;;;;5611:12:56;;;;5603:21;;;;;;5645:12;;:23;;5662:5;5645:23;:16;:23;:::i;:::-;5630:12;:38;-1:-1:-1;;;;;5695:18:56;;;;;;:9;:18;;;;;;:29;;5718:5;5695:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;5674:18:56;;;;;;:9;:18;;;;;;;;:50;;;;5735:36;;;;;;;5674:18;;;;5735:36;;;;;;;;;;5541:235;;:::o;5988:278::-;-1:-1:-1;;;;;6058:12:56;;;;6050:21;;;;;;-1:-1:-1;;;;;6094:18:56;;;;;;:9;:18;;;;;;6085:27;;;6077:36;;;;;;6135:12;;:23;;6152:5;6135:23;:16;:23;:::i;:::-;6120:12;:38;-1:-1:-1;;;;;6185:18:56;;;;;;:9;:18;;;;;;:29;;6208:5;6185:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6164:18:56;;;;;;:9;:18;;;;;;;;:50;;;;6225:36;;;;;;;6164:18;;6225:36;;;;;;;;;;;5988:278;;:::o;6572:390::-;-1:-1:-1;;;;;6655:17:56;;;;;;:8;:17;;;;;;;;6673:10;6655:29;;;;;;;;6646:38;;;6638:47;;;;;;-1:-1:-1;;;;;6883:17:56;;;;;;:8;:17;;;;;;;;6901:10;6883:29;;;;;;;;:47;;6924:5;6883:47;:33;:47;:::i;:::-;-1:-1:-1;;;;;6851:17:56;;;;;;:8;:17;;;;;;;;6869:10;6851:29;;;;;;;:79;6936:21;6860:7;6951:5;6936;:21::i;629:108:53:-;681:20;:7;693;681:20;:11;:20;:::i;:::-;712;;-1:-1:-1;;;;;712:20:53;;;;;;;;629:108;:::o;741:116::-;796:23;:7;811;796:23;:14;:23;:::i;:::-;830:22;;-1:-1:-1;;;;;830:22:53;;;;;;;;741:116;:::o;725:166:52:-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;244:167::-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;:18::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;477:170::-;-1:-1:-1;;;;;552:21:52;;;;544:30;;;;;;588:18;592:4;598:7;588:3;:18::i;:::-;580:27;;;;;;;;-1:-1:-1;;;;;614:20:52;637:5;614:20;;;;;;;;;;;:28;;-1:-1:-1;;614:28:52;;;477:170::o", + "source": "pragma solidity ^0.4.24;\n\n//import \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Mintable.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\";\n\ncontract ERC20Mock is ERC20Detailed, ERC20Mintable, ERC20Burnable {\n constructor(string name, string symbol, uint8 decimals) ERC20Detailed(name, symbol, decimals) public {}\n\n modifier onlyMinter {\n _;\n }\n}\n", + "sourcePath": "/home/circleci/code/contracts/mocks/token/ERC20Mock.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/mocks/token/ERC20Mock.sol", + "exportedSymbols": { + "ERC20Mock": [ + 9963 + ] + }, + "id": 9964, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9934, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:35" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "id": 9935, + "nodeType": "ImportDirective", + "scope": 9964, + "sourceUnit": 12987, + "src": "92:71:35", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Mintable.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Mintable.sol", + "id": 9936, + "nodeType": "ImportDirective", + "scope": 9964, + "sourceUnit": 13015, + "src": "164:71:35", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", + "id": 9937, + "nodeType": "ImportDirective", + "scope": 9964, + "sourceUnit": 12929, + "src": "236:71:35", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9938, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12986, + "src": "331:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + }, + "id": 9939, + "nodeType": "InheritanceSpecifier", + "src": "331:13:35" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9940, + "name": "ERC20Mintable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13014, + "src": "346:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Mintable_$13014", + "typeString": "contract ERC20Mintable" + } + }, + "id": 9941, + "nodeType": "InheritanceSpecifier", + "src": "346:13:35" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9942, + "name": "ERC20Burnable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12928, + "src": "361:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Burnable_$12928", + "typeString": "contract ERC20Burnable" + } + }, + "id": 9943, + "nodeType": "InheritanceSpecifier", + "src": "361:13:35" + } + ], + "contractDependencies": [ + 12260, + 12897, + 12928, + 12986, + 13014, + 13083 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9963, + "linearizedBaseContracts": [ + 9963, + 12928, + 13014, + 12260, + 12897, + 12986, + 13083 + ], + "name": "ERC20Mock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 9957, + "nodeType": "Block", + "src": "482:2:35", + "statements": [] + }, + "documentation": null, + "id": 9958, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 9952, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9945, + "src": "451:4:35", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 9953, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9947, + "src": "457:6:35", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 9954, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9949, + "src": "465:8:35", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 9955, + "modifierName": { + "argumentTypes": null, + "id": 9951, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "437:13:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "437:37:35" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9950, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9945, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 9958, + "src": "393:11:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9944, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "393:6:35", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9947, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 9958, + "src": "406:13:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9946, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "406:6:35", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9949, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 9958, + "src": "421:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9948, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "421:5:35", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "392:44:35" + }, + "payable": false, + "returnParameters": { + "id": 9956, + "nodeType": "ParameterList", + "parameters": [], + "src": "482:0:35" + }, + "scope": 9963, + "src": "381:103:35", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9961, + "nodeType": "Block", + "src": "510:18:35", + "statements": [ + { + "id": 9960, + "nodeType": "PlaceholderStatement", + "src": "520:1:35" + } + ] + }, + "documentation": null, + "id": 9962, + "name": "onlyMinter", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 9959, + "nodeType": "ParameterList", + "parameters": [], + "src": "510:0:35" + }, + "src": "490:38:35", + "visibility": "internal" + } + ], + "scope": 9964, + "src": "309:221:35" + } + ], + "src": "0:531:35" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/mocks/token/ERC20Mock.sol", + "exportedSymbols": { + "ERC20Mock": [ + 9963 + ] + }, + "id": 9964, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9934, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:35" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "id": 9935, + "nodeType": "ImportDirective", + "scope": 9964, + "sourceUnit": 12987, + "src": "92:71:35", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Mintable.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Mintable.sol", + "id": 9936, + "nodeType": "ImportDirective", + "scope": 9964, + "sourceUnit": 13015, + "src": "164:71:35", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", + "id": 9937, + "nodeType": "ImportDirective", + "scope": 9964, + "sourceUnit": 12929, + "src": "236:71:35", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9938, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12986, + "src": "331:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + }, + "id": 9939, + "nodeType": "InheritanceSpecifier", + "src": "331:13:35" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9940, + "name": "ERC20Mintable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13014, + "src": "346:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Mintable_$13014", + "typeString": "contract ERC20Mintable" + } + }, + "id": 9941, + "nodeType": "InheritanceSpecifier", + "src": "346:13:35" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9942, + "name": "ERC20Burnable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12928, + "src": "361:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Burnable_$12928", + "typeString": "contract ERC20Burnable" + } + }, + "id": 9943, + "nodeType": "InheritanceSpecifier", + "src": "361:13:35" + } + ], + "contractDependencies": [ + 12260, + 12897, + 12928, + 12986, + 13014, + 13083 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9963, + "linearizedBaseContracts": [ + 9963, + 12928, + 13014, + 12260, + 12897, + 12986, + 13083 + ], + "name": "ERC20Mock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 9957, + "nodeType": "Block", + "src": "482:2:35", + "statements": [] + }, + "documentation": null, + "id": 9958, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 9952, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9945, + "src": "451:4:35", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 9953, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9947, + "src": "457:6:35", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 9954, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9949, + "src": "465:8:35", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 9955, + "modifierName": { + "argumentTypes": null, + "id": 9951, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "437:13:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "437:37:35" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9950, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9945, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 9958, + "src": "393:11:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9944, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "393:6:35", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9947, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 9958, + "src": "406:13:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9946, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "406:6:35", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9949, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 9958, + "src": "421:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9948, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "421:5:35", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "392:44:35" + }, + "payable": false, + "returnParameters": { + "id": 9956, + "nodeType": "ParameterList", + "parameters": [], + "src": "482:0:35" + }, + "scope": 9963, + "src": "381:103:35", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9961, + "nodeType": "Block", + "src": "510:18:35", + "statements": [ + { + "id": 9960, + "nodeType": "PlaceholderStatement", + "src": "520:1:35" + } + ] + }, + "documentation": null, + "id": 9962, + "name": "onlyMinter", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 9959, + "nodeType": "ParameterList", + "parameters": [], + "src": "510:0:35" + }, + "src": "490:38:35", + "visibility": "internal" + } + ], + "scope": 9964, + "src": "309:221:35" + } + ], + "src": "0:531:35" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.028Z" +} \ No newline at end of file diff --git a/build/contracts/Fund.json b/build/contracts/Fund.json new file mode 100644 index 00000000..241b2677 --- /dev/null +++ b/build/contracts/Fund.json @@ -0,0 +1,22897 @@ +{ + "contractName": "Fund", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "cost", + "type": "uint256" + } + ], + "name": "FundsReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "AssetRefunded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "TrancheTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "state", + "type": "Fund.State storage" + }, + { + "name": "_invoice", + "type": "uint256[3]" + }, + { + "name": "trancheFeePercent", + "type": "uint256" + }, + { + "name": "serviceWallet", + "type": "address" + }, + { + "name": "rates", + "type": "IRates" + } + ], + "name": "transferTranche", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "state", + "type": "Fund.State storage" + }, + { + "name": "trancheTransferAllowed", + "type": "bool" + }, + { + "name": "crowdsale", + "type": "IW12Crowdsale" + } + ], + "name": "getTrancheInvoice", + "outputs": [ + { + "name": "result", + "type": "uint256[3]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "state", + "type": "Fund.State storage" + }, + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "rates", + "type": "IRates" + } + ], + "name": "refundAssets", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "state", + "type": "Fund.State storage" + }, + { + "name": "investor", + "type": "address" + }, + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "costUSD", + "type": "uint256" + }, + { + "name": "rates", + "type": "IRates" + } + ], + "name": "recordPurchase", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6122b6610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f300730000000000000000000000000000000000000000301460806040526004361061005f5763ffffffff60e060020a60003504166346d1230a811461006457806369b3e2d2146100a0578063c4466008146100fd578063e065023814610151575b600080fd5b81801561007057600080fd5b5061009e600435600160a060020a0360243581169060443590606435906084359060a4359060c43516610178565b005b8180156100ac57600080fd5b5060408051606081810190925261009e91600480359236926084919060249060039083908390808284375093965050833594505050506020810135600160a060020a0390811691604001351661078d565b6101196004356024351515600160a060020a0360443516611187565b6040518082606080838360005b8381101561013e578181015183820152602001610126565b5050505090500191505060405180910390f35b81801561015d57600080fd5b5061009e600435602435600160a060020a036044351661173e565b6000851161018557600080fd5b6000831161019257600080fd5b6000821161019f57600080fd5b600160a060020a03861615156101b457600080fd5b604080517f7d20abf8000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a03831691637d20abf89160248083019260209291908290030181600087803b15801561021657600080fd5b505af115801561022a573d6000803e3d6000fd5b505050506040513d602081101561024057600080fd5b5051151561024d57600080fd5b60eb60020a6208aa8902841415610270573483111561026b57600080fd5b6104b7565b604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a0383169163cfec719f9160248083019260209291908290030181600087803b1580156102d257600080fd5b505af11580156102e6573d6000803e3d6000fd5b505050506040513d60208110156102fc57600080fd5b5051151561030957600080fd5b6040805160e360020a630ebbfe270281526002890160048201526024810186905290516103a591859173__FundAccount___________________________916375dff138916044808301926020929190829003018186803b15801561036d57600080fd5b505af4158015610381573d6000803e3d6000fd5b505050506040513d602081101561039757600080fd5b50519063ffffffff61223b16565b6040805160e460020a630b12e441028152600481018790529051600160a060020a0384169163b12e44109160248083019260209291908290030181600087803b1580156103f157600080fd5b505af1158015610405573d6000803e3d6000fd5b505050506040513d602081101561041b57600080fd5b5051604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561048057600080fd5b505af1158015610494573d6000803e3d6000fd5b505050506040513d60208110156104aa57600080fd5b505110156104b757600080fd5b600160a060020a03861660009081526008880160205260409020546104e2908663ffffffff61223b16565b600160a060020a038716600090815260088901602090815260408083209390935560098a019052818120825160e560020a6301c7023302815260048101919091526024810187905260448101869052915173__FundAccount___________________________926338e04660926064808301939192829003018186803b15801561056b57600080fd5b505af415801561057f573d6000803e3d6000fd5b50505050600160a060020a0386166000908152600988016020526040808220815160e560020a6301c70233028152600481019190915260ea60020a621554d102602482015260448101859052905173__FundAccount___________________________926338e046609260648082019391829003018186803b15801561060457600080fd5b505af4158015610618573d6000803e3d6000fd5b505050600688015461063191508663ffffffff61223b16565b60068801556040805160e560020a6301c702330281526002890160048201526024810186905260448101859052905173__FundAccount___________________________916338e04660916064808301926000929190829003018186803b15801561069b57600080fd5b505af41580156106af573d6000803e3d6000fd5b50506040805160e560020a6301c7023302815260028b01600482015260ea60020a621554d102602482015260448101869052905173__FundAccount___________________________93506338e0466092506064808301926000929190829003018186803b15801561072057600080fd5b505af4158015610734573d6000803e3d6000fd5b505060408051888152602081018890528082018790529051600160a060020a038a1693507fe2d0f4d539cb385db666a31aa9b27fd786afc933dc82ca8518d045424d6fa88292509081900360600190a250505050505050565b60008060008060008960020173__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b1580156107ec57600080fd5b505af4158015610800573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561082957600080fd5b81019080805164010000000081111561084157600080fd5b8201602081018481111561085457600080fd5b815185602082028301116401000000008211171561087157600080fd5b50505197505050505b841561117b57604080517f20e1e1d100000000000000000000000000000000000000000000000000000000815260028c016004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b1580156108ed57600080fd5b505af4158015610901573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561092a57600080fd5b81019080805164010000000081111561094257600080fd5b8201602081018481111561095557600080fd5b815185602082028301116401000000008211171561097257600080fd5b50508051600019909901989093508892508210905061098d57fe5b60209081029091018101516040805160e360020a630ebbfe2702815260028e01600482015260248101839052905191965073__FundAccount___________________________926375dff13892604480840193829003018186803b1580156109f457600080fd5b505af4158015610a08573d6000803e3d6000fd5b505050506040513d6020811015610a1e57600080fd5b50519250821515610a2e5761087a565b8851604080517f50716c0e0000000000000000000000000000000000000000000000000000000081526004810186905260248101929092525173__Percent_______________________________916350716c0e916044808301926020929190829003018186803b158015610aa257600080fd5b505af4158015610ab6573d6000803e3d6000fd5b505050506040513d6020811015610acc57600080fd5b5051915060008211610add57600080fd5b73__Utils_________________________________63bda4e619610b128c600701548d6006015461225490919063ffffffff16565b848d600601546040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610b5d57600080fd5b505af4158015610b71573d6000803e3d6000fd5b505050506040513d6020811015610b8757600080fd5b5051925060008311610b9857600080fd5b600084815260058b016020526040902054610bb9908463ffffffff61223b16565b600085815260058c01602052604090205560ea60020a621554d102841415610be05761087a565b60eb60020a6208aa89028414610d9e57604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a0388169163cfec719f9160248083019260209291908290030181600087803b158015610c5257600080fd5b505af1158015610c66573d6000803e3d6000fd5b505050506040513d6020811015610c7c57600080fd5b50511515610c8957600080fd5b6040805160e460020a630b12e4410281526004810186905290518491600160a060020a0389169163b12e4410916024808201926020929091908290030181600087803b158015610cd857600080fd5b505af1158015610cec573d6000803e3d6000fd5b505050506040513d6020811015610d0257600080fd5b5051604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610d6757600080fd5b505af1158015610d7b573d6000803e3d6000fd5b505050506040513d6020811015610d9157600080fd5b50511015610d9e57600080fd5b60008811610dad576000610e4c565b604080517f50716c0e00000000000000000000000000000000000000000000000000000000815260048101859052602481018a9052905173__Percent_______________________________916350716c0e916044808301926020929190829003018186803b158015610e1f57600080fd5b505af4158015610e33573d6000803e3d6000fd5b505050506040513d6020811015610e4957600080fd5b50515b90506000881115610e645760008111610e6457600080fd5b60eb60020a6208aa8902841415610ef8576000811115610eb657604051600160a060020a0388169082156108fc029083906000818181858888f19350505050158015610eb4573d6000803e3d6000fd5b505b336108fc610eca858463ffffffff61225416565b6040518115909202916000818181858888f19350505050158015610ef2573d6000803e3d6000fd5b5061113c565b600081111561101c576040805160e460020a630b12e441028152600481018690529051600160a060020a0388169163b12e44109160248083019260209291908290030181600087803b158015610f4d57600080fd5b505af1158015610f61573d6000803e3d6000fd5b505050506040513d6020811015610f7757600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038a81166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610fe557600080fd5b505af1158015610ff9573d6000803e3d6000fd5b505050506040513d602081101561100f57600080fd5b5051151561101c57600080fd5b6040805160e460020a630b12e441028152600481018690529051600160a060020a0388169163b12e44109160248083019260209291908290030181600087803b15801561106857600080fd5b505af115801561107c573d6000803e3d6000fd5b505050506040513d602081101561109257600080fd5b5051600160a060020a031663a9059cbb336110b3868563ffffffff61225416565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561110557600080fd5b505af1158015611119573d6000803e3d6000fd5b505050506040513d602081101561112f57600080fd5b5051151561113c57600080fd5b6040805185815260208101859052815133927f17e68c82fdc39ec76fff0be24ead989575d8eec009a729fa4bd738bc1f6a2dbb928290030190a261087a565b50505050505050505050565b61118f61226b565b60008060008060008060008060008b15156111a95761172e565b8a600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b1580156111e657600080fd5b505af11580156111fa573d6000803e3d6000fd5b505050506040513d604081101561121057600080fd5b5051604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151929b50600160a060020a038e16926314f66d34926004808401939192918290030181600087803b15801561126e57600080fd5b505af1158015611282573d6000803e3d6000fd5b505050506040513d604081101561129857600080fd5b5051604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018390529051919950600160a060020a038d1691632442e1cb9160248082019260009290919082900301818387803b1580156112ff57600080fd5b505af1158015611313573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561133c57600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561137257600080fd5b8201602081018481111561138557600080fd5b815164010000000081118282018710171561139f57600080fd5b505092919060200180516401000000008111156113bb57600080fd5b820160208101848111156113ce57600080fd5b81516401000000008111828201871017156113e857600080fd5b505092919050505050509950505050886000148061140557508888145b6114125760018903611414565b885b98508a600160a060020a0316632442e1cb8a6040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561145f57600080fd5b505af1158015611473573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561149c57600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156114d257600080fd5b820160208101848111156114e557600080fd5b81516401000000008111828201871017156114ff57600080fd5b5050929190602001805164010000000081111561151b57600080fd5b8201602081018481111561152e57600080fd5b815164010000000081118282018710171561154857600080fd5b505092919050505050509750509650508c60000160008a815260200190815260200160002060009054906101000a900460ff16935083156115885761172e565b8892505b60008311156116f8578280600190039350508a600160a060020a0316632442e1cb846040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b1580156115e757600080fd5b505af11580156115fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561162457600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561165a57600080fd5b8201602081018481111561166d57600080fd5b815164010000000081118282018710171561168757600080fd5b505092919060200180516401000000008111156116a357600080fd5b820160208101848111156116b657600080fd5b81516401000000008111828201871017156116d057600080fd5b509799506116f198508a97508996505063ffffffff61223b16945050505050565b915061158c565b60018d015461171d90611711888563ffffffff61223b16565b9063ffffffff61225416565b8a5260208a0182905260408a018990525b5050505050505050509392505050565b33600090815260098401602052604080822081517f20e1e1d100000000000000000000000000000000000000000000000000000000815260048101919091529051829182918291829173__FundAccount___________________________916320e1e1d19160248083019286929190829003018186803b1580156117c157600080fd5b505af41580156117d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156117fe57600080fd5b81019080805164010000000081111561181657600080fd5b8201602081018481111561182957600080fd5b815185602082028301116401000000008211171561184657600080fd5b50505197505050505b84156122315733600090815260098901602052604080822081517f20e1e1d10000000000000000000000000000000000000000000000000000000081526004810191909152905173__FundAccount___________________________926320e1e1d19260248082019391829003018186803b1580156118cd57600080fd5b505af41580156118e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561190a57600080fd5b81019080805164010000000081111561192257600080fd5b8201602081018481111561193557600080fd5b815185602082028301116401000000008211171561195257600080fd5b50508051600019909901989093508892508210905061196d57fe5b602090810290910181015133600090815260098b018352604090819020815160e360020a630ebbfe27028152600481019190915260248101839052905191965073__FundAccount___________________________926375dff13892604480840193829003018186803b1580156119e357600080fd5b505af41580156119f7573d6000803e3d6000fd5b505050506040513d6020811015611a0d57600080fd5b50519250821515611a1d5761184f565b3360009081526008890160209081526040918290205482517fbda4e619000000000000000000000000000000000000000000000000000000008152600481018b9052602481018790526044810191909152915173__Utils_________________________________9263bda4e619926064808301939192829003018186803b158015611aa857600080fd5b505af4158015611abc573d6000803e3d6000fd5b505050506040513d6020811015611ad257600080fd5b5051915060008211611ae357600080fd5b6040805160e360020a630ebbfe2702815260028a01600482015260248101869052905173__FundAccount___________________________916375dff138916044808301926020929190829003018186803b158015611b4157600080fd5b505af4158015611b55573d6000803e3d6000fd5b505050506040513d6020811015611b6b57600080fd5b50516001890154604080517f50716c0e000000000000000000000000000000000000000000000000000000008152600481019390935260248301919091525173__Percent_______________________________916350716c0e916044808301926020929190829003018186803b158015611be557600080fd5b505af4158015611bf9573d6000803e3d6000fd5b505050506040513d6020811015611c0f57600080fd5b50516040805160e360020a630ebbfe2702815260028b01600482015260248101879052905191925073__Utils_________________________________9163bda4e61991611ccd91859173__FundAccount___________________________916375dff13891604480820192602092909190829003018186803b158015611c9557600080fd5b505af4158015611ca9573d6000803e3d6000fd5b505050506040513d6020811015611cbf57600080fd5b50519063ffffffff61225416565b6040805160e360020a630ebbfe2702815260028d016004820152602481018990529051869173__FundAccount___________________________916375dff13891604480820192602092909190829003018186803b158015611d2e57600080fd5b505af4158015611d42573d6000803e3d6000fd5b505050506040513d6020811015611d5857600080fd5b50516040805160e060020a63ffffffff8716028152600481019490945260248401929092526044830152516064808301926020929190829003018186803b158015611da257600080fd5b505af4158015611db6573d6000803e3d6000fd5b505050506040513d6020811015611dcc57600080fd5b5051925060008311611ddd57600080fd5b6000848152600589016020526040902054611dfe908463ffffffff61223b16565b600085815260058a01602090815260408083209390935533825260098b01905281812082517f6e286eaf00000000000000000000000000000000000000000000000000000000815260048101919091526024810187905260448101859052915173__FundAccount___________________________92636e286eaf926064808301939192829003018186803b158015611e9657600080fd5b505af4158015611eaa573d6000803e3d6000fd5b5050505060ea60020a621554d102841415611ec45761184f565b60eb60020a6208aa8902841461208757604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a0388169163cfec719f9160248083019260209291908290030181600087803b158015611f3657600080fd5b505af1158015611f4a573d6000803e3d6000fd5b505050506040513d6020811015611f6057600080fd5b50511515611f6d57600080fd5b6040805160e460020a630b12e4410281526004810186905290518491600160a060020a0389169163b12e4410916024808201926020929091908290030181600087803b158015611fbc57600080fd5b505af1158015611fd0573d6000803e3d6000fd5b505050506040513d6020811015611fe657600080fd5b5051604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561204b57600080fd5b505af115801561205f573d6000803e3d6000fd5b505050506040513d602081101561207557600080fd5b5051101561208257600080fd5b612095565b303183111561209557600080fd5b60eb60020a6208aa89028414156120d957604051339084156108fc029085906000818181858888f193505050501580156120d3573d6000803e3d6000fd5b506121f2565b6040805160e460020a630b12e441028152600481018690529051600160a060020a0388169163b12e44109160248083019260209291908290030181600087803b15801561212557600080fd5b505af1158015612139573d6000803e3d6000fd5b505050506040513d602081101561214f57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b1580156121bb57600080fd5b505af11580156121cf573d6000803e3d6000fd5b505050506040513d60208110156121e557600080fd5b505115156121f257600080fd5b6040805185815260208101859052815133927fd434f0d1dd08e14b2acdd7a506c6e8b6edaf1a5825d23ca9b5e51a9ad883f71c928290030190a261184f565b5050505050505050565b60008282018381101561224d57600080fd5b9392505050565b6000808383111561226457600080fd5b5050900390565b60606040519081016040528060039060208202803883395091929150505600a165627a7a723058207c1e68a49dff4a4f720ccfb5831ba829de60466cc3517174d262ad3a2777790b0029", + "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061005f5763ffffffff60e060020a60003504166346d1230a811461006457806369b3e2d2146100a0578063c4466008146100fd578063e065023814610151575b600080fd5b81801561007057600080fd5b5061009e600435600160a060020a0360243581169060443590606435906084359060a4359060c43516610178565b005b8180156100ac57600080fd5b5060408051606081810190925261009e91600480359236926084919060249060039083908390808284375093965050833594505050506020810135600160a060020a0390811691604001351661078d565b6101196004356024351515600160a060020a0360443516611187565b6040518082606080838360005b8381101561013e578181015183820152602001610126565b5050505090500191505060405180910390f35b81801561015d57600080fd5b5061009e600435602435600160a060020a036044351661173e565b6000851161018557600080fd5b6000831161019257600080fd5b6000821161019f57600080fd5b600160a060020a03861615156101b457600080fd5b604080517f7d20abf8000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a03831691637d20abf89160248083019260209291908290030181600087803b15801561021657600080fd5b505af115801561022a573d6000803e3d6000fd5b505050506040513d602081101561024057600080fd5b5051151561024d57600080fd5b60eb60020a6208aa8902841415610270573483111561026b57600080fd5b6104b7565b604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a0383169163cfec719f9160248083019260209291908290030181600087803b1580156102d257600080fd5b505af11580156102e6573d6000803e3d6000fd5b505050506040513d60208110156102fc57600080fd5b5051151561030957600080fd5b6040805160e360020a630ebbfe270281526002890160048201526024810186905290516103a591859173__FundAccount___________________________916375dff138916044808301926020929190829003018186803b15801561036d57600080fd5b505af4158015610381573d6000803e3d6000fd5b505050506040513d602081101561039757600080fd5b50519063ffffffff61223b16565b6040805160e460020a630b12e441028152600481018790529051600160a060020a0384169163b12e44109160248083019260209291908290030181600087803b1580156103f157600080fd5b505af1158015610405573d6000803e3d6000fd5b505050506040513d602081101561041b57600080fd5b5051604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561048057600080fd5b505af1158015610494573d6000803e3d6000fd5b505050506040513d60208110156104aa57600080fd5b505110156104b757600080fd5b600160a060020a03861660009081526008880160205260409020546104e2908663ffffffff61223b16565b600160a060020a038716600090815260088901602090815260408083209390935560098a019052818120825160e560020a6301c7023302815260048101919091526024810187905260448101869052915173__FundAccount___________________________926338e04660926064808301939192829003018186803b15801561056b57600080fd5b505af415801561057f573d6000803e3d6000fd5b50505050600160a060020a0386166000908152600988016020526040808220815160e560020a6301c70233028152600481019190915260ea60020a621554d102602482015260448101859052905173__FundAccount___________________________926338e046609260648082019391829003018186803b15801561060457600080fd5b505af4158015610618573d6000803e3d6000fd5b505050600688015461063191508663ffffffff61223b16565b60068801556040805160e560020a6301c702330281526002890160048201526024810186905260448101859052905173__FundAccount___________________________916338e04660916064808301926000929190829003018186803b15801561069b57600080fd5b505af41580156106af573d6000803e3d6000fd5b50506040805160e560020a6301c7023302815260028b01600482015260ea60020a621554d102602482015260448101869052905173__FundAccount___________________________93506338e0466092506064808301926000929190829003018186803b15801561072057600080fd5b505af4158015610734573d6000803e3d6000fd5b505060408051888152602081018890528082018790529051600160a060020a038a1693507fe2d0f4d539cb385db666a31aa9b27fd786afc933dc82ca8518d045424d6fa88292509081900360600190a250505050505050565b60008060008060008960020173__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b1580156107ec57600080fd5b505af4158015610800573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561082957600080fd5b81019080805164010000000081111561084157600080fd5b8201602081018481111561085457600080fd5b815185602082028301116401000000008211171561087157600080fd5b50505197505050505b841561117b57604080517f20e1e1d100000000000000000000000000000000000000000000000000000000815260028c016004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b1580156108ed57600080fd5b505af4158015610901573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561092a57600080fd5b81019080805164010000000081111561094257600080fd5b8201602081018481111561095557600080fd5b815185602082028301116401000000008211171561097257600080fd5b50508051600019909901989093508892508210905061098d57fe5b60209081029091018101516040805160e360020a630ebbfe2702815260028e01600482015260248101839052905191965073__FundAccount___________________________926375dff13892604480840193829003018186803b1580156109f457600080fd5b505af4158015610a08573d6000803e3d6000fd5b505050506040513d6020811015610a1e57600080fd5b50519250821515610a2e5761087a565b8851604080517f50716c0e0000000000000000000000000000000000000000000000000000000081526004810186905260248101929092525173__Percent_______________________________916350716c0e916044808301926020929190829003018186803b158015610aa257600080fd5b505af4158015610ab6573d6000803e3d6000fd5b505050506040513d6020811015610acc57600080fd5b5051915060008211610add57600080fd5b73__Utils_________________________________63bda4e619610b128c600701548d6006015461225490919063ffffffff16565b848d600601546040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610b5d57600080fd5b505af4158015610b71573d6000803e3d6000fd5b505050506040513d6020811015610b8757600080fd5b5051925060008311610b9857600080fd5b600084815260058b016020526040902054610bb9908463ffffffff61223b16565b600085815260058c01602052604090205560ea60020a621554d102841415610be05761087a565b60eb60020a6208aa89028414610d9e57604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a0388169163cfec719f9160248083019260209291908290030181600087803b158015610c5257600080fd5b505af1158015610c66573d6000803e3d6000fd5b505050506040513d6020811015610c7c57600080fd5b50511515610c8957600080fd5b6040805160e460020a630b12e4410281526004810186905290518491600160a060020a0389169163b12e4410916024808201926020929091908290030181600087803b158015610cd857600080fd5b505af1158015610cec573d6000803e3d6000fd5b505050506040513d6020811015610d0257600080fd5b5051604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610d6757600080fd5b505af1158015610d7b573d6000803e3d6000fd5b505050506040513d6020811015610d9157600080fd5b50511015610d9e57600080fd5b60008811610dad576000610e4c565b604080517f50716c0e00000000000000000000000000000000000000000000000000000000815260048101859052602481018a9052905173__Percent_______________________________916350716c0e916044808301926020929190829003018186803b158015610e1f57600080fd5b505af4158015610e33573d6000803e3d6000fd5b505050506040513d6020811015610e4957600080fd5b50515b90506000881115610e645760008111610e6457600080fd5b60eb60020a6208aa8902841415610ef8576000811115610eb657604051600160a060020a0388169082156108fc029083906000818181858888f19350505050158015610eb4573d6000803e3d6000fd5b505b336108fc610eca858463ffffffff61225416565b6040518115909202916000818181858888f19350505050158015610ef2573d6000803e3d6000fd5b5061113c565b600081111561101c576040805160e460020a630b12e441028152600481018690529051600160a060020a0388169163b12e44109160248083019260209291908290030181600087803b158015610f4d57600080fd5b505af1158015610f61573d6000803e3d6000fd5b505050506040513d6020811015610f7757600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038a81166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610fe557600080fd5b505af1158015610ff9573d6000803e3d6000fd5b505050506040513d602081101561100f57600080fd5b5051151561101c57600080fd5b6040805160e460020a630b12e441028152600481018690529051600160a060020a0388169163b12e44109160248083019260209291908290030181600087803b15801561106857600080fd5b505af115801561107c573d6000803e3d6000fd5b505050506040513d602081101561109257600080fd5b5051600160a060020a031663a9059cbb336110b3868563ffffffff61225416565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561110557600080fd5b505af1158015611119573d6000803e3d6000fd5b505050506040513d602081101561112f57600080fd5b5051151561113c57600080fd5b6040805185815260208101859052815133927f17e68c82fdc39ec76fff0be24ead989575d8eec009a729fa4bd738bc1f6a2dbb928290030190a261087a565b50505050505050505050565b61118f61226b565b60008060008060008060008060008b15156111a95761172e565b8a600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b1580156111e657600080fd5b505af11580156111fa573d6000803e3d6000fd5b505050506040513d604081101561121057600080fd5b5051604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151929b50600160a060020a038e16926314f66d34926004808401939192918290030181600087803b15801561126e57600080fd5b505af1158015611282573d6000803e3d6000fd5b505050506040513d604081101561129857600080fd5b5051604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018390529051919950600160a060020a038d1691632442e1cb9160248082019260009290919082900301818387803b1580156112ff57600080fd5b505af1158015611313573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561133c57600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561137257600080fd5b8201602081018481111561138557600080fd5b815164010000000081118282018710171561139f57600080fd5b505092919060200180516401000000008111156113bb57600080fd5b820160208101848111156113ce57600080fd5b81516401000000008111828201871017156113e857600080fd5b505092919050505050509950505050886000148061140557508888145b6114125760018903611414565b885b98508a600160a060020a0316632442e1cb8a6040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561145f57600080fd5b505af1158015611473573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561149c57600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156114d257600080fd5b820160208101848111156114e557600080fd5b81516401000000008111828201871017156114ff57600080fd5b5050929190602001805164010000000081111561151b57600080fd5b8201602081018481111561152e57600080fd5b815164010000000081118282018710171561154857600080fd5b505092919050505050509750509650508c60000160008a815260200190815260200160002060009054906101000a900460ff16935083156115885761172e565b8892505b60008311156116f8578280600190039350508a600160a060020a0316632442e1cb846040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b1580156115e757600080fd5b505af11580156115fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561162457600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561165a57600080fd5b8201602081018481111561166d57600080fd5b815164010000000081118282018710171561168757600080fd5b505092919060200180516401000000008111156116a357600080fd5b820160208101848111156116b657600080fd5b81516401000000008111828201871017156116d057600080fd5b509799506116f198508a97508996505063ffffffff61223b16945050505050565b915061158c565b60018d015461171d90611711888563ffffffff61223b16565b9063ffffffff61225416565b8a5260208a0182905260408a018990525b5050505050505050509392505050565b33600090815260098401602052604080822081517f20e1e1d100000000000000000000000000000000000000000000000000000000815260048101919091529051829182918291829173__FundAccount___________________________916320e1e1d19160248083019286929190829003018186803b1580156117c157600080fd5b505af41580156117d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156117fe57600080fd5b81019080805164010000000081111561181657600080fd5b8201602081018481111561182957600080fd5b815185602082028301116401000000008211171561184657600080fd5b50505197505050505b84156122315733600090815260098901602052604080822081517f20e1e1d10000000000000000000000000000000000000000000000000000000081526004810191909152905173__FundAccount___________________________926320e1e1d19260248082019391829003018186803b1580156118cd57600080fd5b505af41580156118e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561190a57600080fd5b81019080805164010000000081111561192257600080fd5b8201602081018481111561193557600080fd5b815185602082028301116401000000008211171561195257600080fd5b50508051600019909901989093508892508210905061196d57fe5b602090810290910181015133600090815260098b018352604090819020815160e360020a630ebbfe27028152600481019190915260248101839052905191965073__FundAccount___________________________926375dff13892604480840193829003018186803b1580156119e357600080fd5b505af41580156119f7573d6000803e3d6000fd5b505050506040513d6020811015611a0d57600080fd5b50519250821515611a1d5761184f565b3360009081526008890160209081526040918290205482517fbda4e619000000000000000000000000000000000000000000000000000000008152600481018b9052602481018790526044810191909152915173__Utils_________________________________9263bda4e619926064808301939192829003018186803b158015611aa857600080fd5b505af4158015611abc573d6000803e3d6000fd5b505050506040513d6020811015611ad257600080fd5b5051915060008211611ae357600080fd5b6040805160e360020a630ebbfe2702815260028a01600482015260248101869052905173__FundAccount___________________________916375dff138916044808301926020929190829003018186803b158015611b4157600080fd5b505af4158015611b55573d6000803e3d6000fd5b505050506040513d6020811015611b6b57600080fd5b50516001890154604080517f50716c0e000000000000000000000000000000000000000000000000000000008152600481019390935260248301919091525173__Percent_______________________________916350716c0e916044808301926020929190829003018186803b158015611be557600080fd5b505af4158015611bf9573d6000803e3d6000fd5b505050506040513d6020811015611c0f57600080fd5b50516040805160e360020a630ebbfe2702815260028b01600482015260248101879052905191925073__Utils_________________________________9163bda4e61991611ccd91859173__FundAccount___________________________916375dff13891604480820192602092909190829003018186803b158015611c9557600080fd5b505af4158015611ca9573d6000803e3d6000fd5b505050506040513d6020811015611cbf57600080fd5b50519063ffffffff61225416565b6040805160e360020a630ebbfe2702815260028d016004820152602481018990529051869173__FundAccount___________________________916375dff13891604480820192602092909190829003018186803b158015611d2e57600080fd5b505af4158015611d42573d6000803e3d6000fd5b505050506040513d6020811015611d5857600080fd5b50516040805160e060020a63ffffffff8716028152600481019490945260248401929092526044830152516064808301926020929190829003018186803b158015611da257600080fd5b505af4158015611db6573d6000803e3d6000fd5b505050506040513d6020811015611dcc57600080fd5b5051925060008311611ddd57600080fd5b6000848152600589016020526040902054611dfe908463ffffffff61223b16565b600085815260058a01602090815260408083209390935533825260098b01905281812082517f6e286eaf00000000000000000000000000000000000000000000000000000000815260048101919091526024810187905260448101859052915173__FundAccount___________________________92636e286eaf926064808301939192829003018186803b158015611e9657600080fd5b505af4158015611eaa573d6000803e3d6000fd5b5050505060ea60020a621554d102841415611ec45761184f565b60eb60020a6208aa8902841461208757604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a0388169163cfec719f9160248083019260209291908290030181600087803b158015611f3657600080fd5b505af1158015611f4a573d6000803e3d6000fd5b505050506040513d6020811015611f6057600080fd5b50511515611f6d57600080fd5b6040805160e460020a630b12e4410281526004810186905290518491600160a060020a0389169163b12e4410916024808201926020929091908290030181600087803b158015611fbc57600080fd5b505af1158015611fd0573d6000803e3d6000fd5b505050506040513d6020811015611fe657600080fd5b5051604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561204b57600080fd5b505af115801561205f573d6000803e3d6000fd5b505050506040513d602081101561207557600080fd5b5051101561208257600080fd5b612095565b303183111561209557600080fd5b60eb60020a6208aa89028414156120d957604051339084156108fc029085906000818181858888f193505050501580156120d3573d6000803e3d6000fd5b506121f2565b6040805160e460020a630b12e441028152600481018690529051600160a060020a0388169163b12e44109160248083019260209291908290030181600087803b15801561212557600080fd5b505af1158015612139573d6000803e3d6000fd5b505050506040513d602081101561214f57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b1580156121bb57600080fd5b505af11580156121cf573d6000803e3d6000fd5b505050506040513d60208110156121e557600080fd5b505115156121f257600080fd5b6040805185815260208101859052815133927fd434f0d1dd08e14b2acdd7a506c6e8b6edaf1a5825d23ca9b5e51a9ad883f71c928290030190a261184f565b5050505050505050565b60008282018381101561224d57600080fd5b9392505050565b6000808383111561226457600080fd5b5050900390565b60606040519081016040528060039060208202803883395091929150505600a165627a7a723058207c1e68a49dff4a4f720ccfb5831ba829de60466cc3517174d262ad3a2777790b0029", + "sourceMap": "297:7195:18:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "297:7195:18:-;;;;;;;;;;;;-1:-1:-1;;;297:7195:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;6228:1262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6228:1262:18;;;-1:-1:-1;;;;;6228:1262:18;;;;;;;;;;;;;;;;;;;;;;;;1185:1774;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1185:1774:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1185:1774:18;;-1:-1:-1;;1185:1774:18;;;-1:-1:-1;;;;1185:1774:18;;;;-1:-1:-1;;;;;1185:1774:18;;;;;;;;;;2965:1273;;;;;;;;-1:-1:-1;;;;;2965:1273:18;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2965:1273:18;;;;;;;;;;;;;;;;4244:1978;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4244:1978:18;;;;;-1:-1:-1;;;;;4244:1978:18;;;;;6228:1262;6477:1;6463:15;;6455:24;;;;;;6504:1;6497:8;;6489:17;;;;;;6534:1;6524:11;;6516:20;;;;;;-1:-1:-1;;;;;6554:22:18;;;;6546:31;;;;;;6595:23;;;;;;;;;;;;;;-1:-1:-1;;;;;6595:15:18;;;;;:23;;;;;;;;;;;;;;;:15;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;6595:23:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6595:23:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6595:23:18;6587:32;;;;;;;;-1:-1:-1;;;;;6659:20:18;;6655:271;;;6703:9;:17;-1:-1:-1;6703:17:18;6695:26;;;;;;6655:271;;;6760:21;;;;;;;;;;;;;;-1:-1:-1;;;;;6760:13:18;;;;;:21;;;;;;;;;;;;;;;:13;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;6760:21:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6760:21:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6760:21:18;6752:30;;;;;;;;6870:34;;;-1:-1:-1;;;;;6870:34:18;;:17;;;:34;;;;;;;;;;;;:44;;6909:4;;6870:26;;;;:34;;;;;;;;;;;;;;:26;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;6870:34:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6870:34:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6870:34:18;;:44;:38;:44;:::i;:::-;6811:29;;;-1:-1:-1;;;;;6811:29:18;;;;;;;;;;-1:-1:-1;;;;;6811:21:18;;;;;:29;;;;;;;;;;;;;;;:21;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;6811:29:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6811:29:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6811:29:18;6804:62;;;;;;6860:4;6804:62;;;;;;-1:-1:-1;;;;;6804:47:18;;;;;;:62;;;;;6811:29;;6804:62;;;;;;;;-1:-1:-1;6804:47:18;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;6804:62:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6804:62:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6804:62:18;:110;;6796:119;;;;;;-1:-1:-1;;;;;7014:38:18;;;;;;:28;;;:38;;;;;;:55;;7057:11;7014:55;:42;:55;:::i;:::-;-1:-1:-1;;;;;6973:38:18;;;;;;:28;;;:38;;;;;;;;:96;;;;7079:23;;;:33;;;;;:55;;-1:-1:-1;;;;;7079:55:18;;;;;;;;;;;;;;;;;;;;;;;:41;;;;:55;;;;;6973:38;;7079:55;;;;;:41;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;7079:55:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;;7144:33:18;;;;;;:23;;;:33;;;;;;:62;;-1:-1:-1;;;;;7144:62:18;;;;;;;;;-1:-1:-1;;;;;7144:62:18;;;;;;;;;;;;:41;;;;:62;;;;;;;;;;;:41;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;7144:62:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;7273:22:18;;;;:39;;-1:-1:-1;7300:11:18;7273:39;:26;:39;:::i;:::-;7248:22;;;:64;7322:39;;;-1:-1:-1;;;;;7322:39:18;;:17;;;:39;;;;;;;;;;;;;;;;;;:25;;;;:39;;;;;-1:-1:-1;;7322:39:18;;;;;;;:25;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;7322:39:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7371:46:18;;;-1:-1:-1;;;;;7371:46:18;;:17;;;:46;;;;-1:-1:-1;;;;;7371:46:18;;;;;;;;;;;;:25;;-1:-1:-1;7371:25:18;;-1:-1:-1;7371:46:18;;;;;-1:-1:-1;;7371:46:18;;;;;;;:25;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;7371:46:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7433:50:18;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7433:50:18;;;-1:-1:-1;7433:50:18;;-1:-1:-1;7433:50:18;;;;;;;;6228:1262;;;;;;;:::o;1185:1774::-;1373:7;1462:14;1530:11;1633:17;2314:8;1383:5;:17;;:29;;;;:31;;;;;-1:-1:-1;;;1383:31:18;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1383:31:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1383:31:18;;;;;;39:16:-1;36:1;17:17;2:54;101:4;1383:31:18;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;1383:31:18;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;1383:38:18;;-1:-1:-1;;;;1432:1521:18;1439:7;;1432:1521;;1479:31;;;;;;:17;;;:31;;;;;;:29;;;;:31;;;;;-1:-1:-1;;1479:31:18;;;;;;;:29;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;1479:31:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1479:31:18;;;;;;39:16:-1;36:1;17:17;2:54;101:4;1479:31:18;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;1479:31:18;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;1479:37:18;;-1:-1:-1;;1511:4:18;;;;1479:31;;-1:-1:-1;1511:4:18;;-1:-1:-1;1479:37:18;;;-1:-1:-1;1479:37:18;;;;;;;;;;;;;;1544:34;;;-1:-1:-1;;;;;1544:34:18;;:17;;;:34;;;;;;;;;;;;1479:37;;-1:-1:-1;1544:26:18;;;;:34;;;;;;;;;;:26;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;1544:34:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1544:34:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1544:34:18;;-1:-1:-1;1597:11:18;;1593:25;;;1610:8;;1593:25;1672:11;;1653:31;;;;;;;;;;;;;;;;;;;;:18;;;;:31;;;;;1672:11;;1653:31;;;;;;;:18;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;1653:31:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1653:31:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1653:31:18;;-1:-1:-1;1722:1:18;1707:16;;1699:25;;;;;;1748:5;:16;1782:52;1809:5;:24;;;1782:5;:22;;;:26;;:52;;;;:::i;:::-;1852:12;1882:5;:22;;;1748:170;;;;;-1:-1:-1;;;1748:170:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1748:170:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1748:170:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1748:170:18;;-1:-1:-1;1950:1:18;1941:10;;1933:19;;;;;;2003:33;;;;:25;;;:33;;;;;;:45;;2041:6;2003:45;:37;:45;:::i;:::-;1967:33;;;;:25;;;:33;;;;;:81;-1:-1:-1;;;;;2067:20:18;;2063:34;;;2089:8;;2063:34;-1:-1:-1;;;;;2116:20:18;;2112:188;;2164:21;;;;;;;;;;;;;;-1:-1:-1;;;;;2164:13:18;;;;;:21;;;;;;;;;;;;;;;:13;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;2164:21:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2164:21:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2164:21:18;2156:30;;;;;;;;2219:29;;;-1:-1:-1;;;;;2219:29:18;;;;;;;;;;2278:6;;-1:-1:-1;;;;;2219:21:18;;;;;:29;;;;;;;;;;;;;;;;:21;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;2219:29:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2219:29:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2219:29:18;2212:62;;;;;;2268:4;2212:62;;;;;;-1:-1:-1;;;;;2212:47:18;;;;;;:62;;;;;2219:29;;2212:62;;;;;;;;-1:-1:-1;2212:47:18;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;2212:62:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2212:62:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2212:62:18;:72;;2204:81;;;;;;2345:1;2325:17;:21;:97;;2421:1;2325:97;;;2365:37;;;;;;;;;;;;;;;;;;;;:18;;;;:37;;;;;;;;;;;;;;:18;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;2365:37:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2365:37:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2365:37:18;2325:97;2314:108;;2461:1;2441:17;:21;2437:43;;;2478:1;2472:7;;2464:16;;;;;;-1:-1:-1;;;;;2499:20:18;;2495:382;;;2549:1;2543:3;:7;2539:40;;;2552:27;;-1:-1:-1;;;;;2552:22:18;;;:27;;;;;2575:3;;2552:27;;;;2575:3;2552:22;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2552:27:18;2539:40;2597:10;:36;2617:15;:6;2628:3;2617:15;:10;:15;:::i;:::-;2597:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2597:36:18;2495:382;;;2682:1;2676:3;:7;2672:88;;;2700:29;;;-1:-1:-1;;;;;2700:29:18;;;;;;;;;;-1:-1:-1;;;;;2700:21:18;;;;;:29;;;;;;;;;;;;;;;:21;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;2700:29:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2700:29:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2700:29:18;2693:66;;;;;;-1:-1:-1;;;;;2693:66:18;;;;;;;;;;;;;;;:46;;;;;;;:66;;;;;2700:29;;2693:66;;;;;;;-1:-1:-1;2693:46:18;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;2693:66:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2693:66:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2693:66:18;2685:75;;;;;;;;2793:29;;;-1:-1:-1;;;;;2793:29:18;;;;;;;;;;-1:-1:-1;;;;;2793:21:18;;;;;:29;;;;;;;;;;;;;;;:21;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;2793:29:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2793:29:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2793:29:18;-1:-1:-1;;;;;2786:46:18;;2833:10;2845:15;:6;2856:3;2845:15;:10;:15;:::i;:::-;2786:75;;;;;-1:-1:-1;;;2786:75:18;;;;;;;-1:-1:-1;;;;;2786:75:18;-1:-1:-1;;;;;2786:75:18;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2786:75:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2786:75:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2786:75:18;2778:84;;;;;;;;2896:46;;;;;;;;;;;;;;2915:10;;2896:46;;;;;;;;1432:1521;;;1185:1774;;;;;;;;;;:::o;2965:1273::-;3118:14;;:::i;:::-;3191:10;3268:14;3351:27;3545:19;3567:23;3636:14;3726;3758:30;3864:20;3149:22;3148:23;3144:36;;;3173:7;;3144:36;3221:9;-1:-1:-1;;;;;3221:34:18;;:36;;;;;-1:-1:-1;;;3221:36:18;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3221:36:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3221:36:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3221:36:18;;3302:33;;;;;;;3221:36;;-1:-1:-1;;;;;;3302:31:18;;;;;:33;;;;;3221:36;;3302:33;;;;;;;:31;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3302:33:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3302:33:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3302:33:18;;3384;;;;;;;;;;;;;3302;;-1:-1:-1;;;;;;3384:22:18;;;;;:33;;;;;-1:-1:-1;;3384:33:18;;;;;;;;-1:-1:-1;3384:22:18;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3384:33:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3384:33:18;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3384:33:18;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;3384:33:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;3384:33:18;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;3384:33:18;;;;;;3346:71;;;;;;;3479:5;3488:1;3479:10;:32;;;;3506:5;3493:9;:18;3479:32;:52;;3530:1;3522:5;:9;3479:52;;;3514:5;3479:52;3471:60;;3596:9;-1:-1:-1;;;;;3596:22:18;;3619:5;3596:29;;;;;-1:-1:-1;;;3596:29:18;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3596:29:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3596:29:18;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3596:29:18;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;3596:29:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;3596:29:18;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;3596:29:18;;;;;;3542:83;;;;;;;;3653:5;:23;;:30;3677:5;3653:30;;;;;;;;;;;;;;;;;;;;;3636:47;;3698:9;3694:22;;;3709:7;;3694:22;3743:5;3726:22;;3799:226;3818:1;3806:9;:13;3799:226;;;3835:11;;;;;;;;3892:9;-1:-1:-1;;;;;3892:22:18;;3915:9;3892:33;;;;;-1:-1:-1;;;3892:33:18;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3892:33:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3892:33:18;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3892:33:18;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;3892:33:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;3892:33:18;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;3861:64:18;;-1:-1:-1;3968:46:18;;-1:-1:-1;3968:25:18;;-1:-1:-1;3861:64:18;;-1:-1:-1;;3968:46:18;:29;:46;;-1:-1:-1;;;;;3968:46:18:i;:::-;3940:74;;3799:226;;;4123:33;;;;4047:110;;:58;:14;4079:25;4047:58;:31;:58;:::i;:::-;:75;:110;:75;:110;:::i;:::-;4035:122;;:9;4167;;:37;;;4214:9;;;:17;;;2965:1273;;;;;;;;;;;;;;;:::o;4244:1978::-;4400:10;4366:7;4376:35;;;:23;;;:35;;;;;;:49;;;;;;;;;;;;;;4366:7;;;;;;;;4376:47;;;;:49;;;;;4366:7;;4376:49;;;;;;;:47;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;4376:49:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4376:49:18;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4376:49:18;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4376:49:18;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;4376:56:18;;-1:-1:-1;;;;4443:1773:18;4450:7;;4443:1773;;4514:10;4490:35;;;;:23;;;:35;;;;;;:49;;;;;;;;;;;;;;:47;;;;:49;;;;;;;;;;;:47;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;4490:49:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4490:49:18;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4490:49:18;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4490:49:18;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;4490:55:18;;-1:-1:-1;;4540:4:18;;;;4490:49;;-1:-1:-1;4540:4:18;;-1:-1:-1;4490:55:18;;;-1:-1:-1;4490:55:18;;;;;;;;;;;;;;4597:10;4573:35;;;;:23;;;:35;;;;;;;:52;;-1:-1:-1;;;;;4573:52:18;;;;;;;;;;;;;;;;;4490:55;;-1:-1:-1;4573:44:18;;;;:52;;;;;;;;;;:44;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;4573:52:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4573:52:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4573:52:18;;-1:-1:-1;4644:11:18;;4640:25;;;4657:8;;4640:25;4849:10;4820:40;;;;:28;;;:40;;;;;;;;;;4733:141;;;;;;;;;;;;;;;;;;;;;;;;;;:5;;:16;;:141;;;;;4820:40;;4733:141;;;;;:5;:141;;;5:2:-1;;;;30:1;27;20:12;5:2;4733:141:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4733:141:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4733:141:18;;-1:-1:-1;4912:1:18;4897:16;;4889:25;;;;;;5015:51;;;-1:-1:-1;;;;;5015:51:18;;:17;;;:51;;;;;;;;;;;;:43;;;;:51;;;;;;;;;;;;;;:43;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;5015:51:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5015:51:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5015:51:18;5096:33;;;;5015:115;;;;;;;;;;;;;;;;;;;;;:80;;;;:115;;;;;:51;;:115;;;;;;;:80;:115;;;5:2:-1;;;;30:1;27;20:12;5:2;5015:115:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5015:115:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5015:115:18;5237:34;;;-1:-1:-1;;;;;5237:34:18;;:17;;;:34;;;;;;;;;;;;5015:115;;-1:-1:-1;5203:5:18;;:16;;5237:55;;5015:115;;5237:26;;;;:34;;;;;5015:115;;5237:34;;;;;;;;:26;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;5237:34:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5237:34:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5237:34:18;;:55;:38;:55;:::i;:::-;5340:34;;;-1:-1:-1;;;;;5340:34:18;;:17;;;:34;;;;;;;;;;;;5310:12;;5340:26;;;;:34;;;;;;;;;;;;;;;:26;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;5340:34:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5340:34:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5340:34:18;5203:185;;;-1:-1:-1;;;5203:185:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5340:34;;5203:185;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;5203:185:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5203:185:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5203:185:18;;-1:-1:-1;5420:1:18;5411:10;;5403:19;;;;;;5473:33;;;;:25;;;:33;;;;;;:45;;5511:6;5473:45;:37;:45;:::i;:::-;5437:33;;;;:25;;;:33;;;;;;;;:81;;;;5556:10;5532:35;;:23;;;:35;;;;;:68;;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;:68;;;;;5437:33;;5532:68;;;;;:46;:68;;;5:2:-1;;;;30:1;27;20:12;5:2;5532:68:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;;5619:20:18;;5615:34;;;5641:8;;5615:34;-1:-1:-1;;;;;5668:20:18;;5664:267;;5716:21;;;;;;;;;;;;;;-1:-1:-1;;;;;5716:13:18;;;;;:21;;;;;;;;;;;;;;;:13;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;5716:21:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5716:21:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5716:21:18;5708:30;;;;;;;;5771:29;;;-1:-1:-1;;;;;5771:29:18;;;;;;;;;;5830:6;;-1:-1:-1;;;;;5771:21:18;;;;;:29;;;;;;;;;;;;;;;;:21;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;5771:29:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5771:29:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5771:29:18;5764:62;;;;;;5820:4;5764:62;;;;;;-1:-1:-1;;;;;5764:47:18;;;;;;:62;;;;;5771:29;;5764:62;;;;;;;;-1:-1:-1;5764:47:18;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;5764:62:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5764:62:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5764:62:18;:72;;5756:81;;;;;;5664:267;;;5892:4;5884:21;:31;-1:-1:-1;5884:31:18;5876:40;;;;;;-1:-1:-1;;;;;5949:20:18;;5945:200;;;5989:27;;:10;;:27;;;;;6009:6;;5989:27;;;;6009:6;5989:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5989:27:18;5945:200;;;6070:29;;;-1:-1:-1;;;;;6070:29:18;;;;;;;;;;-1:-1:-1;;;;;6070:21:18;;;;;:29;;;;;;;;;;;;;;;:21;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;6070:29:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6070:29:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6070:29:18;6063:66;;;;;;6110:10;6063:66;;;;;;;;;;;;-1:-1:-1;;;;;6063:46:18;;;;;;:66;;;;;6070:29;;6063:66;;;;;;;;-1:-1:-1;6063:46:18;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;6063:66:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6063:66:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6063:66:18;6055:75;;;;;;;;6164:41;;;;;;;;;;;;;;6178:10;;6164:41;;;;;;;;4443:1773;;;4244:1978;;;;;;;;:::o;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;;1397:1;1272:131;-1:-1:-1;;;1272:131:54:o;1078:::-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;297:7195:18:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;297:7195:18;;;-1:-1:-1;;297:7195:18:o", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"../crowdsale/IW12Crowdsale.sol\";\nimport \"../rates/IRates.sol\";\nimport \"./Utils.sol\";\nimport \"./Percent.sol\";\nimport \"./FundAccount.sol\";\n\nlibrary Fund {\n using SafeMath for uint;\n using Percent for uint;\n using FundAccount for FundAccount.Account;\n\n bytes32 constant METHOD_ETH = bytes32('ETH');\n bytes32 constant METHOD_USD = bytes32('USD');\n\n struct State {\n mapping(uint => bool) completedTranches;\n uint totalTranchePercentReleased;\n FundAccount.Account totalFunded;\n mapping(bytes32 => uint) totalFundedReleased;\n uint totalTokenBought;\n uint totalTokenRefunded;\n mapping(address => uint) tokenBoughtPerInvestor;\n mapping(address => FundAccount.Account) fundedPerInvestor;\n }\n\n event FundsReceived(address indexed investor, uint tokenAmount, bytes32 symbol, uint cost);\n event AssetRefunded(address indexed investor, bytes32 symbol, uint amount);\n event TrancheTransferred(address indexed receiver, bytes32 symbol, uint amount);\n\n function transferTranche(\n State storage state,\n uint[3] _invoice,\n uint trancheFeePercent,\n address serviceWallet,\n IRates rates\n ) public {\n uint ln = state.totalFunded.symbolsList().length;\n\n while (ln != 0) {\n bytes32 symbol = state.totalFunded.symbolsList()[--ln];\n uint amount = state.totalFunded.amountOf(symbol);\n\n if (amount == 0) continue;\n\n uint sourceAmount = amount.safePercent(_invoice[0]);\n\n require(sourceAmount > 0);\n\n amount = Utils.safeMulDiv(\n state.totalTokenBought.sub(state.totalTokenRefunded),\n sourceAmount,\n state.totalTokenBought\n );\n\n require(amount > 0);\n\n state.totalFundedReleased[symbol] = state.totalFundedReleased[symbol].add(amount);\n\n if (symbol == METHOD_USD) continue;\n\n if (symbol != METHOD_ETH) {\n require(rates.isToken(symbol));\n require(IERC20(rates.getTokenAddress(symbol)).balanceOf(address(this)) >= amount);\n }\n\n uint fee = trancheFeePercent > 0\n ? amount.safePercent(trancheFeePercent)\n : 0;\n\n if (trancheFeePercent > 0) require(fee > 0);\n\n if (symbol == METHOD_ETH) {\n if (fee > 0) serviceWallet.transfer(fee);\n msg.sender.transfer(amount.sub(fee));\n } else {\n if (fee > 0) require(IERC20(rates.getTokenAddress(symbol)).transfer(serviceWallet, fee));\n require(IERC20(rates.getTokenAddress(symbol)).transfer(msg.sender, amount.sub(fee)));\n }\n\n emit TrancheTransferred(msg.sender, symbol, amount);\n }\n }\n\n function getTrancheInvoice(\n State storage state,\n bool trancheTransferAllowed,\n IW12Crowdsale crowdsale\n ) public view returns (uint[3] result) {\n if (!trancheTransferAllowed) return;\n\n (uint index, /*bool found*/) = crowdsale.getCurrentMilestoneIndex();\n (uint lastIndex, /*bool found*/) = crowdsale.getLastMilestoneIndex();\n\n (,,, uint32 lastWithdrawalWindow,,) = crowdsale.getMilestone(lastIndex);\n\n // get percent from prev milestone\n index = index == 0 || lastIndex == index ? index : index - 1;\n\n (, uint tranchePercent,, uint32 withdrawalWindow,,) = crowdsale.getMilestone(index);\n\n bool completed = state.completedTranches[index];\n\n if (completed) return;\n\n uint prevIndex = index;\n uint totalTranchePercentBefore;\n\n while (prevIndex > 0) {\n prevIndex--;\n\n (, uint _tranchePercent,,,,) = crowdsale.getMilestone(prevIndex);\n\n totalTranchePercentBefore = totalTranchePercentBefore.add(_tranchePercent);\n }\n\n result[0] = tranchePercent\n .add(totalTranchePercentBefore)\n .sub(state.totalTranchePercentReleased);\n result[1] = totalTranchePercentBefore;\n result[2] = index;\n }\n\n function refundAssets(\n State storage state,\n uint tokenAmount,\n IRates rates\n ) public {\n uint ln = state.fundedPerInvestor[msg.sender].symbolsList().length;\n\n while (ln != 0) {\n bytes32 symbol = state.fundedPerInvestor[msg.sender].symbolsList()[--ln];\n uint amount = state.fundedPerInvestor[msg.sender].amountOf(symbol);\n\n if (amount == 0) continue;\n\n // get source amount\n uint sourceAmount = Utils.safeMulDiv(\n tokenAmount,\n amount,\n state.tokenBoughtPerInvestor[msg.sender]\n );\n\n require(sourceAmount > 0);\n\n // get released tranche amount in current currency\n uint releasedTranche = state.totalFunded\n .amountOf(symbol)\n .safePercent(state.totalTranchePercentReleased);\n\n // get amount minus released tranche\n amount = Utils.safeMulDiv(\n state.totalFunded.amountOf(symbol).sub(releasedTranche),\n sourceAmount,\n state.totalFunded.amountOf(symbol)\n );\n\n require(amount > 0);\n\n state.totalFundedReleased[symbol] = state.totalFundedReleased[symbol].add(amount);\n state.fundedPerInvestor[msg.sender].withdrawal(symbol, sourceAmount);\n\n if (symbol == METHOD_USD) continue;\n\n if (symbol != METHOD_ETH) {\n require(rates.isToken(symbol));\n require(IERC20(rates.getTokenAddress(symbol)).balanceOf(address(this)) >= amount);\n } else {\n require(address(this).balance >= amount);\n }\n\n if (symbol == METHOD_ETH) {\n msg.sender.transfer(amount);\n } else {\n require(IERC20(rates.getTokenAddress(symbol)).transfer(msg.sender, amount));\n }\n\n emit AssetRefunded(msg.sender, symbol, amount);\n }\n }\n\n function recordPurchase(\n State storage state,\n address investor,\n uint tokenAmount,\n bytes32 symbol,\n uint cost,\n uint costUSD,\n IRates rates\n )\n public\n {\n require(tokenAmount > 0);\n require(cost > 0);\n require(costUSD > 0);\n require(investor != address(0));\n require(rates.hasSymbol(symbol));\n\n // check payment\n if (symbol == METHOD_ETH) {\n require(msg.value >= cost);\n } else {\n require(rates.isToken(symbol));\n require(IERC20(rates.getTokenAddress(symbol)).balanceOf(address(this)) >= state.totalFunded.amountOf(symbol).add(cost));\n }\n\n // write to investor account\n state.tokenBoughtPerInvestor[investor] = state.tokenBoughtPerInvestor[investor].add(tokenAmount);\n state.fundedPerInvestor[investor].deposit(symbol, cost);\n state.fundedPerInvestor[investor].deposit(METHOD_USD, costUSD);\n\n // write to total fund\n state.totalTokenBought = state.totalTokenBought.add(tokenAmount);\n state.totalFunded.deposit(symbol, cost);\n state.totalFunded.deposit(METHOD_USD, costUSD);\n\n emit FundsReceived(investor, tokenAmount, symbol, cost);\n }\n}\n", + "sourcePath": "/home/circleci/code/contracts/libs/Fund.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/libs/Fund.sol", + "exportedSymbols": { + "Fund": [ + 6008 + ] + }, + "id": 6009, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5202, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:18" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 5203, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 13084, + "src": "26:64:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 5204, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 12389, + "src": "91:59:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../crowdsale/IW12Crowdsale.sol", + "id": 5205, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 1761, + "src": "151:40:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../rates/IRates.sol", + "id": 5206, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 10015, + "src": "192:29:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", + "file": "./Utils.sol", + "id": 5207, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 8379, + "src": "222:21:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", + "file": "./Percent.sol", + "id": 5208, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 6432, + "src": "244:23:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/FundAccount.sol", + "file": "./FundAccount.sol", + "id": 5209, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 6170, + "src": "268:27:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 6008, + "linearizedBaseContracts": [ + 6008 + ], + "name": "Fund", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5212, + "libraryName": { + "contractScope": null, + "id": 5210, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "323:8:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "317:24:18", + "typeName": { + "id": 5211, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "336:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5215, + "libraryName": { + "contractScope": null, + "id": 5213, + "name": "Percent", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6431, + "src": "352:7:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Percent_$6431", + "typeString": "library Percent" + } + }, + "nodeType": "UsingForDirective", + "src": "346:23:18", + "typeName": { + "id": 5214, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "364:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5218, + "libraryName": { + "contractScope": null, + "id": 5216, + "name": "FundAccount", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6169, + "src": "380:11:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FundAccount_$6169", + "typeString": "library FundAccount" + } + }, + "nodeType": "UsingForDirective", + "src": "374:42:18", + "typeName": { + "contractScope": null, + "id": 5217, + "name": "FundAccount.Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6026, + "src": "396:19:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", + "typeString": "struct FundAccount.Account" + } + } + }, + { + "constant": true, + "id": 5223, + "name": "METHOD_ETH", + "nodeType": "VariableDeclaration", + "scope": 6008, + "src": "422:44:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5219, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "422:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "455448", + "id": 5221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "460:5:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", + "typeString": "literal_string \"ETH\"" + }, + "value": "ETH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", + "typeString": "literal_string \"ETH\"" + } + ], + "id": 5220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "452:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": "bytes32" + }, + "id": 5222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "452:14:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 5228, + "name": "METHOD_USD", + "nodeType": "VariableDeclaration", + "scope": 6008, + "src": "472:44:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5224, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "472:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "555344", + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "510:5:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + }, + "value": "USD" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + } + ], + "id": 5225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "502:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": "bytes32" + }, + "id": 5227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "502:14:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "canonicalName": "Fund.State", + "id": 5253, + "members": [ + { + "constant": false, + "id": 5232, + "name": "completedTranches", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "546:39:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "typeName": { + "id": 5231, + "keyType": { + "id": 5229, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "554:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "546:21:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "valueType": { + "id": 5230, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "562:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5234, + "name": "totalTranchePercentReleased", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "595:32:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5233, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "595:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5236, + "name": "totalFunded", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "637:31:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 5235, + "name": "FundAccount.Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6026, + "src": "637:19:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5240, + "name": "totalFundedReleased", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "678:44:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 5239, + "keyType": { + "id": 5237, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "686:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "678:24:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 5238, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "697:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5242, + "name": "totalTokenBought", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "732:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5241, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "732:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5244, + "name": "totalTokenRefunded", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "763:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5243, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "763:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5248, + "name": "tokenBoughtPerInvestor", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "796:47:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5247, + "keyType": { + "id": 5245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "804:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "796:24:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5246, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "815:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5252, + "name": "fundedPerInvestor", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "853:57:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account)" + }, + "typeName": { + "id": 5251, + "keyType": { + "id": 5249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "861:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "853:39:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account)" + }, + "valueType": { + "contractScope": null, + "id": 5250, + "name": "FundAccount.Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6026, + "src": "872:19:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", + "typeString": "struct FundAccount.Account" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "State", + "nodeType": "StructDefinition", + "scope": 6008, + "src": "523:394:18", + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5263, + "name": "FundsReceived", + "nodeType": "EventDefinition", + "parameters": { + "id": 5262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5255, + "indexed": true, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 5263, + "src": "943:24:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5254, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5257, + "indexed": false, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 5263, + "src": "969:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5256, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "969:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5259, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 5263, + "src": "987:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5258, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "987:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5261, + "indexed": false, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 5263, + "src": "1003:9:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5260, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1003:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "942:71:18" + }, + "src": "923:91:18" + }, + { + "anonymous": false, + "documentation": null, + "id": 5271, + "name": "AssetRefunded", + "nodeType": "EventDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5265, + "indexed": true, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 5271, + "src": "1039:24:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1039:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5267, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 5271, + "src": "1065:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5266, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1065:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5269, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 5271, + "src": "1081:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5268, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1081:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1038:55:18" + }, + "src": "1019:75:18" + }, + { + "anonymous": false, + "documentation": null, + "id": 5279, + "name": "TrancheTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5273, + "indexed": true, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 5279, + "src": "1124:24:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5272, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1124:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5275, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 5279, + "src": "1150:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5274, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1150:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5277, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 5279, + "src": "1166:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5276, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1166:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1123:55:18" + }, + "src": "1099:80:18" + }, + { + "body": { + "id": 5503, + "nodeType": "Block", + "src": "1363:1596:18", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "ln", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1373:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5294, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1373:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5301, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5296, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1383:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5297, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "1383:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 6137, + "src": "1383:29:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 5299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1383:31:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 5300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1383:38:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1373:48:18" + }, + { + "body": { + "id": 5501, + "nodeType": "Block", + "src": "1448:1505:18", + "statements": [ + { + "assignments": [ + 5306 + ], + "declarations": [ + { + "constant": false, + "id": 5306, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1462:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5305, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1462:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5314, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5307, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1479:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "1479:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 6137, + "src": "1479:29:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 5310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1479:31:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 5313, + "indexExpression": { + "argumentTypes": null, + "id": 5312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "1511:4:18", + "subExpression": { + "argumentTypes": null, + "id": 5311, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "1513:2:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1479:37:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1462:54:18" + }, + { + "assignments": [ + 5316 + ], + "declarations": [ + { + "constant": false, + "id": 5316, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1530:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5315, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1530:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5322, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5320, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "1571:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5317, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1544:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "1544:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5319, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "1544:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 5321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1544:34:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1530:48:18" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5323, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "1597:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1607:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1597:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5327, + "nodeType": "IfStatement", + "src": "1593:25:18", + "trueBody": { + "id": 5326, + "nodeType": "Continue", + "src": "1610:8:18" + } + }, + { + "assignments": [ + 5329 + ], + "declarations": [ + { + "constant": false, + "id": 5329, + "name": "sourceAmount", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1633:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5328, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1633:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5336, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5332, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5285, + "src": "1672:8:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 5334, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1681:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1672:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5330, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "1653:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6368, + "src": "1653:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1653:31:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1633:51:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5338, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5329, + "src": "1707:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1722:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1707:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5337, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1699:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1699:25:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5342, + "nodeType": "ExpressionStatement", + "src": "1699:25:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5343, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "1739:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5349, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1809:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5350, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTokenRefunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5244, + "src": "1809:24:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5346, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1782:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5347, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTokenBought", + "nodeType": "MemberAccess", + "referencedDeclaration": 5242, + "src": "1782:22:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "1782:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1782:52:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5352, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5329, + "src": "1852:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5353, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1882:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5354, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTokenBought", + "nodeType": "MemberAccess", + "referencedDeclaration": 5242, + "src": "1882:22:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5344, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8378, + "src": "1748:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", + "typeString": "type(library Utils)" + } + }, + "id": 5345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 8377, + "src": "1748:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1748:170:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1739:179:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5357, + "nodeType": "ExpressionStatement", + "src": "1739:179:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5359, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "1941:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1950:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1941:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5358, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1933:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1933:19:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5363, + "nodeType": "ExpressionStatement", + "src": "1933:19:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5364, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1967:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5367, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFundedReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5240, + "src": "1967:25:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 5368, + "indexExpression": { + "argumentTypes": null, + "id": 5366, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "1993:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1967:33:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5374, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "2041:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5369, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "2003:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5370, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFundedReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5240, + "src": "2003:25:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 5372, + "indexExpression": { + "argumentTypes": null, + "id": 5371, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2029:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2003:33:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "2003:37:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2003:45:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1967:81:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5377, + "nodeType": "ExpressionStatement", + "src": "1967:81:18" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2067:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5379, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "2077:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2067:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5382, + "nodeType": "IfStatement", + "src": "2063:34:18", + "trueBody": { + "id": 5381, + "nodeType": "Continue", + "src": "2089:8:18" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5383, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2116:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5384, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5223, + "src": "2126:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2116:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5410, + "nodeType": "IfStatement", + "src": "2112:188:18", + "trueBody": { + "id": 5409, + "nodeType": "Block", + "src": "2138:162:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5389, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2178:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5387, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5291, + "src": "2164:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 9999, + "src": "2164:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 5390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2164:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5386, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2156:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2156:30:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5392, + "nodeType": "ExpressionStatement", + "src": "2156:30:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5402, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "2268:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + ], + "id": 5401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2260:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2260:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5397, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2241:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5395, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5291, + "src": "2219:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "2219:21:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2219:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5394, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "2212:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2212:37:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "2212:47:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2212:62:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5405, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "2278:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2212:72:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2204:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2204:81:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5408, + "nodeType": "ExpressionStatement", + "src": "2204:81:18" + } + ] + } + }, + { + "assignments": [ + 5412 + ], + "declarations": [ + { + "constant": false, + "id": 5412, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "2314:8:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5411, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2314:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5422, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5413, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5287, + "src": "2325:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2345:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2325:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2421:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2325:97:18", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5418, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5287, + "src": "2384:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5416, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "2365:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6368, + "src": "2365:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2365:37:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2314:108:18" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5423, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5287, + "src": "2441:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2461:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2441:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5432, + "nodeType": "IfStatement", + "src": "2437:43:18", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5427, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2472:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2478:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2472:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5426, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2464:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2464:16:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5431, + "nodeType": "ExpressionStatement", + "src": "2464:16:18" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5433, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2499:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5434, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5223, + "src": "2509:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2499:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5492, + "nodeType": "Block", + "src": "2654:223:18", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5458, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2676:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2682:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2676:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5474, + "nodeType": "IfStatement", + "src": "2672:88:18", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "2740:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2755:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5465, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2722:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5463, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5291, + "src": "2700:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "2700:21:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2700:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5462, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "2693:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 5467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2693:37:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 5468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 13046, + "src": "2693:46:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2693:66:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5461, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2685:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2685:75:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5473, + "nodeType": "ExpressionStatement", + "src": "2685:75:18" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2833:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2833:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5487, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2856:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5485, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "2845:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "2845:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2845:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2815:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5477, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5291, + "src": "2793:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "2793:21:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 5480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2793:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5476, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "2786:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 5481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2786:37:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 13046, + "src": "2786:46:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 5489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2786:75:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5475, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2778:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2778:84:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5491, + "nodeType": "ExpressionStatement", + "src": "2778:84:18" + } + ] + }, + "id": 5493, + "nodeType": "IfStatement", + "src": "2495:382:18", + "trueBody": { + "id": 5457, + "nodeType": "Block", + "src": "2521:127:18", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5436, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2543:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2549:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2543:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5445, + "nodeType": "IfStatement", + "src": "2539:40:18", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5442, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2575:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5439, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "2552:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2552:22:18", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 5443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2552:27:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5444, + "nodeType": "ExpressionStatement", + "src": "2552:27:18" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2628:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5451, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "2617:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "2617:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2617:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5446, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2597:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2597:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2597:19:18", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2597:36:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5456, + "nodeType": "ExpressionStatement", + "src": "2597:36:18" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5495, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2915:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2915:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5497, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2927:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5498, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "2935:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5494, + "name": "TrancheTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5279, + "src": "2896:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,uint256)" + } + }, + "id": 5499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2896:46:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5500, + "nodeType": "EmitStatement", + "src": "2891:51:18" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5302, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "1439:2:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1445:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1439:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5502, + "nodeType": "WhileStatement", + "src": "1432:1521:18" + } + ] + }, + "documentation": null, + "id": 5504, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferTranche", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5281, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1219:19:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + }, + "typeName": { + "contractScope": null, + "id": 5280, + "name": "State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5253, + "src": "1219:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5285, + "name": "_invoice", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1248:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" + }, + "typeName": { + "baseType": { + "id": 5282, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1248:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5284, + "length": { + "argumentTypes": null, + "hexValue": "33", + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1253:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "1248:7:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5287, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1274:22:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1274:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5289, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1306:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1306:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5291, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1337:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 5290, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10014, + "src": "1337:6:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1209:146:18" + }, + "payable": false, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [], + "src": "1363:0:18" + }, + "scope": 6008, + "src": "1185:1774:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5628, + "nodeType": "Block", + "src": "3134:1104:18", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3148:23:18", + "subExpression": { + "argumentTypes": null, + "id": 5517, + "name": "trancheTransferAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5508, + "src": "3149:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5520, + "nodeType": "IfStatement", + "src": "3144:36:18", + "trueBody": { + "expression": null, + "functionReturnParameters": 5516, + "id": 5519, + "nodeType": "Return", + "src": "3173:7:18" + } + }, + { + "assignments": [ + 5522, + null + ], + "declarations": [ + { + "constant": false, + "id": 5522, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3191:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5521, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3191:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 5526, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5523, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5510, + "src": "3221:9:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 5524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getCurrentMilestoneIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 1711, + "src": "3221:34:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view external returns (uint256,bool)" + } + }, + "id": 5525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3221:36:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3190:67:18" + }, + { + "assignments": [ + 5528, + null + ], + "declarations": [ + { + "constant": false, + "id": 5528, + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3268:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3268:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 5532, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5529, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5510, + "src": "3302:9:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 5530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getLastMilestoneIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 1718, + "src": "3302:31:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view external returns (uint256,bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3302:33:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3267:68:18" + }, + { + "assignments": [ + null, + null, + null, + 5534, + null, + null + ], + "declarations": [ + null, + null, + null, + { + "constant": false, + "id": 5534, + "name": "lastWithdrawalWindow", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3351:27:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5533, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3351:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null + ], + "id": 5539, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5537, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5528, + "src": "3407:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5535, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5510, + "src": "3384:9:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 5536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1685, + "src": "3384:22:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + } + }, + "id": 5538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3384:33:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3346:71:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5540, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3471:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5541, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3479:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3488:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3479:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5544, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5528, + "src": "3493:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5545, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3506:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3493:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3479:32:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5549, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3522:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3530:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3522:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "3479:52:18", + "trueExpression": { + "argumentTypes": null, + "id": 5548, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3514:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3471:60:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5554, + "nodeType": "ExpressionStatement", + "src": "3471:60:18" + }, + { + "assignments": [ + null, + 5556, + null, + 5558, + null, + null + ], + "declarations": [ + null, + { + "constant": false, + "id": 5556, + "name": "tranchePercent", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3545:19:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5555, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3545:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null, + { + "constant": false, + "id": 5558, + "name": "withdrawalWindow", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3567:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5557, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3567:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null + ], + "id": 5563, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5561, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3619:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5559, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5510, + "src": "3596:9:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 5560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1685, + "src": "3596:22:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3596:29:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3542:83:18" + }, + { + "assignments": [ + 5565 + ], + "declarations": [ + { + "constant": false, + "id": 5565, + "name": "completed", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3636:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5564, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3636:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5570, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5566, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5506, + "src": "3653:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5567, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "completedTranches", + "nodeType": "MemberAccess", + "referencedDeclaration": 5232, + "src": "3653:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 5569, + "indexExpression": { + "argumentTypes": null, + "id": 5568, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3677:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3653:30:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3636:47:18" + }, + { + "condition": { + "argumentTypes": null, + "id": 5571, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5565, + "src": "3698:9:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5573, + "nodeType": "IfStatement", + "src": "3694:22:18", + "trueBody": { + "expression": null, + "functionReturnParameters": 5516, + "id": 5572, + "nodeType": "Return", + "src": "3709:7:18" + } + }, + { + "assignments": [ + 5575 + ], + "declarations": [ + { + "constant": false, + "id": 5575, + "name": "prevIndex", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3726:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3726:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5577, + "initialValue": { + "argumentTypes": null, + "id": 5576, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3743:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3726:22:18" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 5579, + "name": "totalTranchePercentBefore", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3758:30:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5578, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3758:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5580, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3758:30:18" + }, + { + "body": { + "id": 5601, + "nodeType": "Block", + "src": "3821:204:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "3835:11:18", + "subExpression": { + "argumentTypes": null, + "id": 5584, + "name": "prevIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5575, + "src": "3835:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "3835:11:18" + }, + { + "assignments": [ + null, + 5588, + null, + null, + null, + null + ], + "declarations": [ + null, + { + "constant": false, + "id": 5588, + "name": "_tranchePercent", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3864:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5587, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3864:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null, + null, + null + ], + "id": 5593, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5591, + "name": "prevIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5575, + "src": "3915:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5589, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5510, + "src": "3892:9:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1685, + "src": "3892:22:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + } + }, + "id": 5592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3892:33:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3861:64:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5594, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5579, + "src": "3940:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5597, + "name": "_tranchePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5588, + "src": "3998:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5595, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5579, + "src": "3968:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "3968:29:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3968:46:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3940:74:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5600, + "nodeType": "ExpressionStatement", + "src": "3940:74:18" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5581, + "name": "prevIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5575, + "src": "3806:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3818:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3806:13:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5602, + "nodeType": "WhileStatement", + "src": "3799:226:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5603, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5515, + "src": "4035:6:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 5605, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4042:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4035:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5611, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5506, + "src": "4123:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTranchePercentReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5234, + "src": "4123:33:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5608, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5579, + "src": "4079:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5606, + "name": "tranchePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5556, + "src": "4047:14:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "4047:31:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4047:58:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "4047:75:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4047:110:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4035:122:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5615, + "nodeType": "ExpressionStatement", + "src": "4035:122:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5616, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5515, + "src": "4167:6:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 5618, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4174:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4167:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5619, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5579, + "src": "4179:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4167:37:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5621, + "nodeType": "ExpressionStatement", + "src": "4167:37:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5622, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5515, + "src": "4214:6:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 5624, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4221:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4214:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5625, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "4226:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4214:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5627, + "nodeType": "ExpressionStatement", + "src": "4214:17:18" + } + ] + }, + "documentation": null, + "id": 5629, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTrancheInvoice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3001:19:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + }, + "typeName": { + "contractScope": null, + "id": 5505, + "name": "State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5253, + "src": "3001:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "name": "trancheTransferAllowed", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3030:27:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5507, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3030:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5510, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3067:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 5509, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "3067:13:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2991:105:18" + }, + "payable": false, + "returnParameters": { + "id": 5516, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3118:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" + }, + "typeName": { + "baseType": { + "id": 5512, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3118:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5514, + "length": { + "argumentTypes": null, + "hexValue": "33", + "id": 5513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3123:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "3118:7:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3117:16:18" + }, + "scope": 6008, + "src": "2965:1273:18", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5843, + "nodeType": "Block", + "src": "4356:1866:18", + "statements": [ + { + "assignments": [ + 5639 + ], + "declarations": [ + { + "constant": false, + "id": 5639, + "name": "ln", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4366:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5638, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4366:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5648, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5640, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "4376:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "4376:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 5644, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5642, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4400:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4400:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4376:35:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5645, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 6137, + "src": "4376:47:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 5646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4376:49:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4376:56:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4366:66:18" + }, + { + "body": { + "id": 5841, + "nodeType": "Block", + "src": "4459:1757:18", + "statements": [ + { + "assignments": [ + 5653 + ], + "declarations": [ + { + "constant": false, + "id": 5653, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4473:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5652, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4473:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5664, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5654, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "4490:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5655, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "4490:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 5658, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5656, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4514:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4514:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4490:35:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5659, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 6137, + "src": "4490:47:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 5660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4490:49:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 5663, + "indexExpression": { + "argumentTypes": null, + "id": 5662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "4540:4:18", + "subExpression": { + "argumentTypes": null, + "id": 5661, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5639, + "src": "4542:2:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4490:55:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4473:72:18" + }, + { + "assignments": [ + 5666 + ], + "declarations": [ + { + "constant": false, + "id": 5666, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4559:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5665, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4559:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5675, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5673, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "4618:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5667, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "4573:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5668, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "4573:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 5671, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5669, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4597:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4597:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4573:35:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5672, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "4573:44:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4573:52:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4559:66:18" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5676, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "4644:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4654:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4644:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5680, + "nodeType": "IfStatement", + "src": "4640:25:18", + "trueBody": { + "id": 5679, + "nodeType": "Continue", + "src": "4657:8:18" + } + }, + { + "assignments": [ + 5682 + ], + "declarations": [ + { + "constant": false, + "id": 5682, + "name": "sourceAmount", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4713:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5681, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4713:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5693, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5685, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5633, + "src": "4767:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5686, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "4796:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5687, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "4820:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5688, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "4820:28:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5691, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5689, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4849:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4849:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4820:40:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5683, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8378, + "src": "4733:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", + "typeString": "type(library Utils)" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 8377, + "src": "4733:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4733:141:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4713:161:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5695, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5682, + "src": "4897:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4912:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4897:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5694, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "4889:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4889:25:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "4889:25:18" + }, + { + "assignments": [ + 5701 + ], + "declarations": [ + { + "constant": false, + "id": 5701, + "name": "releasedTranche", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4992:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5700, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4992:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5711, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5708, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5096:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5709, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTranchePercentReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5234, + "src": "5096:33:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5705, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5059:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5702, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5015:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "5015:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5704, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "5015:43:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 5706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5015:51:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6368, + "src": "5015:80:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5015:115:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4992:138:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5712, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "5194:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5721, + "name": "releasedTranche", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5701, + "src": "5276:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5718, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5264:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5715, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5237:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5716, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "5237:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "5237:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5237:34:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "5237:38:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5237:55:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5682, + "src": "5310:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5727, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5367:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5724, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5340:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "5340:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5726, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "5340:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 5728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5340:34:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5713, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8378, + "src": "5203:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", + "typeString": "type(library Utils)" + } + }, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 8377, + "src": "5203:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5203:185:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5194:194:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5731, + "nodeType": "ExpressionStatement", + "src": "5194:194:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5733, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "5411:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5420:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5411:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5732, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5403:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5403:19:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5737, + "nodeType": "ExpressionStatement", + "src": "5403:19:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5437:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5741, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFundedReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5240, + "src": "5437:25:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 5742, + "indexExpression": { + "argumentTypes": null, + "id": 5740, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5463:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5437:33:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5748, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "5511:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5743, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5473:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5744, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFundedReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5240, + "src": "5473:25:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 5746, + "indexExpression": { + "argumentTypes": null, + "id": 5745, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5499:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5473:33:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5473:37:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5473:45:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5437:81:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5751, + "nodeType": "ExpressionStatement", + "src": "5437:81:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5759, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5579:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5760, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5682, + "src": "5587:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5752, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5532:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5756, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "5532:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 5757, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5754, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "5556:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5556:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5532:35:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5758, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawal", + "nodeType": "MemberAccess", + "referencedDeclaration": 6095, + "src": "5532:46:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 5761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5532:68:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5762, + "nodeType": "ExpressionStatement", + "src": "5532:68:18" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5763, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5619:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5764, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "5629:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5619:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5767, + "nodeType": "IfStatement", + "src": "5615:34:18", + "trueBody": { + "id": 5766, + "nodeType": "Continue", + "src": "5641:8:18" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5768, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5668:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5769, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5223, + "src": "5678:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5668:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5804, + "nodeType": "Block", + "src": "5858:73:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5797, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "5892:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + ], + "id": 5796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5884:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5884:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5884:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5800, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "5909:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5884:31:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5795, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5876:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5876:40:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5803, + "nodeType": "ExpressionStatement", + "src": "5876:40:18" + } + ] + }, + "id": 5805, + "nodeType": "IfStatement", + "src": "5664:267:18", + "trueBody": { + "id": 5794, + "nodeType": "Block", + "src": "5690:162:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5774, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5730:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5772, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5635, + "src": "5716:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 9999, + "src": "5716:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5716:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5771, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5708:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5708:30:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5777, + "nodeType": "ExpressionStatement", + "src": "5708:30:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5787, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "5820:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + ], + "id": 5786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5812:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5812:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5782, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5793:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5780, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5635, + "src": "5771:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "5771:21:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 5783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5771:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5779, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "5764:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 5784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5764:37:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 5785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "5764:47:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 5789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5764:62:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5790, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "5830:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5764:72:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5778, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5756:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5756:81:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "5756:81:18" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5806, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5949:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5807, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5223, + "src": "5959:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5949:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5832, + "nodeType": "Block", + "src": "6037:108:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5826, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6110:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6110:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5828, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "6122:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5822, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "6092:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5820, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5635, + "src": "6070:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "6070:21:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 5823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6070:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5819, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "6063:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 5824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6063:37:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 5825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 13046, + "src": "6063:46:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 5829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6063:66:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5818, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6055:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6055:75:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5831, + "nodeType": "ExpressionStatement", + "src": "6055:75:18" + } + ] + }, + "id": 5833, + "nodeType": "IfStatement", + "src": "5945:200:18", + "trueBody": { + "id": 5817, + "nodeType": "Block", + "src": "5971:60:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5814, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "6009:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5809, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "5989:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5989:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5989:19:18", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 5815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5989:27:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5816, + "nodeType": "ExpressionStatement", + "src": "5989:27:18" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5835, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6178:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6178:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5837, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "6190:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5838, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "6198:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5834, + "name": "AssetRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5271, + "src": "6164:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,uint256)" + } + }, + "id": 5839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6164:41:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5840, + "nodeType": "EmitStatement", + "src": "6159:46:18" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5649, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5639, + "src": "4450:2:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4456:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4450:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5842, + "nodeType": "WhileStatement", + "src": "4443:1773:18" + } + ] + }, + "documentation": null, + "id": 5844, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "refundAssets", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5636, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5631, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4275:19:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + }, + "typeName": { + "contractScope": null, + "id": 5630, + "name": "State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5253, + "src": "4275:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5633, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4304:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5632, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4304:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5635, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4330:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 5634, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10014, + "src": "4330:6:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4265:83:18" + }, + "payable": false, + "returnParameters": { + "id": 5637, + "nodeType": "ParameterList", + "parameters": [], + "src": "4356:0:18" + }, + "scope": 6008, + "src": "4244:1978:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6006, + "nodeType": "Block", + "src": "6445:1045:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5862, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "6463:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6477:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6463:15:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5861, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6455:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6455:24:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5866, + "nodeType": "ExpressionStatement", + "src": "6455:24:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5868, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "6497:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6504:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6497:8:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5867, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6489:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6489:17:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5872, + "nodeType": "ExpressionStatement", + "src": "6489:17:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5856, + "src": "6524:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6534:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6524:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5873, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6516:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6516:20:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5878, + "nodeType": "ExpressionStatement", + "src": "6516:20:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5880, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "6554:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6574:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6566:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6566:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6554:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5879, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6546:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6546:31:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5886, + "nodeType": "ExpressionStatement", + "src": "6546:31:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5890, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "6611:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5888, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5858, + "src": "6595:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "hasSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 10036, + "src": "6595:15:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6595:23:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5887, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6587:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6587:32:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5893, + "nodeType": "ExpressionStatement", + "src": "6587:32:18" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5894, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "6659:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5895, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5223, + "src": "6669:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "6659:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5935, + "nodeType": "Block", + "src": "6738:188:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5908, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "6774:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5906, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5858, + "src": "6760:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 9999, + "src": "6760:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 5909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6760:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5905, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6752:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6752:30:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5911, + "nodeType": "ExpressionStatement", + "src": "6752:30:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5921, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "6860:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + ], + "id": 5920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6852:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6852:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5916, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "6833:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5914, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5858, + "src": "6811:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "6811:21:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 5917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6811:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5913, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "6804:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 5918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6804:37:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "6804:47:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 5923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6804:62:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5930, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "6909:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5927, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "6897:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5924, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "6870:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5925, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "6870:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5926, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "6870:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 5928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6870:34:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "6870:38:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6870:44:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6804:110:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5912, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6796:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6796:119:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5934, + "nodeType": "ExpressionStatement", + "src": "6796:119:18" + } + ] + }, + "id": 5936, + "nodeType": "IfStatement", + "src": "6655:271:18", + "trueBody": { + "id": 5904, + "nodeType": "Block", + "src": "6681:51:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5898, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6703:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6703:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5900, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "6716:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6703:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5897, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6695:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6695:26:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5903, + "nodeType": "ExpressionStatement", + "src": "6695:26:18" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5937, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "6973:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5940, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "6973:28:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5941, + "indexExpression": { + "argumentTypes": null, + "id": 5939, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "7002:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6973:38:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5947, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "7057:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5942, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7014:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5943, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "7014:28:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5945, + "indexExpression": { + "argumentTypes": null, + "id": 5944, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "7043:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7014:38:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "7014:42:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7014:55:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6973:96:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5950, + "nodeType": "ExpressionStatement", + "src": "6973:96:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5957, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "7121:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5958, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "7129:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5951, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7079:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5954, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "7079:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 5955, + "indexExpression": { + "argumentTypes": null, + "id": 5953, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "7103:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7079:33:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5956, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 6055, + "src": "7079:41:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 5959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7079:55:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5960, + "nodeType": "ExpressionStatement", + "src": "7079:55:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5967, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "7186:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5968, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5856, + "src": "7198:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5961, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7144:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5964, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "7144:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 5965, + "indexExpression": { + "argumentTypes": null, + "id": 5963, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "7168:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7144:33:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5966, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 6055, + "src": "7144:41:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 5969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7144:62:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5970, + "nodeType": "ExpressionStatement", + "src": "7144:62:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5971, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7248:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5973, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "totalTokenBought", + "nodeType": "MemberAccess", + "referencedDeclaration": 5242, + "src": "7248:22:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "7300:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5974, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7273:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTokenBought", + "nodeType": "MemberAccess", + "referencedDeclaration": 5242, + "src": "7273:22:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "7273:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7273:39:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7248:64:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5980, + "nodeType": "ExpressionStatement", + "src": "7248:64:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5986, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "7348:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5987, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "7356:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5981, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7322:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "7322:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5985, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 6055, + "src": "7322:25:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 5988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7322:39:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5989, + "nodeType": "ExpressionStatement", + "src": "7322:39:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5995, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "7397:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5996, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5856, + "src": "7409:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5990, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7371:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5993, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "7371:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 6055, + "src": "7371:25:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 5997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7371:46:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5998, + "nodeType": "ExpressionStatement", + "src": "7371:46:18" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6000, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "7447:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6001, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "7457:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6002, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "7470:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 6003, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "7478:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5999, + "name": "FundsReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5263, + "src": "7433:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,bytes32,uint256)" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7433:50:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6005, + "nodeType": "EmitStatement", + "src": "7428:55:18" + } + ] + }, + "documentation": null, + "id": 6007, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "recordPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5846, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6261:19:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + }, + "typeName": { + "contractScope": null, + "id": 5845, + "name": "State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5253, + "src": "6261:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5848, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6290:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6290:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5850, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6316:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5849, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6316:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5852, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6342:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5851, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6342:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5854, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6366:9:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5853, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6366:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5856, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6385:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5855, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6385:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5858, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6407:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 5857, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10014, + "src": "6407:6:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6251:174:18" + }, + "payable": false, + "returnParameters": { + "id": 5860, + "nodeType": "ParameterList", + "parameters": [], + "src": "6445:0:18" + }, + "scope": 6008, + "src": "6228:1262:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 6009, + "src": "297:7195:18" + } + ], + "src": "0:7493:18" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/libs/Fund.sol", + "exportedSymbols": { + "Fund": [ + 6008 + ] + }, + "id": 6009, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5202, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:18" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 5203, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 13084, + "src": "26:64:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 5204, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 12389, + "src": "91:59:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../crowdsale/IW12Crowdsale.sol", + "id": 5205, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 1761, + "src": "151:40:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../rates/IRates.sol", + "id": 5206, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 10015, + "src": "192:29:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", + "file": "./Utils.sol", + "id": 5207, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 8379, + "src": "222:21:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", + "file": "./Percent.sol", + "id": 5208, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 6432, + "src": "244:23:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/FundAccount.sol", + "file": "./FundAccount.sol", + "id": 5209, + "nodeType": "ImportDirective", + "scope": 6009, + "sourceUnit": 6170, + "src": "268:27:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 6008, + "linearizedBaseContracts": [ + 6008 + ], + "name": "Fund", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5212, + "libraryName": { + "contractScope": null, + "id": 5210, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "323:8:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "317:24:18", + "typeName": { + "id": 5211, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "336:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5215, + "libraryName": { + "contractScope": null, + "id": 5213, + "name": "Percent", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6431, + "src": "352:7:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Percent_$6431", + "typeString": "library Percent" + } + }, + "nodeType": "UsingForDirective", + "src": "346:23:18", + "typeName": { + "id": 5214, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "364:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5218, + "libraryName": { + "contractScope": null, + "id": 5216, + "name": "FundAccount", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6169, + "src": "380:11:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FundAccount_$6169", + "typeString": "library FundAccount" + } + }, + "nodeType": "UsingForDirective", + "src": "374:42:18", + "typeName": { + "contractScope": null, + "id": 5217, + "name": "FundAccount.Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6026, + "src": "396:19:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", + "typeString": "struct FundAccount.Account" + } + } + }, + { + "constant": true, + "id": 5223, + "name": "METHOD_ETH", + "nodeType": "VariableDeclaration", + "scope": 6008, + "src": "422:44:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5219, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "422:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "455448", + "id": 5221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "460:5:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", + "typeString": "literal_string \"ETH\"" + }, + "value": "ETH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", + "typeString": "literal_string \"ETH\"" + } + ], + "id": 5220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "452:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": "bytes32" + }, + "id": 5222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "452:14:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 5228, + "name": "METHOD_USD", + "nodeType": "VariableDeclaration", + "scope": 6008, + "src": "472:44:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5224, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "472:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "555344", + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "510:5:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + }, + "value": "USD" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + } + ], + "id": 5225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "502:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": "bytes32" + }, + "id": 5227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "502:14:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "canonicalName": "Fund.State", + "id": 5253, + "members": [ + { + "constant": false, + "id": 5232, + "name": "completedTranches", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "546:39:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "typeName": { + "id": 5231, + "keyType": { + "id": 5229, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "554:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "546:21:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "valueType": { + "id": 5230, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "562:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5234, + "name": "totalTranchePercentReleased", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "595:32:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5233, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "595:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5236, + "name": "totalFunded", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "637:31:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 5235, + "name": "FundAccount.Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6026, + "src": "637:19:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5240, + "name": "totalFundedReleased", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "678:44:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 5239, + "keyType": { + "id": 5237, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "686:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "678:24:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 5238, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "697:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5242, + "name": "totalTokenBought", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "732:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5241, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "732:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5244, + "name": "totalTokenRefunded", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "763:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5243, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "763:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5248, + "name": "tokenBoughtPerInvestor", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "796:47:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5247, + "keyType": { + "id": 5245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "804:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "796:24:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5246, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "815:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5252, + "name": "fundedPerInvestor", + "nodeType": "VariableDeclaration", + "scope": 5253, + "src": "853:57:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account)" + }, + "typeName": { + "id": 5251, + "keyType": { + "id": 5249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "861:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "853:39:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account)" + }, + "valueType": { + "contractScope": null, + "id": 5250, + "name": "FundAccount.Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6026, + "src": "872:19:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", + "typeString": "struct FundAccount.Account" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "State", + "nodeType": "StructDefinition", + "scope": 6008, + "src": "523:394:18", + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5263, + "name": "FundsReceived", + "nodeType": "EventDefinition", + "parameters": { + "id": 5262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5255, + "indexed": true, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 5263, + "src": "943:24:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5254, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5257, + "indexed": false, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 5263, + "src": "969:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5256, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "969:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5259, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 5263, + "src": "987:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5258, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "987:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5261, + "indexed": false, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 5263, + "src": "1003:9:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5260, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1003:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "942:71:18" + }, + "src": "923:91:18" + }, + { + "anonymous": false, + "documentation": null, + "id": 5271, + "name": "AssetRefunded", + "nodeType": "EventDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5265, + "indexed": true, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 5271, + "src": "1039:24:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1039:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5267, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 5271, + "src": "1065:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5266, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1065:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5269, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 5271, + "src": "1081:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5268, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1081:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1038:55:18" + }, + "src": "1019:75:18" + }, + { + "anonymous": false, + "documentation": null, + "id": 5279, + "name": "TrancheTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5273, + "indexed": true, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 5279, + "src": "1124:24:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5272, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1124:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5275, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 5279, + "src": "1150:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5274, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1150:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5277, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 5279, + "src": "1166:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5276, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1166:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1123:55:18" + }, + "src": "1099:80:18" + }, + { + "body": { + "id": 5503, + "nodeType": "Block", + "src": "1363:1596:18", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "ln", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1373:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5294, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1373:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5301, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5296, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1383:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5297, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "1383:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 6137, + "src": "1383:29:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 5299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1383:31:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 5300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1383:38:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1373:48:18" + }, + { + "body": { + "id": 5501, + "nodeType": "Block", + "src": "1448:1505:18", + "statements": [ + { + "assignments": [ + 5306 + ], + "declarations": [ + { + "constant": false, + "id": 5306, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1462:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5305, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1462:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5314, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5307, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1479:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "1479:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 6137, + "src": "1479:29:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 5310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1479:31:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 5313, + "indexExpression": { + "argumentTypes": null, + "id": 5312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "1511:4:18", + "subExpression": { + "argumentTypes": null, + "id": 5311, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "1513:2:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1479:37:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1462:54:18" + }, + { + "assignments": [ + 5316 + ], + "declarations": [ + { + "constant": false, + "id": 5316, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1530:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5315, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1530:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5322, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5320, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "1571:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5317, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1544:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "1544:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5319, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "1544:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 5321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1544:34:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1530:48:18" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5323, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "1597:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1607:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1597:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5327, + "nodeType": "IfStatement", + "src": "1593:25:18", + "trueBody": { + "id": 5326, + "nodeType": "Continue", + "src": "1610:8:18" + } + }, + { + "assignments": [ + 5329 + ], + "declarations": [ + { + "constant": false, + "id": 5329, + "name": "sourceAmount", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1633:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5328, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1633:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5336, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5332, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5285, + "src": "1672:8:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 5334, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1681:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1672:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5330, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "1653:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6368, + "src": "1653:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1653:31:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1633:51:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5338, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5329, + "src": "1707:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1722:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1707:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5337, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1699:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1699:25:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5342, + "nodeType": "ExpressionStatement", + "src": "1699:25:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5343, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "1739:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5349, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1809:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5350, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTokenRefunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5244, + "src": "1809:24:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5346, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1782:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5347, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTokenBought", + "nodeType": "MemberAccess", + "referencedDeclaration": 5242, + "src": "1782:22:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "1782:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1782:52:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5352, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5329, + "src": "1852:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5353, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1882:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5354, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTokenBought", + "nodeType": "MemberAccess", + "referencedDeclaration": 5242, + "src": "1882:22:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5344, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8378, + "src": "1748:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", + "typeString": "type(library Utils)" + } + }, + "id": 5345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 8377, + "src": "1748:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1748:170:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1739:179:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5357, + "nodeType": "ExpressionStatement", + "src": "1739:179:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5359, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "1941:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1950:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1941:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5358, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1933:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1933:19:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5363, + "nodeType": "ExpressionStatement", + "src": "1933:19:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5364, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "1967:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5367, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFundedReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5240, + "src": "1967:25:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 5368, + "indexExpression": { + "argumentTypes": null, + "id": 5366, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "1993:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1967:33:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5374, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "2041:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5369, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "2003:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5370, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFundedReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5240, + "src": "2003:25:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 5372, + "indexExpression": { + "argumentTypes": null, + "id": 5371, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2029:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2003:33:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "2003:37:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2003:45:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1967:81:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5377, + "nodeType": "ExpressionStatement", + "src": "1967:81:18" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2067:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5379, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "2077:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2067:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5382, + "nodeType": "IfStatement", + "src": "2063:34:18", + "trueBody": { + "id": 5381, + "nodeType": "Continue", + "src": "2089:8:18" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5383, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2116:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5384, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5223, + "src": "2126:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2116:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5410, + "nodeType": "IfStatement", + "src": "2112:188:18", + "trueBody": { + "id": 5409, + "nodeType": "Block", + "src": "2138:162:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5389, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2178:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5387, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5291, + "src": "2164:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 9999, + "src": "2164:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 5390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2164:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5386, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2156:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2156:30:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5392, + "nodeType": "ExpressionStatement", + "src": "2156:30:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5402, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "2268:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + ], + "id": 5401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2260:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2260:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5397, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2241:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5395, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5291, + "src": "2219:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "2219:21:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2219:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5394, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "2212:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2212:37:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "2212:47:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2212:62:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5405, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "2278:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2212:72:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2204:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2204:81:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5408, + "nodeType": "ExpressionStatement", + "src": "2204:81:18" + } + ] + } + }, + { + "assignments": [ + 5412 + ], + "declarations": [ + { + "constant": false, + "id": 5412, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "2314:8:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5411, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2314:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5422, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5413, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5287, + "src": "2325:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2345:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2325:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2421:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2325:97:18", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5418, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5287, + "src": "2384:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5416, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "2365:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6368, + "src": "2365:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2365:37:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2314:108:18" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5423, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5287, + "src": "2441:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2461:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2441:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5432, + "nodeType": "IfStatement", + "src": "2437:43:18", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5427, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2472:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2478:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2472:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5426, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2464:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2464:16:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5431, + "nodeType": "ExpressionStatement", + "src": "2464:16:18" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5433, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2499:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5434, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5223, + "src": "2509:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2499:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5492, + "nodeType": "Block", + "src": "2654:223:18", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5458, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2676:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2682:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2676:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5474, + "nodeType": "IfStatement", + "src": "2672:88:18", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "2740:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2755:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5465, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2722:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5463, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5291, + "src": "2700:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "2700:21:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2700:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5462, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "2693:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 5467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2693:37:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 5468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 13046, + "src": "2693:46:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2693:66:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5461, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2685:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2685:75:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5473, + "nodeType": "ExpressionStatement", + "src": "2685:75:18" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2833:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2833:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5487, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2856:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5485, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "2845:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "2845:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2845:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2815:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5477, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5291, + "src": "2793:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "2793:21:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 5480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2793:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5476, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "2786:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 5481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2786:37:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 13046, + "src": "2786:46:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 5489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2786:75:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5475, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2778:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2778:84:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5491, + "nodeType": "ExpressionStatement", + "src": "2778:84:18" + } + ] + }, + "id": 5493, + "nodeType": "IfStatement", + "src": "2495:382:18", + "trueBody": { + "id": 5457, + "nodeType": "Block", + "src": "2521:127:18", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5436, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2543:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2549:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2543:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5445, + "nodeType": "IfStatement", + "src": "2539:40:18", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5442, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2575:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5439, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "2552:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2552:22:18", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 5443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2552:27:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5444, + "nodeType": "ExpressionStatement", + "src": "2552:27:18" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "2628:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5451, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "2617:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "2617:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2617:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5446, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2597:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2597:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2597:19:18", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2597:36:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5456, + "nodeType": "ExpressionStatement", + "src": "2597:36:18" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5495, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2915:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2915:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5497, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5306, + "src": "2927:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5498, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5316, + "src": "2935:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5494, + "name": "TrancheTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5279, + "src": "2896:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,uint256)" + } + }, + "id": 5499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2896:46:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5500, + "nodeType": "EmitStatement", + "src": "2891:51:18" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5302, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "1439:2:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1445:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1439:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5502, + "nodeType": "WhileStatement", + "src": "1432:1521:18" + } + ] + }, + "documentation": null, + "id": 5504, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferTranche", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5281, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1219:19:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + }, + "typeName": { + "contractScope": null, + "id": 5280, + "name": "State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5253, + "src": "1219:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5285, + "name": "_invoice", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1248:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" + }, + "typeName": { + "baseType": { + "id": 5282, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1248:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5284, + "length": { + "argumentTypes": null, + "hexValue": "33", + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1253:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "1248:7:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5287, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1274:22:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1274:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5289, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1306:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1306:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5291, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "1337:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 5290, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10014, + "src": "1337:6:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1209:146:18" + }, + "payable": false, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [], + "src": "1363:0:18" + }, + "scope": 6008, + "src": "1185:1774:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5628, + "nodeType": "Block", + "src": "3134:1104:18", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3148:23:18", + "subExpression": { + "argumentTypes": null, + "id": 5517, + "name": "trancheTransferAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5508, + "src": "3149:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5520, + "nodeType": "IfStatement", + "src": "3144:36:18", + "trueBody": { + "expression": null, + "functionReturnParameters": 5516, + "id": 5519, + "nodeType": "Return", + "src": "3173:7:18" + } + }, + { + "assignments": [ + 5522, + null + ], + "declarations": [ + { + "constant": false, + "id": 5522, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3191:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5521, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3191:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 5526, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5523, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5510, + "src": "3221:9:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 5524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getCurrentMilestoneIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 1711, + "src": "3221:34:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view external returns (uint256,bool)" + } + }, + "id": 5525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3221:36:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3190:67:18" + }, + { + "assignments": [ + 5528, + null + ], + "declarations": [ + { + "constant": false, + "id": 5528, + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3268:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3268:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 5532, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5529, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5510, + "src": "3302:9:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 5530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getLastMilestoneIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 1718, + "src": "3302:31:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view external returns (uint256,bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3302:33:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3267:68:18" + }, + { + "assignments": [ + null, + null, + null, + 5534, + null, + null + ], + "declarations": [ + null, + null, + null, + { + "constant": false, + "id": 5534, + "name": "lastWithdrawalWindow", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3351:27:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5533, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3351:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null + ], + "id": 5539, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5537, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5528, + "src": "3407:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5535, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5510, + "src": "3384:9:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 5536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1685, + "src": "3384:22:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + } + }, + "id": 5538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3384:33:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3346:71:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5540, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3471:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5541, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3479:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3488:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3479:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5544, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5528, + "src": "3493:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5545, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3506:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3493:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3479:32:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5549, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3522:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3530:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3522:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "3479:52:18", + "trueExpression": { + "argumentTypes": null, + "id": 5548, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3514:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3471:60:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5554, + "nodeType": "ExpressionStatement", + "src": "3471:60:18" + }, + { + "assignments": [ + null, + 5556, + null, + 5558, + null, + null + ], + "declarations": [ + null, + { + "constant": false, + "id": 5556, + "name": "tranchePercent", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3545:19:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5555, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3545:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null, + { + "constant": false, + "id": 5558, + "name": "withdrawalWindow", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3567:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5557, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3567:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null + ], + "id": 5563, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5561, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3619:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5559, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5510, + "src": "3596:9:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 5560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1685, + "src": "3596:22:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3596:29:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3542:83:18" + }, + { + "assignments": [ + 5565 + ], + "declarations": [ + { + "constant": false, + "id": 5565, + "name": "completed", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3636:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5564, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3636:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5570, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5566, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5506, + "src": "3653:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5567, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "completedTranches", + "nodeType": "MemberAccess", + "referencedDeclaration": 5232, + "src": "3653:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 5569, + "indexExpression": { + "argumentTypes": null, + "id": 5568, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3677:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3653:30:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3636:47:18" + }, + { + "condition": { + "argumentTypes": null, + "id": 5571, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5565, + "src": "3698:9:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5573, + "nodeType": "IfStatement", + "src": "3694:22:18", + "trueBody": { + "expression": null, + "functionReturnParameters": 5516, + "id": 5572, + "nodeType": "Return", + "src": "3709:7:18" + } + }, + { + "assignments": [ + 5575 + ], + "declarations": [ + { + "constant": false, + "id": 5575, + "name": "prevIndex", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3726:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3726:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5577, + "initialValue": { + "argumentTypes": null, + "id": 5576, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "3743:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3726:22:18" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 5579, + "name": "totalTranchePercentBefore", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3758:30:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5578, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3758:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5580, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3758:30:18" + }, + { + "body": { + "id": 5601, + "nodeType": "Block", + "src": "3821:204:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "3835:11:18", + "subExpression": { + "argumentTypes": null, + "id": 5584, + "name": "prevIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5575, + "src": "3835:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "3835:11:18" + }, + { + "assignments": [ + null, + 5588, + null, + null, + null, + null + ], + "declarations": [ + null, + { + "constant": false, + "id": 5588, + "name": "_tranchePercent", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3864:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5587, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3864:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null, + null, + null + ], + "id": 5593, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5591, + "name": "prevIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5575, + "src": "3915:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5589, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5510, + "src": "3892:9:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1685, + "src": "3892:22:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + } + }, + "id": 5592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3892:33:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3861:64:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5594, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5579, + "src": "3940:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5597, + "name": "_tranchePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5588, + "src": "3998:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5595, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5579, + "src": "3968:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "3968:29:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3968:46:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3940:74:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5600, + "nodeType": "ExpressionStatement", + "src": "3940:74:18" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5581, + "name": "prevIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5575, + "src": "3806:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3818:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3806:13:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5602, + "nodeType": "WhileStatement", + "src": "3799:226:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5603, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5515, + "src": "4035:6:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 5605, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4042:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4035:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5611, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5506, + "src": "4123:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTranchePercentReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5234, + "src": "4123:33:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5608, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5579, + "src": "4079:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5606, + "name": "tranchePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5556, + "src": "4047:14:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "4047:31:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4047:58:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "4047:75:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4047:110:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4035:122:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5615, + "nodeType": "ExpressionStatement", + "src": "4035:122:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5616, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5515, + "src": "4167:6:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 5618, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4174:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4167:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5619, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5579, + "src": "4179:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4167:37:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5621, + "nodeType": "ExpressionStatement", + "src": "4167:37:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5622, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5515, + "src": "4214:6:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 5624, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4221:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4214:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5625, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "4226:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4214:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5627, + "nodeType": "ExpressionStatement", + "src": "4214:17:18" + } + ] + }, + "documentation": null, + "id": 5629, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTrancheInvoice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3001:19:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + }, + "typeName": { + "contractScope": null, + "id": 5505, + "name": "State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5253, + "src": "3001:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "name": "trancheTransferAllowed", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3030:27:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5507, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3030:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5510, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3067:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 5509, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "3067:13:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2991:105:18" + }, + "payable": false, + "returnParameters": { + "id": 5516, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 5629, + "src": "3118:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" + }, + "typeName": { + "baseType": { + "id": 5512, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3118:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5514, + "length": { + "argumentTypes": null, + "hexValue": "33", + "id": 5513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3123:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "3118:7:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3117:16:18" + }, + "scope": 6008, + "src": "2965:1273:18", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5843, + "nodeType": "Block", + "src": "4356:1866:18", + "statements": [ + { + "assignments": [ + 5639 + ], + "declarations": [ + { + "constant": false, + "id": 5639, + "name": "ln", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4366:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5638, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4366:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5648, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5640, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "4376:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "4376:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 5644, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5642, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4400:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4400:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4376:35:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5645, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 6137, + "src": "4376:47:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 5646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4376:49:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4376:56:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4366:66:18" + }, + { + "body": { + "id": 5841, + "nodeType": "Block", + "src": "4459:1757:18", + "statements": [ + { + "assignments": [ + 5653 + ], + "declarations": [ + { + "constant": false, + "id": 5653, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4473:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5652, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4473:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5664, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5654, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "4490:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5655, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "4490:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 5658, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5656, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4514:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4514:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4490:35:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5659, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 6137, + "src": "4490:47:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 5660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4490:49:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 5663, + "indexExpression": { + "argumentTypes": null, + "id": 5662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "4540:4:18", + "subExpression": { + "argumentTypes": null, + "id": 5661, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5639, + "src": "4542:2:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4490:55:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4473:72:18" + }, + { + "assignments": [ + 5666 + ], + "declarations": [ + { + "constant": false, + "id": 5666, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4559:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5665, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4559:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5675, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5673, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "4618:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5667, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "4573:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5668, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "4573:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 5671, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5669, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4597:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4597:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4573:35:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5672, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "4573:44:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4573:52:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4559:66:18" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5676, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "4644:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4654:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4644:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5680, + "nodeType": "IfStatement", + "src": "4640:25:18", + "trueBody": { + "id": 5679, + "nodeType": "Continue", + "src": "4657:8:18" + } + }, + { + "assignments": [ + 5682 + ], + "declarations": [ + { + "constant": false, + "id": 5682, + "name": "sourceAmount", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4713:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5681, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4713:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5693, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5685, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5633, + "src": "4767:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5686, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "4796:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5687, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "4820:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5688, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "4820:28:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5691, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5689, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4849:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4849:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4820:40:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5683, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8378, + "src": "4733:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", + "typeString": "type(library Utils)" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 8377, + "src": "4733:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4733:141:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4713:161:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5695, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5682, + "src": "4897:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4912:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4897:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5694, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "4889:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4889:25:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "4889:25:18" + }, + { + "assignments": [ + 5701 + ], + "declarations": [ + { + "constant": false, + "id": 5701, + "name": "releasedTranche", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4992:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5700, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4992:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5711, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5708, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5096:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5709, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTranchePercentReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5234, + "src": "5096:33:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5705, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5059:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5702, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5015:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "5015:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5704, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "5015:43:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 5706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5015:51:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6368, + "src": "5015:80:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5015:115:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4992:138:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5712, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "5194:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5721, + "name": "releasedTranche", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5701, + "src": "5276:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5718, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5264:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5715, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5237:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5716, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "5237:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "5237:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5237:34:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "5237:38:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5237:55:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5682, + "src": "5310:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5727, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5367:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5724, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5340:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "5340:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5726, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "5340:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 5728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5340:34:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5713, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8378, + "src": "5203:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", + "typeString": "type(library Utils)" + } + }, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 8377, + "src": "5203:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5203:185:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5194:194:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5731, + "nodeType": "ExpressionStatement", + "src": "5194:194:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5733, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "5411:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5420:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5411:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5732, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5403:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5403:19:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5737, + "nodeType": "ExpressionStatement", + "src": "5403:19:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5437:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5741, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFundedReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5240, + "src": "5437:25:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 5742, + "indexExpression": { + "argumentTypes": null, + "id": 5740, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5463:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5437:33:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5748, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "5511:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5743, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5473:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5744, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFundedReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5240, + "src": "5473:25:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 5746, + "indexExpression": { + "argumentTypes": null, + "id": 5745, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5499:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5473:33:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5473:37:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5473:45:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5437:81:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5751, + "nodeType": "ExpressionStatement", + "src": "5437:81:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5759, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5579:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5760, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5682, + "src": "5587:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5752, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5631, + "src": "5532:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5756, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "5532:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 5757, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5754, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "5556:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5556:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5532:35:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5758, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawal", + "nodeType": "MemberAccess", + "referencedDeclaration": 6095, + "src": "5532:46:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 5761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5532:68:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5762, + "nodeType": "ExpressionStatement", + "src": "5532:68:18" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5763, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5619:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5764, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "5629:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5619:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5767, + "nodeType": "IfStatement", + "src": "5615:34:18", + "trueBody": { + "id": 5766, + "nodeType": "Continue", + "src": "5641:8:18" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5768, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5668:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5769, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5223, + "src": "5678:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5668:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5804, + "nodeType": "Block", + "src": "5858:73:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5797, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "5892:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + ], + "id": 5796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5884:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5884:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5884:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5800, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "5909:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5884:31:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5795, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5876:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5876:40:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5803, + "nodeType": "ExpressionStatement", + "src": "5876:40:18" + } + ] + }, + "id": 5805, + "nodeType": "IfStatement", + "src": "5664:267:18", + "trueBody": { + "id": 5794, + "nodeType": "Block", + "src": "5690:162:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5774, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5730:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5772, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5635, + "src": "5716:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 9999, + "src": "5716:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5716:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5771, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5708:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5708:30:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5777, + "nodeType": "ExpressionStatement", + "src": "5708:30:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5787, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "5820:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + ], + "id": 5786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5812:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5812:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5782, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5793:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5780, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5635, + "src": "5771:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "5771:21:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 5783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5771:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5779, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "5764:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 5784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5764:37:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 5785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "5764:47:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 5789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5764:62:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5790, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "5830:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5764:72:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5778, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5756:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5756:81:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "5756:81:18" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5806, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "5949:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5807, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5223, + "src": "5959:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5949:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5832, + "nodeType": "Block", + "src": "6037:108:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5826, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6110:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6110:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5828, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "6122:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5822, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "6092:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5820, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5635, + "src": "6070:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "6070:21:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 5823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6070:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5819, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "6063:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 5824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6063:37:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 5825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 13046, + "src": "6063:46:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 5829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6063:66:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5818, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6055:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6055:75:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5831, + "nodeType": "ExpressionStatement", + "src": "6055:75:18" + } + ] + }, + "id": 5833, + "nodeType": "IfStatement", + "src": "5945:200:18", + "trueBody": { + "id": 5817, + "nodeType": "Block", + "src": "5971:60:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5814, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "6009:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5809, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "5989:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5989:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5989:19:18", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 5815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5989:27:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5816, + "nodeType": "ExpressionStatement", + "src": "5989:27:18" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5835, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6178:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6178:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5837, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "6190:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5838, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5666, + "src": "6198:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5834, + "name": "AssetRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5271, + "src": "6164:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,uint256)" + } + }, + "id": 5839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6164:41:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5840, + "nodeType": "EmitStatement", + "src": "6159:46:18" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5649, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5639, + "src": "4450:2:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4456:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4450:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5842, + "nodeType": "WhileStatement", + "src": "4443:1773:18" + } + ] + }, + "documentation": null, + "id": 5844, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "refundAssets", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5636, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5631, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4275:19:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + }, + "typeName": { + "contractScope": null, + "id": 5630, + "name": "State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5253, + "src": "4275:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5633, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4304:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5632, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4304:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5635, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 5844, + "src": "4330:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 5634, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10014, + "src": "4330:6:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4265:83:18" + }, + "payable": false, + "returnParameters": { + "id": 5637, + "nodeType": "ParameterList", + "parameters": [], + "src": "4356:0:18" + }, + "scope": 6008, + "src": "4244:1978:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6006, + "nodeType": "Block", + "src": "6445:1045:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5862, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "6463:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6477:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6463:15:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5861, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6455:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6455:24:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5866, + "nodeType": "ExpressionStatement", + "src": "6455:24:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5868, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "6497:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6504:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6497:8:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5867, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6489:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6489:17:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5872, + "nodeType": "ExpressionStatement", + "src": "6489:17:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5856, + "src": "6524:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6534:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6524:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5873, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6516:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6516:20:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5878, + "nodeType": "ExpressionStatement", + "src": "6516:20:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5880, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "6554:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6574:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6566:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6566:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6554:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5879, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6546:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6546:31:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5886, + "nodeType": "ExpressionStatement", + "src": "6546:31:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5890, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "6611:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5888, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5858, + "src": "6595:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "hasSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 10036, + "src": "6595:15:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6595:23:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5887, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6587:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6587:32:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5893, + "nodeType": "ExpressionStatement", + "src": "6587:32:18" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5894, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "6659:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5895, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5223, + "src": "6669:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "6659:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5935, + "nodeType": "Block", + "src": "6738:188:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5908, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "6774:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5906, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5858, + "src": "6760:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 9999, + "src": "6760:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 5909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6760:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5905, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6752:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6752:30:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5911, + "nodeType": "ExpressionStatement", + "src": "6752:30:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5921, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "6860:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Fund_$6008", + "typeString": "library Fund" + } + ], + "id": 5920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6852:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6852:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5916, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "6833:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5914, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5858, + "src": "6811:5:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "6811:21:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 5917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6811:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5913, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "6804:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 5918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6804:37:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "6804:47:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 5923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6804:62:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5930, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "6909:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5927, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "6897:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5924, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "6870:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5925, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "6870:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5926, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "6870:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 5928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6870:34:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "6870:38:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6870:44:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6804:110:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5912, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6796:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6796:119:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5934, + "nodeType": "ExpressionStatement", + "src": "6796:119:18" + } + ] + }, + "id": 5936, + "nodeType": "IfStatement", + "src": "6655:271:18", + "trueBody": { + "id": 5904, + "nodeType": "Block", + "src": "6681:51:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5898, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6703:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6703:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5900, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "6716:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6703:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5897, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6695:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6695:26:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5903, + "nodeType": "ExpressionStatement", + "src": "6695:26:18" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5937, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "6973:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5940, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "6973:28:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5941, + "indexExpression": { + "argumentTypes": null, + "id": 5939, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "7002:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6973:38:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5947, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "7057:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5942, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7014:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5943, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "7014:28:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5945, + "indexExpression": { + "argumentTypes": null, + "id": 5944, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "7043:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7014:38:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "7014:42:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7014:55:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6973:96:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5950, + "nodeType": "ExpressionStatement", + "src": "6973:96:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5957, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "7121:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5958, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "7129:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5951, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7079:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5954, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "7079:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 5955, + "indexExpression": { + "argumentTypes": null, + "id": 5953, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "7103:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7079:33:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5956, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 6055, + "src": "7079:41:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 5959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7079:55:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5960, + "nodeType": "ExpressionStatement", + "src": "7079:55:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5967, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "7186:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5968, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5856, + "src": "7198:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5961, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7144:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5964, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "7144:23:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 5965, + "indexExpression": { + "argumentTypes": null, + "id": 5963, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "7168:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7144:33:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5966, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 6055, + "src": "7144:41:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 5969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7144:62:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5970, + "nodeType": "ExpressionStatement", + "src": "7144:62:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5971, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7248:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5973, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "totalTokenBought", + "nodeType": "MemberAccess", + "referencedDeclaration": 5242, + "src": "7248:22:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "7300:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5974, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7273:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTokenBought", + "nodeType": "MemberAccess", + "referencedDeclaration": 5242, + "src": "7273:22:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "7273:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7273:39:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7248:64:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5980, + "nodeType": "ExpressionStatement", + "src": "7248:64:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5986, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "7348:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5987, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "7356:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5981, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7322:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "7322:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5985, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 6055, + "src": "7322:25:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 5988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7322:39:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5989, + "nodeType": "ExpressionStatement", + "src": "7322:39:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5995, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "7397:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5996, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5856, + "src": "7409:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5990, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "7371:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State storage pointer" + } + }, + "id": 5993, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "7371:17:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 6055, + "src": "7371:25:18", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 5997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7371:46:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5998, + "nodeType": "ExpressionStatement", + "src": "7371:46:18" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6000, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "7447:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6001, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "7457:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6002, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "7470:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 6003, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "7478:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5999, + "name": "FundsReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5263, + "src": "7433:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,bytes32,uint256)" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7433:50:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6005, + "nodeType": "EmitStatement", + "src": "7428:55:18" + } + ] + }, + "documentation": null, + "id": 6007, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "recordPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5846, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6261:19:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + }, + "typeName": { + "contractScope": null, + "id": 5845, + "name": "State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5253, + "src": "6261:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5848, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6290:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6290:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5850, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6316:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5849, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6316:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5852, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6342:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5851, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6342:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5854, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6366:9:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5853, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6366:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5856, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6385:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5855, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6385:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5858, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 6007, + "src": "6407:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 5857, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10014, + "src": "6407:6:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6251:174:18" + }, + "payable": false, + "returnParameters": { + "id": 5860, + "nodeType": "ParameterList", + "parameters": [], + "src": "6445:0:18" + }, + "scope": 6008, + "src": "6228:1262:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 6009, + "src": "297:7195:18" + } + ], + "src": "0:7493:18" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": { + "4": { + "events": { + "0xe2d0f4d539cb385db666a31aa9b27fd786afc933dc82ca8518d045424d6fa882": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "cost", + "type": "uint256" + } + ], + "name": "FundsReceived", + "type": "event" + }, + "0xd434f0d1dd08e14b2acdd7a506c6e8b6edaf1a5825d23ca9b5e51a9ad883f71c": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "AssetRefunded", + "type": "event" + }, + "0x17e68c82fdc39ec76fff0be24ead989575d8eec009a729fa4bd738bc1f6a2dbb": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "TrancheTransferred", + "type": "event" + } + }, + "links": { + "Utils": "0x9666c128e3ab46e2e2480fa50e5294c54dad5621", + "Percent": "0x04596c9a67ad5870686616d58c2a8198f8b94b34", + "FundAccount": "0x27bd1f295f0fa80072dfb5214fb12b88518e7041" + }, + "address": "0x4a4c642901cad1f377af52374cc46ee880b15ad3", + "transactionHash": "0xda21c2a61414fd9d3b69a3275589f396e7a7a7be0fa60740802ecf1a751d4227" + } + }, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:18:18.786Z" +} \ No newline at end of file diff --git a/build/contracts/FundAccount.json b/build/contracts/FundAccount.json index 5a402e69..5b0da04c 100644 --- a/build/contracts/FundAccount.json +++ b/build/contracts/FundAccount.json @@ -1,6 +1,96 @@ { "contractName": "FundAccount", "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + }, + { + "name": "_symbol", + "type": "bytes32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + }, + { + "name": "_symbol", + "type": "bytes32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + }, + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "hasDepositIn", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + }, + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "amountOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -19,26 +109,44 @@ "payable": false, "stateMutability": "view", "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + }, + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "_writeSymbol", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" } ], - "bytecode": "0x610140610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600436106100575763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166320e1e1d1811461005c575b600080fd5b6100676004356100b7565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100a357818101518382015260200161008b565b505050509050019250505060405180910390f35b60608160000180548060200260200160405190810160405280929190818152602001828054801561010857602002820191906000526020600020905b815481526001909101906020018083116100f3575b505050505090509190505600a165627a7a723058202f97db4fc50b1e61ca5879af0d2b9212521d8aed4ef04f114cedc6acb28adcf80029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100575763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166320e1e1d1811461005c575b600080fd5b6100676004356100b7565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100a357818101518382015260200161008b565b505050509050019250505060405180910390f35b60608160000180548060200260200160405190810160405280929190818152602001828054801561010857602002820191906000526020600020905b815481526001909101906020018083116100f3575b505050505090509190505600a165627a7a723058202f97db4fc50b1e61ca5879af0d2b9212521d8aed4ef04f114cedc6acb28adcf80029", - "sourceMap": "87:1347:11:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "87:1347:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;1076:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1076:116:11;;;;;;;;;;;;;;;;;;1136:9;1164:8;:21;;1157:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1076:116;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nlibrary FundAccount {\n using SafeMath for uint;\n\n struct Account {\n bytes32[] _symbolsList;\n mapping ( bytes32 => bool ) symbols;\n mapping ( bytes32 => uint ) amount;\n }\n\n function deposit(Account storage _account, bytes32 _symbol, uint _amount) internal {\n _writeSymbol(_account, _symbol);\n\n _account.amount[_symbol] = _account.amount[_symbol].add(_amount);\n }\n\n function withdrawal(Account storage _account, bytes32 _symbol, uint _amount) internal {\n require(hasDepositIn(_account, _symbol));\n require(amountOf(_account, _symbol) >= _amount);\n\n _account.amount[_symbol] = _account.amount[_symbol].sub(_amount);\n }\n\n function hasDepositIn(Account storage _account, bytes32 _symbol) internal view returns(bool) {\n return _account.symbols[_symbol];\n }\n\n function amountOf(Account storage _account, bytes32 _symbol) internal view returns(uint) {\n return _account.amount[_symbol];\n }\n\n function symbolsList(Account storage _account) view returns(bytes32[]) {\n return _account._symbolsList;\n }\n\n function _writeSymbol(Account storage _account, bytes32 _symbol) internal {\n if (!hasDepositIn(_account, _symbol)) {\n _account._symbolsList.push(_symbol);\n _account.symbols[_symbol] = true;\n }\n }\n}\n", + "bytecode": "0x610344610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f300730000000000000000000000000000000000000000301460806040526004361061008e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166320e1e1d1811461009357806338e04660146100ee5780636e286eaf1461010e57806370b3ef341461012c57806375dff1381461014e578063f4983ca81461016e575b600080fd5b61009e600435610189565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100da5781810151838201526020016100c2565b505050509050019250505060405180910390f35b8180156100fa57600080fd5b5061010c6004356024356044356101e6565b005b81801561011a57600080fd5b5061010c600435602435604435610226565b61013a600435602435610272565b604080519115158252519081900360200190f35b61015c60043560243561028b565b60408051918252519081900360200190f35b81801561017a57600080fd5b5061010c6004356024356102a1565b6060816000018054806020026020016040519081016040528092919081815260200182805480156101da57602002820191906000526020600020905b815481526001909101906020018083116101c5575b50505050509050919050565b6101f083836102a1565b6000828152600284016020526040902054610211908263ffffffff6102e816565b60009283526002909301602052506040902055565b6102308383610272565b151561023b57600080fd5b80610246848461028b565b101561025157600080fd5b6000828152600284016020526040902054610211908263ffffffff61030116565b6000908152600191909101602052604090205460ff1690565b6000908152600291909101602052604090205490565b6102ab8282610272565b15156102e457815460018181018455600084815260208082209093018490558381528185019092526040909120805460ff191690911790555b5050565b6000828201838110156102fa57600080fd5b9392505050565b6000808383111561031157600080fd5b50509003905600a165627a7a72305820daee2fd415e2f860bb2a322efaed2454cdfc675855c5693d11615b81c11e52460029", + "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061008e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166320e1e1d1811461009357806338e04660146100ee5780636e286eaf1461010e57806370b3ef341461012c57806375dff1381461014e578063f4983ca81461016e575b600080fd5b61009e600435610189565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100da5781810151838201526020016100c2565b505050509050019250505060405180910390f35b8180156100fa57600080fd5b5061010c6004356024356044356101e6565b005b81801561011a57600080fd5b5061010c600435602435604435610226565b61013a600435602435610272565b604080519115158252519081900360200190f35b61015c60043560243561028b565b60408051918252519081900360200190f35b81801561017a57600080fd5b5061010c6004356024356102a1565b6060816000018054806020026020016040519081016040528092919081815260200182805480156101da57602002820191906000526020600020905b815481526001909101906020018083116101c5575b50505050509050919050565b6101f083836102a1565b6000828152600284016020526040902054610211908263ffffffff6102e816565b60009283526002909301602052506040902055565b6102308383610272565b151561023b57600080fd5b80610246848461028b565b101561025157600080fd5b6000828152600284016020526040902054610211908263ffffffff61030116565b6000908152600191909101602052604090205460ff1690565b6000908152600291909101602052604090205490565b6102ab8282610272565b15156102e457815460018181018455600084815260208082209093018490558381528185019092526040909120805460ff191690911790555b5050565b6000828201838110156102fa57600080fd5b9392505050565b6000808383111561031157600080fd5b50509003905600a165627a7a72305820daee2fd415e2f860bb2a322efaed2454cdfc675855c5693d11615b81c11e52460029", + "sourceMap": "87:1344:19:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "87:1344:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1068:123:19;;;;;;;;;;;;;;;;;292:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;292:204:19;;;;;;;;;;;502:273;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;502:273:19;;;;;;;;;781:140;;;;;;;;;;;;;;;;;;;;;;;;;;927:135;;;;;;;;;;;;;;;;;;;;;;;;1197:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1197:232:19;;;;;;;1068:123;1135:9;1163:8;:21;;1156:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:123;;;:::o;292:204::-;383:31;396:8;406:7;383:12;:31::i;:::-;452:24;;;;:15;;;:24;;;;;;:37;;481:7;452:37;:28;:37;:::i;:::-;425:24;;;;:15;;;;:24;;-1:-1:-1;425:24:19;;;:64;292:204::o;502:273::-;604:31;617:8;627:7;604:12;:31::i;:::-;596:40;;;;;;;;685:7;654:27;663:8;673:7;654:8;:27::i;:::-;:38;;646:47;;;;;;731:24;;;;:15;;;:24;;;;;;:37;;760:7;731:37;:28;:37;:::i;781:140::-;866:4;889:25;;;:16;;;;;:25;;;;;;;;;781:140::o;927:135::-;1008:4;1031:24;;;:15;;;;;:24;;;;;;;927:135::o;1197:232::-;1284:31;1297:8;1307:7;1284:12;:31::i;:::-;1283:32;1279:144;;;27:10:-1;;39:1;23:18;;;45:23;;1331:21:19;:35;;;;;;;;;;;;;1380:25;;;:16;;;:25;;;;;;;:32;;-1:-1:-1;;1380:32:19;;;;;;1279:144;1197:232;;:::o;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;;1397:1;1272:131;-1:-1:-1;;;1272:131:54:o;1078:::-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nlibrary FundAccount {\n using SafeMath for uint;\n\n struct Account {\n bytes32[] _symbolsList;\n mapping ( bytes32 => bool ) symbols;\n mapping ( bytes32 => uint ) amount;\n }\n\n function deposit(Account storage _account, bytes32 _symbol, uint _amount) public {\n _writeSymbol(_account, _symbol);\n\n _account.amount[_symbol] = _account.amount[_symbol].add(_amount);\n }\n\n function withdrawal(Account storage _account, bytes32 _symbol, uint _amount) public {\n require(hasDepositIn(_account, _symbol));\n require(amountOf(_account, _symbol) >= _amount);\n\n _account.amount[_symbol] = _account.amount[_symbol].sub(_amount);\n }\n\n function hasDepositIn(Account storage _account, bytes32 _symbol) public view returns(bool) {\n return _account.symbols[_symbol];\n }\n\n function amountOf(Account storage _account, bytes32 _symbol) public view returns(uint) {\n return _account.amount[_symbol];\n }\n\n function symbolsList(Account storage _account) public view returns(bytes32[]) {\n return _account._symbolsList;\n }\n\n function _writeSymbol(Account storage _account, bytes32 _symbol) public {\n if (!hasDepositIn(_account, _symbol)) {\n _account._symbolsList.push(_symbol);\n _account.symbols[_symbol] = true;\n }\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/libs/FundAccount.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/libs/FundAccount.sol", "exportedSymbols": { "FundAccount": [ - 4952 + 6169 ] }, - "id": 4953, + "id": 6170, "nodeType": "SourceUnit", "nodes": [ { - "id": 4793, + "id": 6010, "literals": [ "solidity", "^", @@ -46,16 +154,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:11" + "src": "0:24:19" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 4794, + "id": 6011, "nodeType": "ImportDirective", - "scope": 4953, - "sourceUnit": 10049, - "src": "26:59:11", + "scope": 6170, + "sourceUnit": 12389, + "src": "26:59:19", "symbolAliases": [], "unitAlias": "" }, @@ -65,34 +173,34 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 4952, + "id": 6169, "linearizedBaseContracts": [ - 4952 + 6169 ], "name": "FundAccount", "nodeType": "ContractDefinition", "nodes": [ { - "id": 4797, + "id": 6014, "libraryName": { "contractScope": null, - "id": 4795, + "id": 6012, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "119:8:11", + "referencedDeclaration": 12388, + "src": "119:8:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "113:24:11", + "src": "113:24:19", "typeName": { - "id": 4796, + "id": 6013, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "132:4:11", + "src": "132:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -101,15 +209,15 @@ }, { "canonicalName": "FundAccount.Account", - "id": 4809, + "id": 6026, "members": [ { "constant": false, - "id": 4800, + "id": 6017, "name": "_symbolsList", "nodeType": "VariableDeclaration", - "scope": 4809, - "src": "168:22:11", + "scope": 6026, + "src": "168:22:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -118,19 +226,19 @@ }, "typeName": { "baseType": { - "id": 4798, + "id": 6015, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "168:7:11", + "src": "168:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4799, + "id": 6016, "length": null, "nodeType": "ArrayTypeName", - "src": "168:9:11", + "src": "168:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -141,11 +249,11 @@ }, { "constant": false, - "id": 4804, + "id": 6021, "name": "symbols", "nodeType": "VariableDeclaration", - "scope": 4809, - "src": "200:35:11", + "scope": 6026, + "src": "200:35:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -153,28 +261,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 4803, + "id": 6020, "keyType": { - "id": 4801, + "id": 6018, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "210:7:11", + "src": "210:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "200:27:11", + "src": "200:27:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 4802, + "id": 6019, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "221:4:11", + "src": "221:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -186,11 +294,11 @@ }, { "constant": false, - "id": 4808, + "id": 6025, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 4809, - "src": "245:34:11", + "scope": 6026, + "src": "245:34:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -198,28 +306,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 4807, + "id": 6024, "keyType": { - "id": 4805, + "id": 6022, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "255:7:11", + "src": "255:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "245:27:11", + "src": "245:27:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 4806, + "id": 6023, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "266:4:11", + "src": "266:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -232,15 +340,15 @@ ], "name": "Account", "nodeType": "StructDefinition", - "scope": 4952, - "src": "143:143:11", + "scope": 6169, + "src": "143:143:19", "visibility": "public" }, { "body": { - "id": 4837, + "id": 6054, "nodeType": "Block", - "src": "375:123:11", + "src": "373:123:19", "statements": [ { "expression": { @@ -248,25 +356,25 @@ "arguments": [ { "argumentTypes": null, - "id": 4819, + "id": 6036, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4811, - "src": "398:8:11", + "referencedDeclaration": 6028, + "src": "396:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, { "argumentTypes": null, - "id": 4820, + "id": 6037, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4813, - "src": "408:7:11", + "referencedDeclaration": 6030, + "src": "406:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -276,7 +384,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" }, { @@ -284,18 +392,18 @@ "typeString": "bytes32" } ], - "id": 4818, + "id": 6035, "name": "_writeSymbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4951, - "src": "385:12:11", + "referencedDeclaration": 6168, + "src": "383:12:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$__$", "typeString": "function (struct FundAccount.Account storage pointer,bytes32)" } }, - "id": 4821, + "id": 6038, "isConstant": false, "isLValue": false, "isPure": false, @@ -303,20 +411,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "385:31:11", + "src": "383:31:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4822, + "id": 6039, "nodeType": "ExpressionStatement", - "src": "385:31:11" + "src": "383:31:19" }, { "expression": { "argumentTypes": null, - "id": 4835, + "id": 6052, "isConstant": false, "isLValue": false, "isPure": false, @@ -327,40 +435,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4823, + "id": 6040, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4811, - "src": "427:8:11", + "referencedDeclaration": 6028, + "src": "425:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4826, + "id": 6043, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 4808, - "src": "427:15:11", + "referencedDeclaration": 6025, + "src": "425:15:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4827, + "id": 6044, "indexExpression": { "argumentTypes": null, - "id": 4825, + "id": 6042, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4813, - "src": "443:7:11", + "referencedDeclaration": 6030, + "src": "441:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -371,7 +479,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "427:24:11", + "src": "425:24:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -384,12 +492,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4833, + "id": 6050, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4815, - "src": "483:7:11", + "referencedDeclaration": 6032, + "src": "481:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -409,40 +517,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4828, + "id": 6045, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4811, - "src": "454:8:11", + "referencedDeclaration": 6028, + "src": "452:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4829, + "id": 6046, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 4808, - "src": "454:15:11", + "referencedDeclaration": 6025, + "src": "452:15:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4831, + "id": 6048, "indexExpression": { "argumentTypes": null, - "id": 4830, + "id": 6047, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4813, - "src": "470:7:11", + "referencedDeclaration": 6030, + "src": "468:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -453,27 +561,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "454:24:11", + "src": "452:24:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4832, + "id": 6049, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "454:28:11", + "referencedDeclaration": 12367, + "src": "452:28:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 4834, + "id": 6051, "isConstant": false, "isLValue": false, "isPure": false, @@ -481,26 +589,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "454:37:11", + "src": "452:37:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "427:64:11", + "src": "425:64:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4836, + "id": 6053, "nodeType": "ExpressionStatement", - "src": "427:64:11" + "src": "425:64:19" } ] }, "documentation": null, - "id": 4838, + "id": 6055, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -508,31 +616,31 @@ "name": "deposit", "nodeType": "FunctionDefinition", "parameters": { - "id": 4816, + "id": 6033, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4811, + "id": 6028, "name": "_account", "nodeType": "VariableDeclaration", - "scope": 4838, - "src": "309:24:11", + "scope": 6055, + "src": "309:24:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" }, "typeName": { "contractScope": null, - "id": 4810, + "id": 6027, "name": "Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "309:7:11", + "referencedDeclaration": 6026, + "src": "309:7:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } }, @@ -541,11 +649,11 @@ }, { "constant": false, - "id": 4813, + "id": 6030, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 4838, - "src": "335:15:11", + "scope": 6055, + "src": "335:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -553,10 +661,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4812, + "id": 6029, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "335:7:11", + "src": "335:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -567,11 +675,11 @@ }, { "constant": false, - "id": 4815, + "id": 6032, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 4838, - "src": "352:12:11", + "scope": 6055, + "src": "352:12:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -579,10 +687,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4814, + "id": 6031, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "352:4:11", + "src": "352:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -592,26 +700,26 @@ "visibility": "internal" } ], - "src": "308:57:11" + "src": "308:57:19" }, "payable": false, "returnParameters": { - "id": 4817, + "id": 6034, "nodeType": "ParameterList", "parameters": [], - "src": "375:0:11" + "src": "373:0:19" }, - "scope": 4952, - "src": "292:206:11", + "scope": 6169, + "src": "292:204:19", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 4877, + "id": 6094, "nodeType": "Block", - "src": "590:189:11", + "src": "586:189:19", "statements": [ { "expression": { @@ -622,25 +730,25 @@ "arguments": [ { "argumentTypes": null, - "id": 4849, + "id": 6066, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4840, - "src": "621:8:11", + "referencedDeclaration": 6057, + "src": "617:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, { "argumentTypes": null, - "id": 4850, + "id": 6067, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4842, - "src": "631:7:11", + "referencedDeclaration": 6059, + "src": "627:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -650,7 +758,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" }, { @@ -658,18 +766,18 @@ "typeString": "bytes32" } ], - "id": 4848, + "id": 6065, "name": "hasDepositIn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4893, - "src": "608:12:11", + "referencedDeclaration": 6110, + "src": "604:12:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (bool)" } }, - "id": 4851, + "id": 6068, "isConstant": false, "isLValue": false, "isPure": false, @@ -677,7 +785,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "608:31:11", + "src": "604:31:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -691,21 +799,21 @@ "typeString": "bool" } ], - "id": 4847, + "id": 6064, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "600:7:11", + "referencedDeclaration": 13444, + "src": "596:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4852, + "id": 6069, "isConstant": false, "isLValue": false, "isPure": false, @@ -713,15 +821,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "600:40:11", + "src": "596:40:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4853, + "id": 6070, "nodeType": "ExpressionStatement", - "src": "600:40:11" + "src": "596:40:19" }, { "expression": { @@ -733,7 +841,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4860, + "id": 6077, "isConstant": false, "isLValue": false, "isPure": false, @@ -743,25 +851,25 @@ "arguments": [ { "argumentTypes": null, - "id": 4856, + "id": 6073, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4840, - "src": "667:8:11", + "referencedDeclaration": 6057, + "src": "663:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, { "argumentTypes": null, - "id": 4857, + "id": 6074, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4842, - "src": "677:7:11", + "referencedDeclaration": 6059, + "src": "673:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -771,7 +879,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" }, { @@ -779,18 +887,18 @@ "typeString": "bytes32" } ], - "id": 4855, + "id": 6072, "name": "amountOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4908, - "src": "658:8:11", + "referencedDeclaration": 6125, + "src": "654:8:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" } }, - "id": 4858, + "id": 6075, "isConstant": false, "isLValue": false, "isPure": false, @@ -798,7 +906,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "658:27:11", + "src": "654:27:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -808,18 +916,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 4859, + "id": 6076, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4844, - "src": "689:7:11", + "referencedDeclaration": 6061, + "src": "685:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "658:38:11", + "src": "654:38:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -833,21 +941,21 @@ "typeString": "bool" } ], - "id": 4854, + "id": 6071, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "650:7:11", + "referencedDeclaration": 13444, + "src": "646:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4861, + "id": 6078, "isConstant": false, "isLValue": false, "isPure": false, @@ -855,20 +963,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "650:47:11", + "src": "646:47:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4862, + "id": 6079, "nodeType": "ExpressionStatement", - "src": "650:47:11" + "src": "646:47:19" }, { "expression": { "argumentTypes": null, - "id": 4875, + "id": 6092, "isConstant": false, "isLValue": false, "isPure": false, @@ -879,40 +987,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4863, + "id": 6080, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4840, - "src": "708:8:11", + "referencedDeclaration": 6057, + "src": "704:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4866, + "id": 6083, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 4808, - "src": "708:15:11", + "referencedDeclaration": 6025, + "src": "704:15:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4867, + "id": 6084, "indexExpression": { "argumentTypes": null, - "id": 4865, + "id": 6082, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4842, - "src": "724:7:11", + "referencedDeclaration": 6059, + "src": "720:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -923,7 +1031,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "708:24:11", + "src": "704:24:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -936,12 +1044,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4873, + "id": 6090, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4844, - "src": "764:7:11", + "referencedDeclaration": 6061, + "src": "760:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -961,40 +1069,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4868, + "id": 6085, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4840, - "src": "735:8:11", + "referencedDeclaration": 6057, + "src": "731:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4869, + "id": 6086, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 4808, - "src": "735:15:11", + "referencedDeclaration": 6025, + "src": "731:15:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4871, + "id": 6088, "indexExpression": { "argumentTypes": null, - "id": 4870, + "id": 6087, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4842, - "src": "751:7:11", + "referencedDeclaration": 6059, + "src": "747:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1005,27 +1113,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "735:24:11", + "src": "731:24:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4872, + "id": 6089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "735:28:11", + "referencedDeclaration": 12343, + "src": "731:28:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 4874, + "id": 6091, "isConstant": false, "isLValue": false, "isPure": false, @@ -1033,26 +1141,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "735:37:11", + "src": "731:37:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "708:64:11", + "src": "704:64:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4876, + "id": 6093, "nodeType": "ExpressionStatement", - "src": "708:64:11" + "src": "704:64:19" } ] }, "documentation": null, - "id": 4878, + "id": 6095, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1060,31 +1168,31 @@ "name": "withdrawal", "nodeType": "FunctionDefinition", "parameters": { - "id": 4845, + "id": 6062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4840, + "id": 6057, "name": "_account", "nodeType": "VariableDeclaration", - "scope": 4878, - "src": "524:24:11", + "scope": 6095, + "src": "522:24:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" }, "typeName": { "contractScope": null, - "id": 4839, + "id": 6056, "name": "Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "524:7:11", + "referencedDeclaration": 6026, + "src": "522:7:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } }, @@ -1093,11 +1201,11 @@ }, { "constant": false, - "id": 4842, + "id": 6059, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 4878, - "src": "550:15:11", + "scope": 6095, + "src": "548:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1105,10 +1213,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4841, + "id": 6058, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "550:7:11", + "src": "548:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1119,11 +1227,11 @@ }, { "constant": false, - "id": 4844, + "id": 6061, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 4878, - "src": "567:12:11", + "scope": 6095, + "src": "565:12:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1131,10 +1239,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4843, + "id": 6060, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "567:4:11", + "src": "565:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1144,26 +1252,26 @@ "visibility": "internal" } ], - "src": "523:57:11" + "src": "521:57:19" }, "payable": false, "returnParameters": { - "id": 4846, + "id": 6063, "nodeType": "ParameterList", "parameters": [], - "src": "590:0:11" + "src": "586:0:19" }, - "scope": 4952, - "src": "504:275:11", + "scope": 6169, + "src": "502:273:19", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 4892, + "id": 6109, "nodeType": "Block", - "src": "878:49:11", + "src": "872:49:19", "statements": [ { "expression": { @@ -1172,40 +1280,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4887, + "id": 6104, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4880, - "src": "895:8:11", + "referencedDeclaration": 6097, + "src": "889:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4888, + "id": 6105, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "symbols", "nodeType": "MemberAccess", - "referencedDeclaration": 4804, - "src": "895:16:11", + "referencedDeclaration": 6021, + "src": "889:16:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4890, + "id": 6107, "indexExpression": { "argumentTypes": null, - "id": 4889, + "id": 6106, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4882, - "src": "912:7:11", + "referencedDeclaration": 6099, + "src": "906:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1216,21 +1324,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "895:25:11", + "src": "889:25:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4886, - "id": 4891, + "functionReturnParameters": 6103, + "id": 6108, "nodeType": "Return", - "src": "888:32:11" + "src": "882:32:19" } ] }, "documentation": null, - "id": 4893, + "id": 6110, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1238,31 +1346,31 @@ "name": "hasDepositIn", "nodeType": "FunctionDefinition", "parameters": { - "id": 4883, + "id": 6100, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4880, + "id": 6097, "name": "_account", "nodeType": "VariableDeclaration", - "scope": 4893, - "src": "807:24:11", + "scope": 6110, + "src": "803:24:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" }, "typeName": { "contractScope": null, - "id": 4879, + "id": 6096, "name": "Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "807:7:11", + "referencedDeclaration": 6026, + "src": "803:7:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } }, @@ -1271,11 +1379,11 @@ }, { "constant": false, - "id": 4882, + "id": 6099, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 4893, - "src": "833:15:11", + "scope": 6110, + "src": "829:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1283,10 +1391,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4881, + "id": 6098, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "833:7:11", + "src": "829:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1296,20 +1404,20 @@ "visibility": "internal" } ], - "src": "806:43:11" + "src": "802:43:19" }, "payable": false, "returnParameters": { - "id": 4886, + "id": 6103, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4885, + "id": 6102, "name": "", "nodeType": "VariableDeclaration", - "scope": 4893, - "src": "872:4:11", + "scope": 6110, + "src": "866:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1317,10 +1425,10 @@ "typeString": "bool" }, "typeName": { - "id": 4884, + "id": 6101, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "872:4:11", + "src": "866:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1330,19 +1438,19 @@ "visibility": "internal" } ], - "src": "871:6:11" + "src": "865:6:19" }, - "scope": 4952, - "src": "785:142:11", + "scope": 6169, + "src": "781:140:19", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 4907, + "id": 6124, "nodeType": "Block", - "src": "1022:48:11", + "src": "1014:48:19", "statements": [ { "expression": { @@ -1351,40 +1459,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4902, + "id": 6119, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4895, - "src": "1039:8:11", + "referencedDeclaration": 6112, + "src": "1031:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4903, + "id": 6120, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 4808, - "src": "1039:15:11", + "referencedDeclaration": 6025, + "src": "1031:15:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4905, + "id": 6122, "indexExpression": { "argumentTypes": null, - "id": 4904, + "id": 6121, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4897, - "src": "1055:7:11", + "referencedDeclaration": 6114, + "src": "1047:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1395,21 +1503,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1039:24:11", + "src": "1031:24:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4901, - "id": 4906, + "functionReturnParameters": 6118, + "id": 6123, "nodeType": "Return", - "src": "1032:31:11" + "src": "1024:31:19" } ] }, "documentation": null, - "id": 4908, + "id": 6125, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1417,31 +1525,31 @@ "name": "amountOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 4898, + "id": 6115, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4895, + "id": 6112, "name": "_account", "nodeType": "VariableDeclaration", - "scope": 4908, - "src": "951:24:11", + "scope": 6125, + "src": "945:24:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" }, "typeName": { "contractScope": null, - "id": 4894, + "id": 6111, "name": "Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "951:7:11", + "referencedDeclaration": 6026, + "src": "945:7:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } }, @@ -1450,11 +1558,11 @@ }, { "constant": false, - "id": 4897, + "id": 6114, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 4908, - "src": "977:15:11", + "scope": 6125, + "src": "971:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1462,10 +1570,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4896, + "id": 6113, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "977:7:11", + "src": "971:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1475,20 +1583,20 @@ "visibility": "internal" } ], - "src": "950:43:11" + "src": "944:43:19" }, "payable": false, "returnParameters": { - "id": 4901, + "id": 6118, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4900, + "id": 6117, "name": "", "nodeType": "VariableDeclaration", - "scope": 4908, - "src": "1016:4:11", + "scope": 6125, + "src": "1008:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1496,10 +1604,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4899, + "id": 6116, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1016:4:11", + "src": "1008:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1509,59 +1617,59 @@ "visibility": "internal" } ], - "src": "1015:6:11" + "src": "1007:6:19" }, - "scope": 4952, - "src": "933:137:11", + "scope": 6169, + "src": "927:135:19", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 4919, + "id": 6136, "nodeType": "Block", - "src": "1147:45:11", + "src": "1146:45:19", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4916, + "id": 6133, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4910, - "src": "1164:8:11", + "referencedDeclaration": 6127, + "src": "1163:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4917, + "id": 6134, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_symbolsList", "nodeType": "MemberAccess", - "referencedDeclaration": 4800, - "src": "1164:21:11", + "referencedDeclaration": 6017, + "src": "1163:21:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "functionReturnParameters": 4915, - "id": 4918, + "functionReturnParameters": 6132, + "id": 6135, "nodeType": "Return", - "src": "1157:28:11" + "src": "1156:28:19" } ] }, "documentation": null, - "id": 4920, + "id": 6137, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1569,31 +1677,31 @@ "name": "symbolsList", "nodeType": "FunctionDefinition", "parameters": { - "id": 4911, + "id": 6128, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4910, + "id": 6127, "name": "_account", "nodeType": "VariableDeclaration", - "scope": 4920, - "src": "1097:24:11", + "scope": 6137, + "src": "1089:24:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" }, "typeName": { "contractScope": null, - "id": 4909, + "id": 6126, "name": "Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "1097:7:11", + "referencedDeclaration": 6026, + "src": "1089:7:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } }, @@ -1601,20 +1709,20 @@ "visibility": "internal" } ], - "src": "1096:26:11" + "src": "1088:26:19" }, "payable": false, "returnParameters": { - "id": 4915, + "id": 6132, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4914, + "id": 6131, "name": "", "nodeType": "VariableDeclaration", - "scope": 4920, - "src": "1136:9:11", + "scope": 6137, + "src": "1135:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1623,19 +1731,19 @@ }, "typeName": { "baseType": { - "id": 4912, + "id": 6129, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1136:7:11", + "src": "1135:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4913, + "id": 6130, "length": null, "nodeType": "ArrayTypeName", - "src": "1136:9:11", + "src": "1135:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1645,24 +1753,24 @@ "visibility": "internal" } ], - "src": "1135:11:11" + "src": "1134:11:19" }, - "scope": 4952, - "src": "1076:116:11", + "scope": 6169, + "src": "1068:123:19", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4950, + "id": 6167, "nodeType": "Block", - "src": "1272:160:11", + "src": "1269:160:19", "statements": [ { "condition": { "argumentTypes": null, - "id": 4931, + "id": 6148, "isConstant": false, "isLValue": false, "isPure": false, @@ -1670,31 +1778,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1286:32:11", + "src": "1283:32:19", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4928, + "id": 6145, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4922, - "src": "1300:8:11", + "referencedDeclaration": 6139, + "src": "1297:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, { "argumentTypes": null, - "id": 4929, + "id": 6146, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4924, - "src": "1310:7:11", + "referencedDeclaration": 6141, + "src": "1307:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1704,7 +1812,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" }, { @@ -1712,18 +1820,18 @@ "typeString": "bytes32" } ], - "id": 4927, + "id": 6144, "name": "hasDepositIn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4893, - "src": "1287:12:11", + "referencedDeclaration": 6110, + "src": "1284:12:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (bool)" } }, - "id": 4930, + "id": 6147, "isConstant": false, "isLValue": false, "isPure": false, @@ -1731,7 +1839,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1287:31:11", + "src": "1284:31:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1743,13 +1851,13 @@ } }, "falseBody": null, - "id": 4949, + "id": 6166, "nodeType": "IfStatement", - "src": "1282:144:11", + "src": "1279:144:19", "trueBody": { - "id": 4948, + "id": 6165, "nodeType": "Block", - "src": "1320:106:11", + "src": "1317:106:19", "statements": [ { "expression": { @@ -1757,12 +1865,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4937, + "id": 6154, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4924, - "src": "1361:7:11", + "referencedDeclaration": 6141, + "src": "1358:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1780,32 +1888,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4932, + "id": 6149, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4922, - "src": "1334:8:11", + "referencedDeclaration": 6139, + "src": "1331:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4935, + "id": 6152, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_symbolsList", "nodeType": "MemberAccess", - "referencedDeclaration": 4800, - "src": "1334:21:11", + "referencedDeclaration": 6017, + "src": "1331:21:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4936, + "id": 6153, "isConstant": false, "isLValue": false, "isPure": false, @@ -1813,13 +1921,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1334:26:11", + "src": "1331:26:19", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) returns (uint256)" } }, - "id": 4938, + "id": 6155, "isConstant": false, "isLValue": false, "isPure": false, @@ -1827,20 +1935,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1334:35:11", + "src": "1331:35:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4939, + "id": 6156, "nodeType": "ExpressionStatement", - "src": "1334:35:11" + "src": "1331:35:19" }, { "expression": { "argumentTypes": null, - "id": 4946, + "id": 6163, "isConstant": false, "isLValue": false, "isPure": false, @@ -1851,40 +1959,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4940, + "id": 6157, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4922, - "src": "1383:8:11", + "referencedDeclaration": 6139, + "src": "1380:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4943, + "id": 6160, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "symbols", "nodeType": "MemberAccess", - "referencedDeclaration": 4804, - "src": "1383:16:11", + "referencedDeclaration": 6021, + "src": "1380:16:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4944, + "id": 6161, "indexExpression": { "argumentTypes": null, - "id": 4942, + "id": 6159, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4924, - "src": "1400:7:11", + "referencedDeclaration": 6141, + "src": "1397:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1895,7 +2003,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1383:25:11", + "src": "1380:25:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1906,14 +2014,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 4945, + "id": 6162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1411:4:11", + "src": "1408:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1921,15 +2029,15 @@ }, "value": "true" }, - "src": "1383:32:11", + "src": "1380:32:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4947, + "id": 6164, "nodeType": "ExpressionStatement", - "src": "1383:32:11" + "src": "1380:32:19" } ] } @@ -1937,7 +2045,7 @@ ] }, "documentation": null, - "id": 4951, + "id": 6168, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1945,31 +2053,31 @@ "name": "_writeSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 4925, + "id": 6142, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4922, + "id": 6139, "name": "_account", "nodeType": "VariableDeclaration", - "scope": 4951, - "src": "1220:24:11", + "scope": 6168, + "src": "1219:24:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" }, "typeName": { "contractScope": null, - "id": 4921, + "id": 6138, "name": "Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "1220:7:11", + "referencedDeclaration": 6026, + "src": "1219:7:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } }, @@ -1978,11 +2086,11 @@ }, { "constant": false, - "id": 4924, + "id": 6141, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 4951, - "src": "1246:15:11", + "scope": 6168, + "src": "1245:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1990,10 +2098,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4923, + "id": 6140, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1246:7:11", + "src": "1245:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2003,40 +2111,40 @@ "visibility": "internal" } ], - "src": "1219:43:11" + "src": "1218:43:19" }, "payable": false, "returnParameters": { - "id": 4926, + "id": 6143, "nodeType": "ParameterList", "parameters": [], - "src": "1272:0:11" + "src": "1269:0:19" }, - "scope": 4952, - "src": "1198:234:11", + "scope": 6169, + "src": "1197:232:19", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" } ], - "scope": 4953, - "src": "87:1347:11" + "scope": 6170, + "src": "87:1344:19" } ], - "src": "0:1435:11" + "src": "0:1432:19" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/libs/FundAccount.sol", "exportedSymbols": { "FundAccount": [ - 4952 + 6169 ] }, - "id": 4953, + "id": 6170, "nodeType": "SourceUnit", "nodes": [ { - "id": 4793, + "id": 6010, "literals": [ "solidity", "^", @@ -2044,16 +2152,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:11" + "src": "0:24:19" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 4794, + "id": 6011, "nodeType": "ImportDirective", - "scope": 4953, - "sourceUnit": 10049, - "src": "26:59:11", + "scope": 6170, + "sourceUnit": 12389, + "src": "26:59:19", "symbolAliases": [], "unitAlias": "" }, @@ -2063,34 +2171,34 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 4952, + "id": 6169, "linearizedBaseContracts": [ - 4952 + 6169 ], "name": "FundAccount", "nodeType": "ContractDefinition", "nodes": [ { - "id": 4797, + "id": 6014, "libraryName": { "contractScope": null, - "id": 4795, + "id": 6012, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "119:8:11", + "referencedDeclaration": 12388, + "src": "119:8:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "113:24:11", + "src": "113:24:19", "typeName": { - "id": 4796, + "id": 6013, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "132:4:11", + "src": "132:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2099,15 +2207,15 @@ }, { "canonicalName": "FundAccount.Account", - "id": 4809, + "id": 6026, "members": [ { "constant": false, - "id": 4800, + "id": 6017, "name": "_symbolsList", "nodeType": "VariableDeclaration", - "scope": 4809, - "src": "168:22:11", + "scope": 6026, + "src": "168:22:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2116,19 +2224,19 @@ }, "typeName": { "baseType": { - "id": 4798, + "id": 6015, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "168:7:11", + "src": "168:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4799, + "id": 6016, "length": null, "nodeType": "ArrayTypeName", - "src": "168:9:11", + "src": "168:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2139,11 +2247,11 @@ }, { "constant": false, - "id": 4804, + "id": 6021, "name": "symbols", "nodeType": "VariableDeclaration", - "scope": 4809, - "src": "200:35:11", + "scope": 6026, + "src": "200:35:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2151,28 +2259,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 4803, + "id": 6020, "keyType": { - "id": 4801, + "id": 6018, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "210:7:11", + "src": "210:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "200:27:11", + "src": "200:27:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 4802, + "id": 6019, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "221:4:11", + "src": "221:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2184,11 +2292,11 @@ }, { "constant": false, - "id": 4808, + "id": 6025, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 4809, - "src": "245:34:11", + "scope": 6026, + "src": "245:34:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2196,28 +2304,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 4807, + "id": 6024, "keyType": { - "id": 4805, + "id": 6022, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "255:7:11", + "src": "255:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "245:27:11", + "src": "245:27:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 4806, + "id": 6023, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "266:4:11", + "src": "266:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2230,15 +2338,15 @@ ], "name": "Account", "nodeType": "StructDefinition", - "scope": 4952, - "src": "143:143:11", + "scope": 6169, + "src": "143:143:19", "visibility": "public" }, { "body": { - "id": 4837, + "id": 6054, "nodeType": "Block", - "src": "375:123:11", + "src": "373:123:19", "statements": [ { "expression": { @@ -2246,25 +2354,25 @@ "arguments": [ { "argumentTypes": null, - "id": 4819, + "id": 6036, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4811, - "src": "398:8:11", + "referencedDeclaration": 6028, + "src": "396:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, { "argumentTypes": null, - "id": 4820, + "id": 6037, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4813, - "src": "408:7:11", + "referencedDeclaration": 6030, + "src": "406:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2274,7 +2382,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" }, { @@ -2282,18 +2390,18 @@ "typeString": "bytes32" } ], - "id": 4818, + "id": 6035, "name": "_writeSymbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4951, - "src": "385:12:11", + "referencedDeclaration": 6168, + "src": "383:12:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$__$", "typeString": "function (struct FundAccount.Account storage pointer,bytes32)" } }, - "id": 4821, + "id": 6038, "isConstant": false, "isLValue": false, "isPure": false, @@ -2301,20 +2409,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "385:31:11", + "src": "383:31:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4822, + "id": 6039, "nodeType": "ExpressionStatement", - "src": "385:31:11" + "src": "383:31:19" }, { "expression": { "argumentTypes": null, - "id": 4835, + "id": 6052, "isConstant": false, "isLValue": false, "isPure": false, @@ -2325,40 +2433,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4823, + "id": 6040, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4811, - "src": "427:8:11", + "referencedDeclaration": 6028, + "src": "425:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4826, + "id": 6043, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 4808, - "src": "427:15:11", + "referencedDeclaration": 6025, + "src": "425:15:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4827, + "id": 6044, "indexExpression": { "argumentTypes": null, - "id": 4825, + "id": 6042, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4813, - "src": "443:7:11", + "referencedDeclaration": 6030, + "src": "441:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2369,7 +2477,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "427:24:11", + "src": "425:24:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2382,12 +2490,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4833, + "id": 6050, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4815, - "src": "483:7:11", + "referencedDeclaration": 6032, + "src": "481:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2407,40 +2515,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4828, + "id": 6045, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4811, - "src": "454:8:11", + "referencedDeclaration": 6028, + "src": "452:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4829, + "id": 6046, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 4808, - "src": "454:15:11", + "referencedDeclaration": 6025, + "src": "452:15:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4831, + "id": 6048, "indexExpression": { "argumentTypes": null, - "id": 4830, + "id": 6047, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4813, - "src": "470:7:11", + "referencedDeclaration": 6030, + "src": "468:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2451,27 +2559,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "454:24:11", + "src": "452:24:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4832, + "id": 6049, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "454:28:11", + "referencedDeclaration": 12367, + "src": "452:28:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 4834, + "id": 6051, "isConstant": false, "isLValue": false, "isPure": false, @@ -2479,26 +2587,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "454:37:11", + "src": "452:37:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "427:64:11", + "src": "425:64:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4836, + "id": 6053, "nodeType": "ExpressionStatement", - "src": "427:64:11" + "src": "425:64:19" } ] }, "documentation": null, - "id": 4838, + "id": 6055, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2506,31 +2614,31 @@ "name": "deposit", "nodeType": "FunctionDefinition", "parameters": { - "id": 4816, + "id": 6033, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4811, + "id": 6028, "name": "_account", "nodeType": "VariableDeclaration", - "scope": 4838, - "src": "309:24:11", + "scope": 6055, + "src": "309:24:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" }, "typeName": { "contractScope": null, - "id": 4810, + "id": 6027, "name": "Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "309:7:11", + "referencedDeclaration": 6026, + "src": "309:7:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } }, @@ -2539,11 +2647,11 @@ }, { "constant": false, - "id": 4813, + "id": 6030, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 4838, - "src": "335:15:11", + "scope": 6055, + "src": "335:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2551,10 +2659,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4812, + "id": 6029, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "335:7:11", + "src": "335:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2565,11 +2673,11 @@ }, { "constant": false, - "id": 4815, + "id": 6032, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 4838, - "src": "352:12:11", + "scope": 6055, + "src": "352:12:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2577,10 +2685,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4814, + "id": 6031, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "352:4:11", + "src": "352:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2590,26 +2698,26 @@ "visibility": "internal" } ], - "src": "308:57:11" + "src": "308:57:19" }, "payable": false, "returnParameters": { - "id": 4817, + "id": 6034, "nodeType": "ParameterList", "parameters": [], - "src": "375:0:11" + "src": "373:0:19" }, - "scope": 4952, - "src": "292:206:11", + "scope": 6169, + "src": "292:204:19", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 4877, + "id": 6094, "nodeType": "Block", - "src": "590:189:11", + "src": "586:189:19", "statements": [ { "expression": { @@ -2620,25 +2728,25 @@ "arguments": [ { "argumentTypes": null, - "id": 4849, + "id": 6066, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4840, - "src": "621:8:11", + "referencedDeclaration": 6057, + "src": "617:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, { "argumentTypes": null, - "id": 4850, + "id": 6067, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4842, - "src": "631:7:11", + "referencedDeclaration": 6059, + "src": "627:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2648,7 +2756,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" }, { @@ -2656,18 +2764,18 @@ "typeString": "bytes32" } ], - "id": 4848, + "id": 6065, "name": "hasDepositIn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4893, - "src": "608:12:11", + "referencedDeclaration": 6110, + "src": "604:12:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (bool)" } }, - "id": 4851, + "id": 6068, "isConstant": false, "isLValue": false, "isPure": false, @@ -2675,7 +2783,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "608:31:11", + "src": "604:31:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2689,21 +2797,21 @@ "typeString": "bool" } ], - "id": 4847, + "id": 6064, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "600:7:11", + "referencedDeclaration": 13444, + "src": "596:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4852, + "id": 6069, "isConstant": false, "isLValue": false, "isPure": false, @@ -2711,15 +2819,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "600:40:11", + "src": "596:40:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4853, + "id": 6070, "nodeType": "ExpressionStatement", - "src": "600:40:11" + "src": "596:40:19" }, { "expression": { @@ -2731,7 +2839,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4860, + "id": 6077, "isConstant": false, "isLValue": false, "isPure": false, @@ -2741,25 +2849,25 @@ "arguments": [ { "argumentTypes": null, - "id": 4856, + "id": 6073, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4840, - "src": "667:8:11", + "referencedDeclaration": 6057, + "src": "663:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, { "argumentTypes": null, - "id": 4857, + "id": 6074, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4842, - "src": "677:7:11", + "referencedDeclaration": 6059, + "src": "673:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2769,7 +2877,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" }, { @@ -2777,18 +2885,18 @@ "typeString": "bytes32" } ], - "id": 4855, + "id": 6072, "name": "amountOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4908, - "src": "658:8:11", + "referencedDeclaration": 6125, + "src": "654:8:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" } }, - "id": 4858, + "id": 6075, "isConstant": false, "isLValue": false, "isPure": false, @@ -2796,7 +2904,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "658:27:11", + "src": "654:27:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2806,18 +2914,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 4859, + "id": 6076, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4844, - "src": "689:7:11", + "referencedDeclaration": 6061, + "src": "685:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "658:38:11", + "src": "654:38:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2831,21 +2939,21 @@ "typeString": "bool" } ], - "id": 4854, + "id": 6071, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "650:7:11", + "referencedDeclaration": 13444, + "src": "646:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4861, + "id": 6078, "isConstant": false, "isLValue": false, "isPure": false, @@ -2853,20 +2961,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "650:47:11", + "src": "646:47:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4862, + "id": 6079, "nodeType": "ExpressionStatement", - "src": "650:47:11" + "src": "646:47:19" }, { "expression": { "argumentTypes": null, - "id": 4875, + "id": 6092, "isConstant": false, "isLValue": false, "isPure": false, @@ -2877,40 +2985,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4863, + "id": 6080, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4840, - "src": "708:8:11", + "referencedDeclaration": 6057, + "src": "704:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4866, + "id": 6083, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 4808, - "src": "708:15:11", + "referencedDeclaration": 6025, + "src": "704:15:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4867, + "id": 6084, "indexExpression": { "argumentTypes": null, - "id": 4865, + "id": 6082, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4842, - "src": "724:7:11", + "referencedDeclaration": 6059, + "src": "720:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2921,7 +3029,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "708:24:11", + "src": "704:24:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2934,12 +3042,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4873, + "id": 6090, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4844, - "src": "764:7:11", + "referencedDeclaration": 6061, + "src": "760:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2959,40 +3067,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4868, + "id": 6085, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4840, - "src": "735:8:11", + "referencedDeclaration": 6057, + "src": "731:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4869, + "id": 6086, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 4808, - "src": "735:15:11", + "referencedDeclaration": 6025, + "src": "731:15:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4871, + "id": 6088, "indexExpression": { "argumentTypes": null, - "id": 4870, + "id": 6087, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4842, - "src": "751:7:11", + "referencedDeclaration": 6059, + "src": "747:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3003,27 +3111,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "735:24:11", + "src": "731:24:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4872, + "id": 6089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "735:28:11", + "referencedDeclaration": 12343, + "src": "731:28:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 4874, + "id": 6091, "isConstant": false, "isLValue": false, "isPure": false, @@ -3031,26 +3139,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "735:37:11", + "src": "731:37:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "708:64:11", + "src": "704:64:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4876, + "id": 6093, "nodeType": "ExpressionStatement", - "src": "708:64:11" + "src": "704:64:19" } ] }, "documentation": null, - "id": 4878, + "id": 6095, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3058,31 +3166,31 @@ "name": "withdrawal", "nodeType": "FunctionDefinition", "parameters": { - "id": 4845, + "id": 6062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4840, + "id": 6057, "name": "_account", "nodeType": "VariableDeclaration", - "scope": 4878, - "src": "524:24:11", + "scope": 6095, + "src": "522:24:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" }, "typeName": { "contractScope": null, - "id": 4839, + "id": 6056, "name": "Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "524:7:11", + "referencedDeclaration": 6026, + "src": "522:7:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } }, @@ -3091,11 +3199,11 @@ }, { "constant": false, - "id": 4842, + "id": 6059, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 4878, - "src": "550:15:11", + "scope": 6095, + "src": "548:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3103,10 +3211,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4841, + "id": 6058, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "550:7:11", + "src": "548:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3117,11 +3225,11 @@ }, { "constant": false, - "id": 4844, + "id": 6061, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 4878, - "src": "567:12:11", + "scope": 6095, + "src": "565:12:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3129,10 +3237,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4843, + "id": 6060, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "567:4:11", + "src": "565:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3142,26 +3250,26 @@ "visibility": "internal" } ], - "src": "523:57:11" + "src": "521:57:19" }, "payable": false, "returnParameters": { - "id": 4846, + "id": 6063, "nodeType": "ParameterList", "parameters": [], - "src": "590:0:11" + "src": "586:0:19" }, - "scope": 4952, - "src": "504:275:11", + "scope": 6169, + "src": "502:273:19", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 4892, + "id": 6109, "nodeType": "Block", - "src": "878:49:11", + "src": "872:49:19", "statements": [ { "expression": { @@ -3170,40 +3278,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4887, + "id": 6104, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4880, - "src": "895:8:11", + "referencedDeclaration": 6097, + "src": "889:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4888, + "id": 6105, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "symbols", "nodeType": "MemberAccess", - "referencedDeclaration": 4804, - "src": "895:16:11", + "referencedDeclaration": 6021, + "src": "889:16:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4890, + "id": 6107, "indexExpression": { "argumentTypes": null, - "id": 4889, + "id": 6106, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4882, - "src": "912:7:11", + "referencedDeclaration": 6099, + "src": "906:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3214,21 +3322,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "895:25:11", + "src": "889:25:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4886, - "id": 4891, + "functionReturnParameters": 6103, + "id": 6108, "nodeType": "Return", - "src": "888:32:11" + "src": "882:32:19" } ] }, "documentation": null, - "id": 4893, + "id": 6110, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3236,31 +3344,31 @@ "name": "hasDepositIn", "nodeType": "FunctionDefinition", "parameters": { - "id": 4883, + "id": 6100, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4880, + "id": 6097, "name": "_account", "nodeType": "VariableDeclaration", - "scope": 4893, - "src": "807:24:11", + "scope": 6110, + "src": "803:24:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" }, "typeName": { "contractScope": null, - "id": 4879, + "id": 6096, "name": "Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "807:7:11", + "referencedDeclaration": 6026, + "src": "803:7:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } }, @@ -3269,11 +3377,11 @@ }, { "constant": false, - "id": 4882, + "id": 6099, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 4893, - "src": "833:15:11", + "scope": 6110, + "src": "829:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3281,10 +3389,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4881, + "id": 6098, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "833:7:11", + "src": "829:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3294,20 +3402,20 @@ "visibility": "internal" } ], - "src": "806:43:11" + "src": "802:43:19" }, "payable": false, "returnParameters": { - "id": 4886, + "id": 6103, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4885, + "id": 6102, "name": "", "nodeType": "VariableDeclaration", - "scope": 4893, - "src": "872:4:11", + "scope": 6110, + "src": "866:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3315,10 +3423,10 @@ "typeString": "bool" }, "typeName": { - "id": 4884, + "id": 6101, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "872:4:11", + "src": "866:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3328,19 +3436,19 @@ "visibility": "internal" } ], - "src": "871:6:11" + "src": "865:6:19" }, - "scope": 4952, - "src": "785:142:11", + "scope": 6169, + "src": "781:140:19", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 4907, + "id": 6124, "nodeType": "Block", - "src": "1022:48:11", + "src": "1014:48:19", "statements": [ { "expression": { @@ -3349,40 +3457,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4902, + "id": 6119, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4895, - "src": "1039:8:11", + "referencedDeclaration": 6112, + "src": "1031:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4903, + "id": 6120, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 4808, - "src": "1039:15:11", + "referencedDeclaration": 6025, + "src": "1031:15:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4905, + "id": 6122, "indexExpression": { "argumentTypes": null, - "id": 4904, + "id": 6121, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4897, - "src": "1055:7:11", + "referencedDeclaration": 6114, + "src": "1047:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3393,21 +3501,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1039:24:11", + "src": "1031:24:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4901, - "id": 4906, + "functionReturnParameters": 6118, + "id": 6123, "nodeType": "Return", - "src": "1032:31:11" + "src": "1024:31:19" } ] }, "documentation": null, - "id": 4908, + "id": 6125, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3415,31 +3523,31 @@ "name": "amountOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 4898, + "id": 6115, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4895, + "id": 6112, "name": "_account", "nodeType": "VariableDeclaration", - "scope": 4908, - "src": "951:24:11", + "scope": 6125, + "src": "945:24:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" }, "typeName": { "contractScope": null, - "id": 4894, + "id": 6111, "name": "Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "951:7:11", + "referencedDeclaration": 6026, + "src": "945:7:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } }, @@ -3448,11 +3556,11 @@ }, { "constant": false, - "id": 4897, + "id": 6114, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 4908, - "src": "977:15:11", + "scope": 6125, + "src": "971:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3460,10 +3568,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4896, + "id": 6113, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "977:7:11", + "src": "971:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3473,20 +3581,20 @@ "visibility": "internal" } ], - "src": "950:43:11" + "src": "944:43:19" }, "payable": false, "returnParameters": { - "id": 4901, + "id": 6118, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4900, + "id": 6117, "name": "", "nodeType": "VariableDeclaration", - "scope": 4908, - "src": "1016:4:11", + "scope": 6125, + "src": "1008:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3494,10 +3602,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4899, + "id": 6116, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1016:4:11", + "src": "1008:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3507,59 +3615,59 @@ "visibility": "internal" } ], - "src": "1015:6:11" + "src": "1007:6:19" }, - "scope": 4952, - "src": "933:137:11", + "scope": 6169, + "src": "927:135:19", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 4919, + "id": 6136, "nodeType": "Block", - "src": "1147:45:11", + "src": "1146:45:19", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4916, + "id": 6133, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4910, - "src": "1164:8:11", + "referencedDeclaration": 6127, + "src": "1163:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4917, + "id": 6134, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_symbolsList", "nodeType": "MemberAccess", - "referencedDeclaration": 4800, - "src": "1164:21:11", + "referencedDeclaration": 6017, + "src": "1163:21:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "functionReturnParameters": 4915, - "id": 4918, + "functionReturnParameters": 6132, + "id": 6135, "nodeType": "Return", - "src": "1157:28:11" + "src": "1156:28:19" } ] }, "documentation": null, - "id": 4920, + "id": 6137, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3567,31 +3675,31 @@ "name": "symbolsList", "nodeType": "FunctionDefinition", "parameters": { - "id": 4911, + "id": 6128, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4910, + "id": 6127, "name": "_account", "nodeType": "VariableDeclaration", - "scope": 4920, - "src": "1097:24:11", + "scope": 6137, + "src": "1089:24:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" }, "typeName": { "contractScope": null, - "id": 4909, + "id": 6126, "name": "Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "1097:7:11", + "referencedDeclaration": 6026, + "src": "1089:7:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } }, @@ -3599,20 +3707,20 @@ "visibility": "internal" } ], - "src": "1096:26:11" + "src": "1088:26:19" }, "payable": false, "returnParameters": { - "id": 4915, + "id": 6132, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4914, + "id": 6131, "name": "", "nodeType": "VariableDeclaration", - "scope": 4920, - "src": "1136:9:11", + "scope": 6137, + "src": "1135:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3621,19 +3729,19 @@ }, "typeName": { "baseType": { - "id": 4912, + "id": 6129, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1136:7:11", + "src": "1135:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4913, + "id": 6130, "length": null, "nodeType": "ArrayTypeName", - "src": "1136:9:11", + "src": "1135:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -3643,24 +3751,24 @@ "visibility": "internal" } ], - "src": "1135:11:11" + "src": "1134:11:19" }, - "scope": 4952, - "src": "1076:116:11", + "scope": 6169, + "src": "1068:123:19", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4950, + "id": 6167, "nodeType": "Block", - "src": "1272:160:11", + "src": "1269:160:19", "statements": [ { "condition": { "argumentTypes": null, - "id": 4931, + "id": 6148, "isConstant": false, "isLValue": false, "isPure": false, @@ -3668,31 +3776,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1286:32:11", + "src": "1283:32:19", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4928, + "id": 6145, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4922, - "src": "1300:8:11", + "referencedDeclaration": 6139, + "src": "1297:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, { "argumentTypes": null, - "id": 4929, + "id": 6146, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4924, - "src": "1310:7:11", + "referencedDeclaration": 6141, + "src": "1307:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3702,7 +3810,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" }, { @@ -3710,18 +3818,18 @@ "typeString": "bytes32" } ], - "id": 4927, + "id": 6144, "name": "hasDepositIn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4893, - "src": "1287:12:11", + "referencedDeclaration": 6110, + "src": "1284:12:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (bool)" } }, - "id": 4930, + "id": 6147, "isConstant": false, "isLValue": false, "isPure": false, @@ -3729,7 +3837,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1287:31:11", + "src": "1284:31:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3741,13 +3849,13 @@ } }, "falseBody": null, - "id": 4949, + "id": 6166, "nodeType": "IfStatement", - "src": "1282:144:11", + "src": "1279:144:19", "trueBody": { - "id": 4948, + "id": 6165, "nodeType": "Block", - "src": "1320:106:11", + "src": "1317:106:19", "statements": [ { "expression": { @@ -3755,12 +3863,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4937, + "id": 6154, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4924, - "src": "1361:7:11", + "referencedDeclaration": 6141, + "src": "1358:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3778,32 +3886,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4932, + "id": 6149, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4922, - "src": "1334:8:11", + "referencedDeclaration": 6139, + "src": "1331:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4935, + "id": 6152, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_symbolsList", "nodeType": "MemberAccess", - "referencedDeclaration": 4800, - "src": "1334:21:11", + "referencedDeclaration": 6017, + "src": "1331:21:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4936, + "id": 6153, "isConstant": false, "isLValue": false, "isPure": false, @@ -3811,13 +3919,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1334:26:11", + "src": "1331:26:19", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) returns (uint256)" } }, - "id": 4938, + "id": 6155, "isConstant": false, "isLValue": false, "isPure": false, @@ -3825,20 +3933,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1334:35:11", + "src": "1331:35:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4939, + "id": 6156, "nodeType": "ExpressionStatement", - "src": "1334:35:11" + "src": "1331:35:19" }, { "expression": { "argumentTypes": null, - "id": 4946, + "id": 6163, "isConstant": false, "isLValue": false, "isPure": false, @@ -3849,40 +3957,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4940, + "id": 6157, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4922, - "src": "1383:8:11", + "referencedDeclaration": 6139, + "src": "1380:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account storage pointer" } }, - "id": 4943, + "id": 6160, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "symbols", "nodeType": "MemberAccess", - "referencedDeclaration": 4804, - "src": "1383:16:11", + "referencedDeclaration": 6021, + "src": "1380:16:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4944, + "id": 6161, "indexExpression": { "argumentTypes": null, - "id": 4942, + "id": 6159, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4924, - "src": "1400:7:11", + "referencedDeclaration": 6141, + "src": "1397:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3893,7 +4001,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1383:25:11", + "src": "1380:25:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3904,14 +4012,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 4945, + "id": 6162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1411:4:11", + "src": "1408:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3919,15 +4027,15 @@ }, "value": "true" }, - "src": "1383:32:11", + "src": "1380:32:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4947, + "id": 6164, "nodeType": "ExpressionStatement", - "src": "1383:32:11" + "src": "1380:32:19" } ] } @@ -3935,7 +4043,7 @@ ] }, "documentation": null, - "id": 4951, + "id": 6168, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3943,31 +4051,31 @@ "name": "_writeSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 4925, + "id": 6142, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4922, + "id": 6139, "name": "_account", "nodeType": "VariableDeclaration", - "scope": 4951, - "src": "1220:24:11", + "scope": 6168, + "src": "1219:24:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" }, "typeName": { "contractScope": null, - "id": 4921, + "id": 6138, "name": "Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "1220:7:11", + "referencedDeclaration": 6026, + "src": "1219:7:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } }, @@ -3976,11 +4084,11 @@ }, { "constant": false, - "id": 4924, + "id": 6141, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 4951, - "src": "1246:15:11", + "scope": 6168, + "src": "1245:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3988,10 +4096,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4923, + "id": 6140, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1246:7:11", + "src": "1245:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4001,27 +4109,27 @@ "visibility": "internal" } ], - "src": "1219:43:11" + "src": "1218:43:19" }, "payable": false, "returnParameters": { - "id": 4926, + "id": 6143, "nodeType": "ParameterList", "parameters": [], - "src": "1272:0:11" + "src": "1269:0:19" }, - "scope": 4952, - "src": "1198:234:11", + "scope": 6169, + "src": "1197:232:19", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" } ], - "scope": 4953, - "src": "87:1347:11" + "scope": 6170, + "src": "87:1344:19" } ], - "src": "0:1435:11" + "src": "0:1432:19" }, "compiler": { "name": "solc", @@ -4031,10 +4139,10 @@ "4": { "events": {}, "links": {}, - "address": "0x2fe4ce4bcaf46c1fd0772f6ec0f13b5eff901a89", - "transactionHash": "0x6c8fa13dd3731658d0dd8a0c57156579052352399b98c94279b3e6104206c087" + "address": "0x27bd1f295f0fa80072dfb5214fb12b88518e7041", + "transactionHash": "0x55bce4331ac6e33b84b3cbcd6c7346c1602192cbd83de3d003df93a3f92347a9" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:55:06.465Z" + "updatedAt": "2018-12-06T13:18:18.750Z" } \ No newline at end of file diff --git a/build/contracts/IAdminRole.json b/build/contracts/IAdminRole.json new file mode 100644 index 00000000..3de4fa5f --- /dev/null +++ b/build/contracts/IAdminRole.json @@ -0,0 +1,604 @@ +{ + "contractName": "IAdminRole", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.24;\n\ncontract IAdminRole {\n function isAdmin(address account) public view returns (bool);\n\n function addAdmin(address account) public;\n\n function renounceAdmin() public;\n\n function removeAdmin(address account) public;\n}\n", + "sourcePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "exportedSymbols": { + "IAdminRole": [ + 1375 + ] + }, + "id": 1376, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1354, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:4" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 1375, + "linearizedBaseContracts": [ + 1375 + ], + "name": "IAdminRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 1361, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1356, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1361, + "src": "69:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "69:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "68:17:4" + }, + "payable": false, + "returnParameters": { + "id": 1360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1359, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1361, + "src": "107:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1358, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "107:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "106:6:4" + }, + "scope": 1375, + "src": "52:61:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1366, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1363, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1366, + "src": "137:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "137:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "136:17:4" + }, + "payable": false, + "returnParameters": { + "id": 1365, + "nodeType": "ParameterList", + "parameters": [], + "src": "160:0:4" + }, + "scope": 1375, + "src": "119:42:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1369, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1367, + "nodeType": "ParameterList", + "parameters": [], + "src": "189:2:4" + }, + "payable": false, + "returnParameters": { + "id": 1368, + "nodeType": "ParameterList", + "parameters": [], + "src": "198:0:4" + }, + "scope": 1375, + "src": "167:32:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1374, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1371, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "226:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1370, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "226:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "225:17:4" + }, + "payable": false, + "returnParameters": { + "id": 1373, + "nodeType": "ParameterList", + "parameters": [], + "src": "249:0:4" + }, + "scope": 1375, + "src": "205:45:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1376, + "src": "26:226:4" + } + ], + "src": "0:253:4" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "exportedSymbols": { + "IAdminRole": [ + 1375 + ] + }, + "id": 1376, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1354, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:4" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 1375, + "linearizedBaseContracts": [ + 1375 + ], + "name": "IAdminRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 1361, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1356, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1361, + "src": "69:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "69:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "68:17:4" + }, + "payable": false, + "returnParameters": { + "id": 1360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1359, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1361, + "src": "107:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1358, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "107:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "106:6:4" + }, + "scope": 1375, + "src": "52:61:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1366, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1363, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1366, + "src": "137:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "137:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "136:17:4" + }, + "payable": false, + "returnParameters": { + "id": 1365, + "nodeType": "ParameterList", + "parameters": [], + "src": "160:0:4" + }, + "scope": 1375, + "src": "119:42:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1369, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1367, + "nodeType": "ParameterList", + "parameters": [], + "src": "189:2:4" + }, + "payable": false, + "returnParameters": { + "id": 1368, + "nodeType": "ParameterList", + "parameters": [], + "src": "198:0:4" + }, + "scope": 1375, + "src": "167:32:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1374, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1371, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "226:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1370, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "226:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "225:17:4" + }, + "payable": false, + "returnParameters": { + "id": 1373, + "nodeType": "ParameterList", + "parameters": [], + "src": "249:0:4" + }, + "scope": 1375, + "src": "205:45:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1376, + "src": "26:226:4" + } + ], + "src": "0:253:4" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.016Z" +} \ No newline at end of file diff --git a/build/contracts/IERC20.json b/build/contracts/IERC20.json new file mode 100644 index 00000000..87f38784 --- /dev/null +++ b/build/contracts/IERC20.json @@ -0,0 +1,1859 @@ +{ + "contractName": "IERC20", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "who", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.24;\n\n/**\n * @title ERC20 interface\n * @dev see https://github.com/ethereum/EIPs/issues/20\n */\ninterface IERC20 {\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address who) external view returns (uint256);\n\n function allowance(address owner, address spender)\n external view returns (uint256);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function approve(address spender, uint256 value)\n external returns (bool);\n\n function transferFrom(address from, address to, uint256 value)\n external returns (bool);\n\n event Transfer(\n address indexed from,\n address indexed to,\n uint256 value\n );\n\n event Approval(\n address indexed owner,\n address indexed spender,\n uint256 value\n );\n}\n", + "sourcePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "ast": { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 13083 + ] + }, + "id": 13084, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 13016, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:60" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", + "fullyImplemented": false, + "id": 13083, + "linearizedBaseContracts": [ + 13083 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 13021, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13017, + "nodeType": "ParameterList", + "parameters": [], + "src": "156:2:60" + }, + "payable": false, + "returnParameters": { + "id": 13020, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13019, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13021, + "src": "182:7:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "182:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "181:9:60" + }, + "scope": 13083, + "src": "136:55:60", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 13028, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13023, + "name": "who", + "nodeType": "VariableDeclaration", + "scope": 13028, + "src": "214:11:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "214:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "213:13:60" + }, + "payable": false, + "returnParameters": { + "id": 13027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13026, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13028, + "src": "250:7:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "250:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "249:9:60" + }, + "scope": 13083, + "src": "195:64:60", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 13037, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13033, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13030, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 13037, + "src": "282:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13029, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "282:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13032, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 13037, + "src": "297:15:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13031, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "281:32:60" + }, + "payable": false, + "returnParameters": { + "id": 13036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13035, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13037, + "src": "341:7:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13034, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "341:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "340:9:60" + }, + "scope": 13083, + "src": "263:87:60", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 13046, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13042, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13039, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 13046, + "src": "372:10:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13038, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "372:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13041, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13046, + "src": "384:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13040, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "384:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "371:27:60" + }, + "payable": false, + "returnParameters": { + "id": 13045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13044, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13046, + "src": "417:4:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13043, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "417:4:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "416:6:60" + }, + "scope": 13083, + "src": "354:69:60", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 13055, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13051, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13048, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 13055, + "src": "444:15:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13047, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "444:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13050, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13055, + "src": "461:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13049, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "461:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "443:32:60" + }, + "payable": false, + "returnParameters": { + "id": 13054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13053, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13055, + "src": "498:4:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13052, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "498:4:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "497:6:60" + }, + "scope": 13083, + "src": "427:77:60", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 13066, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13057, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 13066, + "src": "530:12:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13056, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "530:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13059, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 13066, + "src": "544:10:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13058, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "544:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13061, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13066, + "src": "556:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "556:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "529:41:60" + }, + "payable": false, + "returnParameters": { + "id": 13065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13064, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13066, + "src": "593:4:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13063, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "593:4:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "592:6:60" + }, + "scope": 13083, + "src": "508:91:60", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 13074, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 13073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13068, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 13074, + "src": "623:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "623:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13070, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 13074, + "src": "649:18:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "649:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13072, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13074, + "src": "673:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "673:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "617:73:60" + }, + "src": "603:88:60" + }, + { + "anonymous": false, + "documentation": null, + "id": 13082, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 13081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13076, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 13082, + "src": "715:21:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "715:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13078, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 13082, + "src": "742:23:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "742:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13080, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13082, + "src": "771:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "771:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "709:79:60" + }, + "src": "695:94:60" + } + ], + "scope": 13084, + "src": "115:676:60" + } + ], + "src": "0:792:60" + }, + "legacyAST": { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 13083 + ] + }, + "id": 13084, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 13016, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:60" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", + "fullyImplemented": false, + "id": 13083, + "linearizedBaseContracts": [ + 13083 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 13021, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13017, + "nodeType": "ParameterList", + "parameters": [], + "src": "156:2:60" + }, + "payable": false, + "returnParameters": { + "id": 13020, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13019, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13021, + "src": "182:7:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "182:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "181:9:60" + }, + "scope": 13083, + "src": "136:55:60", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 13028, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13023, + "name": "who", + "nodeType": "VariableDeclaration", + "scope": 13028, + "src": "214:11:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "214:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "213:13:60" + }, + "payable": false, + "returnParameters": { + "id": 13027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13026, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13028, + "src": "250:7:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "250:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "249:9:60" + }, + "scope": 13083, + "src": "195:64:60", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 13037, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13033, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13030, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 13037, + "src": "282:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13029, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "282:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13032, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 13037, + "src": "297:15:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13031, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "281:32:60" + }, + "payable": false, + "returnParameters": { + "id": 13036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13035, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13037, + "src": "341:7:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13034, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "341:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "340:9:60" + }, + "scope": 13083, + "src": "263:87:60", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 13046, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13042, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13039, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 13046, + "src": "372:10:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13038, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "372:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13041, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13046, + "src": "384:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13040, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "384:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "371:27:60" + }, + "payable": false, + "returnParameters": { + "id": 13045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13044, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13046, + "src": "417:4:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13043, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "417:4:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "416:6:60" + }, + "scope": 13083, + "src": "354:69:60", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 13055, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13051, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13048, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 13055, + "src": "444:15:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13047, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "444:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13050, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13055, + "src": "461:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13049, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "461:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "443:32:60" + }, + "payable": false, + "returnParameters": { + "id": 13054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13053, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13055, + "src": "498:4:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13052, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "498:4:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "497:6:60" + }, + "scope": 13083, + "src": "427:77:60", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 13066, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13057, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 13066, + "src": "530:12:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13056, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "530:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13059, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 13066, + "src": "544:10:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13058, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "544:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13061, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13066, + "src": "556:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "556:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "529:41:60" + }, + "payable": false, + "returnParameters": { + "id": 13065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13064, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13066, + "src": "593:4:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13063, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "593:4:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "592:6:60" + }, + "scope": 13083, + "src": "508:91:60", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 13074, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 13073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13068, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 13074, + "src": "623:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "623:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13070, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 13074, + "src": "649:18:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "649:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13072, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13074, + "src": "673:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "673:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "617:73:60" + }, + "src": "603:88:60" + }, + { + "anonymous": false, + "documentation": null, + "id": 13082, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 13081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13076, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 13082, + "src": "715:21:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "715:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13078, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 13082, + "src": "742:23:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "742:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13080, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13082, + "src": "771:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "771:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "709:79:60" + }, + "src": "695:94:60" + } + ], + "scope": 13084, + "src": "115:676:60" + } + ], + "src": "0:792:60" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.030Z" +} \ No newline at end of file diff --git a/build/contracts/IPricerRole.json b/build/contracts/IPricerRole.json index eabf8df2..88e9bc81 100644 --- a/build/contracts/IPricerRole.json +++ b/build/contracts/IPricerRole.json @@ -47,26 +47,35 @@ "payable": false, "stateMutability": "nonpayable", "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renouncePricer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" } ], "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\ncontract IPricerRole {\n function isPricer(address account) public view returns (bool);\n\n function addPricer(address account) public;\n\n function removePricer(address account) public;\n}\n", - "sourcePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", + "source": "pragma solidity ^0.4.24;\n\ncontract IPricerRole {\n function isPricer(address account) public view returns (bool);\n\n function addPricer(address account) public;\n\n function removePricer(address account) public;\n\n function renouncePricer() public;\n}\n", + "sourcePath": "/home/circleci/code/contracts/access/roles/IPricerRole.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", + "absolutePath": "/home/circleci/code/contracts/access/roles/IPricerRole.sol", "exportedSymbols": { "IPricerRole": [ - 7686 + 1398 ] }, - "id": 7687, + "id": 1399, "nodeType": "SourceUnit", "nodes": [ { - "id": 7668, + "id": 1377, "literals": [ "solidity", "^", @@ -74,7 +83,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:27" + "src": "0:24:5" }, { "baseContracts": [], @@ -82,9 +91,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 7686, + "id": 1398, "linearizedBaseContracts": [ - 7686 + 1398 ], "name": "IPricerRole", "nodeType": "ContractDefinition", @@ -92,7 +101,7 @@ { "body": null, "documentation": null, - "id": 7675, + "id": 1384, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -100,16 +109,16 @@ "name": "isPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7671, + "id": 1380, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7670, + "id": 1379, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7675, - "src": "71:15:27", + "scope": 1384, + "src": "71:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -117,10 +126,10 @@ "typeString": "address" }, "typeName": { - "id": 7669, + "id": 1378, "name": "address", "nodeType": "ElementaryTypeName", - "src": "71:7:27", + "src": "71:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -130,20 +139,20 @@ "visibility": "internal" } ], - "src": "70:17:27" + "src": "70:17:5" }, "payable": false, "returnParameters": { - "id": 7674, + "id": 1383, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7673, + "id": 1382, "name": "", "nodeType": "VariableDeclaration", - "scope": 7675, - "src": "109:4:27", + "scope": 1384, + "src": "109:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -151,10 +160,10 @@ "typeString": "bool" }, "typeName": { - "id": 7672, + "id": 1381, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "109:4:27", + "src": "109:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -164,10 +173,10 @@ "visibility": "internal" } ], - "src": "108:6:27" + "src": "108:6:5" }, - "scope": 7686, - "src": "53:62:27", + "scope": 1398, + "src": "53:62:5", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -175,7 +184,7 @@ { "body": null, "documentation": null, - "id": 7680, + "id": 1389, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -183,16 +192,16 @@ "name": "addPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7678, + "id": 1387, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7677, + "id": 1386, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7680, - "src": "140:15:27", + "scope": 1389, + "src": "140:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -200,10 +209,10 @@ "typeString": "address" }, "typeName": { - "id": 7676, + "id": 1385, "name": "address", "nodeType": "ElementaryTypeName", - "src": "140:7:27", + "src": "140:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -213,17 +222,17 @@ "visibility": "internal" } ], - "src": "139:17:27" + "src": "139:17:5" }, "payable": false, "returnParameters": { - "id": 7679, + "id": 1388, "nodeType": "ParameterList", "parameters": [], - "src": "163:0:27" + "src": "163:0:5" }, - "scope": 7686, - "src": "121:43:27", + "scope": 1398, + "src": "121:43:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -231,7 +240,7 @@ { "body": null, "documentation": null, - "id": 7685, + "id": 1394, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -239,16 +248,16 @@ "name": "removePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7683, + "id": 1392, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7682, + "id": 1391, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7685, - "src": "192:15:27", + "scope": 1394, + "src": "192:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -256,10 +265,10 @@ "typeString": "address" }, "typeName": { - "id": 7681, + "id": 1390, "name": "address", "nodeType": "ElementaryTypeName", - "src": "192:7:27", + "src": "192:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -269,40 +278,69 @@ "visibility": "internal" } ], - "src": "191:17:27" + "src": "191:17:5" }, "payable": false, "returnParameters": { - "id": 7684, + "id": 1393, "nodeType": "ParameterList", "parameters": [], - "src": "215:0:27" + "src": "215:0:5" }, - "scope": 7686, - "src": "170:46:27", + "scope": 1398, + "src": "170:46:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1397, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renouncePricer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1395, + "nodeType": "ParameterList", + "parameters": [], + "src": "245:2:5" + }, + "payable": false, + "returnParameters": { + "id": 1396, + "nodeType": "ParameterList", + "parameters": [], + "src": "254:0:5" + }, + "scope": 1398, + "src": "222:33:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 7687, - "src": "26:192:27" + "scope": 1399, + "src": "26:231:5" } ], - "src": "0:219:27" + "src": "0:258:5" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", + "absolutePath": "/home/circleci/code/contracts/access/roles/IPricerRole.sol", "exportedSymbols": { "IPricerRole": [ - 7686 + 1398 ] }, - "id": 7687, + "id": 1399, "nodeType": "SourceUnit", "nodes": [ { - "id": 7668, + "id": 1377, "literals": [ "solidity", "^", @@ -310,7 +348,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:27" + "src": "0:24:5" }, { "baseContracts": [], @@ -318,9 +356,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 7686, + "id": 1398, "linearizedBaseContracts": [ - 7686 + 1398 ], "name": "IPricerRole", "nodeType": "ContractDefinition", @@ -328,7 +366,7 @@ { "body": null, "documentation": null, - "id": 7675, + "id": 1384, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -336,16 +374,16 @@ "name": "isPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7671, + "id": 1380, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7670, + "id": 1379, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7675, - "src": "71:15:27", + "scope": 1384, + "src": "71:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -353,10 +391,10 @@ "typeString": "address" }, "typeName": { - "id": 7669, + "id": 1378, "name": "address", "nodeType": "ElementaryTypeName", - "src": "71:7:27", + "src": "71:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -366,20 +404,20 @@ "visibility": "internal" } ], - "src": "70:17:27" + "src": "70:17:5" }, "payable": false, "returnParameters": { - "id": 7674, + "id": 1383, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7673, + "id": 1382, "name": "", "nodeType": "VariableDeclaration", - "scope": 7675, - "src": "109:4:27", + "scope": 1384, + "src": "109:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -387,10 +425,10 @@ "typeString": "bool" }, "typeName": { - "id": 7672, + "id": 1381, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "109:4:27", + "src": "109:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -400,10 +438,10 @@ "visibility": "internal" } ], - "src": "108:6:27" + "src": "108:6:5" }, - "scope": 7686, - "src": "53:62:27", + "scope": 1398, + "src": "53:62:5", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -411,7 +449,7 @@ { "body": null, "documentation": null, - "id": 7680, + "id": 1389, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -419,16 +457,16 @@ "name": "addPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7678, + "id": 1387, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7677, + "id": 1386, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7680, - "src": "140:15:27", + "scope": 1389, + "src": "140:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -436,10 +474,10 @@ "typeString": "address" }, "typeName": { - "id": 7676, + "id": 1385, "name": "address", "nodeType": "ElementaryTypeName", - "src": "140:7:27", + "src": "140:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -449,17 +487,17 @@ "visibility": "internal" } ], - "src": "139:17:27" + "src": "139:17:5" }, "payable": false, "returnParameters": { - "id": 7679, + "id": 1388, "nodeType": "ParameterList", "parameters": [], - "src": "163:0:27" + "src": "163:0:5" }, - "scope": 7686, - "src": "121:43:27", + "scope": 1398, + "src": "121:43:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -467,7 +505,7 @@ { "body": null, "documentation": null, - "id": 7685, + "id": 1394, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -475,16 +513,16 @@ "name": "removePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7683, + "id": 1392, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7682, + "id": 1391, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7685, - "src": "192:15:27", + "scope": 1394, + "src": "192:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -492,10 +530,10 @@ "typeString": "address" }, "typeName": { - "id": 7681, + "id": 1390, "name": "address", "nodeType": "ElementaryTypeName", - "src": "192:7:27", + "src": "192:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -505,27 +543,56 @@ "visibility": "internal" } ], - "src": "191:17:27" + "src": "191:17:5" + }, + "payable": false, + "returnParameters": { + "id": 1393, + "nodeType": "ParameterList", + "parameters": [], + "src": "215:0:5" + }, + "scope": 1398, + "src": "170:46:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1397, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renouncePricer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1395, + "nodeType": "ParameterList", + "parameters": [], + "src": "245:2:5" }, "payable": false, "returnParameters": { - "id": 7684, + "id": 1396, "nodeType": "ParameterList", "parameters": [], - "src": "215:0:27" + "src": "254:0:5" }, - "scope": 7686, - "src": "170:46:27", + "scope": 1398, + "src": "222:33:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 7687, - "src": "26:192:27" + "scope": 1399, + "src": "26:231:5" } ], - "src": "0:219:27" + "src": "0:258:5" }, "compiler": { "name": "solc", @@ -533,5 +600,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.322Z" + "updatedAt": "2018-12-06T13:14:33.055Z" } \ No newline at end of file diff --git a/build/contracts/IProjectOwnerRole.json b/build/contracts/IProjectOwnerRole.json new file mode 100644 index 00000000..3c978bd4 --- /dev/null +++ b/build/contracts/IProjectOwnerRole.json @@ -0,0 +1,604 @@ +{ + "contractName": "IProjectOwnerRole", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.24;\n\ncontract IProjectOwnerRole {\n function isProjectOwner(address account) public view returns (bool);\n\n function addProjectOwner(address account) public;\n\n function renounceProjectOwner() public;\n\n function removeProjectOwner(address account) public;\n}\n", + "sourcePath": "/home/circleci/code/contracts/access/roles/IProjectOwnerRole.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/access/roles/IProjectOwnerRole.sol", + "exportedSymbols": { + "IProjectOwnerRole": [ + 1421 + ] + }, + "id": 1422, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1400, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:6" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 1421, + "linearizedBaseContracts": [ + 1421 + ], + "name": "IProjectOwnerRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 1407, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1403, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1402, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "83:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "83:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "82:17:6" + }, + "payable": false, + "returnParameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1405, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "121:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1404, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "121:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "120:6:6" + }, + "scope": 1421, + "src": "59:68:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1412, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1409, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1412, + "src": "158:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "158:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "157:17:6" + }, + "payable": false, + "returnParameters": { + "id": 1411, + "nodeType": "ParameterList", + "parameters": [], + "src": "181:0:6" + }, + "scope": 1421, + "src": "133:49:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1415, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1413, + "nodeType": "ParameterList", + "parameters": [], + "src": "217:2:6" + }, + "payable": false, + "returnParameters": { + "id": 1414, + "nodeType": "ParameterList", + "parameters": [], + "src": "226:0:6" + }, + "scope": 1421, + "src": "188:39:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1420, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1417, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1420, + "src": "261:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1416, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "261:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "260:17:6" + }, + "payable": false, + "returnParameters": { + "id": 1419, + "nodeType": "ParameterList", + "parameters": [], + "src": "284:0:6" + }, + "scope": 1421, + "src": "233:52:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1422, + "src": "26:261:6" + } + ], + "src": "0:288:6" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/access/roles/IProjectOwnerRole.sol", + "exportedSymbols": { + "IProjectOwnerRole": [ + 1421 + ] + }, + "id": 1422, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1400, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:6" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 1421, + "linearizedBaseContracts": [ + 1421 + ], + "name": "IProjectOwnerRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 1407, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1403, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1402, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "83:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "83:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "82:17:6" + }, + "payable": false, + "returnParameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1405, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "121:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1404, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "121:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "120:6:6" + }, + "scope": 1421, + "src": "59:68:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1412, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1409, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1412, + "src": "158:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "158:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "157:17:6" + }, + "payable": false, + "returnParameters": { + "id": 1411, + "nodeType": "ParameterList", + "parameters": [], + "src": "181:0:6" + }, + "scope": 1421, + "src": "133:49:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1415, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1413, + "nodeType": "ParameterList", + "parameters": [], + "src": "217:2:6" + }, + "payable": false, + "returnParameters": { + "id": 1414, + "nodeType": "ParameterList", + "parameters": [], + "src": "226:0:6" + }, + "scope": 1421, + "src": "188:39:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1420, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1417, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1420, + "src": "261:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1416, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "261:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "260:17:6" + }, + "payable": false, + "returnParameters": { + "id": 1419, + "nodeType": "ParameterList", + "parameters": [], + "src": "284:0:6" + }, + "scope": 1421, + "src": "233:52:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1422, + "src": "26:261:6" + } + ], + "src": "0:288:6" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.016Z" +} \ No newline at end of file diff --git a/build/contracts/IRates.json b/build/contracts/IRates.json index 116e7259..db7c4b51 100644 --- a/build/contracts/IRates.json +++ b/build/contracts/IRates.json @@ -96,17 +96,12 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], + "name": "renouncePricer", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { @@ -252,49 +247,26 @@ "payable": false, "stateMutability": "nonpayable", "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" } ], "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"./ISymbols.sol\";\nimport \"./roles/IPricer.sol\";\n\ncontract IRates is ISymbols, IPricerRole {\n address public owner;\n\n function addSymbolWithTokenAddress(bytes32 symbol, address _address) public;\n\n function setTokenAddress(bytes32 symbol, address _address) public;\n\n function getTokenAddress(bytes32 symbol) public view returns (address);\n\n function isToken(bytes32 symbol) public view returns (bool);\n\n function get(bytes32 symbol) public view returns (uint);\n\n function set(bytes32 symbol, uint rate) public;\n\n function renounceOwnership() public;\n\n function transferOwnership(address _newOwner) public;\n}\n", + "source": "pragma solidity ^0.4.24;\n\nimport \"./ISymbols.sol\";\nimport \"../access/roles/IPricerRole.sol\";\n\ncontract IRates is ISymbols, IPricerRole {\n function addSymbolWithTokenAddress(bytes32 symbol, address _address) public;\n\n function setTokenAddress(bytes32 symbol, address _address) public;\n\n function getTokenAddress(bytes32 symbol) public view returns (address);\n\n function isToken(bytes32 symbol) public view returns (bool);\n\n function get(bytes32 symbol) public view returns (uint);\n\n function set(bytes32 symbol, uint rate) public;\n}\n", "sourcePath": "/home/circleci/code/contracts/rates/IRates.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "exportedSymbols": { "IRates": [ - 7279 + 10014 ] }, - "id": 7280, + "id": 10015, "nodeType": "SourceUnit", "nodes": [ { - "id": 7220, + "id": 9965, "literals": [ "solidity", "^", @@ -302,27 +274,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:23" + "src": "0:24:36" }, { "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", "file": "./ISymbols.sol", - "id": 7221, + "id": 9966, "nodeType": "ImportDirective", - "scope": 7280, - "sourceUnit": 7309, - "src": "26:24:23", + "scope": 10015, + "sourceUnit": 10044, + "src": "26:24:36", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", - "file": "./roles/IPricer.sol", - "id": 7222, + "absolutePath": "/home/circleci/code/contracts/access/roles/IPricerRole.sol", + "file": "../access/roles/IPricerRole.sol", + "id": 9967, "nodeType": "ImportDirective", - "scope": 7280, - "sourceUnit": 7687, - "src": "51:29:23", + "scope": 10015, + "sourceUnit": 1399, + "src": "51:41:36", "symbolAliases": [], "unitAlias": "" }, @@ -332,85 +304,59 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 7223, + "id": 9968, "name": "ISymbols", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7308, - "src": "101:8:23", + "referencedDeclaration": 10043, + "src": "113:8:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISymbols_$7308", + "typeIdentifier": "t_contract$_ISymbols_$10043", "typeString": "contract ISymbols" } }, - "id": 7224, + "id": 9969, "nodeType": "InheritanceSpecifier", - "src": "101:8:23" + "src": "113:8:36" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 7225, + "id": 9970, "name": "IPricerRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7686, - "src": "111:11:23", + "referencedDeclaration": 1398, + "src": "123:11:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_IPricerRole_$7686", + "typeIdentifier": "t_contract$_IPricerRole_$1398", "typeString": "contract IPricerRole" } }, - "id": 7226, + "id": 9971, "nodeType": "InheritanceSpecifier", - "src": "111:11:23" + "src": "123:11:36" } ], "contractDependencies": [ - 7308, - 7686 + 1398, + 10043 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 7279, + "id": 10014, "linearizedBaseContracts": [ - 7279, - 7686, - 7308 + 10014, + 1398, + 10043 ], "name": "IRates", "nodeType": "ContractDefinition", "nodes": [ - { - "constant": false, - "id": 7228, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 7279, - "src": "129:20:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7227, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "129:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, { "body": null, "documentation": null, - "id": 7235, + "id": 9978, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -418,16 +364,16 @@ "name": "addSymbolWithTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7233, + "id": 9976, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7230, + "id": 9973, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7235, - "src": "191:14:23", + "scope": 9978, + "src": "176:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -435,10 +381,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7229, + "id": 9972, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "191:7:23", + "src": "176:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -449,11 +395,11 @@ }, { "constant": false, - "id": 7232, + "id": 9975, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 7235, - "src": "207:16:23", + "scope": 9978, + "src": "192:16:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -461,10 +407,10 @@ "typeString": "address" }, "typeName": { - "id": 7231, + "id": 9974, "name": "address", "nodeType": "ElementaryTypeName", - "src": "207:7:23", + "src": "192:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -474,17 +420,17 @@ "visibility": "internal" } ], - "src": "190:34:23" + "src": "175:34:36" }, "payable": false, "returnParameters": { - "id": 7234, + "id": 9977, "nodeType": "ParameterList", "parameters": [], - "src": "231:0:23" + "src": "216:0:36" }, - "scope": 7279, - "src": "156:76:23", + "scope": 10014, + "src": "141:76:36", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -492,7 +438,7 @@ { "body": null, "documentation": null, - "id": 7242, + "id": 9985, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -500,16 +446,16 @@ "name": "setTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7240, + "id": 9983, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7237, + "id": 9980, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7242, - "src": "263:14:23", + "scope": 9985, + "src": "248:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -517,10 +463,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7236, + "id": 9979, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "263:7:23", + "src": "248:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -531,11 +477,11 @@ }, { "constant": false, - "id": 7239, + "id": 9982, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 7242, - "src": "279:16:23", + "scope": 9985, + "src": "264:16:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -543,10 +489,10 @@ "typeString": "address" }, "typeName": { - "id": 7238, + "id": 9981, "name": "address", "nodeType": "ElementaryTypeName", - "src": "279:7:23", + "src": "264:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -556,17 +502,17 @@ "visibility": "internal" } ], - "src": "262:34:23" + "src": "247:34:36" }, "payable": false, "returnParameters": { - "id": 7241, + "id": 9984, "nodeType": "ParameterList", "parameters": [], - "src": "303:0:23" + "src": "288:0:36" }, - "scope": 7279, - "src": "238:66:23", + "scope": 10014, + "src": "223:66:36", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -574,7 +520,7 @@ { "body": null, "documentation": null, - "id": 7249, + "id": 9992, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -582,16 +528,16 @@ "name": "getTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7245, + "id": 9988, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7244, + "id": 9987, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7249, - "src": "335:14:23", + "scope": 9992, + "src": "320:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -599,10 +545,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7243, + "id": 9986, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "335:7:23", + "src": "320:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -612,20 +558,20 @@ "visibility": "internal" } ], - "src": "334:16:23" + "src": "319:16:36" }, "payable": false, "returnParameters": { - "id": 7248, + "id": 9991, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7247, + "id": 9990, "name": "", "nodeType": "VariableDeclaration", - "scope": 7249, - "src": "372:7:23", + "scope": 9992, + "src": "357:7:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -633,10 +579,10 @@ "typeString": "address" }, "typeName": { - "id": 7246, + "id": 9989, "name": "address", "nodeType": "ElementaryTypeName", - "src": "372:7:23", + "src": "357:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -646,10 +592,10 @@ "visibility": "internal" } ], - "src": "371:9:23" + "src": "356:9:36" }, - "scope": 7279, - "src": "310:71:23", + "scope": 10014, + "src": "295:71:36", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -657,7 +603,7 @@ { "body": null, "documentation": null, - "id": 7256, + "id": 9999, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -665,16 +611,16 @@ "name": "isToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 7252, + "id": 9995, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7251, + "id": 9994, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7256, - "src": "404:14:23", + "scope": 9999, + "src": "389:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -682,10 +628,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7250, + "id": 9993, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "404:7:23", + "src": "389:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -695,20 +641,20 @@ "visibility": "internal" } ], - "src": "403:16:23" + "src": "388:16:36" }, "payable": false, "returnParameters": { - "id": 7255, + "id": 9998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7254, + "id": 9997, "name": "", "nodeType": "VariableDeclaration", - "scope": 7256, - "src": "441:4:23", + "scope": 9999, + "src": "426:4:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -716,10 +662,10 @@ "typeString": "bool" }, "typeName": { - "id": 7253, + "id": 9996, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "441:4:23", + "src": "426:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -729,10 +675,10 @@ "visibility": "internal" } ], - "src": "440:6:23" + "src": "425:6:36" }, - "scope": 7279, - "src": "387:60:23", + "scope": 10014, + "src": "372:60:36", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -740,7 +686,7 @@ { "body": null, "documentation": null, - "id": 7263, + "id": 10006, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -748,16 +694,16 @@ "name": "get", "nodeType": "FunctionDefinition", "parameters": { - "id": 7259, + "id": 10002, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7258, + "id": 10001, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7263, - "src": "466:14:23", + "scope": 10006, + "src": "451:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -765,10 +711,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7257, + "id": 10000, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "466:7:23", + "src": "451:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -778,20 +724,20 @@ "visibility": "internal" } ], - "src": "465:16:23" + "src": "450:16:36" }, "payable": false, "returnParameters": { - "id": 7262, + "id": 10005, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7261, + "id": 10004, "name": "", "nodeType": "VariableDeclaration", - "scope": 7263, - "src": "503:4:23", + "scope": 10006, + "src": "488:4:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -799,10 +745,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7260, + "id": 10003, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "503:4:23", + "src": "488:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -812,10 +758,10 @@ "visibility": "internal" } ], - "src": "502:6:23" + "src": "487:6:36" }, - "scope": 7279, - "src": "453:56:23", + "scope": 10014, + "src": "438:56:36", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -823,7 +769,7 @@ { "body": null, "documentation": null, - "id": 7270, + "id": 10013, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -831,16 +777,16 @@ "name": "set", "nodeType": "FunctionDefinition", "parameters": { - "id": 7268, + "id": 10011, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7265, + "id": 10008, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7270, - "src": "528:14:23", + "scope": 10013, + "src": "513:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -848,10 +794,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7264, + "id": 10007, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "528:7:23", + "src": "513:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -862,11 +808,11 @@ }, { "constant": false, - "id": 7267, + "id": 10010, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 7270, - "src": "544:9:23", + "scope": 10013, + "src": "529:9:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -874,10 +820,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7266, + "id": 10009, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "544:4:23", + "src": "529:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -887,125 +833,40 @@ "visibility": "internal" } ], - "src": "527:27:23" - }, - "payable": false, - "returnParameters": { - "id": 7269, - "nodeType": "ParameterList", - "parameters": [], - "src": "561:0:23" - }, - "scope": 7279, - "src": "515:47:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 7273, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "renounceOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7271, - "nodeType": "ParameterList", - "parameters": [], - "src": "594:2:23" + "src": "512:27:36" }, "payable": false, "returnParameters": { - "id": 7272, + "id": 10012, "nodeType": "ParameterList", "parameters": [], - "src": "603:0:23" + "src": "546:0:36" }, - "scope": 7279, - "src": "568:36:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 7278, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7276, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7275, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 7278, - "src": "637:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7274, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "637:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "636:19:23" - }, - "payable": false, - "returnParameters": { - "id": 7277, - "nodeType": "ParameterList", - "parameters": [], - "src": "662:0:23" - }, - "scope": 7279, - "src": "610:53:23", + "scope": 10014, + "src": "500:47:36", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 7280, - "src": "82:583:23" + "scope": 10015, + "src": "94:455:36" } ], - "src": "0:666:23" + "src": "0:550:36" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "exportedSymbols": { "IRates": [ - 7279 + 10014 ] }, - "id": 7280, + "id": 10015, "nodeType": "SourceUnit", "nodes": [ { - "id": 7220, + "id": 9965, "literals": [ "solidity", "^", @@ -1013,27 +874,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:23" + "src": "0:24:36" }, { "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", "file": "./ISymbols.sol", - "id": 7221, + "id": 9966, "nodeType": "ImportDirective", - "scope": 7280, - "sourceUnit": 7309, - "src": "26:24:23", + "scope": 10015, + "sourceUnit": 10044, + "src": "26:24:36", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", - "file": "./roles/IPricer.sol", - "id": 7222, + "absolutePath": "/home/circleci/code/contracts/access/roles/IPricerRole.sol", + "file": "../access/roles/IPricerRole.sol", + "id": 9967, "nodeType": "ImportDirective", - "scope": 7280, - "sourceUnit": 7687, - "src": "51:29:23", + "scope": 10015, + "sourceUnit": 1399, + "src": "51:41:36", "symbolAliases": [], "unitAlias": "" }, @@ -1043,85 +904,59 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 7223, + "id": 9968, "name": "ISymbols", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7308, - "src": "101:8:23", + "referencedDeclaration": 10043, + "src": "113:8:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISymbols_$7308", + "typeIdentifier": "t_contract$_ISymbols_$10043", "typeString": "contract ISymbols" } }, - "id": 7224, + "id": 9969, "nodeType": "InheritanceSpecifier", - "src": "101:8:23" + "src": "113:8:36" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 7225, + "id": 9970, "name": "IPricerRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7686, - "src": "111:11:23", + "referencedDeclaration": 1398, + "src": "123:11:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_IPricerRole_$7686", + "typeIdentifier": "t_contract$_IPricerRole_$1398", "typeString": "contract IPricerRole" } }, - "id": 7226, + "id": 9971, "nodeType": "InheritanceSpecifier", - "src": "111:11:23" + "src": "123:11:36" } ], "contractDependencies": [ - 7308, - 7686 + 1398, + 10043 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 7279, + "id": 10014, "linearizedBaseContracts": [ - 7279, - 7686, - 7308 + 10014, + 1398, + 10043 ], "name": "IRates", "nodeType": "ContractDefinition", "nodes": [ - { - "constant": false, - "id": 7228, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 7279, - "src": "129:20:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7227, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "129:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, { "body": null, "documentation": null, - "id": 7235, + "id": 9978, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1129,16 +964,16 @@ "name": "addSymbolWithTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7233, + "id": 9976, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7230, + "id": 9973, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7235, - "src": "191:14:23", + "scope": 9978, + "src": "176:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1146,10 +981,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7229, + "id": 9972, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "191:7:23", + "src": "176:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1160,11 +995,11 @@ }, { "constant": false, - "id": 7232, + "id": 9975, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 7235, - "src": "207:16:23", + "scope": 9978, + "src": "192:16:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1172,10 +1007,10 @@ "typeString": "address" }, "typeName": { - "id": 7231, + "id": 9974, "name": "address", "nodeType": "ElementaryTypeName", - "src": "207:7:23", + "src": "192:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1185,17 +1020,17 @@ "visibility": "internal" } ], - "src": "190:34:23" + "src": "175:34:36" }, "payable": false, "returnParameters": { - "id": 7234, + "id": 9977, "nodeType": "ParameterList", "parameters": [], - "src": "231:0:23" + "src": "216:0:36" }, - "scope": 7279, - "src": "156:76:23", + "scope": 10014, + "src": "141:76:36", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1203,7 +1038,7 @@ { "body": null, "documentation": null, - "id": 7242, + "id": 9985, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1211,16 +1046,16 @@ "name": "setTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7240, + "id": 9983, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7237, + "id": 9980, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7242, - "src": "263:14:23", + "scope": 9985, + "src": "248:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1228,10 +1063,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7236, + "id": 9979, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "263:7:23", + "src": "248:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1242,11 +1077,11 @@ }, { "constant": false, - "id": 7239, + "id": 9982, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 7242, - "src": "279:16:23", + "scope": 9985, + "src": "264:16:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1254,10 +1089,10 @@ "typeString": "address" }, "typeName": { - "id": 7238, + "id": 9981, "name": "address", "nodeType": "ElementaryTypeName", - "src": "279:7:23", + "src": "264:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1267,17 +1102,17 @@ "visibility": "internal" } ], - "src": "262:34:23" + "src": "247:34:36" }, "payable": false, "returnParameters": { - "id": 7241, + "id": 9984, "nodeType": "ParameterList", "parameters": [], - "src": "303:0:23" + "src": "288:0:36" }, - "scope": 7279, - "src": "238:66:23", + "scope": 10014, + "src": "223:66:36", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1285,7 +1120,7 @@ { "body": null, "documentation": null, - "id": 7249, + "id": 9992, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1293,16 +1128,16 @@ "name": "getTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7245, + "id": 9988, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7244, + "id": 9987, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7249, - "src": "335:14:23", + "scope": 9992, + "src": "320:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1310,10 +1145,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7243, + "id": 9986, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "335:7:23", + "src": "320:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1323,20 +1158,20 @@ "visibility": "internal" } ], - "src": "334:16:23" + "src": "319:16:36" }, "payable": false, "returnParameters": { - "id": 7248, + "id": 9991, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7247, + "id": 9990, "name": "", "nodeType": "VariableDeclaration", - "scope": 7249, - "src": "372:7:23", + "scope": 9992, + "src": "357:7:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1344,10 +1179,10 @@ "typeString": "address" }, "typeName": { - "id": 7246, + "id": 9989, "name": "address", "nodeType": "ElementaryTypeName", - "src": "372:7:23", + "src": "357:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1357,10 +1192,10 @@ "visibility": "internal" } ], - "src": "371:9:23" + "src": "356:9:36" }, - "scope": 7279, - "src": "310:71:23", + "scope": 10014, + "src": "295:71:36", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1368,7 +1203,7 @@ { "body": null, "documentation": null, - "id": 7256, + "id": 9999, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1376,16 +1211,16 @@ "name": "isToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 7252, + "id": 9995, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7251, + "id": 9994, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7256, - "src": "404:14:23", + "scope": 9999, + "src": "389:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1393,10 +1228,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7250, + "id": 9993, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "404:7:23", + "src": "389:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1406,20 +1241,20 @@ "visibility": "internal" } ], - "src": "403:16:23" + "src": "388:16:36" }, "payable": false, "returnParameters": { - "id": 7255, + "id": 9998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7254, + "id": 9997, "name": "", "nodeType": "VariableDeclaration", - "scope": 7256, - "src": "441:4:23", + "scope": 9999, + "src": "426:4:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1427,10 +1262,10 @@ "typeString": "bool" }, "typeName": { - "id": 7253, + "id": 9996, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "441:4:23", + "src": "426:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1440,10 +1275,10 @@ "visibility": "internal" } ], - "src": "440:6:23" + "src": "425:6:36" }, - "scope": 7279, - "src": "387:60:23", + "scope": 10014, + "src": "372:60:36", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1451,7 +1286,7 @@ { "body": null, "documentation": null, - "id": 7263, + "id": 10006, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1459,16 +1294,16 @@ "name": "get", "nodeType": "FunctionDefinition", "parameters": { - "id": 7259, + "id": 10002, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7258, + "id": 10001, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7263, - "src": "466:14:23", + "scope": 10006, + "src": "451:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1476,10 +1311,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7257, + "id": 10000, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "466:7:23", + "src": "451:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1489,20 +1324,20 @@ "visibility": "internal" } ], - "src": "465:16:23" + "src": "450:16:36" }, "payable": false, "returnParameters": { - "id": 7262, + "id": 10005, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7261, + "id": 10004, "name": "", "nodeType": "VariableDeclaration", - "scope": 7263, - "src": "503:4:23", + "scope": 10006, + "src": "488:4:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1510,10 +1345,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7260, + "id": 10003, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "503:4:23", + "src": "488:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1523,10 +1358,10 @@ "visibility": "internal" } ], - "src": "502:6:23" + "src": "487:6:36" }, - "scope": 7279, - "src": "453:56:23", + "scope": 10014, + "src": "438:56:36", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1534,7 +1369,7 @@ { "body": null, "documentation": null, - "id": 7270, + "id": 10013, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1542,16 +1377,16 @@ "name": "set", "nodeType": "FunctionDefinition", "parameters": { - "id": 7268, + "id": 10011, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7265, + "id": 10008, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7270, - "src": "528:14:23", + "scope": 10013, + "src": "513:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1559,10 +1394,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7264, + "id": 10007, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "528:7:23", + "src": "513:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1573,11 +1408,11 @@ }, { "constant": false, - "id": 7267, + "id": 10010, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 7270, - "src": "544:9:23", + "scope": 10013, + "src": "529:9:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1585,10 +1420,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7266, + "id": 10009, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "544:4:23", + "src": "529:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1598,112 +1433,27 @@ "visibility": "internal" } ], - "src": "527:27:23" - }, - "payable": false, - "returnParameters": { - "id": 7269, - "nodeType": "ParameterList", - "parameters": [], - "src": "561:0:23" - }, - "scope": 7279, - "src": "515:47:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 7273, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "renounceOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7271, - "nodeType": "ParameterList", - "parameters": [], - "src": "594:2:23" - }, - "payable": false, - "returnParameters": { - "id": 7272, - "nodeType": "ParameterList", - "parameters": [], - "src": "603:0:23" - }, - "scope": 7279, - "src": "568:36:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 7278, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7276, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7275, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 7278, - "src": "637:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7274, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "637:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "636:19:23" + "src": "512:27:36" }, "payable": false, "returnParameters": { - "id": 7277, + "id": 10012, "nodeType": "ParameterList", "parameters": [], - "src": "662:0:23" + "src": "546:0:36" }, - "scope": 7279, - "src": "610:53:23", + "scope": 10014, + "src": "500:47:36", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 7280, - "src": "82:583:23" + "scope": 10015, + "src": "94:455:36" } ], - "src": "0:666:23" + "src": "0:550:36" }, "compiler": { "name": "solc", @@ -1711,5 +1461,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.318Z" + "updatedAt": "2018-12-06T13:14:33.204Z" } \ No newline at end of file diff --git a/build/contracts/ISymbols.json b/build/contracts/ISymbols.json index c32ded8f..fbb9da6d 100644 --- a/build/contracts/ISymbols.json +++ b/build/contracts/ISymbols.json @@ -92,14 +92,14 @@ "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", "exportedSymbols": { "ISymbols": [ - 7308 + 10043 ] }, - "id": 7309, + "id": 10044, "nodeType": "SourceUnit", "nodes": [ { - "id": 7281, + "id": 10016, "literals": [ "solidity", "^", @@ -107,7 +107,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:24" + "src": "0:24:37" }, { "baseContracts": [], @@ -115,20 +115,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 7308, + "id": 10043, "linearizedBaseContracts": [ - 7308 + 10043 ], "name": "ISymbols", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 7284, + "id": 10019, "name": "symbolsList", "nodeType": "VariableDeclaration", - "scope": 7308, - "src": "50:28:24", + "scope": 10043, + "src": "50:28:37", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -137,19 +137,19 @@ }, "typeName": { "baseType": { - "id": 7282, + "id": 10017, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "50:7:24", + "src": "50:7:37", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 7283, + "id": 10018, "length": null, "nodeType": "ArrayTypeName", - "src": "50:9:24", + "src": "50:9:37", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -161,7 +161,7 @@ { "body": null, "documentation": null, - "id": 7289, + "id": 10024, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -169,16 +169,16 @@ "name": "addSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7287, + "id": 10022, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7286, + "id": 10021, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7289, - "src": "104:14:24", + "scope": 10024, + "src": "104:14:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -186,10 +186,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7285, + "id": 10020, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "104:7:24", + "src": "104:7:37", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -199,17 +199,17 @@ "visibility": "internal" } ], - "src": "103:16:24" + "src": "103:16:37" }, "payable": false, "returnParameters": { - "id": 7288, + "id": 10023, "nodeType": "ParameterList", "parameters": [], - "src": "126:0:24" + "src": "126:0:37" }, - "scope": 7308, - "src": "85:42:24", + "scope": 10043, + "src": "85:42:37", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -217,7 +217,7 @@ { "body": null, "documentation": null, - "id": 7294, + "id": 10029, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -225,16 +225,16 @@ "name": "removeSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7292, + "id": 10027, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7291, + "id": 10026, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7294, - "src": "155:14:24", + "scope": 10029, + "src": "155:14:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -242,10 +242,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7290, + "id": 10025, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "155:7:24", + "src": "155:7:37", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -255,17 +255,17 @@ "visibility": "internal" } ], - "src": "154:16:24" + "src": "154:16:37" }, "payable": false, "returnParameters": { - "id": 7293, + "id": 10028, "nodeType": "ParameterList", "parameters": [], - "src": "177:0:24" + "src": "177:0:37" }, - "scope": 7308, - "src": "133:45:24", + "scope": 10043, + "src": "133:45:37", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -273,7 +273,7 @@ { "body": null, "documentation": null, - "id": 7301, + "id": 10036, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -281,16 +281,16 @@ "name": "hasSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7297, + "id": 10032, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7296, + "id": 10031, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7301, - "src": "203:14:24", + "scope": 10036, + "src": "203:14:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -298,10 +298,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7295, + "id": 10030, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "203:7:24", + "src": "203:7:37", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -311,20 +311,20 @@ "visibility": "internal" } ], - "src": "202:16:24" + "src": "202:16:37" }, "payable": false, "returnParameters": { - "id": 7300, + "id": 10035, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7299, + "id": 10034, "name": "", "nodeType": "VariableDeclaration", - "scope": 7301, - "src": "240:4:24", + "scope": 10036, + "src": "240:4:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -332,10 +332,10 @@ "typeString": "bool" }, "typeName": { - "id": 7298, + "id": 10033, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "240:4:24", + "src": "240:4:37", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -345,10 +345,10 @@ "visibility": "internal" } ], - "src": "239:6:24" + "src": "239:6:37" }, - "scope": 7308, - "src": "184:62:24", + "scope": 10043, + "src": "184:62:37", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -356,7 +356,7 @@ { "body": null, "documentation": null, - "id": 7307, + "id": 10042, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -364,23 +364,23 @@ "name": "getSymbolsList", "nodeType": "FunctionDefinition", "parameters": { - "id": 7302, + "id": 10037, "nodeType": "ParameterList", "parameters": [], - "src": "275:2:24" + "src": "275:2:37" }, "payable": false, "returnParameters": { - "id": 7306, + "id": 10041, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7305, + "id": 10040, "name": "", "nodeType": "VariableDeclaration", - "scope": 7307, - "src": "299:9:24", + "scope": 10042, + "src": "299:9:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -389,19 +389,19 @@ }, "typeName": { "baseType": { - "id": 7303, + "id": 10038, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "299:7:24", + "src": "299:7:37", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 7304, + "id": 10039, "length": null, "nodeType": "ArrayTypeName", - "src": "299:9:24", + "src": "299:9:37", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -411,33 +411,33 @@ "visibility": "internal" } ], - "src": "298:11:24" + "src": "298:11:37" }, - "scope": 7308, - "src": "252:58:24", + "scope": 10043, + "src": "252:58:37", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 7309, - "src": "26:286:24" + "scope": 10044, + "src": "26:286:37" } ], - "src": "0:313:24" + "src": "0:313:37" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", "exportedSymbols": { "ISymbols": [ - 7308 + 10043 ] }, - "id": 7309, + "id": 10044, "nodeType": "SourceUnit", "nodes": [ { - "id": 7281, + "id": 10016, "literals": [ "solidity", "^", @@ -445,7 +445,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:24" + "src": "0:24:37" }, { "baseContracts": [], @@ -453,20 +453,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 7308, + "id": 10043, "linearizedBaseContracts": [ - 7308 + 10043 ], "name": "ISymbols", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 7284, + "id": 10019, "name": "symbolsList", "nodeType": "VariableDeclaration", - "scope": 7308, - "src": "50:28:24", + "scope": 10043, + "src": "50:28:37", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -475,19 +475,19 @@ }, "typeName": { "baseType": { - "id": 7282, + "id": 10017, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "50:7:24", + "src": "50:7:37", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 7283, + "id": 10018, "length": null, "nodeType": "ArrayTypeName", - "src": "50:9:24", + "src": "50:9:37", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -499,7 +499,7 @@ { "body": null, "documentation": null, - "id": 7289, + "id": 10024, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -507,16 +507,16 @@ "name": "addSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7287, + "id": 10022, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7286, + "id": 10021, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7289, - "src": "104:14:24", + "scope": 10024, + "src": "104:14:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -524,10 +524,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7285, + "id": 10020, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "104:7:24", + "src": "104:7:37", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -537,17 +537,17 @@ "visibility": "internal" } ], - "src": "103:16:24" + "src": "103:16:37" }, "payable": false, "returnParameters": { - "id": 7288, + "id": 10023, "nodeType": "ParameterList", "parameters": [], - "src": "126:0:24" + "src": "126:0:37" }, - "scope": 7308, - "src": "85:42:24", + "scope": 10043, + "src": "85:42:37", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -555,7 +555,7 @@ { "body": null, "documentation": null, - "id": 7294, + "id": 10029, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -563,16 +563,16 @@ "name": "removeSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7292, + "id": 10027, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7291, + "id": 10026, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7294, - "src": "155:14:24", + "scope": 10029, + "src": "155:14:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -580,10 +580,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7290, + "id": 10025, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "155:7:24", + "src": "155:7:37", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -593,17 +593,17 @@ "visibility": "internal" } ], - "src": "154:16:24" + "src": "154:16:37" }, "payable": false, "returnParameters": { - "id": 7293, + "id": 10028, "nodeType": "ParameterList", "parameters": [], - "src": "177:0:24" + "src": "177:0:37" }, - "scope": 7308, - "src": "133:45:24", + "scope": 10043, + "src": "133:45:37", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -611,7 +611,7 @@ { "body": null, "documentation": null, - "id": 7301, + "id": 10036, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -619,16 +619,16 @@ "name": "hasSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7297, + "id": 10032, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7296, + "id": 10031, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7301, - "src": "203:14:24", + "scope": 10036, + "src": "203:14:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -636,10 +636,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7295, + "id": 10030, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "203:7:24", + "src": "203:7:37", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -649,20 +649,20 @@ "visibility": "internal" } ], - "src": "202:16:24" + "src": "202:16:37" }, "payable": false, "returnParameters": { - "id": 7300, + "id": 10035, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7299, + "id": 10034, "name": "", "nodeType": "VariableDeclaration", - "scope": 7301, - "src": "240:4:24", + "scope": 10036, + "src": "240:4:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -670,10 +670,10 @@ "typeString": "bool" }, "typeName": { - "id": 7298, + "id": 10033, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "240:4:24", + "src": "240:4:37", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -683,10 +683,10 @@ "visibility": "internal" } ], - "src": "239:6:24" + "src": "239:6:37" }, - "scope": 7308, - "src": "184:62:24", + "scope": 10043, + "src": "184:62:37", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -694,7 +694,7 @@ { "body": null, "documentation": null, - "id": 7307, + "id": 10042, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -702,23 +702,23 @@ "name": "getSymbolsList", "nodeType": "FunctionDefinition", "parameters": { - "id": 7302, + "id": 10037, "nodeType": "ParameterList", "parameters": [], - "src": "275:2:24" + "src": "275:2:37" }, "payable": false, "returnParameters": { - "id": 7306, + "id": 10041, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7305, + "id": 10040, "name": "", "nodeType": "VariableDeclaration", - "scope": 7307, - "src": "299:9:24", + "scope": 10042, + "src": "299:9:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -727,19 +727,19 @@ }, "typeName": { "baseType": { - "id": 7303, + "id": 10038, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "299:7:24", + "src": "299:7:37", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 7304, + "id": 10039, "length": null, "nodeType": "ArrayTypeName", - "src": "299:9:24", + "src": "299:9:37", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -749,20 +749,20 @@ "visibility": "internal" } ], - "src": "298:11:24" + "src": "298:11:37" }, - "scope": 7308, - "src": "252:58:24", + "scope": 10043, + "src": "252:58:37", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 7309, - "src": "26:286:24" + "scope": 10044, + "src": "26:286:37" } ], - "src": "0:313:24" + "src": "0:313:37" }, "compiler": { "name": "solc", @@ -770,5 +770,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.318Z" + "updatedAt": "2018-12-06T13:14:33.205Z" } \ No newline at end of file diff --git a/build/contracts/ITokenExchange.json b/build/contracts/ITokenExchange.json index c3cf42e1..0c0fa234 100644 --- a/build/contracts/ITokenExchange.json +++ b/build/contracts/ITokenExchange.json @@ -51,20 +51,20 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\ncontract ITokenExchange {\n function approve(ERC20 token, address spender, uint amount) external returns (bool);\n\n function exchange(ERC20 fromToken, uint amount) external;\n}\n", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\n\ncontract ITokenExchange {\n function approve(IERC20 token, address spender, uint amount) external returns (bool);\n\n function exchange(IERC20 fromToken, uint amount) external;\n}\n", "sourcePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchange.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchange.sol", "exportedSymbols": { "ITokenExchange": [ - 9185 + 11481 ] }, - "id": 9186, + "id": 11482, "nodeType": "SourceUnit", "nodes": [ { - "id": 9165, + "id": 11461, "literals": [ "solidity", "^", @@ -72,16 +72,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:33" + "src": "0:24:44" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 9166, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 11462, "nodeType": "ImportDirective", - "scope": 9186, - "sourceUnit": 10212, - "src": "26:63:33", + "scope": 11482, + "sourceUnit": 13084, + "src": "26:64:44", "symbolAliases": [], "unitAlias": "" }, @@ -91,9 +91,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 9185, + "id": 11481, "linearizedBaseContracts": [ - 9185 + 11481 ], "name": "ITokenExchange", "nodeType": "ContractDefinition", @@ -101,7 +101,7 @@ { "body": null, "documentation": null, - "id": 9177, + "id": 11473, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -109,32 +109,32 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 9173, + "id": 11469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9168, + "id": 11464, "name": "token", "nodeType": "VariableDeclaration", - "scope": 9177, - "src": "138:11:33", + "scope": 11473, + "src": "139:12:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 9167, - "name": "ERC20", + "id": 11463, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "138:5:33", + "referencedDeclaration": 13083, + "src": "139:6:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -142,11 +142,11 @@ }, { "constant": false, - "id": 9170, + "id": 11466, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 9177, - "src": "151:15:33", + "scope": 11473, + "src": "153:15:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -154,10 +154,10 @@ "typeString": "address" }, "typeName": { - "id": 9169, + "id": 11465, "name": "address", "nodeType": "ElementaryTypeName", - "src": "151:7:33", + "src": "153:7:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -168,11 +168,11 @@ }, { "constant": false, - "id": 9172, + "id": 11468, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 9177, - "src": "168:11:33", + "scope": 11473, + "src": "170:11:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -180,10 +180,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9171, + "id": 11467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "168:4:33", + "src": "170:4:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -193,20 +193,20 @@ "visibility": "internal" } ], - "src": "137:43:33" + "src": "138:44:44" }, "payable": false, "returnParameters": { - "id": 9176, + "id": 11472, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9175, + "id": 11471, "name": "", "nodeType": "VariableDeclaration", - "scope": 9177, - "src": "199:4:33", + "scope": 11473, + "src": "201:4:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -214,10 +214,10 @@ "typeString": "bool" }, "typeName": { - "id": 9174, + "id": 11470, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "199:4:33", + "src": "201:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -227,10 +227,10 @@ "visibility": "internal" } ], - "src": "198:6:33" + "src": "200:6:44" }, - "scope": 9185, - "src": "121:84:33", + "scope": 11481, + "src": "122:85:44", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -238,7 +238,7 @@ { "body": null, "documentation": null, - "id": 9184, + "id": 11480, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -246,32 +246,32 @@ "name": "exchange", "nodeType": "FunctionDefinition", "parameters": { - "id": 9182, + "id": 11478, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9179, + "id": 11475, "name": "fromToken", "nodeType": "VariableDeclaration", - "scope": 9184, - "src": "229:15:33", + "scope": 11480, + "src": "231:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 9178, - "name": "ERC20", + "id": 11474, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "229:5:33", + "referencedDeclaration": 13083, + "src": "231:6:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -279,11 +279,11 @@ }, { "constant": false, - "id": 9181, + "id": 11477, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 9184, - "src": "246:11:33", + "scope": 11480, + "src": "249:11:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -291,10 +291,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9180, + "id": 11476, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "246:4:33", + "src": "249:4:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -304,40 +304,40 @@ "visibility": "internal" } ], - "src": "228:30:33" + "src": "230:31:44" }, "payable": false, "returnParameters": { - "id": 9183, + "id": 11479, "nodeType": "ParameterList", "parameters": [], - "src": "267:0:33" + "src": "270:0:44" }, - "scope": 9185, - "src": "211:57:33", + "scope": 11481, + "src": "213:58:44", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 9186, - "src": "91:179:33" + "scope": 11482, + "src": "92:181:44" } ], - "src": "0:271:33" + "src": "0:274:44" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchange.sol", "exportedSymbols": { "ITokenExchange": [ - 9185 + 11481 ] }, - "id": 9186, + "id": 11482, "nodeType": "SourceUnit", "nodes": [ { - "id": 9165, + "id": 11461, "literals": [ "solidity", "^", @@ -345,16 +345,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:33" + "src": "0:24:44" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 9166, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 11462, "nodeType": "ImportDirective", - "scope": 9186, - "sourceUnit": 10212, - "src": "26:63:33", + "scope": 11482, + "sourceUnit": 13084, + "src": "26:64:44", "symbolAliases": [], "unitAlias": "" }, @@ -364,9 +364,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 9185, + "id": 11481, "linearizedBaseContracts": [ - 9185 + 11481 ], "name": "ITokenExchange", "nodeType": "ContractDefinition", @@ -374,7 +374,7 @@ { "body": null, "documentation": null, - "id": 9177, + "id": 11473, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -382,32 +382,32 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 9173, + "id": 11469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9168, + "id": 11464, "name": "token", "nodeType": "VariableDeclaration", - "scope": 9177, - "src": "138:11:33", + "scope": 11473, + "src": "139:12:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 9167, - "name": "ERC20", + "id": 11463, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "138:5:33", + "referencedDeclaration": 13083, + "src": "139:6:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -415,11 +415,11 @@ }, { "constant": false, - "id": 9170, + "id": 11466, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 9177, - "src": "151:15:33", + "scope": 11473, + "src": "153:15:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -427,10 +427,10 @@ "typeString": "address" }, "typeName": { - "id": 9169, + "id": 11465, "name": "address", "nodeType": "ElementaryTypeName", - "src": "151:7:33", + "src": "153:7:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -441,11 +441,11 @@ }, { "constant": false, - "id": 9172, + "id": 11468, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 9177, - "src": "168:11:33", + "scope": 11473, + "src": "170:11:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -453,10 +453,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9171, + "id": 11467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "168:4:33", + "src": "170:4:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -466,20 +466,20 @@ "visibility": "internal" } ], - "src": "137:43:33" + "src": "138:44:44" }, "payable": false, "returnParameters": { - "id": 9176, + "id": 11472, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9175, + "id": 11471, "name": "", "nodeType": "VariableDeclaration", - "scope": 9177, - "src": "199:4:33", + "scope": 11473, + "src": "201:4:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -487,10 +487,10 @@ "typeString": "bool" }, "typeName": { - "id": 9174, + "id": 11470, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "199:4:33", + "src": "201:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -500,10 +500,10 @@ "visibility": "internal" } ], - "src": "198:6:33" + "src": "200:6:44" }, - "scope": 9185, - "src": "121:84:33", + "scope": 11481, + "src": "122:85:44", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -511,7 +511,7 @@ { "body": null, "documentation": null, - "id": 9184, + "id": 11480, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -519,32 +519,32 @@ "name": "exchange", "nodeType": "FunctionDefinition", "parameters": { - "id": 9182, + "id": 11478, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9179, + "id": 11475, "name": "fromToken", "nodeType": "VariableDeclaration", - "scope": 9184, - "src": "229:15:33", + "scope": 11480, + "src": "231:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 9178, - "name": "ERC20", + "id": 11474, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "229:5:33", + "referencedDeclaration": 13083, + "src": "231:6:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -552,11 +552,11 @@ }, { "constant": false, - "id": 9181, + "id": 11477, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 9184, - "src": "246:11:33", + "scope": 11480, + "src": "249:11:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -564,10 +564,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9180, + "id": 11476, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "246:4:33", + "src": "249:4:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -577,27 +577,27 @@ "visibility": "internal" } ], - "src": "228:30:33" + "src": "230:31:44" }, "payable": false, "returnParameters": { - "id": 9183, + "id": 11479, "nodeType": "ParameterList", "parameters": [], - "src": "267:0:33" + "src": "270:0:44" }, - "scope": 9185, - "src": "211:57:33", + "scope": 11481, + "src": "213:58:44", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 9186, - "src": "91:179:33" + "scope": 11482, + "src": "92:181:44" } ], - "src": "0:271:33" + "src": "0:274:44" }, "compiler": { "name": "solc", @@ -605,5 +605,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.341Z" + "updatedAt": "2018-12-06T13:14:33.225Z" } \ No newline at end of file diff --git a/build/contracts/ITokenExchanger.json b/build/contracts/ITokenExchanger.json index 8c244a45..3076b16c 100644 --- a/build/contracts/ITokenExchanger.json +++ b/build/contracts/ITokenExchanger.json @@ -30,7 +30,7 @@ "name": "getWTokenByToken", "outputs": [ { - "name": "wTokenAddress", + "name": "", "type": "address" } ], @@ -67,7 +67,7 @@ "name": "getTokenByWToken", "outputs": [ { - "name": "tokenAddress", + "name": "", "type": "address" } ], @@ -136,14 +136,14 @@ "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "exportedSymbols": { "ITokenExchanger": [ - 9194 + 11490 ] }, - "id": 9195, + "id": 11491, "nodeType": "SourceUnit", "nodes": [ { - "id": 9187, + "id": 11483, "literals": [ "solidity", "^", @@ -151,27 +151,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:34" + "src": "0:24:45" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchange.sol", "file": "./ITokenExchange.sol", - "id": 9188, + "id": 11484, "nodeType": "ImportDirective", - "scope": 9195, - "sourceUnit": 9186, - "src": "26:30:34", + "scope": 11491, + "sourceUnit": 11482, + "src": "26:30:45", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenLedger.sol", "file": "./ITokenLedger.sol", - "id": 9189, + "id": 11485, "nodeType": "ImportDirective", - "scope": 9195, - "sourceUnit": 9230, - "src": "57:28:34", + "scope": 11491, + "sourceUnit": 11526, + "src": "57:28:45", "symbolAliases": [], "unitAlias": "" }, @@ -181,73 +181,73 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 9190, + "id": 11486, "name": "ITokenExchange", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9185, - "src": "115:14:34", + "referencedDeclaration": 11481, + "src": "115:14:45", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchange_$9185", + "typeIdentifier": "t_contract$_ITokenExchange_$11481", "typeString": "contract ITokenExchange" } }, - "id": 9191, + "id": 11487, "nodeType": "InheritanceSpecifier", - "src": "115:14:34" + "src": "115:14:45" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 9192, + "id": 11488, "name": "ITokenLedger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9229, - "src": "131:12:34", + "referencedDeclaration": 11525, + "src": "131:12:45", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenLedger_$9229", + "typeIdentifier": "t_contract$_ITokenLedger_$11525", "typeString": "contract ITokenLedger" } }, - "id": 9193, + "id": 11489, "nodeType": "InheritanceSpecifier", - "src": "131:12:34" + "src": "131:12:45" } ], "contractDependencies": [ - 9185, - 9229 + 11481, + 11525 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 9194, + "id": 11490, "linearizedBaseContracts": [ - 9194, - 9229, - 9185 + 11490, + 11525, + 11481 ], "name": "ITokenExchanger", "nodeType": "ContractDefinition", "nodes": [], - "scope": 9195, - "src": "87:59:34" + "scope": 11491, + "src": "87:59:45" } ], - "src": "0:147:34" + "src": "0:147:45" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "exportedSymbols": { "ITokenExchanger": [ - 9194 + 11490 ] }, - "id": 9195, + "id": 11491, "nodeType": "SourceUnit", "nodes": [ { - "id": 9187, + "id": 11483, "literals": [ "solidity", "^", @@ -255,27 +255,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:34" + "src": "0:24:45" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchange.sol", "file": "./ITokenExchange.sol", - "id": 9188, + "id": 11484, "nodeType": "ImportDirective", - "scope": 9195, - "sourceUnit": 9186, - "src": "26:30:34", + "scope": 11491, + "sourceUnit": 11482, + "src": "26:30:45", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenLedger.sol", "file": "./ITokenLedger.sol", - "id": 9189, + "id": 11485, "nodeType": "ImportDirective", - "scope": 9195, - "sourceUnit": 9230, - "src": "57:28:34", + "scope": 11491, + "sourceUnit": 11526, + "src": "57:28:45", "symbolAliases": [], "unitAlias": "" }, @@ -285,60 +285,60 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 9190, + "id": 11486, "name": "ITokenExchange", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9185, - "src": "115:14:34", + "referencedDeclaration": 11481, + "src": "115:14:45", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchange_$9185", + "typeIdentifier": "t_contract$_ITokenExchange_$11481", "typeString": "contract ITokenExchange" } }, - "id": 9191, + "id": 11487, "nodeType": "InheritanceSpecifier", - "src": "115:14:34" + "src": "115:14:45" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 9192, + "id": 11488, "name": "ITokenLedger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9229, - "src": "131:12:34", + "referencedDeclaration": 11525, + "src": "131:12:45", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenLedger_$9229", + "typeIdentifier": "t_contract$_ITokenLedger_$11525", "typeString": "contract ITokenLedger" } }, - "id": 9193, + "id": 11489, "nodeType": "InheritanceSpecifier", - "src": "131:12:34" + "src": "131:12:45" } ], "contractDependencies": [ - 9185, - 9229 + 11481, + 11525 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 9194, + "id": 11490, "linearizedBaseContracts": [ - 9194, - 9229, - 9185 + 11490, + 11525, + 11481 ], "name": "ITokenExchanger", "nodeType": "ContractDefinition", "nodes": [], - "scope": 9195, - "src": "87:59:34" + "scope": 11491, + "src": "87:59:45" } ], - "src": "0:147:34" + "src": "0:147:45" }, "compiler": { "name": "solc", @@ -346,5 +346,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.341Z" + "updatedAt": "2018-12-06T13:14:33.229Z" } \ No newline at end of file diff --git a/build/contracts/ITokenLedger.json b/build/contracts/ITokenLedger.json index 1745593d..23268a87 100644 --- a/build/contracts/ITokenLedger.json +++ b/build/contracts/ITokenLedger.json @@ -53,7 +53,7 @@ "name": "getWTokenByToken", "outputs": [ { - "name": "wTokenAddress", + "name": "", "type": "address" } ], @@ -72,7 +72,7 @@ "name": "getTokenByWToken", "outputs": [ { - "name": "tokenAddress", + "name": "", "type": "address" } ], @@ -85,20 +85,20 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"../WToken.sol\";\n\ncontract ITokenLedger {\n function addTokenToListing(ERC20 token, WToken wToken) external;\n\n function hasPair(ERC20 token1, ERC20 token2) public view returns (bool);\n\n function getWTokenByToken(address token) public view returns (WToken wTokenAddress);\n\n function getTokenByWToken(address wToken) public view returns (ERC20 tokenAddress);\n}\n", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"../IWToken.sol\";\n\ncontract ITokenLedger {\n function addTokenToListing(ERC20Detailed token, IWToken wToken) external;\n\n function hasPair(ERC20Detailed token1, ERC20Detailed token2) public view returns (bool);\n\n function getWTokenByToken(address token) public view returns (IWToken);\n\n function getTokenByWToken(address wToken) public view returns (ERC20Detailed);\n}\n", "sourcePath": "/home/circleci/code/contracts/token/exchanger/ITokenLedger.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenLedger.sol", "exportedSymbols": { "ITokenLedger": [ - 9229 + 11525 ] }, - "id": 9230, + "id": 11526, "nodeType": "SourceUnit", "nodes": [ { - "id": 9196, + "id": 11492, "literals": [ "solidity", "^", @@ -106,27 +106,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:35" + "src": "0:24:46" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 9197, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "id": 11493, "nodeType": "ImportDirective", - "scope": 9230, - "sourceUnit": 10212, - "src": "26:63:35", + "scope": 11526, + "sourceUnit": 12987, + "src": "26:71:46", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "../WToken.sol", - "id": 9198, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../IWToken.sol", + "id": 11494, "nodeType": "ImportDirective", - "scope": 9230, - "sourceUnit": 8751, - "src": "90:23:35", + "scope": 11526, + "sourceUnit": 10486, + "src": "98:24:46", "symbolAliases": [], "unitAlias": "" }, @@ -136,9 +136,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 9229, + "id": 11525, "linearizedBaseContracts": [ - 9229 + 11525 ], "name": "ITokenLedger", "nodeType": "ContractDefinition", @@ -146,7 +146,7 @@ { "body": null, "documentation": null, - "id": 9205, + "id": 11501, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -154,32 +154,32 @@ "name": "addTokenToListing", "nodeType": "FunctionDefinition", "parameters": { - "id": 9203, + "id": 11499, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9200, + "id": 11496, "name": "token", "nodeType": "VariableDeclaration", - "scope": 9205, - "src": "170:11:35", + "scope": 11501, + "src": "179:19:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9199, - "name": "ERC20", + "id": 11495, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "170:5:35", + "referencedDeclaration": 12986, + "src": "179:13:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, @@ -187,44 +187,44 @@ }, { "constant": false, - "id": 9202, + "id": 11498, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 9205, - "src": "183:13:35", + "scope": 11501, + "src": "200:14:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 9201, - "name": "WToken", + "id": 11497, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "183:6:35", + "referencedDeclaration": 10485, + "src": "200:7:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "169:28:35" + "src": "178:37:46" }, "payable": false, "returnParameters": { - "id": 9204, + "id": 11500, "nodeType": "ParameterList", "parameters": [], - "src": "206:0:35" + "src": "224:0:46" }, - "scope": 9229, - "src": "143:64:35", + "scope": 11525, + "src": "152:73:46", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -232,7 +232,7 @@ { "body": null, "documentation": null, - "id": 9214, + "id": 11510, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -240,32 +240,32 @@ "name": "hasPair", "nodeType": "FunctionDefinition", "parameters": { - "id": 9210, + "id": 11506, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9207, + "id": 11503, "name": "token1", "nodeType": "VariableDeclaration", - "scope": 9214, - "src": "230:12:35", + "scope": 11510, + "src": "248:20:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9206, - "name": "ERC20", + "id": 11502, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "230:5:35", + "referencedDeclaration": 12986, + "src": "248:13:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, @@ -273,47 +273,47 @@ }, { "constant": false, - "id": 9209, + "id": 11505, "name": "token2", "nodeType": "VariableDeclaration", - "scope": 9214, - "src": "244:12:35", + "scope": 11510, + "src": "270:20:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9208, - "name": "ERC20", + "id": 11504, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "244:5:35", + "referencedDeclaration": 12986, + "src": "270:13:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, "visibility": "internal" } ], - "src": "229:28:35" + "src": "247:44:46" }, "payable": false, "returnParameters": { - "id": 9213, + "id": 11509, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9212, + "id": 11508, "name": "", "nodeType": "VariableDeclaration", - "scope": 9214, - "src": "279:4:35", + "scope": 11510, + "src": "313:4:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -321,10 +321,10 @@ "typeString": "bool" }, "typeName": { - "id": 9211, + "id": 11507, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "279:4:35", + "src": "313:4:46", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -334,10 +334,10 @@ "visibility": "internal" } ], - "src": "278:6:35" + "src": "312:6:46" }, - "scope": 9229, - "src": "213:72:35", + "scope": 11525, + "src": "231:88:46", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -345,7 +345,7 @@ { "body": null, "documentation": null, - "id": 9221, + "id": 11517, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -353,16 +353,16 @@ "name": "getWTokenByToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 9217, + "id": 11513, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9216, + "id": 11512, "name": "token", "nodeType": "VariableDeclaration", - "scope": 9221, - "src": "317:13:35", + "scope": 11517, + "src": "351:13:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -370,10 +370,10 @@ "typeString": "address" }, "typeName": { - "id": 9215, + "id": 11511, "name": "address", "nodeType": "ElementaryTypeName", - "src": "317:7:35", + "src": "351:7:46", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -383,46 +383,46 @@ "visibility": "internal" } ], - "src": "316:15:35" + "src": "350:15:46" }, "payable": false, "returnParameters": { - "id": 9220, + "id": 11516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9219, - "name": "wTokenAddress", + "id": 11515, + "name": "", "nodeType": "VariableDeclaration", - "scope": 9221, - "src": "353:20:35", + "scope": 11517, + "src": "387:7:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 9218, - "name": "WToken", + "id": 11514, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "353:6:35", + "referencedDeclaration": 10485, + "src": "387:7:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "352:22:35" + "src": "386:9:46" }, - "scope": 9229, - "src": "291:84:35", + "scope": 11525, + "src": "325:71:46", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -430,7 +430,7 @@ { "body": null, "documentation": null, - "id": 9228, + "id": 11524, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -438,16 +438,16 @@ "name": "getTokenByWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 9224, + "id": 11520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9223, + "id": 11519, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 9228, - "src": "407:14:35", + "scope": 11524, + "src": "428:14:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -455,10 +455,10 @@ "typeString": "address" }, "typeName": { - "id": 9222, + "id": 11518, "name": "address", "nodeType": "ElementaryTypeName", - "src": "407:7:35", + "src": "428:7:46", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -468,69 +468,69 @@ "visibility": "internal" } ], - "src": "406:16:35" + "src": "427:16:46" }, "payable": false, "returnParameters": { - "id": 9227, + "id": 11523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9226, - "name": "tokenAddress", + "id": 11522, + "name": "", "nodeType": "VariableDeclaration", - "scope": 9228, - "src": "444:18:35", + "scope": 11524, + "src": "465:13:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9225, - "name": "ERC20", + "id": 11521, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "444:5:35", + "referencedDeclaration": 12986, + "src": "465:13:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, "visibility": "internal" } ], - "src": "443:20:35" + "src": "464:15:46" }, - "scope": 9229, - "src": "381:83:35", + "scope": 11525, + "src": "402:78:46", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 9230, - "src": "115:351:35" + "scope": 11526, + "src": "124:358:46" } ], - "src": "0:467:35" + "src": "0:483:46" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenLedger.sol", "exportedSymbols": { "ITokenLedger": [ - 9229 + 11525 ] }, - "id": 9230, + "id": 11526, "nodeType": "SourceUnit", "nodes": [ { - "id": 9196, + "id": 11492, "literals": [ "solidity", "^", @@ -538,27 +538,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:35" + "src": "0:24:46" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 9197, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "id": 11493, "nodeType": "ImportDirective", - "scope": 9230, - "sourceUnit": 10212, - "src": "26:63:35", + "scope": 11526, + "sourceUnit": 12987, + "src": "26:71:46", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "../WToken.sol", - "id": 9198, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../IWToken.sol", + "id": 11494, "nodeType": "ImportDirective", - "scope": 9230, - "sourceUnit": 8751, - "src": "90:23:35", + "scope": 11526, + "sourceUnit": 10486, + "src": "98:24:46", "symbolAliases": [], "unitAlias": "" }, @@ -568,9 +568,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 9229, + "id": 11525, "linearizedBaseContracts": [ - 9229 + 11525 ], "name": "ITokenLedger", "nodeType": "ContractDefinition", @@ -578,7 +578,7 @@ { "body": null, "documentation": null, - "id": 9205, + "id": 11501, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -586,32 +586,32 @@ "name": "addTokenToListing", "nodeType": "FunctionDefinition", "parameters": { - "id": 9203, + "id": 11499, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9200, + "id": 11496, "name": "token", "nodeType": "VariableDeclaration", - "scope": 9205, - "src": "170:11:35", + "scope": 11501, + "src": "179:19:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9199, - "name": "ERC20", + "id": 11495, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "170:5:35", + "referencedDeclaration": 12986, + "src": "179:13:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, @@ -619,44 +619,44 @@ }, { "constant": false, - "id": 9202, + "id": 11498, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 9205, - "src": "183:13:35", + "scope": 11501, + "src": "200:14:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 9201, - "name": "WToken", + "id": 11497, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "183:6:35", + "referencedDeclaration": 10485, + "src": "200:7:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "169:28:35" + "src": "178:37:46" }, "payable": false, "returnParameters": { - "id": 9204, + "id": 11500, "nodeType": "ParameterList", "parameters": [], - "src": "206:0:35" + "src": "224:0:46" }, - "scope": 9229, - "src": "143:64:35", + "scope": 11525, + "src": "152:73:46", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -664,7 +664,7 @@ { "body": null, "documentation": null, - "id": 9214, + "id": 11510, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -672,32 +672,32 @@ "name": "hasPair", "nodeType": "FunctionDefinition", "parameters": { - "id": 9210, + "id": 11506, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9207, + "id": 11503, "name": "token1", "nodeType": "VariableDeclaration", - "scope": 9214, - "src": "230:12:35", + "scope": 11510, + "src": "248:20:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9206, - "name": "ERC20", + "id": 11502, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "230:5:35", + "referencedDeclaration": 12986, + "src": "248:13:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, @@ -705,47 +705,47 @@ }, { "constant": false, - "id": 9209, + "id": 11505, "name": "token2", "nodeType": "VariableDeclaration", - "scope": 9214, - "src": "244:12:35", + "scope": 11510, + "src": "270:20:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9208, - "name": "ERC20", + "id": 11504, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "244:5:35", + "referencedDeclaration": 12986, + "src": "270:13:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, "visibility": "internal" } ], - "src": "229:28:35" + "src": "247:44:46" }, "payable": false, "returnParameters": { - "id": 9213, + "id": 11509, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9212, + "id": 11508, "name": "", "nodeType": "VariableDeclaration", - "scope": 9214, - "src": "279:4:35", + "scope": 11510, + "src": "313:4:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -753,10 +753,10 @@ "typeString": "bool" }, "typeName": { - "id": 9211, + "id": 11507, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "279:4:35", + "src": "313:4:46", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -766,10 +766,10 @@ "visibility": "internal" } ], - "src": "278:6:35" + "src": "312:6:46" }, - "scope": 9229, - "src": "213:72:35", + "scope": 11525, + "src": "231:88:46", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -777,7 +777,7 @@ { "body": null, "documentation": null, - "id": 9221, + "id": 11517, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -785,16 +785,16 @@ "name": "getWTokenByToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 9217, + "id": 11513, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9216, + "id": 11512, "name": "token", "nodeType": "VariableDeclaration", - "scope": 9221, - "src": "317:13:35", + "scope": 11517, + "src": "351:13:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -802,10 +802,10 @@ "typeString": "address" }, "typeName": { - "id": 9215, + "id": 11511, "name": "address", "nodeType": "ElementaryTypeName", - "src": "317:7:35", + "src": "351:7:46", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -815,46 +815,46 @@ "visibility": "internal" } ], - "src": "316:15:35" + "src": "350:15:46" }, "payable": false, "returnParameters": { - "id": 9220, + "id": 11516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9219, - "name": "wTokenAddress", + "id": 11515, + "name": "", "nodeType": "VariableDeclaration", - "scope": 9221, - "src": "353:20:35", + "scope": 11517, + "src": "387:7:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 9218, - "name": "WToken", + "id": 11514, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "353:6:35", + "referencedDeclaration": 10485, + "src": "387:7:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "352:22:35" + "src": "386:9:46" }, - "scope": 9229, - "src": "291:84:35", + "scope": 11525, + "src": "325:71:46", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -862,7 +862,7 @@ { "body": null, "documentation": null, - "id": 9228, + "id": 11524, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -870,16 +870,16 @@ "name": "getTokenByWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 9224, + "id": 11520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9223, + "id": 11519, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 9228, - "src": "407:14:35", + "scope": 11524, + "src": "428:14:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -887,10 +887,10 @@ "typeString": "address" }, "typeName": { - "id": 9222, + "id": 11518, "name": "address", "nodeType": "ElementaryTypeName", - "src": "407:7:35", + "src": "428:7:46", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -900,56 +900,56 @@ "visibility": "internal" } ], - "src": "406:16:35" + "src": "427:16:46" }, "payable": false, "returnParameters": { - "id": 9227, + "id": 11523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9226, - "name": "tokenAddress", + "id": 11522, + "name": "", "nodeType": "VariableDeclaration", - "scope": 9228, - "src": "444:18:35", + "scope": 11524, + "src": "465:13:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9225, - "name": "ERC20", + "id": 11521, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "444:5:35", + "referencedDeclaration": 12986, + "src": "465:13:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, "visibility": "internal" } ], - "src": "443:20:35" + "src": "464:15:46" }, - "scope": 9229, - "src": "381:83:35", + "scope": 11525, + "src": "402:78:46", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 9230, - "src": "115:351:35" + "scope": 11526, + "src": "124:358:46" } ], - "src": "0:467:35" + "src": "0:483:46" }, "compiler": { "name": "solc", @@ -957,5 +957,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.342Z" + "updatedAt": "2018-12-06T13:14:33.229Z" } \ No newline at end of file diff --git a/build/contracts/IW12Crowdsale.json b/build/contracts/IW12Crowdsale.json index e0e3c987..b5aea93e 100644 --- a/build/contracts/IW12Crowdsale.json +++ b/build/contracts/IW12Crowdsale.json @@ -1,6 +1,118 @@ { "contractName": "IW12Crowdsale", "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ @@ -63,6 +175,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getFund", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -278,11 +404,11 @@ "constant": false, "inputs": [ { - "name": "newOwner", + "name": "_address", "type": "address" } ], - "name": "transferOwnership", + "name": "transferPrimary", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -293,20 +419,20 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"../token/IWToken.sol\";\n\n\ninterface IW12Crowdsale {\n function setParameters(uint price) external;\n\n // TODO: this should be external\n // See https://github.com/ethereum/solidity/issues/4832\n function setup(\n uint[6][] parametersOfStages,\n uint[] bonusConditionsOfStages,\n uint[4][] parametersOfMilestones,\n uint32[] nameAndDescriptionsOffsetOfMilestones,\n bytes nameAndDescriptionsOfMilestones,\n bytes32[] paymentMethodsList\n ) external;\n\n function getWToken() external view returns(IWToken);\n\n function getMilestone(uint index) external view returns (uint32, uint, uint32, uint32, bytes, bytes);\n\n function getStage(uint index) external view returns (uint32, uint32, uint, uint32, uint[], uint[]);\n\n function getCurrentMilestoneIndex() external view returns (uint, bool);\n\n function getLastMilestoneIndex() external view returns (uint index, bool found);\n\n function milestonesLength() external view returns (uint);\n\n function getCurrentStageIndex() external view returns (uint index, bool found);\n\n function getSaleVolumeBonus(uint value) external view returns (uint bonus);\n\n function isEnded() external view returns (bool);\n\n function isSaleActive() external view returns (bool);\n\n function buyTokens(bytes32 method, uint amount) payable external;\n\n function transferOwnership(address newOwner) external;\n}\n", + "source": "pragma solidity ^0.4.24;\n\nimport \"../token/IWToken.sol\";\nimport \"./IW12Fund.sol\";\nimport \"../access/roles/IAdminRole.sol\";\nimport \"../access/roles/IProjectOwnerRole.sol\";\n\ncontract IW12Crowdsale is IAdminRole, IProjectOwnerRole {\n function setParameters(uint price) external;\n\n function setup(\n uint[6][] parametersOfStages,\n uint[] bonusConditionsOfStages,\n uint[4][] parametersOfMilestones,\n uint32[] nameAndDescriptionsOffsetOfMilestones,\n bytes nameAndDescriptionsOfMilestones,\n bytes32[] paymentMethodsList\n ) external;\n\n function getWToken() external view returns(IWToken);\n\n function getFund() external view returns(IW12Fund);\n\n function getMilestone(uint index) public view returns (uint32, uint, uint32, uint32, bytes, bytes);\n\n function getStage(uint index) public view returns (uint32, uint32, uint, uint32, uint[], uint[]);\n\n function getCurrentMilestoneIndex() public view returns (uint, bool);\n\n function getLastMilestoneIndex() public view returns (uint index, bool found);\n\n function milestonesLength() external view returns (uint);\n\n function getCurrentStageIndex() public view returns (uint index, bool found);\n\n function getSaleVolumeBonus(uint value) public view returns (uint bonus);\n\n function isEnded() public view returns (bool);\n\n function isSaleActive() public view returns (bool);\n\n function buyTokens(bytes32 method, uint amount) payable public;\n\n function transferPrimary(address _address) public;\n}\n", "sourcePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "exportedSymbols": { "IW12Crowdsale": [ - 1224 + 1760 ] }, - "id": 1225, + "id": 1761, "nodeType": "SourceUnit", "nodes": [ { - "id": 1097, + "id": 1621, "literals": [ "solidity", "^", @@ -314,28 +440,103 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:3" + "src": "0:24:9" }, { "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", "file": "../token/IWToken.sol", - "id": 1098, + "id": 1622, + "nodeType": "ImportDirective", + "scope": 1761, + "sourceUnit": 10486, + "src": "26:30:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "./IW12Fund.sol", + "id": 1623, + "nodeType": "ImportDirective", + "scope": 1761, + "sourceUnit": 1804, + "src": "57:24:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "file": "../access/roles/IAdminRole.sol", + "id": 1624, + "nodeType": "ImportDirective", + "scope": 1761, + "sourceUnit": 1376, + "src": "82:40:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/IProjectOwnerRole.sol", + "file": "../access/roles/IProjectOwnerRole.sol", + "id": 1625, "nodeType": "ImportDirective", - "scope": 1225, - "sourceUnit": 7895, - "src": "26:30:3", + "scope": 1761, + "sourceUnit": 1422, + "src": "123:47:9", "symbolAliases": [], "unitAlias": "" }, { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1626, + "name": "IAdminRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1375, + "src": "198:10:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAdminRole_$1375", + "typeString": "contract IAdminRole" + } + }, + "id": 1627, + "nodeType": "InheritanceSpecifier", + "src": "198:10:9" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1628, + "name": "IProjectOwnerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1421, + "src": "210:17:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IProjectOwnerRole_$1421", + "typeString": "contract IProjectOwnerRole" + } + }, + "id": 1629, + "nodeType": "InheritanceSpecifier", + "src": "210:17:9" + } + ], + "contractDependencies": [ + 1375, + 1421 + ], + "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 1224, + "id": 1760, "linearizedBaseContracts": [ - 1224 + 1760, + 1421, + 1375 ], "name": "IW12Crowdsale", "nodeType": "ContractDefinition", @@ -343,7 +544,7 @@ { "body": null, "documentation": null, - "id": 1103, + "id": 1634, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -351,16 +552,16 @@ "name": "setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 1101, + "id": 1632, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1100, + "id": 1631, "name": "price", "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "112:10:3", + "scope": 1634, + "src": "257:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -368,10 +569,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1099, + "id": 1630, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "112:4:3", + "src": "257:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -381,17 +582,17 @@ "visibility": "internal" } ], - "src": "111:12:3" + "src": "256:12:9" }, "payable": false, "returnParameters": { - "id": 1102, + "id": 1633, "nodeType": "ParameterList", "parameters": [], - "src": "132:0:3" + "src": "277:0:9" }, - "scope": 1224, - "src": "89:44:3", + "scope": 1760, + "src": "234:44:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -399,7 +600,7 @@ { "body": null, "documentation": null, - "id": 1127, + "id": 1658, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -407,16 +608,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1125, + "id": 1656, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1108, + "id": 1639, "name": "parametersOfStages", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "260:28:3", + "scope": 1658, + "src": "308:28:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -426,27 +627,27 @@ "typeName": { "baseType": { "baseType": { - "id": 1104, + "id": 1635, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "260:4:3", + "src": "308:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1106, + "id": 1637, "length": { "argumentTypes": null, "hexValue": "36", - "id": 1105, + "id": 1636, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "265:1:3", + "src": "313:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -455,16 +656,16 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "260:7:3", + "src": "308:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" } }, - "id": 1107, + "id": 1638, "length": null, "nodeType": "ArrayTypeName", - "src": "260:9:3", + "src": "308:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", "typeString": "uint256[6][]" @@ -475,11 +676,11 @@ }, { "constant": false, - "id": 1111, + "id": 1642, "name": "bonusConditionsOfStages", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "298:30:3", + "scope": 1658, + "src": "346:30:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -488,19 +689,19 @@ }, "typeName": { "baseType": { - "id": 1109, + "id": 1640, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "298:4:3", + "src": "346:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1110, + "id": 1641, "length": null, "nodeType": "ArrayTypeName", - "src": "298:6:3", + "src": "346:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -511,11 +712,11 @@ }, { "constant": false, - "id": 1116, + "id": 1647, "name": "parametersOfMilestones", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "338:32:3", + "scope": 1658, + "src": "386:32:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -525,27 +726,27 @@ "typeName": { "baseType": { "baseType": { - "id": 1112, + "id": 1643, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "338:4:3", + "src": "386:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1114, + "id": 1645, "length": { "argumentTypes": null, "hexValue": "34", - "id": 1113, + "id": 1644, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "343:1:3", + "src": "391:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -554,16 +755,16 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "338:7:3", + "src": "386:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, - "id": 1115, + "id": 1646, "length": null, "nodeType": "ArrayTypeName", - "src": "338:9:3", + "src": "386:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" @@ -574,11 +775,11 @@ }, { "constant": false, - "id": 1119, + "id": 1650, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "380:46:3", + "scope": 1658, + "src": "428:46:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -587,19 +788,19 @@ }, "typeName": { "baseType": { - "id": 1117, + "id": 1648, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "380:6:3", + "src": "428:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 1118, + "id": 1649, "length": null, "nodeType": "ArrayTypeName", - "src": "380:8:3", + "src": "428:8:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -610,11 +811,11 @@ }, { "constant": false, - "id": 1121, + "id": 1652, "name": "nameAndDescriptionsOfMilestones", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "436:37:3", + "scope": 1658, + "src": "484:37:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -622,10 +823,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1120, + "id": 1651, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "436:5:3", + "src": "484:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -636,11 +837,11 @@ }, { "constant": false, - "id": 1124, + "id": 1655, "name": "paymentMethodsList", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "483:28:3", + "scope": 1658, + "src": "531:28:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -649,19 +850,19 @@ }, "typeName": { "baseType": { - "id": 1122, + "id": 1653, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "483:7:3", + "src": "531:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1123, + "id": 1654, "length": null, "nodeType": "ArrayTypeName", - "src": "483:9:3", + "src": "531:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -671,17 +872,17 @@ "visibility": "internal" } ], - "src": "250:267:3" + "src": "298:267:9" }, "payable": false, "returnParameters": { - "id": 1126, + "id": 1657, "nodeType": "ParameterList", "parameters": [], - "src": "526:0:3" + "src": "574:0:9" }, - "scope": 1224, - "src": "236:291:3", + "scope": 1760, + "src": "284:291:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -689,7 +890,7 @@ { "body": null, "documentation": null, - "id": 1132, + "id": 1663, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -697,38 +898,38 @@ "name": "getWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 1128, + "id": 1659, "nodeType": "ParameterList", "parameters": [], - "src": "551:2:3" + "src": "599:2:9" }, "payable": false, "returnParameters": { - "id": 1131, + "id": 1662, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1130, + "id": 1661, "name": "", "nodeType": "VariableDeclaration", - "scope": 1132, - "src": "576:7:3", + "scope": 1663, + "src": "624:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 1129, + "id": 1660, "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "576:7:3", + "referencedDeclaration": 10485, + "src": "624:7:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, @@ -736,10 +937,68 @@ "visibility": "internal" } ], - "src": "575:9:3" + "src": "623:9:9" + }, + "scope": 1760, + "src": "581:52:9", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 1668, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getFund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1664, + "nodeType": "ParameterList", + "parameters": [], + "src": "655:2:9" + }, + "payable": false, + "returnParameters": { + "id": 1667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1666, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1668, + "src": "680:8:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 1665, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "680:8:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "679:10:9" }, - "scope": 1224, - "src": "533:52:3", + "scope": 1760, + "src": "639:51:9", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -747,7 +1006,7 @@ { "body": null, "documentation": null, - "id": 1149, + "id": 1685, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -755,16 +1014,16 @@ "name": "getMilestone", "nodeType": "FunctionDefinition", "parameters": { - "id": 1135, + "id": 1671, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1134, + "id": 1670, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "613:10:3", + "scope": 1685, + "src": "718:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -772,10 +1031,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1133, + "id": 1669, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "613:4:3", + "src": "718:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -785,20 +1044,20 @@ "visibility": "internal" } ], - "src": "612:12:3" + "src": "717:12:9" }, "payable": false, "returnParameters": { - "id": 1148, + "id": 1684, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1137, + "id": 1673, "name": "", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "648:6:3", + "scope": 1685, + "src": "751:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -806,10 +1065,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1136, + "id": 1672, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "648:6:3", + "src": "751:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -820,11 +1079,11 @@ }, { "constant": false, - "id": 1139, + "id": 1675, "name": "", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "656:4:3", + "scope": 1685, + "src": "759:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -832,10 +1091,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1138, + "id": 1674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "656:4:3", + "src": "759:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -846,11 +1105,11 @@ }, { "constant": false, - "id": 1141, + "id": 1677, "name": "", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "662:6:3", + "scope": 1685, + "src": "765:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -858,10 +1117,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1140, + "id": 1676, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "662:6:3", + "src": "765:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -872,11 +1131,11 @@ }, { "constant": false, - "id": 1143, + "id": 1679, "name": "", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "670:6:3", + "scope": 1685, + "src": "773:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -884,10 +1143,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1142, + "id": 1678, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "670:6:3", + "src": "773:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -898,11 +1157,11 @@ }, { "constant": false, - "id": 1145, + "id": 1681, "name": "", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "678:5:3", + "scope": 1685, + "src": "781:5:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -910,10 +1169,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1144, + "id": 1680, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "678:5:3", + "src": "781:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -924,11 +1183,11 @@ }, { "constant": false, - "id": 1147, + "id": 1683, "name": "", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "685:5:3", + "scope": 1685, + "src": "788:5:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -936,10 +1195,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1146, + "id": 1682, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "685:5:3", + "src": "788:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -949,18 +1208,18 @@ "visibility": "internal" } ], - "src": "647:44:3" + "src": "750:44:9" }, - "scope": 1224, - "src": "591:101:3", + "scope": 1760, + "src": "696:99:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1168, + "id": 1704, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -968,16 +1227,16 @@ "name": "getStage", "nodeType": "FunctionDefinition", "parameters": { - "id": 1152, + "id": 1688, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1151, + "id": 1687, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "716:10:3", + "scope": 1704, + "src": "819:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -985,10 +1244,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1150, + "id": 1686, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "716:4:3", + "src": "819:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -998,20 +1257,20 @@ "visibility": "internal" } ], - "src": "715:12:3" + "src": "818:12:9" }, "payable": false, "returnParameters": { - "id": 1167, + "id": 1703, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1154, + "id": 1690, "name": "", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "751:6:3", + "scope": 1704, + "src": "852:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1019,10 +1278,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1153, + "id": 1689, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "751:6:3", + "src": "852:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1033,11 +1292,11 @@ }, { "constant": false, - "id": 1156, + "id": 1692, "name": "", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "759:6:3", + "scope": 1704, + "src": "860:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1045,10 +1304,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1155, + "id": 1691, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "759:6:3", + "src": "860:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1059,11 +1318,11 @@ }, { "constant": false, - "id": 1158, + "id": 1694, "name": "", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "767:4:3", + "scope": 1704, + "src": "868:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1071,10 +1330,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1157, + "id": 1693, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "767:4:3", + "src": "868:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1085,11 +1344,11 @@ }, { "constant": false, - "id": 1160, + "id": 1696, "name": "", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "773:6:3", + "scope": 1704, + "src": "874:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1097,10 +1356,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1159, + "id": 1695, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "773:6:3", + "src": "874:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1111,11 +1370,11 @@ }, { "constant": false, - "id": 1163, + "id": 1699, "name": "", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "781:6:3", + "scope": 1704, + "src": "882:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1124,19 +1383,19 @@ }, "typeName": { "baseType": { - "id": 1161, + "id": 1697, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "781:4:3", + "src": "882:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1162, + "id": 1698, "length": null, "nodeType": "ArrayTypeName", - "src": "781:6:3", + "src": "882:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -1147,11 +1406,11 @@ }, { "constant": false, - "id": 1166, + "id": 1702, "name": "", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "789:6:3", + "scope": 1704, + "src": "890:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1160,19 +1419,19 @@ }, "typeName": { "baseType": { - "id": 1164, + "id": 1700, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "789:4:3", + "src": "890:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1165, + "id": 1701, "length": null, "nodeType": "ArrayTypeName", - "src": "789:6:3", + "src": "890:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -1182,18 +1441,18 @@ "visibility": "internal" } ], - "src": "750:46:3" + "src": "851:46:9" }, - "scope": 1224, - "src": "698:99:3", + "scope": 1760, + "src": "801:97:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1175, + "id": 1711, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1201,23 +1460,23 @@ "name": "getCurrentMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 1169, + "id": 1705, "nodeType": "ParameterList", "parameters": [], - "src": "836:2:3" + "src": "937:2:9" }, "payable": false, "returnParameters": { - "id": 1174, + "id": 1710, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1171, + "id": 1707, "name": "", "nodeType": "VariableDeclaration", - "scope": 1175, - "src": "862:4:3", + "scope": 1711, + "src": "961:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1225,10 +1484,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1170, + "id": 1706, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "862:4:3", + "src": "961:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1239,11 +1498,11 @@ }, { "constant": false, - "id": 1173, + "id": 1709, "name": "", "nodeType": "VariableDeclaration", - "scope": 1175, - "src": "868:4:3", + "scope": 1711, + "src": "967:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1251,10 +1510,10 @@ "typeString": "bool" }, "typeName": { - "id": 1172, + "id": 1708, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "868:4:3", + "src": "967:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1264,18 +1523,18 @@ "visibility": "internal" } ], - "src": "861:12:3" + "src": "960:12:9" }, - "scope": 1224, - "src": "803:71:3", + "scope": 1760, + "src": "904:69:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1182, + "id": 1718, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1283,23 +1542,23 @@ "name": "getLastMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 1176, + "id": 1712, "nodeType": "ParameterList", "parameters": [], - "src": "910:2:3" + "src": "1009:2:9" }, "payable": false, "returnParameters": { - "id": 1181, + "id": 1717, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1178, + "id": 1714, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1182, - "src": "936:10:3", + "scope": 1718, + "src": "1033:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1307,10 +1566,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1177, + "id": 1713, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "936:4:3", + "src": "1033:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1321,11 +1580,11 @@ }, { "constant": false, - "id": 1180, + "id": 1716, "name": "found", "nodeType": "VariableDeclaration", - "scope": 1182, - "src": "948:10:3", + "scope": 1718, + "src": "1045:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1333,10 +1592,10 @@ "typeString": "bool" }, "typeName": { - "id": 1179, + "id": 1715, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "948:4:3", + "src": "1045:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1346,18 +1605,18 @@ "visibility": "internal" } ], - "src": "935:24:3" + "src": "1032:24:9" }, - "scope": 1224, - "src": "880:80:3", + "scope": 1760, + "src": "979:78:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1187, + "id": 1723, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1365,23 +1624,23 @@ "name": "milestonesLength", "nodeType": "FunctionDefinition", "parameters": { - "id": 1183, + "id": 1719, "nodeType": "ParameterList", "parameters": [], - "src": "991:2:3" + "src": "1088:2:9" }, "payable": false, "returnParameters": { - "id": 1186, + "id": 1722, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1185, + "id": 1721, "name": "", "nodeType": "VariableDeclaration", - "scope": 1187, - "src": "1017:4:3", + "scope": 1723, + "src": "1114:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1389,10 +1648,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1184, + "id": 1720, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1017:4:3", + "src": "1114:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1402,10 +1661,10 @@ "visibility": "internal" } ], - "src": "1016:6:3" + "src": "1113:6:9" }, - "scope": 1224, - "src": "966:57:3", + "scope": 1760, + "src": "1063:57:9", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -1413,7 +1672,7 @@ { "body": null, "documentation": null, - "id": 1194, + "id": 1730, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1421,23 +1680,23 @@ "name": "getCurrentStageIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 1188, + "id": 1724, "nodeType": "ParameterList", "parameters": [], - "src": "1058:2:3" + "src": "1155:2:9" }, "payable": false, "returnParameters": { - "id": 1193, + "id": 1729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1190, + "id": 1726, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1084:10:3", + "scope": 1730, + "src": "1179:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1445,10 +1704,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1189, + "id": 1725, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1084:4:3", + "src": "1179:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1459,11 +1718,11 @@ }, { "constant": false, - "id": 1192, + "id": 1728, "name": "found", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1096:10:3", + "scope": 1730, + "src": "1191:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1471,10 +1730,10 @@ "typeString": "bool" }, "typeName": { - "id": 1191, + "id": 1727, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1096:4:3", + "src": "1191:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1484,18 +1743,18 @@ "visibility": "internal" } ], - "src": "1083:24:3" + "src": "1178:24:9" }, - "scope": 1224, - "src": "1029:79:3", + "scope": 1760, + "src": "1126:77:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1201, + "id": 1737, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1503,16 +1762,16 @@ "name": "getSaleVolumeBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 1197, + "id": 1733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1196, + "id": 1732, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1201, - "src": "1142:10:3", + "scope": 1737, + "src": "1237:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1520,10 +1779,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1195, + "id": 1731, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1142:4:3", + "src": "1237:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1533,20 +1792,20 @@ "visibility": "internal" } ], - "src": "1141:12:3" + "src": "1236:12:9" }, "payable": false, "returnParameters": { - "id": 1200, + "id": 1736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1199, + "id": 1735, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 1201, - "src": "1177:10:3", + "scope": 1737, + "src": "1270:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1554,10 +1813,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1198, + "id": 1734, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1177:4:3", + "src": "1270:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1567,18 +1826,18 @@ "visibility": "internal" } ], - "src": "1176:12:3" + "src": "1269:12:9" }, - "scope": 1224, - "src": "1114:75:3", + "scope": 1760, + "src": "1209:73:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1206, + "id": 1742, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1586,23 +1845,23 @@ "name": "isEnded", "nodeType": "FunctionDefinition", "parameters": { - "id": 1202, + "id": 1738, "nodeType": "ParameterList", "parameters": [], - "src": "1211:2:3" + "src": "1304:2:9" }, "payable": false, "returnParameters": { - "id": 1205, + "id": 1741, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1204, + "id": 1740, "name": "", "nodeType": "VariableDeclaration", - "scope": 1206, - "src": "1237:4:3", + "scope": 1742, + "src": "1328:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1610,10 +1869,10 @@ "typeString": "bool" }, "typeName": { - "id": 1203, + "id": 1739, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1237:4:3", + "src": "1328:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1623,18 +1882,18 @@ "visibility": "internal" } ], - "src": "1236:6:3" + "src": "1327:6:9" }, - "scope": 1224, - "src": "1195:48:3", + "scope": 1760, + "src": "1288:46:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1211, + "id": 1747, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1642,23 +1901,23 @@ "name": "isSaleActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 1207, + "id": 1743, "nodeType": "ParameterList", "parameters": [], - "src": "1270:2:3" + "src": "1361:2:9" }, "payable": false, "returnParameters": { - "id": 1210, + "id": 1746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1209, + "id": 1745, "name": "", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "1296:4:3", + "scope": 1747, + "src": "1385:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1666,10 +1925,10 @@ "typeString": "bool" }, "typeName": { - "id": 1208, + "id": 1744, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1296:4:3", + "src": "1385:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1679,18 +1938,18 @@ "visibility": "internal" } ], - "src": "1295:6:3" + "src": "1384:6:9" }, - "scope": 1224, - "src": "1249:53:3", + "scope": 1760, + "src": "1340:51:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1218, + "id": 1754, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1698,16 +1957,16 @@ "name": "buyTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 1216, + "id": 1752, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1213, + "id": 1749, "name": "method", "nodeType": "VariableDeclaration", - "scope": 1218, - "src": "1327:14:3", + "scope": 1754, + "src": "1416:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1715,10 +1974,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1212, + "id": 1748, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1327:7:3", + "src": "1416:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1729,11 +1988,11 @@ }, { "constant": false, - "id": 1215, + "id": 1751, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1218, - "src": "1343:11:3", + "scope": 1754, + "src": "1432:11:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1741,10 +2000,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1214, + "id": 1750, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1343:4:3", + "src": "1432:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1754,42 +2013,42 @@ "visibility": "internal" } ], - "src": "1326:29:3" + "src": "1415:29:9" }, "payable": true, "returnParameters": { - "id": 1217, + "id": 1753, "nodeType": "ParameterList", "parameters": [], - "src": "1372:0:3" + "src": "1459:0:9" }, - "scope": 1224, - "src": "1308:65:3", + "scope": 1760, + "src": "1397:63:9", "stateMutability": "payable", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1223, + "id": 1759, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "transferOwnership", + "name": "transferPrimary", "nodeType": "FunctionDefinition", "parameters": { - "id": 1221, + "id": 1757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1220, - "name": "newOwner", + "id": 1756, + "name": "_address", "nodeType": "VariableDeclaration", - "scope": 1223, - "src": "1406:16:3", + "scope": 1759, + "src": "1491:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1797,10 +2056,10 @@ "typeString": "address" }, "typeName": { - "id": 1219, + "id": 1755, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1406:7:3", + "src": "1491:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1810,40 +2069,40 @@ "visibility": "internal" } ], - "src": "1405:18:3" + "src": "1490:18:9" }, "payable": false, "returnParameters": { - "id": 1222, + "id": 1758, "nodeType": "ParameterList", "parameters": [], - "src": "1432:0:3" + "src": "1515:0:9" }, - "scope": 1224, - "src": "1379:54:3", + "scope": 1760, + "src": "1466:50:9", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "external" + "visibility": "public" } ], - "scope": 1225, - "src": "59:1376:3" + "scope": 1761, + "src": "172:1346:9" } ], - "src": "0:1436:3" + "src": "0:1519:9" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "exportedSymbols": { "IW12Crowdsale": [ - 1224 + 1760 ] }, - "id": 1225, + "id": 1761, "nodeType": "SourceUnit", "nodes": [ { - "id": 1097, + "id": 1621, "literals": [ "solidity", "^", @@ -1851,28 +2110,103 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:3" + "src": "0:24:9" }, { "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", "file": "../token/IWToken.sol", - "id": 1098, + "id": 1622, + "nodeType": "ImportDirective", + "scope": 1761, + "sourceUnit": 10486, + "src": "26:30:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "./IW12Fund.sol", + "id": 1623, "nodeType": "ImportDirective", - "scope": 1225, - "sourceUnit": 7895, - "src": "26:30:3", + "scope": 1761, + "sourceUnit": 1804, + "src": "57:24:9", "symbolAliases": [], "unitAlias": "" }, { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", + "absolutePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "file": "../access/roles/IAdminRole.sol", + "id": 1624, + "nodeType": "ImportDirective", + "scope": 1761, + "sourceUnit": 1376, + "src": "82:40:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/IProjectOwnerRole.sol", + "file": "../access/roles/IProjectOwnerRole.sol", + "id": 1625, + "nodeType": "ImportDirective", + "scope": 1761, + "sourceUnit": 1422, + "src": "123:47:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1626, + "name": "IAdminRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1375, + "src": "198:10:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAdminRole_$1375", + "typeString": "contract IAdminRole" + } + }, + "id": 1627, + "nodeType": "InheritanceSpecifier", + "src": "198:10:9" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1628, + "name": "IProjectOwnerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1421, + "src": "210:17:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IProjectOwnerRole_$1421", + "typeString": "contract IProjectOwnerRole" + } + }, + "id": 1629, + "nodeType": "InheritanceSpecifier", + "src": "210:17:9" + } + ], + "contractDependencies": [ + 1375, + 1421 + ], + "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 1224, + "id": 1760, "linearizedBaseContracts": [ - 1224 + 1760, + 1421, + 1375 ], "name": "IW12Crowdsale", "nodeType": "ContractDefinition", @@ -1880,7 +2214,7 @@ { "body": null, "documentation": null, - "id": 1103, + "id": 1634, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1888,16 +2222,16 @@ "name": "setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 1101, + "id": 1632, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1100, + "id": 1631, "name": "price", "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "112:10:3", + "scope": 1634, + "src": "257:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1905,10 +2239,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1099, + "id": 1630, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "112:4:3", + "src": "257:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1918,17 +2252,17 @@ "visibility": "internal" } ], - "src": "111:12:3" + "src": "256:12:9" }, "payable": false, "returnParameters": { - "id": 1102, + "id": 1633, "nodeType": "ParameterList", "parameters": [], - "src": "132:0:3" + "src": "277:0:9" }, - "scope": 1224, - "src": "89:44:3", + "scope": 1760, + "src": "234:44:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -1936,7 +2270,7 @@ { "body": null, "documentation": null, - "id": 1127, + "id": 1658, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1944,16 +2278,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1125, + "id": 1656, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1108, + "id": 1639, "name": "parametersOfStages", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "260:28:3", + "scope": 1658, + "src": "308:28:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1963,27 +2297,27 @@ "typeName": { "baseType": { "baseType": { - "id": 1104, + "id": 1635, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "260:4:3", + "src": "308:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1106, + "id": 1637, "length": { "argumentTypes": null, "hexValue": "36", - "id": 1105, + "id": 1636, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "265:1:3", + "src": "313:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -1992,16 +2326,16 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "260:7:3", + "src": "308:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" } }, - "id": 1107, + "id": 1638, "length": null, "nodeType": "ArrayTypeName", - "src": "260:9:3", + "src": "308:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", "typeString": "uint256[6][]" @@ -2012,11 +2346,11 @@ }, { "constant": false, - "id": 1111, + "id": 1642, "name": "bonusConditionsOfStages", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "298:30:3", + "scope": 1658, + "src": "346:30:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2025,19 +2359,19 @@ }, "typeName": { "baseType": { - "id": 1109, + "id": 1640, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "298:4:3", + "src": "346:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1110, + "id": 1641, "length": null, "nodeType": "ArrayTypeName", - "src": "298:6:3", + "src": "346:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2048,11 +2382,11 @@ }, { "constant": false, - "id": 1116, + "id": 1647, "name": "parametersOfMilestones", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "338:32:3", + "scope": 1658, + "src": "386:32:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2062,27 +2396,27 @@ "typeName": { "baseType": { "baseType": { - "id": 1112, + "id": 1643, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "338:4:3", + "src": "386:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1114, + "id": 1645, "length": { "argumentTypes": null, "hexValue": "34", - "id": 1113, + "id": 1644, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "343:1:3", + "src": "391:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -2091,16 +2425,16 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "338:7:3", + "src": "386:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, - "id": 1115, + "id": 1646, "length": null, "nodeType": "ArrayTypeName", - "src": "338:9:3", + "src": "386:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" @@ -2111,11 +2445,11 @@ }, { "constant": false, - "id": 1119, + "id": 1650, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "380:46:3", + "scope": 1658, + "src": "428:46:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2124,19 +2458,19 @@ }, "typeName": { "baseType": { - "id": 1117, + "id": 1648, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "380:6:3", + "src": "428:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 1118, + "id": 1649, "length": null, "nodeType": "ArrayTypeName", - "src": "380:8:3", + "src": "428:8:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -2147,11 +2481,11 @@ }, { "constant": false, - "id": 1121, + "id": 1652, "name": "nameAndDescriptionsOfMilestones", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "436:37:3", + "scope": 1658, + "src": "484:37:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2159,10 +2493,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1120, + "id": 1651, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "436:5:3", + "src": "484:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2173,11 +2507,11 @@ }, { "constant": false, - "id": 1124, + "id": 1655, "name": "paymentMethodsList", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "483:28:3", + "scope": 1658, + "src": "531:28:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2186,19 +2520,19 @@ }, "typeName": { "baseType": { - "id": 1122, + "id": 1653, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "483:7:3", + "src": "531:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1123, + "id": 1654, "length": null, "nodeType": "ArrayTypeName", - "src": "483:9:3", + "src": "531:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2208,17 +2542,17 @@ "visibility": "internal" } ], - "src": "250:267:3" + "src": "298:267:9" }, "payable": false, "returnParameters": { - "id": 1126, + "id": 1657, "nodeType": "ParameterList", "parameters": [], - "src": "526:0:3" + "src": "574:0:9" }, - "scope": 1224, - "src": "236:291:3", + "scope": 1760, + "src": "284:291:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -2226,7 +2560,7 @@ { "body": null, "documentation": null, - "id": 1132, + "id": 1663, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2234,38 +2568,38 @@ "name": "getWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 1128, + "id": 1659, "nodeType": "ParameterList", "parameters": [], - "src": "551:2:3" + "src": "599:2:9" }, "payable": false, "returnParameters": { - "id": 1131, + "id": 1662, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1130, + "id": 1661, "name": "", "nodeType": "VariableDeclaration", - "scope": 1132, - "src": "576:7:3", + "scope": 1663, + "src": "624:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 1129, + "id": 1660, "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "576:7:3", + "referencedDeclaration": 10485, + "src": "624:7:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, @@ -2273,10 +2607,10 @@ "visibility": "internal" } ], - "src": "575:9:3" + "src": "623:9:9" }, - "scope": 1224, - "src": "533:52:3", + "scope": 1760, + "src": "581:52:9", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -2284,7 +2618,65 @@ { "body": null, "documentation": null, - "id": 1149, + "id": 1668, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getFund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1664, + "nodeType": "ParameterList", + "parameters": [], + "src": "655:2:9" + }, + "payable": false, + "returnParameters": { + "id": 1667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1666, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1668, + "src": "680:8:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 1665, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "680:8:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "679:10:9" + }, + "scope": 1760, + "src": "639:51:9", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 1685, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2292,16 +2684,16 @@ "name": "getMilestone", "nodeType": "FunctionDefinition", "parameters": { - "id": 1135, + "id": 1671, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1134, + "id": 1670, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "613:10:3", + "scope": 1685, + "src": "718:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2309,10 +2701,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1133, + "id": 1669, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "613:4:3", + "src": "718:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2322,20 +2714,20 @@ "visibility": "internal" } ], - "src": "612:12:3" + "src": "717:12:9" }, "payable": false, "returnParameters": { - "id": 1148, + "id": 1684, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1137, + "id": 1673, "name": "", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "648:6:3", + "scope": 1685, + "src": "751:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2343,10 +2735,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1136, + "id": 1672, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "648:6:3", + "src": "751:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2357,11 +2749,11 @@ }, { "constant": false, - "id": 1139, + "id": 1675, "name": "", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "656:4:3", + "scope": 1685, + "src": "759:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2369,10 +2761,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1138, + "id": 1674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "656:4:3", + "src": "759:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2383,11 +2775,11 @@ }, { "constant": false, - "id": 1141, + "id": 1677, "name": "", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "662:6:3", + "scope": 1685, + "src": "765:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2395,10 +2787,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1140, + "id": 1676, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "662:6:3", + "src": "765:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2409,11 +2801,11 @@ }, { "constant": false, - "id": 1143, + "id": 1679, "name": "", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "670:6:3", + "scope": 1685, + "src": "773:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2421,10 +2813,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1142, + "id": 1678, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "670:6:3", + "src": "773:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2435,11 +2827,11 @@ }, { "constant": false, - "id": 1145, + "id": 1681, "name": "", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "678:5:3", + "scope": 1685, + "src": "781:5:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2447,10 +2839,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1144, + "id": 1680, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "678:5:3", + "src": "781:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2461,11 +2853,11 @@ }, { "constant": false, - "id": 1147, + "id": 1683, "name": "", "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "685:5:3", + "scope": 1685, + "src": "788:5:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2473,10 +2865,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1146, + "id": 1682, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "685:5:3", + "src": "788:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2486,18 +2878,18 @@ "visibility": "internal" } ], - "src": "647:44:3" + "src": "750:44:9" }, - "scope": 1224, - "src": "591:101:3", + "scope": 1760, + "src": "696:99:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1168, + "id": 1704, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2505,16 +2897,16 @@ "name": "getStage", "nodeType": "FunctionDefinition", "parameters": { - "id": 1152, + "id": 1688, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1151, + "id": 1687, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "716:10:3", + "scope": 1704, + "src": "819:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2522,10 +2914,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1150, + "id": 1686, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "716:4:3", + "src": "819:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2535,20 +2927,20 @@ "visibility": "internal" } ], - "src": "715:12:3" + "src": "818:12:9" }, "payable": false, "returnParameters": { - "id": 1167, + "id": 1703, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1154, + "id": 1690, "name": "", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "751:6:3", + "scope": 1704, + "src": "852:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2556,10 +2948,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1153, + "id": 1689, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "751:6:3", + "src": "852:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2570,11 +2962,11 @@ }, { "constant": false, - "id": 1156, + "id": 1692, "name": "", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "759:6:3", + "scope": 1704, + "src": "860:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2582,10 +2974,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1155, + "id": 1691, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "759:6:3", + "src": "860:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2596,11 +2988,11 @@ }, { "constant": false, - "id": 1158, + "id": 1694, "name": "", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "767:4:3", + "scope": 1704, + "src": "868:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2608,10 +3000,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1157, + "id": 1693, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "767:4:3", + "src": "868:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2622,11 +3014,11 @@ }, { "constant": false, - "id": 1160, + "id": 1696, "name": "", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "773:6:3", + "scope": 1704, + "src": "874:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2634,10 +3026,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1159, + "id": 1695, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "773:6:3", + "src": "874:6:9", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2648,11 +3040,11 @@ }, { "constant": false, - "id": 1163, + "id": 1699, "name": "", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "781:6:3", + "scope": 1704, + "src": "882:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2661,19 +3053,19 @@ }, "typeName": { "baseType": { - "id": 1161, + "id": 1697, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "781:4:3", + "src": "882:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1162, + "id": 1698, "length": null, "nodeType": "ArrayTypeName", - "src": "781:6:3", + "src": "882:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2684,11 +3076,11 @@ }, { "constant": false, - "id": 1166, + "id": 1702, "name": "", "nodeType": "VariableDeclaration", - "scope": 1168, - "src": "789:6:3", + "scope": 1704, + "src": "890:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2697,19 +3089,19 @@ }, "typeName": { "baseType": { - "id": 1164, + "id": 1700, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "789:4:3", + "src": "890:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1165, + "id": 1701, "length": null, "nodeType": "ArrayTypeName", - "src": "789:6:3", + "src": "890:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2719,18 +3111,18 @@ "visibility": "internal" } ], - "src": "750:46:3" + "src": "851:46:9" }, - "scope": 1224, - "src": "698:99:3", + "scope": 1760, + "src": "801:97:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1175, + "id": 1711, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2738,23 +3130,23 @@ "name": "getCurrentMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 1169, + "id": 1705, "nodeType": "ParameterList", "parameters": [], - "src": "836:2:3" + "src": "937:2:9" }, "payable": false, "returnParameters": { - "id": 1174, + "id": 1710, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1171, + "id": 1707, "name": "", "nodeType": "VariableDeclaration", - "scope": 1175, - "src": "862:4:3", + "scope": 1711, + "src": "961:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2762,10 +3154,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1170, + "id": 1706, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "862:4:3", + "src": "961:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2776,11 +3168,11 @@ }, { "constant": false, - "id": 1173, + "id": 1709, "name": "", "nodeType": "VariableDeclaration", - "scope": 1175, - "src": "868:4:3", + "scope": 1711, + "src": "967:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2788,10 +3180,10 @@ "typeString": "bool" }, "typeName": { - "id": 1172, + "id": 1708, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "868:4:3", + "src": "967:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2801,18 +3193,18 @@ "visibility": "internal" } ], - "src": "861:12:3" + "src": "960:12:9" }, - "scope": 1224, - "src": "803:71:3", + "scope": 1760, + "src": "904:69:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1182, + "id": 1718, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2820,23 +3212,23 @@ "name": "getLastMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 1176, + "id": 1712, "nodeType": "ParameterList", "parameters": [], - "src": "910:2:3" + "src": "1009:2:9" }, "payable": false, "returnParameters": { - "id": 1181, + "id": 1717, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1178, + "id": 1714, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1182, - "src": "936:10:3", + "scope": 1718, + "src": "1033:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2844,10 +3236,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1177, + "id": 1713, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "936:4:3", + "src": "1033:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2858,11 +3250,11 @@ }, { "constant": false, - "id": 1180, + "id": 1716, "name": "found", "nodeType": "VariableDeclaration", - "scope": 1182, - "src": "948:10:3", + "scope": 1718, + "src": "1045:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2870,10 +3262,10 @@ "typeString": "bool" }, "typeName": { - "id": 1179, + "id": 1715, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "948:4:3", + "src": "1045:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2883,18 +3275,18 @@ "visibility": "internal" } ], - "src": "935:24:3" + "src": "1032:24:9" }, - "scope": 1224, - "src": "880:80:3", + "scope": 1760, + "src": "979:78:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1187, + "id": 1723, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2902,23 +3294,23 @@ "name": "milestonesLength", "nodeType": "FunctionDefinition", "parameters": { - "id": 1183, + "id": 1719, "nodeType": "ParameterList", "parameters": [], - "src": "991:2:3" + "src": "1088:2:9" }, "payable": false, "returnParameters": { - "id": 1186, + "id": 1722, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1185, + "id": 1721, "name": "", "nodeType": "VariableDeclaration", - "scope": 1187, - "src": "1017:4:3", + "scope": 1723, + "src": "1114:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2926,10 +3318,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1184, + "id": 1720, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1017:4:3", + "src": "1114:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2939,10 +3331,10 @@ "visibility": "internal" } ], - "src": "1016:6:3" + "src": "1113:6:9" }, - "scope": 1224, - "src": "966:57:3", + "scope": 1760, + "src": "1063:57:9", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -2950,7 +3342,7 @@ { "body": null, "documentation": null, - "id": 1194, + "id": 1730, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2958,23 +3350,23 @@ "name": "getCurrentStageIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 1188, + "id": 1724, "nodeType": "ParameterList", "parameters": [], - "src": "1058:2:3" + "src": "1155:2:9" }, "payable": false, "returnParameters": { - "id": 1193, + "id": 1729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1190, + "id": 1726, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1084:10:3", + "scope": 1730, + "src": "1179:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2982,10 +3374,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1189, + "id": 1725, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1084:4:3", + "src": "1179:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2996,11 +3388,11 @@ }, { "constant": false, - "id": 1192, + "id": 1728, "name": "found", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1096:10:3", + "scope": 1730, + "src": "1191:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3008,10 +3400,10 @@ "typeString": "bool" }, "typeName": { - "id": 1191, + "id": 1727, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1096:4:3", + "src": "1191:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3021,18 +3413,18 @@ "visibility": "internal" } ], - "src": "1083:24:3" + "src": "1178:24:9" }, - "scope": 1224, - "src": "1029:79:3", + "scope": 1760, + "src": "1126:77:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1201, + "id": 1737, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -3040,16 +3432,16 @@ "name": "getSaleVolumeBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 1197, + "id": 1733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1196, + "id": 1732, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1201, - "src": "1142:10:3", + "scope": 1737, + "src": "1237:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3057,10 +3449,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1195, + "id": 1731, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1142:4:3", + "src": "1237:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3070,20 +3462,20 @@ "visibility": "internal" } ], - "src": "1141:12:3" + "src": "1236:12:9" }, "payable": false, "returnParameters": { - "id": 1200, + "id": 1736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1199, + "id": 1735, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 1201, - "src": "1177:10:3", + "scope": 1737, + "src": "1270:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3091,10 +3483,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1198, + "id": 1734, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1177:4:3", + "src": "1270:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3104,18 +3496,18 @@ "visibility": "internal" } ], - "src": "1176:12:3" + "src": "1269:12:9" }, - "scope": 1224, - "src": "1114:75:3", + "scope": 1760, + "src": "1209:73:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1206, + "id": 1742, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -3123,23 +3515,23 @@ "name": "isEnded", "nodeType": "FunctionDefinition", "parameters": { - "id": 1202, + "id": 1738, "nodeType": "ParameterList", "parameters": [], - "src": "1211:2:3" + "src": "1304:2:9" }, "payable": false, "returnParameters": { - "id": 1205, + "id": 1741, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1204, + "id": 1740, "name": "", "nodeType": "VariableDeclaration", - "scope": 1206, - "src": "1237:4:3", + "scope": 1742, + "src": "1328:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3147,10 +3539,10 @@ "typeString": "bool" }, "typeName": { - "id": 1203, + "id": 1739, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1237:4:3", + "src": "1328:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3160,18 +3552,18 @@ "visibility": "internal" } ], - "src": "1236:6:3" + "src": "1327:6:9" }, - "scope": 1224, - "src": "1195:48:3", + "scope": 1760, + "src": "1288:46:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1211, + "id": 1747, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -3179,23 +3571,23 @@ "name": "isSaleActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 1207, + "id": 1743, "nodeType": "ParameterList", "parameters": [], - "src": "1270:2:3" + "src": "1361:2:9" }, "payable": false, "returnParameters": { - "id": 1210, + "id": 1746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1209, + "id": 1745, "name": "", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "1296:4:3", + "scope": 1747, + "src": "1385:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3203,10 +3595,10 @@ "typeString": "bool" }, "typeName": { - "id": 1208, + "id": 1744, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1296:4:3", + "src": "1385:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3216,18 +3608,18 @@ "visibility": "internal" } ], - "src": "1295:6:3" + "src": "1384:6:9" }, - "scope": 1224, - "src": "1249:53:3", + "scope": 1760, + "src": "1340:51:9", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1218, + "id": 1754, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -3235,16 +3627,16 @@ "name": "buyTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 1216, + "id": 1752, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1213, + "id": 1749, "name": "method", "nodeType": "VariableDeclaration", - "scope": 1218, - "src": "1327:14:3", + "scope": 1754, + "src": "1416:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3252,10 +3644,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1212, + "id": 1748, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1327:7:3", + "src": "1416:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3266,11 +3658,11 @@ }, { "constant": false, - "id": 1215, + "id": 1751, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1218, - "src": "1343:11:3", + "scope": 1754, + "src": "1432:11:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3278,10 +3670,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1214, + "id": 1750, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1343:4:3", + "src": "1432:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3291,42 +3683,42 @@ "visibility": "internal" } ], - "src": "1326:29:3" + "src": "1415:29:9" }, "payable": true, "returnParameters": { - "id": 1217, + "id": 1753, "nodeType": "ParameterList", "parameters": [], - "src": "1372:0:3" + "src": "1459:0:9" }, - "scope": 1224, - "src": "1308:65:3", + "scope": 1760, + "src": "1397:63:9", "stateMutability": "payable", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1223, + "id": 1759, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "transferOwnership", + "name": "transferPrimary", "nodeType": "FunctionDefinition", "parameters": { - "id": 1221, + "id": 1757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1220, - "name": "newOwner", + "id": 1756, + "name": "_address", "nodeType": "VariableDeclaration", - "scope": 1223, - "src": "1406:16:3", + "scope": 1759, + "src": "1491:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3334,10 +3726,10 @@ "typeString": "address" }, "typeName": { - "id": 1219, + "id": 1755, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1406:7:3", + "src": "1491:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3347,27 +3739,27 @@ "visibility": "internal" } ], - "src": "1405:18:3" + "src": "1490:18:9" }, "payable": false, "returnParameters": { - "id": 1222, + "id": 1758, "nodeType": "ParameterList", "parameters": [], - "src": "1432:0:3" + "src": "1515:0:9" }, - "scope": 1224, - "src": "1379:54:3", + "scope": 1760, + "src": "1466:50:9", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "external" + "visibility": "public" } ], - "scope": 1225, - "src": "59:1376:3" + "scope": 1761, + "src": "172:1346:9" } ], - "src": "0:1436:3" + "src": "0:1519:9" }, "compiler": { "name": "solc", @@ -3375,5 +3767,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.234Z" + "updatedAt": "2018-12-06T13:14:33.058Z" } \ No newline at end of file diff --git a/build/contracts/IW12CrowdsaleFactory.json b/build/contracts/IW12CrowdsaleFactory.json index 04f0fc03..53e26470 100644 --- a/build/contracts/IW12CrowdsaleFactory.json +++ b/build/contracts/IW12CrowdsaleFactory.json @@ -37,8 +37,8 @@ "type": "address" }, { - "name": "owner", - "type": "address" + "name": "owners", + "type": "address[]" } ], "name": "createCrowdsale", @@ -57,20 +57,20 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"../IW12Crowdsale.sol\";\n\n\ninterface IW12CrowdsaleFactory {\n function createCrowdsale(\n address tokenAddress,\n address _wTokenAddress,\n uint price,\n address serviceWallet,\n uint serviceFee,\n uint WTokenSaleFeePercent,\n uint trancheFeePercent ,\n address swap,\n address owner\n )\n external returns (IW12Crowdsale);\n}\n", + "source": "pragma solidity ^0.4.24;\n\nimport \"../IW12Crowdsale.sol\";\n\n\ninterface IW12CrowdsaleFactory {\n function createCrowdsale(\n address tokenAddress,\n address _wTokenAddress,\n uint price,\n address serviceWallet,\n uint serviceFee,\n uint WTokenSaleFeePercent,\n uint trancheFeePercent ,\n address swap,\n address[] owners\n )\n external returns (IW12Crowdsale);\n}\n", "sourcePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", "exportedSymbols": { "IW12CrowdsaleFactory": [ - 4562 + 4084 ] }, - "id": 4563, + "id": 4085, "nodeType": "SourceUnit", "nodes": [ { - "id": 4537, + "id": 4058, "literals": [ "solidity", "^", @@ -78,16 +78,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:7" + "src": "0:24:13" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "file": "../IW12Crowdsale.sol", - "id": 4538, + "id": 4059, "nodeType": "ImportDirective", - "scope": 4563, - "sourceUnit": 1225, - "src": "26:30:7", + "scope": 4085, + "sourceUnit": 1761, + "src": "26:30:13", "symbolAliases": [], "unitAlias": "" }, @@ -97,9 +97,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 4562, + "id": 4084, "linearizedBaseContracts": [ - 4562 + 4084 ], "name": "IW12CrowdsaleFactory", "nodeType": "ContractDefinition", @@ -107,7 +107,7 @@ { "body": null, "documentation": null, - "id": 4561, + "id": 4083, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -115,16 +115,16 @@ "name": "createCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 4557, + "id": 4079, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4540, + "id": 4061, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "130:20:7", + "scope": 4083, + "src": "130:20:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -132,10 +132,10 @@ "typeString": "address" }, "typeName": { - "id": 4539, + "id": 4060, "name": "address", "nodeType": "ElementaryTypeName", - "src": "130:7:7", + "src": "130:7:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -146,11 +146,11 @@ }, { "constant": false, - "id": 4542, + "id": 4063, "name": "_wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "160:22:7", + "scope": 4083, + "src": "160:22:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -158,10 +158,10 @@ "typeString": "address" }, "typeName": { - "id": 4541, + "id": 4062, "name": "address", "nodeType": "ElementaryTypeName", - "src": "160:7:7", + "src": "160:7:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -172,11 +172,11 @@ }, { "constant": false, - "id": 4544, + "id": 4065, "name": "price", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "192:10:7", + "scope": 4083, + "src": "192:10:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -184,10 +184,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4543, + "id": 4064, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "192:4:7", + "src": "192:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -198,11 +198,11 @@ }, { "constant": false, - "id": 4546, + "id": 4067, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "212:21:7", + "scope": 4083, + "src": "212:21:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -210,10 +210,10 @@ "typeString": "address" }, "typeName": { - "id": 4545, + "id": 4066, "name": "address", "nodeType": "ElementaryTypeName", - "src": "212:7:7", + "src": "212:7:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -224,11 +224,11 @@ }, { "constant": false, - "id": 4548, + "id": 4069, "name": "serviceFee", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "243:15:7", + "scope": 4083, + "src": "243:15:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -236,10 +236,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4547, + "id": 4068, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "243:4:7", + "src": "243:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -250,11 +250,11 @@ }, { "constant": false, - "id": 4550, + "id": 4071, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "268:25:7", + "scope": 4083, + "src": "268:25:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -262,10 +262,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4549, + "id": 4070, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "268:4:7", + "src": "268:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -276,11 +276,11 @@ }, { "constant": false, - "id": 4552, + "id": 4073, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "303:22:7", + "scope": 4083, + "src": "303:22:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -288,10 +288,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4551, + "id": 4072, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "303:4:7", + "src": "303:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -302,11 +302,11 @@ }, { "constant": false, - "id": 4554, + "id": 4075, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "336:12:7", + "scope": 4083, + "src": "336:12:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -314,10 +314,10 @@ "typeString": "address" }, "typeName": { - "id": 4553, + "id": 4074, "name": "address", "nodeType": "ElementaryTypeName", - "src": "336:7:7", + "src": "336:7:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -328,60 +328,70 @@ }, { "constant": false, - "id": 4556, - "name": "owner", + "id": 4078, + "name": "owners", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "358:13:7", + "scope": 4083, + "src": "358:16:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" }, "typeName": { - "id": 4555, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "358:7:7", + "baseType": { + "id": 4076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "358:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4077, + "length": null, + "nodeType": "ArrayTypeName", + "src": "358:9:13", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], - "src": "120:257:7" + "src": "120:260:13" }, "payable": false, "returnParameters": { - "id": 4560, + "id": 4082, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4559, + "id": 4081, "name": "", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "404:13:7", + "scope": 4083, + "src": "407:13:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 4558, + "id": 4080, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "404:13:7", + "referencedDeclaration": 1760, + "src": "407:13:13", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, @@ -389,33 +399,33 @@ "visibility": "internal" } ], - "src": "403:15:7" + "src": "406:15:13" }, - "scope": 4562, - "src": "96:323:7", + "scope": 4084, + "src": "96:326:13", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 4563, - "src": "59:362:7" + "scope": 4085, + "src": "59:365:13" } ], - "src": "0:422:7" + "src": "0:425:13" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", "exportedSymbols": { "IW12CrowdsaleFactory": [ - 4562 + 4084 ] }, - "id": 4563, + "id": 4085, "nodeType": "SourceUnit", "nodes": [ { - "id": 4537, + "id": 4058, "literals": [ "solidity", "^", @@ -423,16 +433,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:7" + "src": "0:24:13" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "file": "../IW12Crowdsale.sol", - "id": 4538, + "id": 4059, "nodeType": "ImportDirective", - "scope": 4563, - "sourceUnit": 1225, - "src": "26:30:7", + "scope": 4085, + "sourceUnit": 1761, + "src": "26:30:13", "symbolAliases": [], "unitAlias": "" }, @@ -442,9 +452,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 4562, + "id": 4084, "linearizedBaseContracts": [ - 4562 + 4084 ], "name": "IW12CrowdsaleFactory", "nodeType": "ContractDefinition", @@ -452,7 +462,7 @@ { "body": null, "documentation": null, - "id": 4561, + "id": 4083, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -460,16 +470,16 @@ "name": "createCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 4557, + "id": 4079, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4540, + "id": 4061, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "130:20:7", + "scope": 4083, + "src": "130:20:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -477,10 +487,10 @@ "typeString": "address" }, "typeName": { - "id": 4539, + "id": 4060, "name": "address", "nodeType": "ElementaryTypeName", - "src": "130:7:7", + "src": "130:7:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -491,11 +501,11 @@ }, { "constant": false, - "id": 4542, + "id": 4063, "name": "_wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "160:22:7", + "scope": 4083, + "src": "160:22:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -503,10 +513,10 @@ "typeString": "address" }, "typeName": { - "id": 4541, + "id": 4062, "name": "address", "nodeType": "ElementaryTypeName", - "src": "160:7:7", + "src": "160:7:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -517,11 +527,11 @@ }, { "constant": false, - "id": 4544, + "id": 4065, "name": "price", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "192:10:7", + "scope": 4083, + "src": "192:10:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -529,10 +539,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4543, + "id": 4064, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "192:4:7", + "src": "192:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -543,11 +553,11 @@ }, { "constant": false, - "id": 4546, + "id": 4067, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "212:21:7", + "scope": 4083, + "src": "212:21:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -555,10 +565,10 @@ "typeString": "address" }, "typeName": { - "id": 4545, + "id": 4066, "name": "address", "nodeType": "ElementaryTypeName", - "src": "212:7:7", + "src": "212:7:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -569,11 +579,11 @@ }, { "constant": false, - "id": 4548, + "id": 4069, "name": "serviceFee", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "243:15:7", + "scope": 4083, + "src": "243:15:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -581,10 +591,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4547, + "id": 4068, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "243:4:7", + "src": "243:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -595,11 +605,11 @@ }, { "constant": false, - "id": 4550, + "id": 4071, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "268:25:7", + "scope": 4083, + "src": "268:25:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -607,10 +617,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4549, + "id": 4070, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "268:4:7", + "src": "268:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -621,11 +631,11 @@ }, { "constant": false, - "id": 4552, + "id": 4073, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "303:22:7", + "scope": 4083, + "src": "303:22:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -633,10 +643,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4551, + "id": 4072, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "303:4:7", + "src": "303:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -647,11 +657,11 @@ }, { "constant": false, - "id": 4554, + "id": 4075, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "336:12:7", + "scope": 4083, + "src": "336:12:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -659,10 +669,10 @@ "typeString": "address" }, "typeName": { - "id": 4553, + "id": 4074, "name": "address", "nodeType": "ElementaryTypeName", - "src": "336:7:7", + "src": "336:7:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -673,60 +683,70 @@ }, { "constant": false, - "id": 4556, - "name": "owner", + "id": 4078, + "name": "owners", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "358:13:7", + "scope": 4083, + "src": "358:16:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" }, "typeName": { - "id": 4555, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "358:7:7", + "baseType": { + "id": 4076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "358:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4077, + "length": null, + "nodeType": "ArrayTypeName", + "src": "358:9:13", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], - "src": "120:257:7" + "src": "120:260:13" }, "payable": false, "returnParameters": { - "id": 4560, + "id": 4082, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4559, + "id": 4081, "name": "", "nodeType": "VariableDeclaration", - "scope": 4561, - "src": "404:13:7", + "scope": 4083, + "src": "407:13:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 4558, + "id": 4080, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "404:13:7", + "referencedDeclaration": 1760, + "src": "407:13:13", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, @@ -734,20 +754,20 @@ "visibility": "internal" } ], - "src": "403:15:7" + "src": "406:15:13" }, - "scope": 4562, - "src": "96:323:7", + "scope": 4084, + "src": "96:326:13", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 4563, - "src": "59:362:7" + "scope": 4085, + "src": "59:365:13" } ], - "src": "0:422:7" + "src": "0:425:13" }, "compiler": { "name": "solc", @@ -755,5 +775,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.275Z" + "updatedAt": "2018-12-06T13:14:33.057Z" } \ No newline at end of file diff --git a/build/contracts/IW12Fund.json b/build/contracts/IW12Fund.json index 0c6643f2..86c0f477 100644 --- a/build/contracts/IW12Fund.json +++ b/build/contracts/IW12Fund.json @@ -1,6 +1,118 @@ { "contractName": "IW12Fund", "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ @@ -47,11 +159,11 @@ "constant": false, "inputs": [ { - "name": "newOwner", + "name": "_address", "type": "address" } ], - "name": "transferOwnership", + "name": "transferPrimary", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -92,20 +204,20 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"./IW12Crowdsale.sol\";\n\n\ninterface IW12Fund {\n function setCrowdsale(IW12Crowdsale _crowdsale) external;\n\n function setServiceWallet(address _serviceWallet) external;\n\n function setSwap(address _swap) external;\n\n function transferOwnership(address newOwner) external;\n\n function recordPurchase(\n address investor,\n uint tokenAmount,\n bytes32 symbol,\n uint cost,\n uint costUSD\n ) external payable;\n}\n", + "source": "pragma solidity ^0.4.24;\n\nimport \"./IW12Crowdsale.sol\";\nimport \"../access/roles/IAdminRole.sol\";\nimport \"../access/roles/IProjectOwnerRole.sol\";\n\ncontract IW12Fund is IAdminRole, IProjectOwnerRole {\n function setCrowdsale(IW12Crowdsale _crowdsale) external;\n\n function setServiceWallet(address _serviceWallet) external;\n\n function setSwap(address _swap) external;\n\n function transferPrimary(address _address) public;\n\n function recordPurchase(\n address investor,\n uint tokenAmount,\n bytes32 symbol,\n uint cost,\n uint costUSD\n ) external payable;\n}\n", "sourcePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", "exportedSymbols": { "IW12Fund": [ - 1261 + 1803 ] }, - "id": 1262, + "id": 1804, "nodeType": "SourceUnit", "nodes": [ { - "id": 1226, + "id": 1762, "literals": [ "solidity", "^", @@ -113,28 +225,92 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:4" + "src": "0:24:10" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "file": "./IW12Crowdsale.sol", - "id": 1227, + "id": 1763, + "nodeType": "ImportDirective", + "scope": 1804, + "sourceUnit": 1761, + "src": "26:29:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "file": "../access/roles/IAdminRole.sol", + "id": 1764, + "nodeType": "ImportDirective", + "scope": 1804, + "sourceUnit": 1376, + "src": "56:40:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/IProjectOwnerRole.sol", + "file": "../access/roles/IProjectOwnerRole.sol", + "id": 1765, "nodeType": "ImportDirective", - "scope": 1262, - "sourceUnit": 1225, - "src": "26:29:4", + "scope": 1804, + "sourceUnit": 1422, + "src": "97:47:10", "symbolAliases": [], "unitAlias": "" }, { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1766, + "name": "IAdminRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1375, + "src": "167:10:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAdminRole_$1375", + "typeString": "contract IAdminRole" + } + }, + "id": 1767, + "nodeType": "InheritanceSpecifier", + "src": "167:10:10" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1768, + "name": "IProjectOwnerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1421, + "src": "179:17:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IProjectOwnerRole_$1421", + "typeString": "contract IProjectOwnerRole" + } + }, + "id": 1769, + "nodeType": "InheritanceSpecifier", + "src": "179:17:10" + } + ], + "contractDependencies": [ + 1375, + 1421 + ], + "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 1261, + "id": 1803, "linearizedBaseContracts": [ - 1261 + 1803, + 1421, + 1375 ], "name": "IW12Fund", "nodeType": "ContractDefinition", @@ -142,7 +318,7 @@ { "body": null, "documentation": null, - "id": 1232, + "id": 1774, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -150,31 +326,31 @@ "name": "setCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 1230, + "id": 1772, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1229, + "id": 1771, "name": "_crowdsale", "nodeType": "VariableDeclaration", - "scope": 1232, - "src": "105:24:4", + "scope": 1774, + "src": "225:24:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 1228, + "id": 1770, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "105:13:4", + "referencedDeclaration": 1760, + "src": "225:13:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, @@ -182,17 +358,17 @@ "visibility": "internal" } ], - "src": "104:26:4" + "src": "224:26:10" }, "payable": false, "returnParameters": { - "id": 1231, + "id": 1773, "nodeType": "ParameterList", "parameters": [], - "src": "139:0:4" + "src": "259:0:10" }, - "scope": 1261, - "src": "83:57:4", + "scope": 1803, + "src": "203:57:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -200,7 +376,7 @@ { "body": null, "documentation": null, - "id": 1237, + "id": 1779, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -208,16 +384,16 @@ "name": "setServiceWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 1235, + "id": 1777, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1234, + "id": 1776, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 1237, - "src": "172:22:4", + "scope": 1779, + "src": "292:22:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -225,10 +401,10 @@ "typeString": "address" }, "typeName": { - "id": 1233, + "id": 1775, "name": "address", "nodeType": "ElementaryTypeName", - "src": "172:7:4", + "src": "292:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -238,17 +414,17 @@ "visibility": "internal" } ], - "src": "171:24:4" + "src": "291:24:10" }, "payable": false, "returnParameters": { - "id": 1236, + "id": 1778, "nodeType": "ParameterList", "parameters": [], - "src": "204:0:4" + "src": "324:0:10" }, - "scope": 1261, - "src": "146:59:4", + "scope": 1803, + "src": "266:59:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -256,7 +432,7 @@ { "body": null, "documentation": null, - "id": 1242, + "id": 1784, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -264,16 +440,16 @@ "name": "setSwap", "nodeType": "FunctionDefinition", "parameters": { - "id": 1240, + "id": 1782, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1239, + "id": 1781, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 1242, - "src": "228:13:4", + "scope": 1784, + "src": "348:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -281,10 +457,10 @@ "typeString": "address" }, "typeName": { - "id": 1238, + "id": 1780, "name": "address", "nodeType": "ElementaryTypeName", - "src": "228:7:4", + "src": "348:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -294,17 +470,17 @@ "visibility": "internal" } ], - "src": "227:15:4" + "src": "347:15:10" }, "payable": false, "returnParameters": { - "id": 1241, + "id": 1783, "nodeType": "ParameterList", "parameters": [], - "src": "251:0:4" + "src": "371:0:10" }, - "scope": 1261, - "src": "211:41:4", + "scope": 1803, + "src": "331:41:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -312,24 +488,24 @@ { "body": null, "documentation": null, - "id": 1247, + "id": 1789, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "transferOwnership", + "name": "transferPrimary", "nodeType": "FunctionDefinition", "parameters": { - "id": 1245, + "id": 1787, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1244, - "name": "newOwner", + "id": 1786, + "name": "_address", "nodeType": "VariableDeclaration", - "scope": 1247, - "src": "285:16:4", + "scope": 1789, + "src": "403:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -337,10 +513,10 @@ "typeString": "address" }, "typeName": { - "id": 1243, + "id": 1785, "name": "address", "nodeType": "ElementaryTypeName", - "src": "285:7:4", + "src": "403:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -350,25 +526,25 @@ "visibility": "internal" } ], - "src": "284:18:4" + "src": "402:18:10" }, "payable": false, "returnParameters": { - "id": 1246, + "id": 1788, "nodeType": "ParameterList", "parameters": [], - "src": "311:0:4" + "src": "427:0:10" }, - "scope": 1261, - "src": "258:54:4", + "scope": 1803, + "src": "378:50:10", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1260, + "id": 1802, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -376,16 +552,16 @@ "name": "recordPurchase", "nodeType": "FunctionDefinition", "parameters": { - "id": 1258, + "id": 1800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1249, + "id": 1791, "name": "investor", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "351:16:4", + "scope": 1802, + "src": "467:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -393,10 +569,10 @@ "typeString": "address" }, "typeName": { - "id": 1248, + "id": 1790, "name": "address", "nodeType": "ElementaryTypeName", - "src": "351:7:4", + "src": "467:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -407,11 +583,11 @@ }, { "constant": false, - "id": 1251, + "id": 1793, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "377:16:4", + "scope": 1802, + "src": "493:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -419,10 +595,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1250, + "id": 1792, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "377:4:4", + "src": "493:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -433,11 +609,11 @@ }, { "constant": false, - "id": 1253, + "id": 1795, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "403:14:4", + "scope": 1802, + "src": "519:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -445,10 +621,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1252, + "id": 1794, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "403:7:4", + "src": "519:7:10", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -459,11 +635,11 @@ }, { "constant": false, - "id": 1255, + "id": 1797, "name": "cost", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "427:9:4", + "scope": 1802, + "src": "543:9:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -471,10 +647,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1254, + "id": 1796, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "427:4:4", + "src": "543:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -485,11 +661,11 @@ }, { "constant": false, - "id": 1257, + "id": 1799, "name": "costUSD", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "446:12:4", + "scope": 1802, + "src": "562:12:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -497,10 +673,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1256, + "id": 1798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "446:4:4", + "src": "562:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -510,40 +686,40 @@ "visibility": "internal" } ], - "src": "341:123:4" + "src": "457:123:10" }, "payable": true, "returnParameters": { - "id": 1259, + "id": 1801, "nodeType": "ParameterList", "parameters": [], - "src": "481:0:4" + "src": "597:0:10" }, - "scope": 1261, - "src": "318:164:4", + "scope": 1803, + "src": "434:164:10", "stateMutability": "payable", "superFunction": null, "visibility": "external" } ], - "scope": 1262, - "src": "58:426:4" + "scope": 1804, + "src": "146:454:10" } ], - "src": "0:485:4" + "src": "0:601:10" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", "exportedSymbols": { "IW12Fund": [ - 1261 + 1803 ] }, - "id": 1262, + "id": 1804, "nodeType": "SourceUnit", "nodes": [ { - "id": 1226, + "id": 1762, "literals": [ "solidity", "^", @@ -551,28 +727,92 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:4" + "src": "0:24:10" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "file": "./IW12Crowdsale.sol", - "id": 1227, + "id": 1763, "nodeType": "ImportDirective", - "scope": 1262, - "sourceUnit": 1225, - "src": "26:29:4", + "scope": 1804, + "sourceUnit": 1761, + "src": "26:29:10", "symbolAliases": [], "unitAlias": "" }, { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", + "absolutePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "file": "../access/roles/IAdminRole.sol", + "id": 1764, + "nodeType": "ImportDirective", + "scope": 1804, + "sourceUnit": 1376, + "src": "56:40:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/IProjectOwnerRole.sol", + "file": "../access/roles/IProjectOwnerRole.sol", + "id": 1765, + "nodeType": "ImportDirective", + "scope": 1804, + "sourceUnit": 1422, + "src": "97:47:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1766, + "name": "IAdminRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1375, + "src": "167:10:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAdminRole_$1375", + "typeString": "contract IAdminRole" + } + }, + "id": 1767, + "nodeType": "InheritanceSpecifier", + "src": "167:10:10" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1768, + "name": "IProjectOwnerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1421, + "src": "179:17:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IProjectOwnerRole_$1421", + "typeString": "contract IProjectOwnerRole" + } + }, + "id": 1769, + "nodeType": "InheritanceSpecifier", + "src": "179:17:10" + } + ], + "contractDependencies": [ + 1375, + 1421 + ], + "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 1261, + "id": 1803, "linearizedBaseContracts": [ - 1261 + 1803, + 1421, + 1375 ], "name": "IW12Fund", "nodeType": "ContractDefinition", @@ -580,7 +820,7 @@ { "body": null, "documentation": null, - "id": 1232, + "id": 1774, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -588,31 +828,31 @@ "name": "setCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 1230, + "id": 1772, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1229, + "id": 1771, "name": "_crowdsale", "nodeType": "VariableDeclaration", - "scope": 1232, - "src": "105:24:4", + "scope": 1774, + "src": "225:24:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 1228, + "id": 1770, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "105:13:4", + "referencedDeclaration": 1760, + "src": "225:13:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, @@ -620,17 +860,17 @@ "visibility": "internal" } ], - "src": "104:26:4" + "src": "224:26:10" }, "payable": false, "returnParameters": { - "id": 1231, + "id": 1773, "nodeType": "ParameterList", "parameters": [], - "src": "139:0:4" + "src": "259:0:10" }, - "scope": 1261, - "src": "83:57:4", + "scope": 1803, + "src": "203:57:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -638,7 +878,7 @@ { "body": null, "documentation": null, - "id": 1237, + "id": 1779, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -646,16 +886,16 @@ "name": "setServiceWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 1235, + "id": 1777, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1234, + "id": 1776, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 1237, - "src": "172:22:4", + "scope": 1779, + "src": "292:22:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -663,10 +903,10 @@ "typeString": "address" }, "typeName": { - "id": 1233, + "id": 1775, "name": "address", "nodeType": "ElementaryTypeName", - "src": "172:7:4", + "src": "292:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -676,17 +916,17 @@ "visibility": "internal" } ], - "src": "171:24:4" + "src": "291:24:10" }, "payable": false, "returnParameters": { - "id": 1236, + "id": 1778, "nodeType": "ParameterList", "parameters": [], - "src": "204:0:4" + "src": "324:0:10" }, - "scope": 1261, - "src": "146:59:4", + "scope": 1803, + "src": "266:59:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -694,7 +934,7 @@ { "body": null, "documentation": null, - "id": 1242, + "id": 1784, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -702,16 +942,16 @@ "name": "setSwap", "nodeType": "FunctionDefinition", "parameters": { - "id": 1240, + "id": 1782, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1239, + "id": 1781, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 1242, - "src": "228:13:4", + "scope": 1784, + "src": "348:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -719,10 +959,10 @@ "typeString": "address" }, "typeName": { - "id": 1238, + "id": 1780, "name": "address", "nodeType": "ElementaryTypeName", - "src": "228:7:4", + "src": "348:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -732,17 +972,17 @@ "visibility": "internal" } ], - "src": "227:15:4" + "src": "347:15:10" }, "payable": false, "returnParameters": { - "id": 1241, + "id": 1783, "nodeType": "ParameterList", "parameters": [], - "src": "251:0:4" + "src": "371:0:10" }, - "scope": 1261, - "src": "211:41:4", + "scope": 1803, + "src": "331:41:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -750,24 +990,24 @@ { "body": null, "documentation": null, - "id": 1247, + "id": 1789, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "transferOwnership", + "name": "transferPrimary", "nodeType": "FunctionDefinition", "parameters": { - "id": 1245, + "id": 1787, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1244, - "name": "newOwner", + "id": 1786, + "name": "_address", "nodeType": "VariableDeclaration", - "scope": 1247, - "src": "285:16:4", + "scope": 1789, + "src": "403:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -775,10 +1015,10 @@ "typeString": "address" }, "typeName": { - "id": 1243, + "id": 1785, "name": "address", "nodeType": "ElementaryTypeName", - "src": "285:7:4", + "src": "403:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -788,25 +1028,25 @@ "visibility": "internal" } ], - "src": "284:18:4" + "src": "402:18:10" }, "payable": false, "returnParameters": { - "id": 1246, + "id": 1788, "nodeType": "ParameterList", "parameters": [], - "src": "311:0:4" + "src": "427:0:10" }, - "scope": 1261, - "src": "258:54:4", + "scope": 1803, + "src": "378:50:10", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 1260, + "id": 1802, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -814,16 +1054,16 @@ "name": "recordPurchase", "nodeType": "FunctionDefinition", "parameters": { - "id": 1258, + "id": 1800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1249, + "id": 1791, "name": "investor", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "351:16:4", + "scope": 1802, + "src": "467:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -831,10 +1071,10 @@ "typeString": "address" }, "typeName": { - "id": 1248, + "id": 1790, "name": "address", "nodeType": "ElementaryTypeName", - "src": "351:7:4", + "src": "467:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -845,11 +1085,11 @@ }, { "constant": false, - "id": 1251, + "id": 1793, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "377:16:4", + "scope": 1802, + "src": "493:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -857,10 +1097,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1250, + "id": 1792, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "377:4:4", + "src": "493:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -871,11 +1111,11 @@ }, { "constant": false, - "id": 1253, + "id": 1795, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "403:14:4", + "scope": 1802, + "src": "519:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -883,10 +1123,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1252, + "id": 1794, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "403:7:4", + "src": "519:7:10", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -897,11 +1137,11 @@ }, { "constant": false, - "id": 1255, + "id": 1797, "name": "cost", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "427:9:4", + "scope": 1802, + "src": "543:9:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -909,10 +1149,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1254, + "id": 1796, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "427:4:4", + "src": "543:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -923,11 +1163,11 @@ }, { "constant": false, - "id": 1257, + "id": 1799, "name": "costUSD", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "446:12:4", + "scope": 1802, + "src": "562:12:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -935,10 +1175,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1256, + "id": 1798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "446:4:4", + "src": "562:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -948,27 +1188,27 @@ "visibility": "internal" } ], - "src": "341:123:4" + "src": "457:123:10" }, "payable": true, "returnParameters": { - "id": 1259, + "id": 1801, "nodeType": "ParameterList", "parameters": [], - "src": "481:0:4" + "src": "597:0:10" }, - "scope": 1261, - "src": "318:164:4", + "scope": 1803, + "src": "434:164:10", "stateMutability": "payable", "superFunction": null, "visibility": "external" } ], - "scope": 1262, - "src": "58:426:4" + "scope": 1804, + "src": "146:454:10" } ], - "src": "0:485:4" + "src": "0:601:10" }, "compiler": { "name": "solc", @@ -976,5 +1216,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.235Z" + "updatedAt": "2018-12-06T13:14:33.057Z" } \ No newline at end of file diff --git a/build/contracts/IW12FundFactory.json b/build/contracts/IW12FundFactory.json index be14c216..aade663e 100644 --- a/build/contracts/IW12FundFactory.json +++ b/build/contracts/IW12FundFactory.json @@ -39,14 +39,14 @@ "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", "exportedSymbols": { "IW12FundFactory": [ - 4577 + 4099 ] }, - "id": 4578, + "id": 4100, "nodeType": "SourceUnit", "nodes": [ { - "id": 4564, + "id": 4086, "literals": [ "solidity", "^", @@ -54,16 +54,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:8" + "src": "0:24:14" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", "file": "../IW12Fund.sol", - "id": 4565, + "id": 4087, "nodeType": "ImportDirective", - "scope": 4578, - "sourceUnit": 1262, - "src": "26:25:8", + "scope": 4100, + "sourceUnit": 1804, + "src": "26:25:14", "symbolAliases": [], "unitAlias": "" }, @@ -73,9 +73,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 4577, + "id": 4099, "linearizedBaseContracts": [ - 4577 + 4099 ], "name": "IW12FundFactory", "nodeType": "ContractDefinition", @@ -83,7 +83,7 @@ { "body": null, "documentation": null, - "id": 4576, + "id": 4098, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -91,16 +91,16 @@ "name": "createFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 4572, + "id": 4094, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4567, + "id": 4089, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 4576, - "src": "106:12:8", + "scope": 4098, + "src": "106:12:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -108,10 +108,10 @@ "typeString": "address" }, "typeName": { - "id": 4566, + "id": 4088, "name": "address", "nodeType": "ElementaryTypeName", - "src": "106:7:8", + "src": "106:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -122,11 +122,11 @@ }, { "constant": false, - "id": 4569, + "id": 4091, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4576, - "src": "120:21:8", + "scope": 4098, + "src": "120:21:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -134,10 +134,10 @@ "typeString": "address" }, "typeName": { - "id": 4568, + "id": 4090, "name": "address", "nodeType": "ElementaryTypeName", - "src": "120:7:8", + "src": "120:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -148,11 +148,11 @@ }, { "constant": false, - "id": 4571, + "id": 4093, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 4576, - "src": "143:22:8", + "scope": 4098, + "src": "143:22:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -160,10 +160,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4570, + "id": 4092, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "143:4:8", + "src": "143:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -173,35 +173,35 @@ "visibility": "internal" } ], - "src": "105:61:8" + "src": "105:61:14" }, "payable": false, "returnParameters": { - "id": 4575, + "id": 4097, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4574, + "id": 4096, "name": "", "nodeType": "VariableDeclaration", - "scope": 4576, - "src": "185:8:8", + "scope": 4098, + "src": "185:8:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 4573, + "id": 4095, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "185:8:8", + "referencedDeclaration": 1803, + "src": "185:8:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -209,33 +209,33 @@ "visibility": "internal" } ], - "src": "184:10:8" + "src": "184:10:14" }, - "scope": 4577, - "src": "86:109:8", + "scope": 4099, + "src": "86:109:14", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 4578, - "src": "54:143:8" + "scope": 4100, + "src": "54:143:14" } ], - "src": "0:198:8" + "src": "0:198:14" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", "exportedSymbols": { "IW12FundFactory": [ - 4577 + 4099 ] }, - "id": 4578, + "id": 4100, "nodeType": "SourceUnit", "nodes": [ { - "id": 4564, + "id": 4086, "literals": [ "solidity", "^", @@ -243,16 +243,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:8" + "src": "0:24:14" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", "file": "../IW12Fund.sol", - "id": 4565, + "id": 4087, "nodeType": "ImportDirective", - "scope": 4578, - "sourceUnit": 1262, - "src": "26:25:8", + "scope": 4100, + "sourceUnit": 1804, + "src": "26:25:14", "symbolAliases": [], "unitAlias": "" }, @@ -262,9 +262,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 4577, + "id": 4099, "linearizedBaseContracts": [ - 4577 + 4099 ], "name": "IW12FundFactory", "nodeType": "ContractDefinition", @@ -272,7 +272,7 @@ { "body": null, "documentation": null, - "id": 4576, + "id": 4098, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -280,16 +280,16 @@ "name": "createFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 4572, + "id": 4094, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4567, + "id": 4089, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 4576, - "src": "106:12:8", + "scope": 4098, + "src": "106:12:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -297,10 +297,10 @@ "typeString": "address" }, "typeName": { - "id": 4566, + "id": 4088, "name": "address", "nodeType": "ElementaryTypeName", - "src": "106:7:8", + "src": "106:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -311,11 +311,11 @@ }, { "constant": false, - "id": 4569, + "id": 4091, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4576, - "src": "120:21:8", + "scope": 4098, + "src": "120:21:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -323,10 +323,10 @@ "typeString": "address" }, "typeName": { - "id": 4568, + "id": 4090, "name": "address", "nodeType": "ElementaryTypeName", - "src": "120:7:8", + "src": "120:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -337,11 +337,11 @@ }, { "constant": false, - "id": 4571, + "id": 4093, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 4576, - "src": "143:22:8", + "scope": 4098, + "src": "143:22:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -349,10 +349,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4570, + "id": 4092, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "143:4:8", + "src": "143:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -362,35 +362,35 @@ "visibility": "internal" } ], - "src": "105:61:8" + "src": "105:61:14" }, "payable": false, "returnParameters": { - "id": 4575, + "id": 4097, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4574, + "id": 4096, "name": "", "nodeType": "VariableDeclaration", - "scope": 4576, - "src": "185:8:8", + "scope": 4098, + "src": "185:8:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 4573, + "id": 4095, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "185:8:8", + "referencedDeclaration": 1803, + "src": "185:8:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -398,20 +398,20 @@ "visibility": "internal" } ], - "src": "184:10:8" + "src": "184:10:14" }, - "scope": 4577, - "src": "86:109:8", + "scope": 4099, + "src": "86:109:14", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 4578, - "src": "54:143:8" + "scope": 4100, + "src": "54:143:14" } ], - "src": "0:198:8" + "src": "0:198:14" }, "compiler": { "name": "solc", @@ -419,5 +419,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.275Z" + "updatedAt": "2018-12-06T13:14:33.057Z" } \ No newline at end of file diff --git a/build/contracts/IWToken.json b/build/contracts/IWToken.json index 6c1aa2f5..31c09854 100644 --- a/build/contracts/IWToken.json +++ b/build/contracts/IWToken.json @@ -1,29 +1,15 @@ { "contractName": "IWToken", "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": false, "inputs": [ { - "name": "_spender", + "name": "spender", "type": "address" }, { - "name": "_value", + "name": "value", "type": "uint256" } ], @@ -38,6 +24,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -56,15 +56,15 @@ "constant": false, "inputs": [ { - "name": "_from", + "name": "from", "type": "address" }, { - "name": "_to", + "name": "to", "type": "address" }, { - "name": "_value", + "name": "value", "type": "uint256" } ], @@ -83,29 +83,15 @@ "constant": true, "inputs": [ { - "name": "", + "name": "account", "type": "address" } ], - "name": "balances", + "name": "isAdmin", "outputs": [ { "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" + "type": "bool" } ], "payable": false, @@ -113,33 +99,24 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "", + "name": "account", "type": "address" - }, - { - "name": "", - "type": "uint256" - } - ], - "name": "vestingBalanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" } ], + "name": "addAdmin", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { - "name": "_who", + "name": "who", "type": "address" } ], @@ -155,28 +132,23 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], + "name": "renounceAdmin", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { - "name": "_to", + "name": "to", "type": "address" }, { - "name": "_value", + "name": "value", "type": "uint256" } ], @@ -195,11 +167,11 @@ "constant": true, "inputs": [ { - "name": "_owner", + "name": "owner", "type": "address" }, { - "name": "_spender", + "name": "spender", "type": "address" } ], @@ -219,12 +191,12 @@ "inputs": [ { "indexed": true, - "name": "owner", + "name": "from", "type": "address" }, { "indexed": true, - "name": "spender", + "name": "to", "type": "address" }, { @@ -233,7 +205,7 @@ "type": "uint256" } ], - "name": "Approval", + "name": "Transfer", "type": "event" }, { @@ -241,12 +213,12 @@ "inputs": [ { "indexed": true, - "name": "from", + "name": "owner", "type": "address" }, { "indexed": true, - "name": "to", + "name": "spender", "type": "address" }, { @@ -255,9 +227,32 @@ "type": "uint256" } ], - "name": "Transfer", + "name": "Approval", "type": "event" }, + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + }, + { + "name": "_date", + "type": "uint256" + } + ], + "name": "vestingBalanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ @@ -410,31 +405,45 @@ "type": "function" }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ { - "name": "caller", - "type": "address" + "name": "", + "type": "string" } ], - "name": "addTrustedAccount", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ { - "name": "caller", - "type": "address" + "name": "", + "type": "string" } ], - "name": "removeTrustedAccount", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", "type": "function" } ], @@ -442,20 +451,20 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol\";\n\ncontract IWToken is DetailedERC20 {\n mapping(address => uint256) public balances;\n mapping(address => mapping(uint256 => uint256)) public vestingBalanceOf;\n\n function vestingTransfer(address _to, uint256 _value, uint32 _vestingTime) external returns (bool);\n\n function increaseApproval(address _spender, uint _addedValue) public returns (bool);\n\n function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool);\n\n function mint(address _to, uint _amount, uint32 _vestingTime) external returns (bool);\n\n function burn(uint256 _value) public;\n\n function burnFrom(address _from, uint256 _value) public;\n\n function accountBalance(address _address) public view returns (uint256 balance);\n\n function addTrustedAccount(address caller) external;\n\n function removeTrustedAccount(address caller) external;\n}\n", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"../access/roles/IAdminRole.sol\";\n\ncontract IWToken is IERC20, IAdminRole {\n function vestingBalanceOf(address _address, uint _date) public view returns (uint);\n\n function vestingTransfer(address _to, uint256 _value, uint32 _vestingTime) external returns (bool);\n\n function increaseApproval(address _spender, uint _addedValue) public returns (bool);\n\n function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool);\n\n function mint(address _to, uint _amount, uint32 _vestingTime) external returns (bool);\n\n function burn(uint256 _value) public;\n\n function burnFrom(address _from, uint256 _value) public;\n\n function accountBalance(address _address) public view returns (uint256 balance);\n\n function name() public view returns (string);\n\n function symbol() public view returns (string);\n\n function decimals() public view returns (uint8);\n}\n", "sourcePath": "/home/circleci/code/contracts/token/IWToken.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", "exportedSymbols": { "IWToken": [ - 7894 + 10485 ] }, - "id": 7895, + "id": 10486, "nodeType": "SourceUnit", "nodes": [ { - "id": 7811, + "id": 10395, "literals": [ "solidity", "^", @@ -463,16 +472,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:29" + "src": "0:24:40" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "id": 7812, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 10396, "nodeType": "ImportDirective", - "scope": 7895, - "sourceUnit": 10169, - "src": "26:71:29", + "scope": 10486, + "sourceUnit": 13084, + "src": "26:64:40", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "file": "../access/roles/IAdminRole.sol", + "id": 10397, + "nodeType": "ImportDirective", + "scope": 10486, + "sourceUnit": 1376, + "src": "91:40:40", "symbolAliases": [], "unitAlias": "" }, @@ -482,152 +502,168 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 7813, - "name": "DetailedERC20", + "id": 10398, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13083, + "src": "153:6:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 10399, + "nodeType": "InheritanceSpecifier", + "src": "153:6:40" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10400, + "name": "IAdminRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10168, - "src": "119:13:29", + "referencedDeclaration": 1375, + "src": "161:10:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" + "typeIdentifier": "t_contract$_IAdminRole_$1375", + "typeString": "contract IAdminRole" } }, - "id": 7814, + "id": 10401, "nodeType": "InheritanceSpecifier", - "src": "119:13:29" + "src": "161:10:40" } ], "contractDependencies": [ - 10168, - 10211, - 10243 + 1375, + 13083 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 7894, + "id": 10485, "linearizedBaseContracts": [ - 7894, - 10168, - 10211, - 10243 + 10485, + 1375, + 13083 ], "name": "IWToken", "nodeType": "ContractDefinition", "nodes": [ { - "constant": false, - "id": 7818, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 7894, - "src": "139:43:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 7817, - "keyType": { - "id": 7815, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "147:7:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "139:27:29", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 7816, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "158:7:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7824, + "body": null, + "documentation": null, + "id": 10410, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], "name": "vestingBalanceOf", - "nodeType": "VariableDeclaration", - "scope": 7894, - "src": "188:71:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - }, - "typeName": { - "id": 7823, - "keyType": { - "id": 7819, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "196:7:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "188:47:29", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - }, - "valueType": { - "id": 7822, - "keyType": { - "id": 7820, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "215:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10403, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 10410, + "src": "204:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10402, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "204:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10405, + "name": "_date", + "nodeType": "VariableDeclaration", + "scope": 10410, + "src": "222:10:40", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "207:27:29", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 7821, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "226:7:29", + }, + "typeName": { + "id": 10404, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "222:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "203:30:40" + }, + "payable": false, + "returnParameters": { + "id": 10409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10408, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10410, + "src": "255:4:40", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "typeName": { + "id": 10407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "255:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } - } + ], + "src": "254:6:40" }, - "value": null, + "scope": 10485, + "src": "178:83:40", + "stateMutability": "view", + "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, - "id": 7835, + "id": 10421, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -635,16 +671,16 @@ "name": "vestingTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7831, + "id": 10417, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7826, + "id": 10412, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 7835, - "src": "291:11:29", + "scope": 10421, + "src": "292:11:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -652,10 +688,10 @@ "typeString": "address" }, "typeName": { - "id": 7825, + "id": 10411, "name": "address", "nodeType": "ElementaryTypeName", - "src": "291:7:29", + "src": "292:7:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -666,11 +702,11 @@ }, { "constant": false, - "id": 7828, + "id": 10414, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7835, - "src": "304:14:29", + "scope": 10421, + "src": "305:14:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -678,10 +714,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7827, + "id": 10413, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "304:7:29", + "src": "305:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -692,11 +728,11 @@ }, { "constant": false, - "id": 7830, + "id": 10416, "name": "_vestingTime", "nodeType": "VariableDeclaration", - "scope": 7835, - "src": "320:19:29", + "scope": 10421, + "src": "321:19:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -704,10 +740,10 @@ "typeString": "uint32" }, "typeName": { - "id": 7829, + "id": 10415, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "320:6:29", + "src": "321:6:40", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -717,20 +753,20 @@ "visibility": "internal" } ], - "src": "290:50:29" + "src": "291:50:40" }, "payable": false, "returnParameters": { - "id": 7834, + "id": 10420, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7833, + "id": 10419, "name": "", "nodeType": "VariableDeclaration", - "scope": 7835, - "src": "359:4:29", + "scope": 10421, + "src": "360:4:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -738,10 +774,10 @@ "typeString": "bool" }, "typeName": { - "id": 7832, + "id": 10418, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "359:4:29", + "src": "360:4:40", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -751,10 +787,10 @@ "visibility": "internal" } ], - "src": "358:6:29" + "src": "359:6:40" }, - "scope": 7894, - "src": "266:99:29", + "scope": 10485, + "src": "267:99:40", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -762,7 +798,7 @@ { "body": null, "documentation": null, - "id": 7844, + "id": 10430, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -770,16 +806,16 @@ "name": "increaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 7840, + "id": 10426, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7837, + "id": 10423, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 7844, - "src": "397:16:29", + "scope": 10430, + "src": "398:16:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -787,10 +823,10 @@ "typeString": "address" }, "typeName": { - "id": 7836, + "id": 10422, "name": "address", "nodeType": "ElementaryTypeName", - "src": "397:7:29", + "src": "398:7:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -801,11 +837,11 @@ }, { "constant": false, - "id": 7839, + "id": 10425, "name": "_addedValue", "nodeType": "VariableDeclaration", - "scope": 7844, - "src": "415:16:29", + "scope": 10430, + "src": "416:16:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -813,10 +849,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7838, + "id": 10424, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "415:4:29", + "src": "416:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -826,20 +862,20 @@ "visibility": "internal" } ], - "src": "396:36:29" + "src": "397:36:40" }, "payable": false, "returnParameters": { - "id": 7843, + "id": 10429, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7842, + "id": 10428, "name": "", "nodeType": "VariableDeclaration", - "scope": 7844, - "src": "449:4:29", + "scope": 10430, + "src": "450:4:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -847,10 +883,10 @@ "typeString": "bool" }, "typeName": { - "id": 7841, + "id": 10427, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "449:4:29", + "src": "450:4:40", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -860,10 +896,10 @@ "visibility": "internal" } ], - "src": "448:6:29" + "src": "449:6:40" }, - "scope": 7894, - "src": "371:84:29", + "scope": 10485, + "src": "372:84:40", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -871,7 +907,7 @@ { "body": null, "documentation": null, - "id": 7853, + "id": 10439, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -879,16 +915,16 @@ "name": "decreaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 7849, + "id": 10435, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7846, + "id": 10432, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 7853, - "src": "487:16:29", + "scope": 10439, + "src": "488:16:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -896,10 +932,10 @@ "typeString": "address" }, "typeName": { - "id": 7845, + "id": 10431, "name": "address", "nodeType": "ElementaryTypeName", - "src": "487:7:29", + "src": "488:7:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -910,11 +946,11 @@ }, { "constant": false, - "id": 7848, + "id": 10434, "name": "_subtractedValue", "nodeType": "VariableDeclaration", - "scope": 7853, - "src": "505:21:29", + "scope": 10439, + "src": "506:21:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -922,10 +958,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7847, + "id": 10433, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "505:4:29", + "src": "506:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -935,20 +971,20 @@ "visibility": "internal" } ], - "src": "486:41:29" + "src": "487:41:40" }, "payable": false, "returnParameters": { - "id": 7852, + "id": 10438, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7851, + "id": 10437, "name": "", "nodeType": "VariableDeclaration", - "scope": 7853, - "src": "544:4:29", + "scope": 10439, + "src": "545:4:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -956,10 +992,10 @@ "typeString": "bool" }, "typeName": { - "id": 7850, + "id": 10436, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "544:4:29", + "src": "545:4:40", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -969,10 +1005,10 @@ "visibility": "internal" } ], - "src": "543:6:29" + "src": "544:6:40" }, - "scope": 7894, - "src": "461:89:29", + "scope": 10485, + "src": "462:89:40", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -980,7 +1016,7 @@ { "body": null, "documentation": null, - "id": 7864, + "id": 10450, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -988,16 +1024,16 @@ "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 7860, + "id": 10446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7855, + "id": 10441, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 7864, - "src": "570:11:29", + "scope": 10450, + "src": "571:11:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1005,10 +1041,10 @@ "typeString": "address" }, "typeName": { - "id": 7854, + "id": 10440, "name": "address", "nodeType": "ElementaryTypeName", - "src": "570:7:29", + "src": "571:7:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1019,11 +1055,11 @@ }, { "constant": false, - "id": 7857, + "id": 10443, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 7864, - "src": "583:12:29", + "scope": 10450, + "src": "584:12:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1031,10 +1067,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7856, + "id": 10442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "583:4:29", + "src": "584:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1045,11 +1081,11 @@ }, { "constant": false, - "id": 7859, + "id": 10445, "name": "_vestingTime", "nodeType": "VariableDeclaration", - "scope": 7864, - "src": "597:19:29", + "scope": 10450, + "src": "598:19:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1057,10 +1093,10 @@ "typeString": "uint32" }, "typeName": { - "id": 7858, + "id": 10444, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "597:6:29", + "src": "598:6:40", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1070,20 +1106,20 @@ "visibility": "internal" } ], - "src": "569:48:29" + "src": "570:48:40" }, "payable": false, "returnParameters": { - "id": 7863, + "id": 10449, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7862, + "id": 10448, "name": "", "nodeType": "VariableDeclaration", - "scope": 7864, - "src": "636:4:29", + "scope": 10450, + "src": "637:4:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1091,10 +1127,10 @@ "typeString": "bool" }, "typeName": { - "id": 7861, + "id": 10447, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "636:4:29", + "src": "637:4:40", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1104,10 +1140,10 @@ "visibility": "internal" } ], - "src": "635:6:29" + "src": "636:6:40" }, - "scope": 7894, - "src": "556:86:29", + "scope": 10485, + "src": "557:86:40", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -1115,7 +1151,7 @@ { "body": null, "documentation": null, - "id": 7869, + "id": 10455, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1123,16 +1159,16 @@ "name": "burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 7867, + "id": 10453, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7866, + "id": 10452, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7869, - "src": "662:14:29", + "scope": 10455, + "src": "663:14:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1140,10 +1176,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7865, + "id": 10451, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "662:7:29", + "src": "663:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1153,17 +1189,17 @@ "visibility": "internal" } ], - "src": "661:16:29" + "src": "662:16:40" }, "payable": false, "returnParameters": { - "id": 7868, + "id": 10454, "nodeType": "ParameterList", "parameters": [], - "src": "684:0:29" + "src": "685:0:40" }, - "scope": 7894, - "src": "648:37:29", + "scope": 10485, + "src": "649:37:40", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1171,7 +1207,7 @@ { "body": null, "documentation": null, - "id": 7876, + "id": 10462, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1179,16 +1215,16 @@ "name": "burnFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 7874, + "id": 10460, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7871, + "id": 10457, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 7876, - "src": "709:13:29", + "scope": 10462, + "src": "710:13:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1196,10 +1232,10 @@ "typeString": "address" }, "typeName": { - "id": 7870, + "id": 10456, "name": "address", "nodeType": "ElementaryTypeName", - "src": "709:7:29", + "src": "710:7:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1210,11 +1246,11 @@ }, { "constant": false, - "id": 7873, + "id": 10459, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7876, - "src": "724:14:29", + "scope": 10462, + "src": "725:14:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1222,10 +1258,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7872, + "id": 10458, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "724:7:29", + "src": "725:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1235,17 +1271,17 @@ "visibility": "internal" } ], - "src": "708:31:29" + "src": "709:31:40" }, "payable": false, "returnParameters": { - "id": 7875, + "id": 10461, "nodeType": "ParameterList", "parameters": [], - "src": "746:0:29" + "src": "747:0:40" }, - "scope": 7894, - "src": "691:56:29", + "scope": 10485, + "src": "692:56:40", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1253,7 +1289,7 @@ { "body": null, "documentation": null, - "id": 7883, + "id": 10469, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1261,16 +1297,16 @@ "name": "accountBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 7879, + "id": 10465, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7878, + "id": 10464, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 7883, - "src": "777:16:29", + "scope": 10469, + "src": "778:16:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1278,10 +1314,10 @@ "typeString": "address" }, "typeName": { - "id": 7877, + "id": 10463, "name": "address", "nodeType": "ElementaryTypeName", - "src": "777:7:29", + "src": "778:7:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1291,20 +1327,20 @@ "visibility": "internal" } ], - "src": "776:18:29" + "src": "777:18:40" }, "payable": false, "returnParameters": { - "id": 7882, + "id": 10468, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7881, + "id": 10467, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 7883, - "src": "816:15:29", + "scope": 10469, + "src": "817:15:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1312,10 +1348,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7880, + "id": 10466, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "816:7:29", + "src": "817:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1325,10 +1361,10 @@ "visibility": "internal" } ], - "src": "815:17:29" + "src": "816:17:40" }, - "scope": 7894, - "src": "753:80:29", + "scope": 10485, + "src": "754:80:40", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1336,134 +1372,190 @@ { "body": null, "documentation": null, - "id": 7888, + "id": 10474, "implemented": false, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "addTrustedAccount", + "name": "name", "nodeType": "FunctionDefinition", "parameters": { - "id": 7886, + "id": 10470, + "nodeType": "ParameterList", + "parameters": [], + "src": "853:2:40" + }, + "payable": false, + "returnParameters": { + "id": 10473, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7885, - "name": "caller", + "id": 10472, + "name": "", "nodeType": "VariableDeclaration", - "scope": 7888, - "src": "866:14:29", + "scope": 10474, + "src": "877:6:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 7884, - "name": "address", + "id": 10471, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "866:7:29", + "src": "877:6:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" } ], - "src": "865:16:29" - }, - "payable": false, - "returnParameters": { - "id": 7887, - "nodeType": "ParameterList", - "parameters": [], - "src": "890:0:29" + "src": "876:8:40" }, - "scope": 7894, - "src": "839:52:29", - "stateMutability": "nonpayable", + "scope": 10485, + "src": "840:45:40", + "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 7893, + "id": 10479, "implemented": false, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "removeTrustedAccount", + "name": "symbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7891, + "id": 10475, + "nodeType": "ParameterList", + "parameters": [], + "src": "906:2:40" + }, + "payable": false, + "returnParameters": { + "id": 10478, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7890, - "name": "caller", + "id": 10477, + "name": "", "nodeType": "VariableDeclaration", - "scope": 7893, - "src": "927:14:29", + "scope": 10479, + "src": "930:6:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 7889, - "name": "address", + "id": 10476, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "927:7:29", + "src": "930:6:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" } ], - "src": "926:16:29" + "src": "929:8:40" + }, + "scope": 10485, + "src": "891:47:40", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 10484, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10480, + "nodeType": "ParameterList", + "parameters": [], + "src": "961:2:40" }, "payable": false, "returnParameters": { - "id": 7892, + "id": 10483, "nodeType": "ParameterList", - "parameters": [], - "src": "951:0:29" + "parameters": [ + { + "constant": false, + "id": 10482, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10484, + "src": "985:5:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 10481, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "985:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "984:7:40" }, - "scope": 7894, - "src": "897:55:29", - "stateMutability": "nonpayable", + "scope": 10485, + "src": "944:48:40", + "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" } ], - "scope": 7895, - "src": "99:855:29" + "scope": 10486, + "src": "133:861:40" } ], - "src": "0:955:29" + "src": "0:995:40" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", "exportedSymbols": { "IWToken": [ - 7894 + 10485 ] }, - "id": 7895, + "id": 10486, "nodeType": "SourceUnit", "nodes": [ { - "id": 7811, + "id": 10395, "literals": [ "solidity", "^", @@ -1471,16 +1563,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:29" + "src": "0:24:40" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 10396, + "nodeType": "ImportDirective", + "scope": 10486, + "sourceUnit": 13084, + "src": "26:64:40", + "symbolAliases": [], + "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "id": 7812, + "absolutePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "file": "../access/roles/IAdminRole.sol", + "id": 10397, "nodeType": "ImportDirective", - "scope": 7895, - "sourceUnit": 10169, - "src": "26:71:29", + "scope": 10486, + "sourceUnit": 1376, + "src": "91:40:40", "symbolAliases": [], "unitAlias": "" }, @@ -1490,152 +1593,168 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 7813, - "name": "DetailedERC20", + "id": 10398, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13083, + "src": "153:6:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 10399, + "nodeType": "InheritanceSpecifier", + "src": "153:6:40" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10400, + "name": "IAdminRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10168, - "src": "119:13:29", + "referencedDeclaration": 1375, + "src": "161:10:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" + "typeIdentifier": "t_contract$_IAdminRole_$1375", + "typeString": "contract IAdminRole" } }, - "id": 7814, + "id": 10401, "nodeType": "InheritanceSpecifier", - "src": "119:13:29" + "src": "161:10:40" } ], "contractDependencies": [ - 10168, - 10211, - 10243 + 1375, + 13083 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 7894, + "id": 10485, "linearizedBaseContracts": [ - 7894, - 10168, - 10211, - 10243 + 10485, + 1375, + 13083 ], "name": "IWToken", "nodeType": "ContractDefinition", "nodes": [ { - "constant": false, - "id": 7818, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 7894, - "src": "139:43:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 7817, - "keyType": { - "id": 7815, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "147:7:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "139:27:29", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 7816, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "158:7:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7824, + "body": null, + "documentation": null, + "id": 10410, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], "name": "vestingBalanceOf", - "nodeType": "VariableDeclaration", - "scope": 7894, - "src": "188:71:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - }, - "typeName": { - "id": 7823, - "keyType": { - "id": 7819, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "196:7:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "188:47:29", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - }, - "valueType": { - "id": 7822, - "keyType": { - "id": 7820, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "215:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10403, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 10410, + "src": "204:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10402, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "204:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10405, + "name": "_date", + "nodeType": "VariableDeclaration", + "scope": 10410, + "src": "222:10:40", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "207:27:29", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 7821, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "226:7:29", + }, + "typeName": { + "id": 10404, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "222:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "203:30:40" + }, + "payable": false, + "returnParameters": { + "id": 10409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10408, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10410, + "src": "255:4:40", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "typeName": { + "id": 10407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "255:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } - } + ], + "src": "254:6:40" }, - "value": null, + "scope": 10485, + "src": "178:83:40", + "stateMutability": "view", + "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, - "id": 7835, + "id": 10421, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1643,16 +1762,16 @@ "name": "vestingTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7831, + "id": 10417, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7826, + "id": 10412, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 7835, - "src": "291:11:29", + "scope": 10421, + "src": "292:11:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1660,10 +1779,10 @@ "typeString": "address" }, "typeName": { - "id": 7825, + "id": 10411, "name": "address", "nodeType": "ElementaryTypeName", - "src": "291:7:29", + "src": "292:7:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1674,11 +1793,11 @@ }, { "constant": false, - "id": 7828, + "id": 10414, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7835, - "src": "304:14:29", + "scope": 10421, + "src": "305:14:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1686,10 +1805,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7827, + "id": 10413, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "304:7:29", + "src": "305:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1700,11 +1819,11 @@ }, { "constant": false, - "id": 7830, + "id": 10416, "name": "_vestingTime", "nodeType": "VariableDeclaration", - "scope": 7835, - "src": "320:19:29", + "scope": 10421, + "src": "321:19:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1712,10 +1831,10 @@ "typeString": "uint32" }, "typeName": { - "id": 7829, + "id": 10415, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "320:6:29", + "src": "321:6:40", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1725,20 +1844,20 @@ "visibility": "internal" } ], - "src": "290:50:29" + "src": "291:50:40" }, "payable": false, "returnParameters": { - "id": 7834, + "id": 10420, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7833, + "id": 10419, "name": "", "nodeType": "VariableDeclaration", - "scope": 7835, - "src": "359:4:29", + "scope": 10421, + "src": "360:4:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1746,10 +1865,10 @@ "typeString": "bool" }, "typeName": { - "id": 7832, + "id": 10418, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "359:4:29", + "src": "360:4:40", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1759,10 +1878,10 @@ "visibility": "internal" } ], - "src": "358:6:29" + "src": "359:6:40" }, - "scope": 7894, - "src": "266:99:29", + "scope": 10485, + "src": "267:99:40", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -1770,7 +1889,7 @@ { "body": null, "documentation": null, - "id": 7844, + "id": 10430, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1778,16 +1897,16 @@ "name": "increaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 7840, + "id": 10426, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7837, + "id": 10423, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 7844, - "src": "397:16:29", + "scope": 10430, + "src": "398:16:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1795,10 +1914,10 @@ "typeString": "address" }, "typeName": { - "id": 7836, + "id": 10422, "name": "address", "nodeType": "ElementaryTypeName", - "src": "397:7:29", + "src": "398:7:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1809,11 +1928,11 @@ }, { "constant": false, - "id": 7839, + "id": 10425, "name": "_addedValue", "nodeType": "VariableDeclaration", - "scope": 7844, - "src": "415:16:29", + "scope": 10430, + "src": "416:16:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1821,10 +1940,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7838, + "id": 10424, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "415:4:29", + "src": "416:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1834,20 +1953,20 @@ "visibility": "internal" } ], - "src": "396:36:29" + "src": "397:36:40" }, "payable": false, "returnParameters": { - "id": 7843, + "id": 10429, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7842, + "id": 10428, "name": "", "nodeType": "VariableDeclaration", - "scope": 7844, - "src": "449:4:29", + "scope": 10430, + "src": "450:4:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1855,10 +1974,10 @@ "typeString": "bool" }, "typeName": { - "id": 7841, + "id": 10427, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "449:4:29", + "src": "450:4:40", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1868,10 +1987,10 @@ "visibility": "internal" } ], - "src": "448:6:29" + "src": "449:6:40" }, - "scope": 7894, - "src": "371:84:29", + "scope": 10485, + "src": "372:84:40", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1879,7 +1998,7 @@ { "body": null, "documentation": null, - "id": 7853, + "id": 10439, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1887,16 +2006,16 @@ "name": "decreaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 7849, + "id": 10435, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7846, + "id": 10432, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 7853, - "src": "487:16:29", + "scope": 10439, + "src": "488:16:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1904,10 +2023,10 @@ "typeString": "address" }, "typeName": { - "id": 7845, + "id": 10431, "name": "address", "nodeType": "ElementaryTypeName", - "src": "487:7:29", + "src": "488:7:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1918,11 +2037,11 @@ }, { "constant": false, - "id": 7848, + "id": 10434, "name": "_subtractedValue", "nodeType": "VariableDeclaration", - "scope": 7853, - "src": "505:21:29", + "scope": 10439, + "src": "506:21:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1930,10 +2049,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7847, + "id": 10433, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "505:4:29", + "src": "506:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1943,20 +2062,20 @@ "visibility": "internal" } ], - "src": "486:41:29" + "src": "487:41:40" }, "payable": false, "returnParameters": { - "id": 7852, + "id": 10438, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7851, + "id": 10437, "name": "", "nodeType": "VariableDeclaration", - "scope": 7853, - "src": "544:4:29", + "scope": 10439, + "src": "545:4:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1964,10 +2083,10 @@ "typeString": "bool" }, "typeName": { - "id": 7850, + "id": 10436, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "544:4:29", + "src": "545:4:40", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1977,10 +2096,10 @@ "visibility": "internal" } ], - "src": "543:6:29" + "src": "544:6:40" }, - "scope": 7894, - "src": "461:89:29", + "scope": 10485, + "src": "462:89:40", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1988,7 +2107,7 @@ { "body": null, "documentation": null, - "id": 7864, + "id": 10450, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1996,16 +2115,16 @@ "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 7860, + "id": 10446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7855, + "id": 10441, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 7864, - "src": "570:11:29", + "scope": 10450, + "src": "571:11:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2013,10 +2132,10 @@ "typeString": "address" }, "typeName": { - "id": 7854, + "id": 10440, "name": "address", "nodeType": "ElementaryTypeName", - "src": "570:7:29", + "src": "571:7:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2027,11 +2146,11 @@ }, { "constant": false, - "id": 7857, + "id": 10443, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 7864, - "src": "583:12:29", + "scope": 10450, + "src": "584:12:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2039,10 +2158,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7856, + "id": 10442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "583:4:29", + "src": "584:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2053,11 +2172,11 @@ }, { "constant": false, - "id": 7859, + "id": 10445, "name": "_vestingTime", "nodeType": "VariableDeclaration", - "scope": 7864, - "src": "597:19:29", + "scope": 10450, + "src": "598:19:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2065,10 +2184,10 @@ "typeString": "uint32" }, "typeName": { - "id": 7858, + "id": 10444, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "597:6:29", + "src": "598:6:40", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2078,20 +2197,20 @@ "visibility": "internal" } ], - "src": "569:48:29" + "src": "570:48:40" }, "payable": false, "returnParameters": { - "id": 7863, + "id": 10449, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7862, + "id": 10448, "name": "", "nodeType": "VariableDeclaration", - "scope": 7864, - "src": "636:4:29", + "scope": 10450, + "src": "637:4:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2099,10 +2218,10 @@ "typeString": "bool" }, "typeName": { - "id": 7861, + "id": 10447, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "636:4:29", + "src": "637:4:40", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2112,10 +2231,10 @@ "visibility": "internal" } ], - "src": "635:6:29" + "src": "636:6:40" }, - "scope": 7894, - "src": "556:86:29", + "scope": 10485, + "src": "557:86:40", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -2123,7 +2242,7 @@ { "body": null, "documentation": null, - "id": 7869, + "id": 10455, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2131,16 +2250,16 @@ "name": "burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 7867, + "id": 10453, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7866, + "id": 10452, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7869, - "src": "662:14:29", + "scope": 10455, + "src": "663:14:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2148,10 +2267,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7865, + "id": 10451, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "662:7:29", + "src": "663:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2161,17 +2280,17 @@ "visibility": "internal" } ], - "src": "661:16:29" + "src": "662:16:40" }, "payable": false, "returnParameters": { - "id": 7868, + "id": 10454, "nodeType": "ParameterList", "parameters": [], - "src": "684:0:29" + "src": "685:0:40" }, - "scope": 7894, - "src": "648:37:29", + "scope": 10485, + "src": "649:37:40", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2179,7 +2298,7 @@ { "body": null, "documentation": null, - "id": 7876, + "id": 10462, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2187,16 +2306,16 @@ "name": "burnFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 7874, + "id": 10460, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7871, + "id": 10457, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 7876, - "src": "709:13:29", + "scope": 10462, + "src": "710:13:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2204,10 +2323,10 @@ "typeString": "address" }, "typeName": { - "id": 7870, + "id": 10456, "name": "address", "nodeType": "ElementaryTypeName", - "src": "709:7:29", + "src": "710:7:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2218,11 +2337,11 @@ }, { "constant": false, - "id": 7873, + "id": 10459, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7876, - "src": "724:14:29", + "scope": 10462, + "src": "725:14:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2230,10 +2349,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7872, + "id": 10458, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "724:7:29", + "src": "725:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2243,17 +2362,17 @@ "visibility": "internal" } ], - "src": "708:31:29" + "src": "709:31:40" }, "payable": false, "returnParameters": { - "id": 7875, + "id": 10461, "nodeType": "ParameterList", "parameters": [], - "src": "746:0:29" + "src": "747:0:40" }, - "scope": 7894, - "src": "691:56:29", + "scope": 10485, + "src": "692:56:40", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2261,7 +2380,7 @@ { "body": null, "documentation": null, - "id": 7883, + "id": 10469, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2269,16 +2388,16 @@ "name": "accountBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 7879, + "id": 10465, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7878, + "id": 10464, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 7883, - "src": "777:16:29", + "scope": 10469, + "src": "778:16:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2286,10 +2405,10 @@ "typeString": "address" }, "typeName": { - "id": 7877, + "id": 10463, "name": "address", "nodeType": "ElementaryTypeName", - "src": "777:7:29", + "src": "778:7:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2299,20 +2418,20 @@ "visibility": "internal" } ], - "src": "776:18:29" + "src": "777:18:40" }, "payable": false, "returnParameters": { - "id": 7882, + "id": 10468, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7881, + "id": 10467, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 7883, - "src": "816:15:29", + "scope": 10469, + "src": "817:15:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2320,10 +2439,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7880, + "id": 10466, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "816:7:29", + "src": "817:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2333,10 +2452,10 @@ "visibility": "internal" } ], - "src": "815:17:29" + "src": "816:17:40" }, - "scope": 7894, - "src": "753:80:29", + "scope": 10485, + "src": "754:80:40", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -2344,121 +2463,177 @@ { "body": null, "documentation": null, - "id": 7888, + "id": 10474, "implemented": false, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "addTrustedAccount", + "name": "name", "nodeType": "FunctionDefinition", "parameters": { - "id": 7886, + "id": 10470, + "nodeType": "ParameterList", + "parameters": [], + "src": "853:2:40" + }, + "payable": false, + "returnParameters": { + "id": 10473, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7885, - "name": "caller", + "id": 10472, + "name": "", "nodeType": "VariableDeclaration", - "scope": 7888, - "src": "866:14:29", + "scope": 10474, + "src": "877:6:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 7884, - "name": "address", + "id": 10471, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "866:7:29", + "src": "877:6:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" } ], - "src": "865:16:29" - }, - "payable": false, - "returnParameters": { - "id": 7887, - "nodeType": "ParameterList", - "parameters": [], - "src": "890:0:29" + "src": "876:8:40" }, - "scope": 7894, - "src": "839:52:29", - "stateMutability": "nonpayable", + "scope": 10485, + "src": "840:45:40", + "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": null, "documentation": null, - "id": 7893, + "id": 10479, "implemented": false, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "removeTrustedAccount", + "name": "symbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7891, + "id": 10475, + "nodeType": "ParameterList", + "parameters": [], + "src": "906:2:40" + }, + "payable": false, + "returnParameters": { + "id": 10478, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7890, - "name": "caller", + "id": 10477, + "name": "", "nodeType": "VariableDeclaration", - "scope": 7893, - "src": "927:14:29", + "scope": 10479, + "src": "930:6:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 7889, - "name": "address", + "id": 10476, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "927:7:29", + "src": "930:6:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" } ], - "src": "926:16:29" + "src": "929:8:40" + }, + "scope": 10485, + "src": "891:47:40", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 10484, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10480, + "nodeType": "ParameterList", + "parameters": [], + "src": "961:2:40" }, "payable": false, "returnParameters": { - "id": 7892, + "id": 10483, "nodeType": "ParameterList", - "parameters": [], - "src": "951:0:29" + "parameters": [ + { + "constant": false, + "id": 10482, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10484, + "src": "985:5:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 10481, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "985:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "984:7:40" }, - "scope": 7894, - "src": "897:55:29", - "stateMutability": "nonpayable", + "scope": 10485, + "src": "944:48:40", + "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" } ], - "scope": 7895, - "src": "99:855:29" + "scope": 10486, + "src": "133:861:40" } ], - "src": "0:955:29" + "src": "0:995:40" }, "compiler": { "name": "solc", @@ -2466,5 +2641,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.337Z" + "updatedAt": "2018-12-06T13:14:33.226Z" } \ No newline at end of file diff --git a/build/contracts/IWallets.json b/build/contracts/IWallets.json index 5c0eae3f..7f81f644 100644 --- a/build/contracts/IWallets.json +++ b/build/contracts/IWallets.json @@ -43,20 +43,20 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\ncontract IWallets {\n function setWallet(uint8 ID, address wallet);\n\n function getWallet(uint8 ID) public view returns(address);\n}\n", + "source": "pragma solidity ^0.4.24;\n\ncontract IWallets {\n function setWallet(uint8 ID, address wallet) public;\n\n function getWallet(uint8 ID) public view returns(address);\n}\n", "sourcePath": "/home/circleci/code/contracts/wallets/IWallets.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/wallets/IWallets.sol", "exportedSymbols": { "IWallets": [ - 9685 + 12001 ] }, - "id": 9686, + "id": 12002, "nodeType": "SourceUnit", "nodes": [ { - "id": 9669, + "id": 11986, "literals": [ "solidity", "^", @@ -64,18 +64,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:39" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 9670, - "nodeType": "ImportDirective", - "scope": 9686, - "sourceUnit": 10135, - "src": "26:63:39", - "symbolAliases": [], - "unitAlias": "" + "src": "0:24:50" }, { "baseContracts": [], @@ -83,9 +72,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 9685, + "id": 12001, "linearizedBaseContracts": [ - 9685 + 12001 ], "name": "IWallets", "nodeType": "ContractDefinition", @@ -93,7 +82,7 @@ { "body": null, "documentation": null, - "id": 9677, + "id": 11993, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -101,16 +90,16 @@ "name": "setWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 9675, + "id": 11991, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9672, + "id": 11988, "name": "ID", "nodeType": "VariableDeclaration", - "scope": 9677, - "src": "134:8:39", + "scope": 11993, + "src": "69:8:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -118,10 +107,10 @@ "typeString": "uint8" }, "typeName": { - "id": 9671, + "id": 11987, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "134:5:39", + "src": "69:5:50", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -132,11 +121,11 @@ }, { "constant": false, - "id": 9674, + "id": 11990, "name": "wallet", "nodeType": "VariableDeclaration", - "scope": 9677, - "src": "144:14:39", + "scope": 11993, + "src": "79:14:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -144,10 +133,10 @@ "typeString": "address" }, "typeName": { - "id": 9673, + "id": 11989, "name": "address", "nodeType": "ElementaryTypeName", - "src": "144:7:39", + "src": "79:7:50", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -157,17 +146,17 @@ "visibility": "internal" } ], - "src": "133:26:39" + "src": "68:26:50" }, "payable": false, "returnParameters": { - "id": 9676, + "id": 11992, "nodeType": "ParameterList", "parameters": [], - "src": "159:0:39" + "src": "101:0:50" }, - "scope": 9685, - "src": "115:45:39", + "scope": 12001, + "src": "50:52:50", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -175,7 +164,7 @@ { "body": null, "documentation": null, - "id": 9684, + "id": 12000, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -183,16 +172,16 @@ "name": "getWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 9680, + "id": 11996, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9679, + "id": 11995, "name": "ID", "nodeType": "VariableDeclaration", - "scope": 9684, - "src": "185:8:39", + "scope": 12000, + "src": "127:8:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -200,10 +189,10 @@ "typeString": "uint8" }, "typeName": { - "id": 9678, + "id": 11994, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "185:5:39", + "src": "127:5:50", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -213,20 +202,20 @@ "visibility": "internal" } ], - "src": "184:10:39" + "src": "126:10:50" }, "payable": false, "returnParameters": { - "id": 9683, + "id": 11999, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9682, + "id": 11998, "name": "", "nodeType": "VariableDeclaration", - "scope": 9684, - "src": "215:7:39", + "scope": 12000, + "src": "157:7:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -234,10 +223,10 @@ "typeString": "address" }, "typeName": { - "id": 9681, + "id": 11997, "name": "address", "nodeType": "ElementaryTypeName", - "src": "215:7:39", + "src": "157:7:50", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -247,33 +236,33 @@ "visibility": "internal" } ], - "src": "214:9:39" + "src": "156:9:50" }, - "scope": 9685, - "src": "166:58:39", + "scope": 12001, + "src": "108:58:50", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 9686, - "src": "91:135:39" + "scope": 12002, + "src": "26:142:50" } ], - "src": "0:227:39" + "src": "0:169:50" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/wallets/IWallets.sol", "exportedSymbols": { "IWallets": [ - 9685 + 12001 ] }, - "id": 9686, + "id": 12002, "nodeType": "SourceUnit", "nodes": [ { - "id": 9669, + "id": 11986, "literals": [ "solidity", "^", @@ -281,18 +270,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:39" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 9670, - "nodeType": "ImportDirective", - "scope": 9686, - "sourceUnit": 10135, - "src": "26:63:39", - "symbolAliases": [], - "unitAlias": "" + "src": "0:24:50" }, { "baseContracts": [], @@ -300,9 +278,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 9685, + "id": 12001, "linearizedBaseContracts": [ - 9685 + 12001 ], "name": "IWallets", "nodeType": "ContractDefinition", @@ -310,7 +288,7 @@ { "body": null, "documentation": null, - "id": 9677, + "id": 11993, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -318,16 +296,16 @@ "name": "setWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 9675, + "id": 11991, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9672, + "id": 11988, "name": "ID", "nodeType": "VariableDeclaration", - "scope": 9677, - "src": "134:8:39", + "scope": 11993, + "src": "69:8:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -335,10 +313,10 @@ "typeString": "uint8" }, "typeName": { - "id": 9671, + "id": 11987, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "134:5:39", + "src": "69:5:50", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -349,11 +327,11 @@ }, { "constant": false, - "id": 9674, + "id": 11990, "name": "wallet", "nodeType": "VariableDeclaration", - "scope": 9677, - "src": "144:14:39", + "scope": 11993, + "src": "79:14:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -361,10 +339,10 @@ "typeString": "address" }, "typeName": { - "id": 9673, + "id": 11989, "name": "address", "nodeType": "ElementaryTypeName", - "src": "144:7:39", + "src": "79:7:50", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -374,17 +352,17 @@ "visibility": "internal" } ], - "src": "133:26:39" + "src": "68:26:50" }, "payable": false, "returnParameters": { - "id": 9676, + "id": 11992, "nodeType": "ParameterList", "parameters": [], - "src": "159:0:39" + "src": "101:0:50" }, - "scope": 9685, - "src": "115:45:39", + "scope": 12001, + "src": "50:52:50", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -392,7 +370,7 @@ { "body": null, "documentation": null, - "id": 9684, + "id": 12000, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -400,16 +378,16 @@ "name": "getWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 9680, + "id": 11996, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9679, + "id": 11995, "name": "ID", "nodeType": "VariableDeclaration", - "scope": 9684, - "src": "185:8:39", + "scope": 12000, + "src": "127:8:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -417,10 +395,10 @@ "typeString": "uint8" }, "typeName": { - "id": 9678, + "id": 11994, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "185:5:39", + "src": "127:5:50", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -430,20 +408,20 @@ "visibility": "internal" } ], - "src": "184:10:39" + "src": "126:10:50" }, "payable": false, "returnParameters": { - "id": 9683, + "id": 11999, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9682, + "id": 11998, "name": "", "nodeType": "VariableDeclaration", - "scope": 9684, - "src": "215:7:39", + "scope": 12000, + "src": "157:7:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -451,10 +429,10 @@ "typeString": "address" }, "typeName": { - "id": 9681, + "id": 11997, "name": "address", "nodeType": "ElementaryTypeName", - "src": "215:7:39", + "src": "157:7:50", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -464,20 +442,20 @@ "visibility": "internal" } ], - "src": "214:9:39" + "src": "156:9:50" }, - "scope": 9685, - "src": "166:58:39", + "scope": 12001, + "src": "108:58:50", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 9686, - "src": "91:135:39" + "scope": 12002, + "src": "26:142:50" } ], - "src": "0:227:39" + "src": "0:169:50" }, "compiler": { "name": "solc", @@ -485,5 +463,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.348Z" + "updatedAt": "2018-12-06T13:14:33.231Z" } \ No newline at end of file diff --git a/build/contracts/Migrations.json b/build/contracts/Migrations.json index 7dc2795e..0c6d316c 100644 --- a/build/contracts/Migrations.json +++ b/build/contracts/Migrations.json @@ -85,8 +85,8 @@ ], "bytecode": "0x608060405234801561001057600080fd5b506040516020806102aa833981016040525160005560018054600160a060020a03191633179055610264806100466000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630900f0108114610071578063445df0ac146100a157806354fd4d50146100c85780638da5cb5b146100dd578063fdacd5761461011b575b600080fd5b34801561007d57600080fd5b5061009f73ffffffffffffffffffffffffffffffffffffffff60043516610133565b005b3480156100ad57600080fd5b506100b66101e7565b60408051918252519081900360200190f35b3480156100d457600080fd5b506100b66101ed565b3480156100e957600080fd5b506100f26101f3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561012757600080fd5b5061009f60043561020f565b60015460009073ffffffffffffffffffffffffffffffffffffffff163314156101e3578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766002546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156101ca57600080fd5b505af11580156101de573d6000803e3d6000fd5b505050505b5050565b60025481565b60005481565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff163314156102355760028190555b505600a165627a7a72305820643f9f02ff6fd692c18a656c13c0568efd62ed056b86cbe889921d1dc996102b0029", "deployedBytecode": "0x60806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630900f0108114610071578063445df0ac146100a157806354fd4d50146100c85780638da5cb5b146100dd578063fdacd5761461011b575b600080fd5b34801561007d57600080fd5b5061009f73ffffffffffffffffffffffffffffffffffffffff60043516610133565b005b3480156100ad57600080fd5b506100b66101e7565b60408051918252519081900360200190f35b3480156100d457600080fd5b506100b66101ed565b3480156100e957600080fd5b506100f26101f3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561012757600080fd5b5061009f60043561020f565b60015460009073ffffffffffffffffffffffffffffffffffffffff163314156101e3578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766002546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156101ca57600080fd5b505af11580156101de573d6000803e3d6000fd5b505050505b5050565b60025481565b60005481565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff163314156102355760028190555b505600a165627a7a72305820643f9f02ff6fd692c18a656c13c0568efd62ed056b86cbe889921d1dc996102b0029", - "sourceMap": "66:528:0:-;;;233:83;8:9:-1;5:2;;;30:1;27;20:12;5:2;233:83:0;;;;;;;;;;;;;123:7:37;:18;293:5:0;:18;;-1:-1:-1;;;;;;293:18:0;301:10;293:18;;;66:528;;;;;;", - "deployedSourceMap": "66:528:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;427:165:0;;;;;;;;;129:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;129:36:0;;;;;;;;;;;;;;;;;;;;53:19:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:37;;;;105:20:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;105:20:0;;;;;;;;;;;;;;;;;;;;;;;320:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;320:103:0;;;;;427:165;216:5;;489:19;;216:5;;202:10;:19;198:26;;;522:11;489:45;;540:8;:21;;;562:24;;540:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;540:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;540:47:0;;;;198:26;427:165;;:::o;129:36::-;;;;:::o;53:19:37:-;;;;:::o;105:20:0:-;;;;;;:::o;320:103::-;216:5;;;;202:10;:19;198:26;;;382:24;:36;;;198:26;320:103;:::o", + "sourceMap": "66:528:0:-;;;233:83;8:9:-1;5:2;;;30:1;27;20:12;5:2;233:83:0;;;;;;;;;;;;;123:7:48;:18;293:5:0;:18;;-1:-1:-1;;;;;;293:18:0;301:10;293:18;;;66:528;;;;;;", + "deployedSourceMap": "66:528:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;427:165:0;;;;;;;;;129:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;129:36:0;;;;;;;;;;;;;;;;;;;;53:19:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:48;;;;105:20:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;105:20:0;;;;;;;;;;;;;;;;;;;;;;;320:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;320:103:0;;;;;427:165;216:5;;489:19;;216:5;;202:10;:19;198:26;;;522:11;489:45;;540:8;:21;;;562:24;;540:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;540:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;540:47:0;;;;198:26;427:165;;:::o;129:36::-;;;;:::o;53:19:48:-;;;;:::o;105:20:0:-;;;;;;:::o;320:103::-;216:5;;;;202:10;:19;198:26;;;382:24;:36;;;198:26;320:103;:::o", "source": "pragma solidity ^0.4.24;\n\nimport \"./versioning/Versionable.sol\";\n\ncontract Migrations is Versionable {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor(uint version) Versionable(version) public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/Migrations.sol", "ast": { @@ -116,7 +116,7 @@ "id": 2, "nodeType": "ImportDirective", "scope": 65, - "sourceUnit": 9517, + "sourceUnit": 11834, "src": "26:38:0", "symbolAliases": [], "unitAlias": "" @@ -130,10 +130,10 @@ "id": 3, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, + "referencedDeclaration": 11833, "src": "89:11:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", + "typeIdentifier": "t_contract$_Versionable_$11833", "typeString": "contract Versionable" } }, @@ -143,7 +143,7 @@ } ], "contractDependencies": [ - 9516 + 11833 ], "contractKind": "contract", "documentation": null, @@ -151,7 +151,7 @@ "id": 64, "linearizedBaseContracts": [ 64, - 9516 + 11833 ], "name": "Migrations", "nodeType": "ContractDefinition", @@ -234,7 +234,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, + "referencedDeclaration": 13441, "src": "202:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -338,7 +338,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, + "referencedDeclaration": 13441, "src": "301:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -400,10 +400,10 @@ "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9516, + "referencedDeclaration": 11833, "src": "259:11:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", "typeString": "type(contract Versionable)" } }, @@ -860,7 +860,7 @@ "id": 2, "nodeType": "ImportDirective", "scope": 65, - "sourceUnit": 9517, + "sourceUnit": 11834, "src": "26:38:0", "symbolAliases": [], "unitAlias": "" @@ -874,10 +874,10 @@ "id": 3, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, + "referencedDeclaration": 11833, "src": "89:11:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", + "typeIdentifier": "t_contract$_Versionable_$11833", "typeString": "contract Versionable" } }, @@ -887,7 +887,7 @@ } ], "contractDependencies": [ - 9516 + 11833 ], "contractKind": "contract", "documentation": null, @@ -895,7 +895,7 @@ "id": 64, "linearizedBaseContracts": [ 64, - 9516 + 11833 ], "name": "Migrations", "nodeType": "ContractDefinition", @@ -978,7 +978,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, + "referencedDeclaration": 13441, "src": "202:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -1082,7 +1082,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, + "referencedDeclaration": 13441, "src": "301:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -1144,10 +1144,10 @@ "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9516, + "referencedDeclaration": 11833, "src": "259:11:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", "typeString": "type(contract Versionable)" } }, @@ -1590,5 +1590,5 @@ } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:56:22.049Z" + "updatedAt": "2018-12-06T13:20:48.550Z" } \ No newline at end of file diff --git a/build/contracts/MinterRole.json b/build/contracts/MinterRole.json new file mode 100644 index 00000000..8282a6c4 --- /dev/null +++ b/build/contracts/MinterRole.json @@ -0,0 +1,2502 @@ +{ + "contractName": "MinterRole", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "MinterAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "MinterRemoved", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isMinter", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.24;\n\nimport \"../Roles.sol\";\n\ncontract MinterRole {\n using Roles for Roles.Role;\n\n event MinterAdded(address indexed account);\n event MinterRemoved(address indexed account);\n\n Roles.Role private minters;\n\n constructor() internal {\n _addMinter(msg.sender);\n }\n\n modifier onlyMinter() {\n require(isMinter(msg.sender));\n _;\n }\n\n function isMinter(address account) public view returns (bool) {\n return minters.has(account);\n }\n\n function addMinter(address account) public onlyMinter {\n _addMinter(account);\n }\n\n function renounceMinter() public {\n _removeMinter(msg.sender);\n }\n\n function _addMinter(address account) internal {\n minters.add(account);\n emit MinterAdded(account);\n }\n\n function _removeMinter(address account) internal {\n minters.remove(account);\n emit MinterRemoved(account);\n }\n}\n", + "sourcePath": "openzeppelin-solidity/contracts/access/roles/MinterRole.sol", + "ast": { + "absolutePath": "openzeppelin-solidity/contracts/access/roles/MinterRole.sol", + "exportedSymbols": { + "MinterRole": [ + 12260 + ] + }, + "id": 12261, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12159, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:53" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", + "file": "../Roles.sol", + "id": 12160, + "nodeType": "ImportDirective", + "scope": 12261, + "sourceUnit": 12158, + "src": "26:22:53", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12260, + "linearizedBaseContracts": [ + 12260 + ], + "name": "MinterRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 12163, + "libraryName": { + "contractScope": null, + "id": 12161, + "name": "Roles", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12157, + "src": "80:5:53", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Roles_$12157", + "typeString": "library Roles" + } + }, + "nodeType": "UsingForDirective", + "src": "74:27:53", + "typeName": { + "contractScope": null, + "id": 12162, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12070, + "src": "90:10:53", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 12167, + "name": "MinterAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 12166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12165, + "indexed": true, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12167, + "src": "123:23:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12164, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "123:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "122:25:53" + }, + "src": "105:43:53" + }, + { + "anonymous": false, + "documentation": null, + "id": 12171, + "name": "MinterRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 12170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12169, + "indexed": true, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12171, + "src": "171:23:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12168, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "171:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "170:25:53" + }, + "src": "151:45:53" + }, + { + "constant": false, + "id": 12173, + "name": "minters", + "nodeType": "VariableDeclaration", + "scope": 12260, + "src": "200:26:53", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role" + }, + "typeName": { + "contractScope": null, + "id": 12172, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12070, + "src": "200:10:53", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 12181, + "nodeType": "Block", + "src": "254:33:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12177, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "271:3:53", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "271:10:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12176, + "name": "_addMinter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12243, + "src": "260:10:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "260:22:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12180, + "nodeType": "ExpressionStatement", + "src": "260:22:53" + } + ] + }, + "documentation": null, + "id": 12182, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12174, + "nodeType": "ParameterList", + "parameters": [], + "src": "242:2:53" + }, + "payable": false, + "returnParameters": { + "id": 12175, + "nodeType": "ParameterList", + "parameters": [], + "src": "254:0:53" + }, + "scope": 12260, + "src": "231:56:53", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12192, + "nodeType": "Block", + "src": "313:47:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12186, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "336:3:53", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "336:10:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12185, + "name": "isMinter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12206, + "src": "327:8:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 12188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "327:20:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12184, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "319:7:53", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "319:29:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12190, + "nodeType": "ExpressionStatement", + "src": "319:29:53" + }, + { + "id": 12191, + "nodeType": "PlaceholderStatement", + "src": "354:1:53" + } + ] + }, + "documentation": null, + "id": 12193, + "name": "onlyMinter", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 12183, + "nodeType": "ParameterList", + "parameters": [], + "src": "310:2:53" + }, + "src": "291:69:53", + "visibility": "internal" + }, + { + "body": { + "id": 12205, + "nodeType": "Block", + "src": "426:38:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12202, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12195, + "src": "451:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 12200, + "name": "minters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12173, + "src": "439:7:53", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 12201, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "has", + "nodeType": "MemberAccess", + "referencedDeclaration": 12156, + "src": "439:11:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 12203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "439:20:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12199, + "id": 12204, + "nodeType": "Return", + "src": "432:27:53" + } + ] + }, + "documentation": null, + "id": 12206, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isMinter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12196, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12195, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12206, + "src": "382:15:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12194, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "382:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "381:17:53" + }, + "payable": false, + "returnParameters": { + "id": 12199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12198, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12206, + "src": "420:4:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12197, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "420:4:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "419:6:53" + }, + "scope": 12260, + "src": "364:100:53", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12217, + "nodeType": "Block", + "src": "522:30:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12214, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12208, + "src": "539:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12213, + "name": "_addMinter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12243, + "src": "528:10:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "528:19:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12216, + "nodeType": "ExpressionStatement", + "src": "528:19:53" + } + ] + }, + "documentation": null, + "id": 12218, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 12211, + "modifierName": { + "argumentTypes": null, + "id": 12210, + "name": "onlyMinter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12193, + "src": "511:10:53", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "511:10:53" + } + ], + "name": "addMinter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12208, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12218, + "src": "487:15:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "487:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "486:17:53" + }, + "payable": false, + "returnParameters": { + "id": 12212, + "nodeType": "ParameterList", + "parameters": [], + "src": "522:0:53" + }, + "scope": 12260, + "src": "468:84:53", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12226, + "nodeType": "Block", + "src": "589:36:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12222, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "609:3:53", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "609:10:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12221, + "name": "_removeMinter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12259, + "src": "595:13:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "595:25:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12225, + "nodeType": "ExpressionStatement", + "src": "595:25:53" + } + ] + }, + "documentation": null, + "id": 12227, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceMinter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12219, + "nodeType": "ParameterList", + "parameters": [], + "src": "579:2:53" + }, + "payable": false, + "returnParameters": { + "id": 12220, + "nodeType": "ParameterList", + "parameters": [], + "src": "589:0:53" + }, + "scope": 12260, + "src": "556:69:53", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12242, + "nodeType": "Block", + "src": "675:62:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12235, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12229, + "src": "693:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 12232, + "name": "minters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12173, + "src": "681:7:53", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 12234, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12102, + "src": "681:11:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 12236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "681:20:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12237, + "nodeType": "ExpressionStatement", + "src": "681:20:53" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12239, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12229, + "src": "724:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12238, + "name": "MinterAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12167, + "src": "712:11:53", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "712:20:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12241, + "nodeType": "EmitStatement", + "src": "707:25:53" + } + ] + }, + "documentation": null, + "id": 12243, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addMinter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12229, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12243, + "src": "649:15:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "649:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "648:17:53" + }, + "payable": false, + "returnParameters": { + "id": 12231, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:0:53" + }, + "scope": 12260, + "src": "629:108:53", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12258, + "nodeType": "Block", + "src": "790:67:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12251, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12245, + "src": "811:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 12248, + "name": "minters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12173, + "src": "796:7:53", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 12250, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 12133, + "src": "796:14:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 12252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "796:23:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12253, + "nodeType": "ExpressionStatement", + "src": "796:23:53" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12255, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12245, + "src": "844:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12254, + "name": "MinterRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12171, + "src": "830:13:53", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "830:22:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12257, + "nodeType": "EmitStatement", + "src": "825:27:53" + } + ] + }, + "documentation": null, + "id": 12259, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_removeMinter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12245, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12259, + "src": "764:15:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "764:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "763:17:53" + }, + "payable": false, + "returnParameters": { + "id": 12247, + "nodeType": "ParameterList", + "parameters": [], + "src": "790:0:53" + }, + "scope": 12260, + "src": "741:116:53", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 12261, + "src": "50:809:53" + } + ], + "src": "0:860:53" + }, + "legacyAST": { + "absolutePath": "openzeppelin-solidity/contracts/access/roles/MinterRole.sol", + "exportedSymbols": { + "MinterRole": [ + 12260 + ] + }, + "id": 12261, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12159, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:53" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", + "file": "../Roles.sol", + "id": 12160, + "nodeType": "ImportDirective", + "scope": 12261, + "sourceUnit": 12158, + "src": "26:22:53", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12260, + "linearizedBaseContracts": [ + 12260 + ], + "name": "MinterRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 12163, + "libraryName": { + "contractScope": null, + "id": 12161, + "name": "Roles", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12157, + "src": "80:5:53", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Roles_$12157", + "typeString": "library Roles" + } + }, + "nodeType": "UsingForDirective", + "src": "74:27:53", + "typeName": { + "contractScope": null, + "id": 12162, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12070, + "src": "90:10:53", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 12167, + "name": "MinterAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 12166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12165, + "indexed": true, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12167, + "src": "123:23:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12164, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "123:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "122:25:53" + }, + "src": "105:43:53" + }, + { + "anonymous": false, + "documentation": null, + "id": 12171, + "name": "MinterRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 12170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12169, + "indexed": true, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12171, + "src": "171:23:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12168, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "171:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "170:25:53" + }, + "src": "151:45:53" + }, + { + "constant": false, + "id": 12173, + "name": "minters", + "nodeType": "VariableDeclaration", + "scope": 12260, + "src": "200:26:53", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role" + }, + "typeName": { + "contractScope": null, + "id": 12172, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12070, + "src": "200:10:53", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 12181, + "nodeType": "Block", + "src": "254:33:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12177, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "271:3:53", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "271:10:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12176, + "name": "_addMinter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12243, + "src": "260:10:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "260:22:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12180, + "nodeType": "ExpressionStatement", + "src": "260:22:53" + } + ] + }, + "documentation": null, + "id": 12182, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12174, + "nodeType": "ParameterList", + "parameters": [], + "src": "242:2:53" + }, + "payable": false, + "returnParameters": { + "id": 12175, + "nodeType": "ParameterList", + "parameters": [], + "src": "254:0:53" + }, + "scope": 12260, + "src": "231:56:53", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12192, + "nodeType": "Block", + "src": "313:47:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12186, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "336:3:53", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "336:10:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12185, + "name": "isMinter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12206, + "src": "327:8:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 12188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "327:20:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12184, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "319:7:53", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "319:29:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12190, + "nodeType": "ExpressionStatement", + "src": "319:29:53" + }, + { + "id": 12191, + "nodeType": "PlaceholderStatement", + "src": "354:1:53" + } + ] + }, + "documentation": null, + "id": 12193, + "name": "onlyMinter", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 12183, + "nodeType": "ParameterList", + "parameters": [], + "src": "310:2:53" + }, + "src": "291:69:53", + "visibility": "internal" + }, + { + "body": { + "id": 12205, + "nodeType": "Block", + "src": "426:38:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12202, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12195, + "src": "451:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 12200, + "name": "minters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12173, + "src": "439:7:53", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 12201, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "has", + "nodeType": "MemberAccess", + "referencedDeclaration": 12156, + "src": "439:11:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 12203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "439:20:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12199, + "id": 12204, + "nodeType": "Return", + "src": "432:27:53" + } + ] + }, + "documentation": null, + "id": 12206, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isMinter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12196, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12195, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12206, + "src": "382:15:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12194, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "382:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "381:17:53" + }, + "payable": false, + "returnParameters": { + "id": 12199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12198, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12206, + "src": "420:4:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12197, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "420:4:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "419:6:53" + }, + "scope": 12260, + "src": "364:100:53", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12217, + "nodeType": "Block", + "src": "522:30:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12214, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12208, + "src": "539:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12213, + "name": "_addMinter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12243, + "src": "528:10:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "528:19:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12216, + "nodeType": "ExpressionStatement", + "src": "528:19:53" + } + ] + }, + "documentation": null, + "id": 12218, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 12211, + "modifierName": { + "argumentTypes": null, + "id": 12210, + "name": "onlyMinter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12193, + "src": "511:10:53", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "511:10:53" + } + ], + "name": "addMinter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12208, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12218, + "src": "487:15:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "487:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "486:17:53" + }, + "payable": false, + "returnParameters": { + "id": 12212, + "nodeType": "ParameterList", + "parameters": [], + "src": "522:0:53" + }, + "scope": 12260, + "src": "468:84:53", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12226, + "nodeType": "Block", + "src": "589:36:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12222, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "609:3:53", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "609:10:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12221, + "name": "_removeMinter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12259, + "src": "595:13:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "595:25:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12225, + "nodeType": "ExpressionStatement", + "src": "595:25:53" + } + ] + }, + "documentation": null, + "id": 12227, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceMinter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12219, + "nodeType": "ParameterList", + "parameters": [], + "src": "579:2:53" + }, + "payable": false, + "returnParameters": { + "id": 12220, + "nodeType": "ParameterList", + "parameters": [], + "src": "589:0:53" + }, + "scope": 12260, + "src": "556:69:53", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12242, + "nodeType": "Block", + "src": "675:62:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12235, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12229, + "src": "693:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 12232, + "name": "minters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12173, + "src": "681:7:53", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 12234, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12102, + "src": "681:11:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 12236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "681:20:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12237, + "nodeType": "ExpressionStatement", + "src": "681:20:53" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12239, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12229, + "src": "724:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12238, + "name": "MinterAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12167, + "src": "712:11:53", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "712:20:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12241, + "nodeType": "EmitStatement", + "src": "707:25:53" + } + ] + }, + "documentation": null, + "id": 12243, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addMinter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12229, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12243, + "src": "649:15:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "649:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "648:17:53" + }, + "payable": false, + "returnParameters": { + "id": 12231, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:0:53" + }, + "scope": 12260, + "src": "629:108:53", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12258, + "nodeType": "Block", + "src": "790:67:53", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12251, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12245, + "src": "811:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 12248, + "name": "minters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12173, + "src": "796:7:53", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 12250, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 12133, + "src": "796:14:53", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 12252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "796:23:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12253, + "nodeType": "ExpressionStatement", + "src": "796:23:53" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12255, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12245, + "src": "844:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12254, + "name": "MinterRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12171, + "src": "830:13:53", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "830:22:53", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12257, + "nodeType": "EmitStatement", + "src": "825:27:53" + } + ] + }, + "documentation": null, + "id": 12259, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_removeMinter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12245, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 12259, + "src": "764:15:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "764:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "763:17:53" + }, + "payable": false, + "returnParameters": { + "id": 12247, + "nodeType": "ParameterList", + "parameters": [], + "src": "790:0:53" + }, + "scope": 12260, + "src": "741:116:53", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 12261, + "src": "50:809:53" + } + ], + "src": "0:860:53" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.029Z" +} \ No newline at end of file diff --git a/build/contracts/PaymentMethods.json b/build/contracts/PaymentMethods.json index 71e93900..93ffb334 100644 --- a/build/contracts/PaymentMethods.json +++ b/build/contracts/PaymentMethods.json @@ -1,24 +1,85 @@ { "contractName": "PaymentMethods", - "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820fabd8630b5e44ccd01bef98a77e0bb2ce8c7defc83a160fbe9e8dae3ad408d4f0029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820fabd8630b5e44ccd01bef98a77e0bb2ce8c7defc83a160fbe9e8dae3ad408d4f0029", - "sourceMap": "26:861:12:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "26:861:12:-;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\nlibrary PaymentMethods {\n struct Methods {\n bytes32[] _list;\n mapping (bytes32 => bool) _allowed;\n }\n\n function update(Methods storage _methods, bytes32[] _list) internal {\n uint i;\n\n if (_methods._list.length != 0) {\n for (i = 0; i < _methods._list.length; i++) {\n _methods._allowed[_methods._list[i]] = false;\n }\n }\n\n _methods._list = _list;\n\n if (_list.length != 0) {\n for (i = 0; i < _list.length; i++) {\n _methods._allowed[_list[i]] = true;\n }\n }\n }\n\n function isAllowed(Methods storage _methods, bytes32 _method) internal view returns(bool) {\n return _methods._allowed[_method];\n }\n\n function list(Methods storage _methods) internal view returns(bytes32[]) {\n return _methods._list;\n }\n}\n", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_methods", + "type": "PaymentMethods.Methods storage" + }, + { + "name": "_list", + "type": "bytes32[]" + } + ], + "name": "update", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_methods", + "type": "PaymentMethods.Methods storage" + }, + { + "name": "_method", + "type": "bytes32" + } + ], + "name": "isAllowed", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_methods", + "type": "PaymentMethods.Methods storage" + } + ], + "name": "list", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x61032d610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f300730000000000000000000000000000000000000000301460806040526004361061006d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633b3d1a22811461007257806377df0856146100cd578063f24950e2146100ef575b600080fd5b61007d60043561014b565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100b95781810151838201526020016100a1565b505050509050019250505060405180910390f35b6100db6004356024356101a8565b604080519115158252519081900360200190f35b8180156100fb57600080fd5b50604080516020600460248035828101358481028087018601909752808652610149968435963696604495919490910192918291850190849080828437509497506101c19650505050505050565b005b60608160000180548060200260200160405190810160405280929190818152602001828054801561019c57602002820191906000526020600020905b81548152600190910190602001808311610187575b50505050509050919050565b6000908152600191909101602052604090205460ff1690565b815460009015610224575060005b825481101561022457600083600101600085600001848154811015156101f157fe5b60009182526020808320919091015483528201929092526040019020805460ff19169115159190911790556001016101cf565b81516102369084906020850190610297565b50815115610292575060005b8151811015610292576001836001016000848481518110151561026157fe5b6020908102919091018101518252810191909152604001600020805460ff1916911515919091179055600101610242565b505050565b8280548282559060005260206000209081019282156102d4579160200282015b828111156102d457825182556020909201916001909101906102b7565b506102e09291506102e4565b5090565b6102fe91905b808211156102e057600081556001016102ea565b905600a165627a7a72305820c26a3d9f9c71f97074accf3cf4349f85f8ae5c59d9bd52c9db8bc45baaf5e5240029", + "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061006d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633b3d1a22811461007257806377df0856146100cd578063f24950e2146100ef575b600080fd5b61007d60043561014b565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100b95781810151838201526020016100a1565b505050509050019250505060405180910390f35b6100db6004356024356101a8565b604080519115158252519081900360200190f35b8180156100fb57600080fd5b50604080516020600460248035828101358481028087018601909752808652610149968435963696604495919490910192918291850190849080828437509497506101c19650505050505050565b005b60608160000180548060200260200160405190810160405280929190818152602001828054801561019c57602002820191906000526020600020905b81548152600190910190602001808311610187575b50505050509050919050565b6000908152600191909101602052604090205460ff1690565b815460009015610224575060005b825481101561022457600083600101600085600001848154811015156101f157fe5b60009182526020808320919091015483528201929092526040019020805460ff19169115159190911790556001016101cf565b81516102369084906020850190610297565b50815115610292575060005b8151811015610292576001836001016000848481518110151561026157fe5b6020908102919091018101518252810191909152604001600020805460ff1916911515919091179055600101610242565b505050565b8280548282559060005260206000209081019282156102d4579160200282015b828111156102d457825182556020909201916001909101906102b7565b506102e09291506102e4565b5090565b6102fe91905b808211156102e057600081556001016102ea565b905600a165627a7a72305820c26a3d9f9c71f97074accf3cf4349f85f8ae5c59d9bd52c9db8bc45baaf5e5240029", + "sourceMap": "26:855:20:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "26:855:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;770:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;770:109:20;;;;;;;;;;;;;;;;;626:138;;;;;;;;;;;;;;;;;;;;;;;;;;152:468;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;152:468:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;152:468:20;;-1:-1:-1;152:468:20;;-1:-1:-1;;;;;;;152:468:20;;;770:109;830:9;858:8;:14;;851:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;770:109;;;:::o;626:138::-;708:4;731:26;;;:17;;;;;:26;;;;;;;;;626:138::o;152:468::-;249:21;;228:6;;249:26;245:177;;-1:-1:-1;300:1:20;291:121;307:21;;303:25;;291:121;;;392:5;353:8;:17;;:36;371:8;:14;;386:1;371:17;;;;;;;;;;;;;;;;;;;;;;;353:36;;;;;;;;;;;;:44;;-1:-1:-1;;353:44:20;;;;;;;;;;-1:-1:-1;330:3:20;291:121;;;432:22;;;;:8;;:22;;;;;:::i;:::-;-1:-1:-1;469:12:20;;:17;465:149;;-1:-1:-1;511:1:20;502:102;518:5;:12;514:1;:16;502:102;;;585:4;555:8;:17;;:27;573:5;579:1;573:8;;;;;;;;;;;;;;;;;;;;;555:27;;;;;;;;;;-1:-1:-1;555:27:20;:34;;-1:-1:-1;;555:34:20;;;;;;;;;;-1:-1:-1;532:3:20;502:102;;;152:468;;;:::o;26:855::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26:855:20;;;-1:-1:-1;26:855:20;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nlibrary PaymentMethods {\n struct Methods {\n bytes32[] _list;\n mapping (bytes32 => bool) _allowed;\n }\n\n function update(Methods storage _methods, bytes32[] _list) public {\n uint i;\n\n if (_methods._list.length != 0) {\n for (i = 0; i < _methods._list.length; i++) {\n _methods._allowed[_methods._list[i]] = false;\n }\n }\n\n _methods._list = _list;\n\n if (_list.length != 0) {\n for (i = 0; i < _list.length; i++) {\n _methods._allowed[_list[i]] = true;\n }\n }\n }\n\n function isAllowed(Methods storage _methods, bytes32 _method) public view returns(bool) {\n return _methods._allowed[_method];\n }\n\n function list(Methods storage _methods) public view returns(bytes32[]) {\n return _methods._list;\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/libs/PaymentMethods.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/libs/PaymentMethods.sol", "exportedSymbols": { "PaymentMethods": [ - 5069 + 6286 ] }, - "id": 5070, + "id": 6287, "nodeType": "SourceUnit", "nodes": [ { - "id": 4954, + "id": 6171, "literals": [ "solidity", "^", @@ -26,7 +87,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:12" + "src": "0:24:20" }, { "baseContracts": [], @@ -34,24 +95,24 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 5069, + "id": 6286, "linearizedBaseContracts": [ - 5069 + 6286 ], "name": "PaymentMethods", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "PaymentMethods.Methods", - "id": 4962, + "id": 6179, "members": [ { "constant": false, - "id": 4957, + "id": 6174, "name": "_list", "nodeType": "VariableDeclaration", - "scope": 4962, - "src": "80:15:12", + "scope": 6179, + "src": "80:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -60,19 +121,19 @@ }, "typeName": { "baseType": { - "id": 4955, + "id": 6172, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "80:7:12", + "src": "80:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4956, + "id": 6173, "length": null, "nodeType": "ArrayTypeName", - "src": "80:9:12", + "src": "80:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -83,11 +144,11 @@ }, { "constant": false, - "id": 4961, + "id": 6178, "name": "_allowed", "nodeType": "VariableDeclaration", - "scope": 4962, - "src": "105:34:12", + "scope": 6179, + "src": "105:34:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -95,28 +156,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 4960, + "id": 6177, "keyType": { - "id": 4958, + "id": 6175, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "114:7:12", + "src": "114:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "105:25:12", + "src": "105:25:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 4959, + "id": 6176, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "125:4:12", + "src": "125:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -129,26 +190,26 @@ ], "name": "Methods", "nodeType": "StructDefinition", - "scope": 5069, - "src": "55:91:12", + "scope": 6286, + "src": "55:91:20", "visibility": "public" }, { "body": { - "id": 5040, + "id": 6257, "nodeType": "Block", - "src": "220:402:12", + "src": "218:402:20", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 4971, + "id": 6188, "name": "i", "nodeType": "VariableDeclaration", - "scope": 5041, - "src": "230:6:12", + "scope": 6258, + "src": "228:6:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -156,10 +217,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4970, + "id": 6187, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "230:4:12", + "src": "228:4:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -169,10 +230,10 @@ "visibility": "internal" } ], - "id": 4972, + "id": 6189, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "230:6:12" + "src": "228:6:20" }, { "condition": { @@ -181,7 +242,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4977, + "id": 6194, "isConstant": false, "isLValue": false, "isPure": false, @@ -192,32 +253,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4973, + "id": 6190, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "251:8:12", + "referencedDeclaration": 6181, + "src": "249:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 4974, + "id": 6191, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_list", "nodeType": "MemberAccess", - "referencedDeclaration": 4957, - "src": "251:14:12", + "referencedDeclaration": 6174, + "src": "249:14:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4975, + "id": 6192, "isConstant": false, "isLValue": true, "isPure": false, @@ -225,7 +286,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "251:21:12", + "src": "249:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -236,14 +297,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4976, + "id": 6193, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "276:1:12", + "src": "274:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -251,31 +312,31 @@ }, "value": "0" }, - "src": "251:26:12", + "src": "249:26:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5004, + "id": 6221, "nodeType": "IfStatement", - "src": "247:177:12", + "src": "245:177:20", "trueBody": { - "id": 5003, + "id": 6220, "nodeType": "Block", - "src": "279:145:12", + "src": "277:145:20", "statements": [ { "body": { - "id": 5001, + "id": 6218, "nodeType": "Block", - "src": "337:77:12", + "src": "335:77:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 4999, + "id": 6216, "isConstant": false, "isLValue": false, "isPure": false, @@ -286,72 +347,72 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4990, + "id": 6207, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "355:8:12", + "referencedDeclaration": 6181, + "src": "353:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 4996, + "id": 6213, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_allowed", "nodeType": "MemberAccess", - "referencedDeclaration": 4961, - "src": "355:17:12", + "referencedDeclaration": 6178, + "src": "353:17:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4997, + "id": 6214, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4992, + "id": 6209, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "373:8:12", + "referencedDeclaration": 6181, + "src": "371:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 4993, + "id": 6210, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_list", "nodeType": "MemberAccess", - "referencedDeclaration": 4957, - "src": "373:14:12", + "referencedDeclaration": 6174, + "src": "371:14:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4995, + "id": 6212, "indexExpression": { "argumentTypes": null, - "id": 4994, + "id": 6211, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "388:1:12", + "referencedDeclaration": 6188, + "src": "386:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -362,7 +423,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "373:17:12", + "src": "371:17:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -373,7 +434,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "355:36:12", + "src": "353:36:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -384,14 +445,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 4998, + "id": 6215, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "394:5:12", + "src": "392:5:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -399,15 +460,15 @@ }, "value": "false" }, - "src": "355:44:12", + "src": "353:44:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5000, + "id": 6217, "nodeType": "ExpressionStatement", - "src": "355:44:12" + "src": "353:44:20" } ] }, @@ -417,19 +478,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4986, + "id": 6203, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4982, + "id": 6199, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "305:1:12", + "referencedDeclaration": 6188, + "src": "303:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -443,32 +504,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4983, + "id": 6200, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "309:8:12", + "referencedDeclaration": 6181, + "src": "307:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 4984, + "id": 6201, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_list", "nodeType": "MemberAccess", - "referencedDeclaration": 4957, - "src": "309:14:12", + "referencedDeclaration": 6174, + "src": "307:14:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4985, + "id": 6202, "isConstant": false, "isLValue": true, "isPure": false, @@ -476,35 +537,35 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "309:21:12", + "src": "307:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "305:25:12", + "src": "303:25:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5002, + "id": 6219, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 4980, + "id": 6197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4978, + "id": 6195, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "298:1:12", + "referencedDeclaration": 6188, + "src": "296:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -515,14 +576,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 4979, + "id": 6196, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "302:1:12", + "src": "300:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -530,20 +591,20 @@ }, "value": "0" }, - "src": "298:5:12", + "src": "296:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4981, + "id": 6198, "nodeType": "ExpressionStatement", - "src": "298:5:12" + "src": "296:5:20" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 4988, + "id": 6205, "isConstant": false, "isLValue": false, "isPure": false, @@ -551,15 +612,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "332:3:12", + "src": "330:3:20", "subExpression": { "argumentTypes": null, - "id": 4987, + "id": 6204, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "332:1:12", + "referencedDeclaration": 6188, + "src": "330:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -570,12 +631,12 @@ "typeString": "uint256" } }, - "id": 4989, + "id": 6206, "nodeType": "ExpressionStatement", - "src": "332:3:12" + "src": "330:3:20" }, "nodeType": "ForStatement", - "src": "293:121:12" + "src": "291:121:20" } ] } @@ -583,7 +644,7 @@ { "expression": { "argumentTypes": null, - "id": 5009, + "id": 6226, "isConstant": false, "isLValue": false, "isPure": false, @@ -592,26 +653,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5005, + "id": 6222, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "434:8:12", + "referencedDeclaration": 6181, + "src": "432:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 5007, + "id": 6224, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "_list", "nodeType": "MemberAccess", - "referencedDeclaration": 4957, - "src": "434:14:12", + "referencedDeclaration": 6174, + "src": "432:14:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" @@ -621,26 +682,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 5008, + "id": 6225, "name": "_list", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4967, - "src": "451:5:12", + "referencedDeclaration": 6184, + "src": "449:5:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "src": "434:22:12", + "src": "432:22:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 5010, + "id": 6227, "nodeType": "ExpressionStatement", - "src": "434:22:12" + "src": "432:22:20" }, { "condition": { @@ -649,7 +710,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5014, + "id": 6231, "isConstant": false, "isLValue": false, "isPure": false, @@ -658,18 +719,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5011, + "id": 6228, "name": "_list", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4967, - "src": "471:5:12", + "referencedDeclaration": 6184, + "src": "469:5:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 5012, + "id": 6229, "isConstant": false, "isLValue": false, "isPure": false, @@ -677,7 +738,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "471:12:12", + "src": "469:12:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -688,14 +749,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5013, + "id": 6230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "487:1:12", + "src": "485:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -703,31 +764,31 @@ }, "value": "0" }, - "src": "471:17:12", + "src": "469:17:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5039, + "id": 6256, "nodeType": "IfStatement", - "src": "467:149:12", + "src": "465:149:20", "trueBody": { - "id": 5038, + "id": 6255, "nodeType": "Block", - "src": "490:126:12", + "src": "488:126:20", "statements": [ { "body": { - "id": 5036, + "id": 6253, "nodeType": "Block", - "src": "539:67:12", + "src": "537:67:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 5034, + "id": 6251, "isConstant": false, "isLValue": false, "isPure": false, @@ -738,56 +799,56 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5026, + "id": 6243, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "557:8:12", + "referencedDeclaration": 6181, + "src": "555:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 5031, + "id": 6248, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_allowed", "nodeType": "MemberAccess", - "referencedDeclaration": 4961, - "src": "557:17:12", + "referencedDeclaration": 6178, + "src": "555:17:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 5032, + "id": 6249, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5028, + "id": 6245, "name": "_list", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4967, - "src": "575:5:12", + "referencedDeclaration": 6184, + "src": "573:5:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 5030, + "id": 6247, "indexExpression": { "argumentTypes": null, - "id": 5029, + "id": 6246, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "581:1:12", + "referencedDeclaration": 6188, + "src": "579:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -798,7 +859,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "575:8:12", + "src": "573:8:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -809,7 +870,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "557:27:12", + "src": "555:27:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -820,14 +881,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 5033, + "id": 6250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "587:4:12", + "src": "585:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -835,15 +896,15 @@ }, "value": "true" }, - "src": "557:34:12", + "src": "555:34:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5035, + "id": 6252, "nodeType": "ExpressionStatement", - "src": "557:34:12" + "src": "555:34:20" } ] }, @@ -853,19 +914,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5022, + "id": 6239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5019, + "id": 6236, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "516:1:12", + "referencedDeclaration": 6188, + "src": "514:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -877,18 +938,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5020, + "id": 6237, "name": "_list", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4967, - "src": "520:5:12", + "referencedDeclaration": 6184, + "src": "518:5:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 5021, + "id": 6238, "isConstant": false, "isLValue": false, "isPure": false, @@ -896,35 +957,35 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "520:12:12", + "src": "518:12:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "516:16:12", + "src": "514:16:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5037, + "id": 6254, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 5017, + "id": 6234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5015, + "id": 6232, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "509:1:12", + "referencedDeclaration": 6188, + "src": "507:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -935,14 +996,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5016, + "id": 6233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "513:1:12", + "src": "511:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -950,20 +1011,20 @@ }, "value": "0" }, - "src": "509:5:12", + "src": "507:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5018, + "id": 6235, "nodeType": "ExpressionStatement", - "src": "509:5:12" + "src": "507:5:20" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 5024, + "id": 6241, "isConstant": false, "isLValue": false, "isPure": false, @@ -971,15 +1032,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "534:3:12", + "src": "532:3:20", "subExpression": { "argumentTypes": null, - "id": 5023, + "id": 6240, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "534:1:12", + "referencedDeclaration": 6188, + "src": "532:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -990,12 +1051,12 @@ "typeString": "uint256" } }, - "id": 5025, + "id": 6242, "nodeType": "ExpressionStatement", - "src": "534:3:12" + "src": "532:3:20" }, "nodeType": "ForStatement", - "src": "504:102:12" + "src": "502:102:20" } ] } @@ -1003,7 +1064,7 @@ ] }, "documentation": null, - "id": 5041, + "id": 6258, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1011,31 +1072,31 @@ "name": "update", "nodeType": "FunctionDefinition", "parameters": { - "id": 4968, + "id": 6185, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4964, + "id": 6181, "name": "_methods", "nodeType": "VariableDeclaration", - "scope": 5041, - "src": "168:24:12", + "scope": 6258, + "src": "168:24:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" }, "typeName": { "contractScope": null, - "id": 4963, + "id": 6180, "name": "Methods", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4962, - "src": "168:7:12", + "referencedDeclaration": 6179, + "src": "168:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" } }, @@ -1044,11 +1105,11 @@ }, { "constant": false, - "id": 4967, + "id": 6184, "name": "_list", "nodeType": "VariableDeclaration", - "scope": 5041, - "src": "194:15:12", + "scope": 6258, + "src": "194:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1057,19 +1118,19 @@ }, "typeName": { "baseType": { - "id": 4965, + "id": 6182, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "194:7:12", + "src": "194:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4966, + "id": 6183, "length": null, "nodeType": "ArrayTypeName", - "src": "194:9:12", + "src": "194:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1079,26 +1140,26 @@ "visibility": "internal" } ], - "src": "167:43:12" + "src": "167:43:20" }, "payable": false, "returnParameters": { - "id": 4969, + "id": 6186, "nodeType": "ParameterList", "parameters": [], - "src": "220:0:12" + "src": "218:0:20" }, - "scope": 5069, - "src": "152:470:12", + "scope": 6286, + "src": "152:468:20", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5055, + "id": 6272, "nodeType": "Block", - "src": "718:50:12", + "src": "714:50:20", "statements": [ { "expression": { @@ -1107,40 +1168,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5050, + "id": 6267, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5043, - "src": "735:8:12", + "referencedDeclaration": 6260, + "src": "731:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 5051, + "id": 6268, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_allowed", "nodeType": "MemberAccess", - "referencedDeclaration": 4961, - "src": "735:17:12", + "referencedDeclaration": 6178, + "src": "731:17:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 5053, + "id": 6270, "indexExpression": { "argumentTypes": null, - "id": 5052, + "id": 6269, "name": "_method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5045, - "src": "753:7:12", + "referencedDeclaration": 6262, + "src": "749:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1151,21 +1212,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "735:26:12", + "src": "731:26:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 5049, - "id": 5054, + "functionReturnParameters": 6266, + "id": 6271, "nodeType": "Return", - "src": "728:33:12" + "src": "724:33:20" } ] }, "documentation": null, - "id": 5056, + "id": 6273, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1173,31 +1234,31 @@ "name": "isAllowed", "nodeType": "FunctionDefinition", "parameters": { - "id": 5046, + "id": 6263, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5043, + "id": 6260, "name": "_methods", "nodeType": "VariableDeclaration", - "scope": 5056, - "src": "647:24:12", + "scope": 6273, + "src": "645:24:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" }, "typeName": { "contractScope": null, - "id": 5042, + "id": 6259, "name": "Methods", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4962, - "src": "647:7:12", + "referencedDeclaration": 6179, + "src": "645:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" } }, @@ -1206,11 +1267,11 @@ }, { "constant": false, - "id": 5045, + "id": 6262, "name": "_method", "nodeType": "VariableDeclaration", - "scope": 5056, - "src": "673:15:12", + "scope": 6273, + "src": "671:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1218,10 +1279,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5044, + "id": 6261, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "673:7:12", + "src": "671:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1231,20 +1292,20 @@ "visibility": "internal" } ], - "src": "646:43:12" + "src": "644:43:20" }, "payable": false, "returnParameters": { - "id": 5049, + "id": 6266, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5048, + "id": 6265, "name": "", "nodeType": "VariableDeclaration", - "scope": 5056, - "src": "712:4:12", + "scope": 6273, + "src": "708:4:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1252,10 +1313,10 @@ "typeString": "bool" }, "typeName": { - "id": 5047, + "id": 6264, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "712:4:12", + "src": "708:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1265,59 +1326,59 @@ "visibility": "internal" } ], - "src": "711:6:12" + "src": "707:6:20" }, - "scope": 5069, - "src": "628:140:12", + "scope": 6286, + "src": "626:138:20", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5067, + "id": 6284, "nodeType": "Block", - "src": "847:38:12", + "src": "841:38:20", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5064, + "id": 6281, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "864:8:12", + "referencedDeclaration": 6275, + "src": "858:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 5065, + "id": 6282, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_list", "nodeType": "MemberAccess", - "referencedDeclaration": 4957, - "src": "864:14:12", + "referencedDeclaration": 6174, + "src": "858:14:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "functionReturnParameters": 5063, - "id": 5066, + "functionReturnParameters": 6280, + "id": 6283, "nodeType": "Return", - "src": "857:21:12" + "src": "851:21:20" } ] }, "documentation": null, - "id": 5068, + "id": 6285, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1325,31 +1386,31 @@ "name": "list", "nodeType": "FunctionDefinition", "parameters": { - "id": 5059, + "id": 6276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5058, + "id": 6275, "name": "_methods", "nodeType": "VariableDeclaration", - "scope": 5068, - "src": "788:24:12", + "scope": 6285, + "src": "784:24:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" }, "typeName": { "contractScope": null, - "id": 5057, + "id": 6274, "name": "Methods", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4962, - "src": "788:7:12", + "referencedDeclaration": 6179, + "src": "784:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" } }, @@ -1357,20 +1418,20 @@ "visibility": "internal" } ], - "src": "787:26:12" + "src": "783:26:20" }, "payable": false, "returnParameters": { - "id": 5063, + "id": 6280, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5062, + "id": 6279, "name": "", "nodeType": "VariableDeclaration", - "scope": 5068, - "src": "836:9:12", + "scope": 6285, + "src": "830:9:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1379,19 +1440,19 @@ }, "typeName": { "baseType": { - "id": 5060, + "id": 6277, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "836:7:12", + "src": "830:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 5061, + "id": 6278, "length": null, "nodeType": "ArrayTypeName", - "src": "836:9:12", + "src": "830:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1401,33 +1462,33 @@ "visibility": "internal" } ], - "src": "835:11:12" + "src": "829:11:20" }, - "scope": 5069, - "src": "774:111:12", + "scope": 6286, + "src": "770:109:20", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" } ], - "scope": 5070, - "src": "26:861:12" + "scope": 6287, + "src": "26:855:20" } ], - "src": "0:888:12" + "src": "0:882:20" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/libs/PaymentMethods.sol", "exportedSymbols": { "PaymentMethods": [ - 5069 + 6286 ] }, - "id": 5070, + "id": 6287, "nodeType": "SourceUnit", "nodes": [ { - "id": 4954, + "id": 6171, "literals": [ "solidity", "^", @@ -1435,7 +1496,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:12" + "src": "0:24:20" }, { "baseContracts": [], @@ -1443,24 +1504,24 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 5069, + "id": 6286, "linearizedBaseContracts": [ - 5069 + 6286 ], "name": "PaymentMethods", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "PaymentMethods.Methods", - "id": 4962, + "id": 6179, "members": [ { "constant": false, - "id": 4957, + "id": 6174, "name": "_list", "nodeType": "VariableDeclaration", - "scope": 4962, - "src": "80:15:12", + "scope": 6179, + "src": "80:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1469,19 +1530,19 @@ }, "typeName": { "baseType": { - "id": 4955, + "id": 6172, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "80:7:12", + "src": "80:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4956, + "id": 6173, "length": null, "nodeType": "ArrayTypeName", - "src": "80:9:12", + "src": "80:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1492,11 +1553,11 @@ }, { "constant": false, - "id": 4961, + "id": 6178, "name": "_allowed", "nodeType": "VariableDeclaration", - "scope": 4962, - "src": "105:34:12", + "scope": 6179, + "src": "105:34:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1504,28 +1565,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 4960, + "id": 6177, "keyType": { - "id": 4958, + "id": 6175, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "114:7:12", + "src": "114:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "105:25:12", + "src": "105:25:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 4959, + "id": 6176, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "125:4:12", + "src": "125:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1538,26 +1599,26 @@ ], "name": "Methods", "nodeType": "StructDefinition", - "scope": 5069, - "src": "55:91:12", + "scope": 6286, + "src": "55:91:20", "visibility": "public" }, { "body": { - "id": 5040, + "id": 6257, "nodeType": "Block", - "src": "220:402:12", + "src": "218:402:20", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 4971, + "id": 6188, "name": "i", "nodeType": "VariableDeclaration", - "scope": 5041, - "src": "230:6:12", + "scope": 6258, + "src": "228:6:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1565,10 +1626,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4970, + "id": 6187, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "230:4:12", + "src": "228:4:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1578,10 +1639,10 @@ "visibility": "internal" } ], - "id": 4972, + "id": 6189, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "230:6:12" + "src": "228:6:20" }, { "condition": { @@ -1590,7 +1651,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4977, + "id": 6194, "isConstant": false, "isLValue": false, "isPure": false, @@ -1601,32 +1662,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4973, + "id": 6190, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "251:8:12", + "referencedDeclaration": 6181, + "src": "249:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 4974, + "id": 6191, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_list", "nodeType": "MemberAccess", - "referencedDeclaration": 4957, - "src": "251:14:12", + "referencedDeclaration": 6174, + "src": "249:14:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4975, + "id": 6192, "isConstant": false, "isLValue": true, "isPure": false, @@ -1634,7 +1695,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "251:21:12", + "src": "249:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1645,14 +1706,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4976, + "id": 6193, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "276:1:12", + "src": "274:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1660,31 +1721,31 @@ }, "value": "0" }, - "src": "251:26:12", + "src": "249:26:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5004, + "id": 6221, "nodeType": "IfStatement", - "src": "247:177:12", + "src": "245:177:20", "trueBody": { - "id": 5003, + "id": 6220, "nodeType": "Block", - "src": "279:145:12", + "src": "277:145:20", "statements": [ { "body": { - "id": 5001, + "id": 6218, "nodeType": "Block", - "src": "337:77:12", + "src": "335:77:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 4999, + "id": 6216, "isConstant": false, "isLValue": false, "isPure": false, @@ -1695,72 +1756,72 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4990, + "id": 6207, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "355:8:12", + "referencedDeclaration": 6181, + "src": "353:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 4996, + "id": 6213, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_allowed", "nodeType": "MemberAccess", - "referencedDeclaration": 4961, - "src": "355:17:12", + "referencedDeclaration": 6178, + "src": "353:17:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4997, + "id": 6214, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4992, + "id": 6209, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "373:8:12", + "referencedDeclaration": 6181, + "src": "371:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 4993, + "id": 6210, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_list", "nodeType": "MemberAccess", - "referencedDeclaration": 4957, - "src": "373:14:12", + "referencedDeclaration": 6174, + "src": "371:14:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4995, + "id": 6212, "indexExpression": { "argumentTypes": null, - "id": 4994, + "id": 6211, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "388:1:12", + "referencedDeclaration": 6188, + "src": "386:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1771,7 +1832,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "373:17:12", + "src": "371:17:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1782,7 +1843,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "355:36:12", + "src": "353:36:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1793,14 +1854,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 4998, + "id": 6215, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "394:5:12", + "src": "392:5:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1808,15 +1869,15 @@ }, "value": "false" }, - "src": "355:44:12", + "src": "353:44:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5000, + "id": 6217, "nodeType": "ExpressionStatement", - "src": "355:44:12" + "src": "353:44:20" } ] }, @@ -1826,19 +1887,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4986, + "id": 6203, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4982, + "id": 6199, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "305:1:12", + "referencedDeclaration": 6188, + "src": "303:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1852,32 +1913,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4983, + "id": 6200, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "309:8:12", + "referencedDeclaration": 6181, + "src": "307:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 4984, + "id": 6201, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_list", "nodeType": "MemberAccess", - "referencedDeclaration": 4957, - "src": "309:14:12", + "referencedDeclaration": 6174, + "src": "307:14:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4985, + "id": 6202, "isConstant": false, "isLValue": true, "isPure": false, @@ -1885,35 +1946,35 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "309:21:12", + "src": "307:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "305:25:12", + "src": "303:25:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5002, + "id": 6219, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 4980, + "id": 6197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4978, + "id": 6195, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "298:1:12", + "referencedDeclaration": 6188, + "src": "296:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1924,14 +1985,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 4979, + "id": 6196, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "302:1:12", + "src": "300:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1939,20 +2000,20 @@ }, "value": "0" }, - "src": "298:5:12", + "src": "296:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4981, + "id": 6198, "nodeType": "ExpressionStatement", - "src": "298:5:12" + "src": "296:5:20" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 4988, + "id": 6205, "isConstant": false, "isLValue": false, "isPure": false, @@ -1960,15 +2021,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "332:3:12", + "src": "330:3:20", "subExpression": { "argumentTypes": null, - "id": 4987, + "id": 6204, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "332:1:12", + "referencedDeclaration": 6188, + "src": "330:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1979,12 +2040,12 @@ "typeString": "uint256" } }, - "id": 4989, + "id": 6206, "nodeType": "ExpressionStatement", - "src": "332:3:12" + "src": "330:3:20" }, "nodeType": "ForStatement", - "src": "293:121:12" + "src": "291:121:20" } ] } @@ -1992,7 +2053,7 @@ { "expression": { "argumentTypes": null, - "id": 5009, + "id": 6226, "isConstant": false, "isLValue": false, "isPure": false, @@ -2001,26 +2062,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5005, + "id": 6222, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "434:8:12", + "referencedDeclaration": 6181, + "src": "432:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 5007, + "id": 6224, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "_list", "nodeType": "MemberAccess", - "referencedDeclaration": 4957, - "src": "434:14:12", + "referencedDeclaration": 6174, + "src": "432:14:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" @@ -2030,26 +2091,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 5008, + "id": 6225, "name": "_list", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4967, - "src": "451:5:12", + "referencedDeclaration": 6184, + "src": "449:5:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "src": "434:22:12", + "src": "432:22:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 5010, + "id": 6227, "nodeType": "ExpressionStatement", - "src": "434:22:12" + "src": "432:22:20" }, { "condition": { @@ -2058,7 +2119,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5014, + "id": 6231, "isConstant": false, "isLValue": false, "isPure": false, @@ -2067,18 +2128,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5011, + "id": 6228, "name": "_list", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4967, - "src": "471:5:12", + "referencedDeclaration": 6184, + "src": "469:5:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 5012, + "id": 6229, "isConstant": false, "isLValue": false, "isPure": false, @@ -2086,7 +2147,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "471:12:12", + "src": "469:12:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2097,14 +2158,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5013, + "id": 6230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "487:1:12", + "src": "485:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2112,31 +2173,31 @@ }, "value": "0" }, - "src": "471:17:12", + "src": "469:17:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5039, + "id": 6256, "nodeType": "IfStatement", - "src": "467:149:12", + "src": "465:149:20", "trueBody": { - "id": 5038, + "id": 6255, "nodeType": "Block", - "src": "490:126:12", + "src": "488:126:20", "statements": [ { "body": { - "id": 5036, + "id": 6253, "nodeType": "Block", - "src": "539:67:12", + "src": "537:67:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 5034, + "id": 6251, "isConstant": false, "isLValue": false, "isPure": false, @@ -2147,56 +2208,56 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5026, + "id": 6243, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "557:8:12", + "referencedDeclaration": 6181, + "src": "555:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 5031, + "id": 6248, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_allowed", "nodeType": "MemberAccess", - "referencedDeclaration": 4961, - "src": "557:17:12", + "referencedDeclaration": 6178, + "src": "555:17:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 5032, + "id": 6249, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5028, + "id": 6245, "name": "_list", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4967, - "src": "575:5:12", + "referencedDeclaration": 6184, + "src": "573:5:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 5030, + "id": 6247, "indexExpression": { "argumentTypes": null, - "id": 5029, + "id": 6246, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "581:1:12", + "referencedDeclaration": 6188, + "src": "579:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2207,7 +2268,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "575:8:12", + "src": "573:8:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2218,7 +2279,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "557:27:12", + "src": "555:27:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2229,14 +2290,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 5033, + "id": 6250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "587:4:12", + "src": "585:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2244,15 +2305,15 @@ }, "value": "true" }, - "src": "557:34:12", + "src": "555:34:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5035, + "id": 6252, "nodeType": "ExpressionStatement", - "src": "557:34:12" + "src": "555:34:20" } ] }, @@ -2262,19 +2323,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5022, + "id": 6239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5019, + "id": 6236, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "516:1:12", + "referencedDeclaration": 6188, + "src": "514:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2286,18 +2347,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5020, + "id": 6237, "name": "_list", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4967, - "src": "520:5:12", + "referencedDeclaration": 6184, + "src": "518:5:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 5021, + "id": 6238, "isConstant": false, "isLValue": false, "isPure": false, @@ -2305,35 +2366,35 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "520:12:12", + "src": "518:12:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "516:16:12", + "src": "514:16:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5037, + "id": 6254, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 5017, + "id": 6234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5015, + "id": 6232, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "509:1:12", + "referencedDeclaration": 6188, + "src": "507:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2344,14 +2405,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5016, + "id": 6233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "513:1:12", + "src": "511:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2359,20 +2420,20 @@ }, "value": "0" }, - "src": "509:5:12", + "src": "507:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5018, + "id": 6235, "nodeType": "ExpressionStatement", - "src": "509:5:12" + "src": "507:5:20" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 5024, + "id": 6241, "isConstant": false, "isLValue": false, "isPure": false, @@ -2380,15 +2441,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "534:3:12", + "src": "532:3:20", "subExpression": { "argumentTypes": null, - "id": 5023, + "id": 6240, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4971, - "src": "534:1:12", + "referencedDeclaration": 6188, + "src": "532:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2399,12 +2460,12 @@ "typeString": "uint256" } }, - "id": 5025, + "id": 6242, "nodeType": "ExpressionStatement", - "src": "534:3:12" + "src": "532:3:20" }, "nodeType": "ForStatement", - "src": "504:102:12" + "src": "502:102:20" } ] } @@ -2412,7 +2473,7 @@ ] }, "documentation": null, - "id": 5041, + "id": 6258, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2420,31 +2481,31 @@ "name": "update", "nodeType": "FunctionDefinition", "parameters": { - "id": 4968, + "id": 6185, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4964, + "id": 6181, "name": "_methods", "nodeType": "VariableDeclaration", - "scope": 5041, - "src": "168:24:12", + "scope": 6258, + "src": "168:24:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" }, "typeName": { "contractScope": null, - "id": 4963, + "id": 6180, "name": "Methods", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4962, - "src": "168:7:12", + "referencedDeclaration": 6179, + "src": "168:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" } }, @@ -2453,11 +2514,11 @@ }, { "constant": false, - "id": 4967, + "id": 6184, "name": "_list", "nodeType": "VariableDeclaration", - "scope": 5041, - "src": "194:15:12", + "scope": 6258, + "src": "194:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2466,19 +2527,19 @@ }, "typeName": { "baseType": { - "id": 4965, + "id": 6182, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "194:7:12", + "src": "194:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4966, + "id": 6183, "length": null, "nodeType": "ArrayTypeName", - "src": "194:9:12", + "src": "194:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2488,26 +2549,26 @@ "visibility": "internal" } ], - "src": "167:43:12" + "src": "167:43:20" }, "payable": false, "returnParameters": { - "id": 4969, + "id": 6186, "nodeType": "ParameterList", "parameters": [], - "src": "220:0:12" + "src": "218:0:20" }, - "scope": 5069, - "src": "152:470:12", + "scope": 6286, + "src": "152:468:20", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5055, + "id": 6272, "nodeType": "Block", - "src": "718:50:12", + "src": "714:50:20", "statements": [ { "expression": { @@ -2516,40 +2577,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5050, + "id": 6267, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5043, - "src": "735:8:12", + "referencedDeclaration": 6260, + "src": "731:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 5051, + "id": 6268, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_allowed", "nodeType": "MemberAccess", - "referencedDeclaration": 4961, - "src": "735:17:12", + "referencedDeclaration": 6178, + "src": "731:17:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 5053, + "id": 6270, "indexExpression": { "argumentTypes": null, - "id": 5052, + "id": 6269, "name": "_method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5045, - "src": "753:7:12", + "referencedDeclaration": 6262, + "src": "749:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2560,21 +2621,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "735:26:12", + "src": "731:26:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 5049, - "id": 5054, + "functionReturnParameters": 6266, + "id": 6271, "nodeType": "Return", - "src": "728:33:12" + "src": "724:33:20" } ] }, "documentation": null, - "id": 5056, + "id": 6273, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2582,31 +2643,31 @@ "name": "isAllowed", "nodeType": "FunctionDefinition", "parameters": { - "id": 5046, + "id": 6263, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5043, + "id": 6260, "name": "_methods", "nodeType": "VariableDeclaration", - "scope": 5056, - "src": "647:24:12", + "scope": 6273, + "src": "645:24:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" }, "typeName": { "contractScope": null, - "id": 5042, + "id": 6259, "name": "Methods", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4962, - "src": "647:7:12", + "referencedDeclaration": 6179, + "src": "645:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" } }, @@ -2615,11 +2676,11 @@ }, { "constant": false, - "id": 5045, + "id": 6262, "name": "_method", "nodeType": "VariableDeclaration", - "scope": 5056, - "src": "673:15:12", + "scope": 6273, + "src": "671:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2627,10 +2688,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5044, + "id": 6261, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "673:7:12", + "src": "671:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2640,20 +2701,20 @@ "visibility": "internal" } ], - "src": "646:43:12" + "src": "644:43:20" }, "payable": false, "returnParameters": { - "id": 5049, + "id": 6266, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5048, + "id": 6265, "name": "", "nodeType": "VariableDeclaration", - "scope": 5056, - "src": "712:4:12", + "scope": 6273, + "src": "708:4:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2661,10 +2722,10 @@ "typeString": "bool" }, "typeName": { - "id": 5047, + "id": 6264, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "712:4:12", + "src": "708:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2674,59 +2735,59 @@ "visibility": "internal" } ], - "src": "711:6:12" + "src": "707:6:20" }, - "scope": 5069, - "src": "628:140:12", + "scope": 6286, + "src": "626:138:20", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5067, + "id": 6284, "nodeType": "Block", - "src": "847:38:12", + "src": "841:38:20", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5064, + "id": 6281, "name": "_methods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "864:8:12", + "referencedDeclaration": 6275, + "src": "858:8:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods storage pointer" } }, - "id": 5065, + "id": 6282, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_list", "nodeType": "MemberAccess", - "referencedDeclaration": 4957, - "src": "864:14:12", + "referencedDeclaration": 6174, + "src": "858:14:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "functionReturnParameters": 5063, - "id": 5066, + "functionReturnParameters": 6280, + "id": 6283, "nodeType": "Return", - "src": "857:21:12" + "src": "851:21:20" } ] }, "documentation": null, - "id": 5068, + "id": 6285, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2734,31 +2795,31 @@ "name": "list", "nodeType": "FunctionDefinition", "parameters": { - "id": 5059, + "id": 6276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5058, + "id": 6275, "name": "_methods", "nodeType": "VariableDeclaration", - "scope": 5068, - "src": "788:24:12", + "scope": 6285, + "src": "784:24:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" }, "typeName": { "contractScope": null, - "id": 5057, + "id": 6274, "name": "Methods", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4962, - "src": "788:7:12", + "referencedDeclaration": 6179, + "src": "784:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" } }, @@ -2766,20 +2827,20 @@ "visibility": "internal" } ], - "src": "787:26:12" + "src": "783:26:20" }, "payable": false, "returnParameters": { - "id": 5063, + "id": 6280, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5062, + "id": 6279, "name": "", "nodeType": "VariableDeclaration", - "scope": 5068, - "src": "836:9:12", + "scope": 6285, + "src": "830:9:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2788,19 +2849,19 @@ }, "typeName": { "baseType": { - "id": 5060, + "id": 6277, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "836:7:12", + "src": "830:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 5061, + "id": 6278, "length": null, "nodeType": "ArrayTypeName", - "src": "836:9:12", + "src": "830:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2810,26 +2871,33 @@ "visibility": "internal" } ], - "src": "835:11:12" + "src": "829:11:20" }, - "scope": 5069, - "src": "774:111:12", + "scope": 6286, + "src": "770:109:20", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" } ], - "scope": 5070, - "src": "26:861:12" + "scope": 6287, + "src": "26:855:20" } ], - "src": "0:888:12" + "src": "0:882:20" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, - "networks": {}, + "networks": { + "4": { + "events": {}, + "links": {}, + "address": "0x075acd6e2c3889534b118c25e987a7c54e310334", + "transactionHash": "0x81e6fec4da413bd34d20bf9a02929399afd83c9b8954f950f6cc34bda7ff32a5" + } + }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.281Z" + "updatedAt": "2018-12-06T13:18:18.748Z" } \ No newline at end of file diff --git a/build/contracts/Percent.json b/build/contracts/Percent.json index c3223f9f..003427dc 100644 --- a/build/contracts/Percent.json +++ b/build/contracts/Percent.json @@ -56,26 +56,129 @@ "payable": false, "stateMutability": "pure", "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + }, + { + "name": "_b", + "type": "uint256" + } + ], + "name": "percent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + }, + { + "name": "_b", + "type": "uint256" + } + ], + "name": "safePercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + } + ], + "name": "isPercent", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + } + ], + "name": "toPercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + } + ], + "name": "fromPercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" } ], - "bytecode": "0x60f861002f600b82828239805160001a6073146000811461001f57610021565bfe5b5030600052607381538281f300730000000000000000000000000000000000000000301460806040526004361060735763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a12cd478114607857806337a7f2b7146090578063bc9c0891146096578063d49d518114609c575b600080fd5b607e60a2565b60408051918252519081900360200190f35b607e60b2565b607e60b7565b607e60bc565b600060aa60b7565b600201905090565b600090565b600290565b600060c460a2565b600a0a9050905600a165627a7a72305820c5545c01a59a785a8ae1d9861c80212a14d4c8451399a055c76f11e218f823720029", - "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361060735763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a12cd478114607857806337a7f2b7146090578063bc9c0891146096578063d49d518114609c575b600080fd5b607e60a2565b60408051918252519081900360200190f35b607e60b2565b607e60b7565b607e60bc565b600060aa60b7565b600201905090565b600090565b600290565b600060c460a2565b600a0a9050905600a165627a7a72305820c5545c01a59a785a8ae1d9861c80212a14d4c8451399a055c76f11e218f823720029", - "sourceMap": "109:956:13:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "109:956:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;225:67;;;;;;;;;;;;;;;;;;;;297:55;;;;161:59;;;;357:65;;;;225:67;261:4;280:9;:7;:9::i;:::-;276:1;:13;269:20;;225:67;:::o;297:55::-;333:4;297:55;:::o;161:59::-;216:1;161:59;:::o;357:65::-;393:4;414:5;:3;:5::i;:::-;408:2;:11;401:18;;357:65;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"./Utils.sol\";\n\nlibrary Percent {\n using SafeMath for uint;\n\n function ADD_EXP() public pure returns (uint) { return 2; }\n function EXP() public pure returns (uint) { return 2 + ADD_EXP(); }\n function MIN() public pure returns (uint) { return 0; }\n function MAX() public pure returns (uint) { return 10 ** EXP(); }\n\n function percent(uint _a, uint _b) internal pure returns (uint) {\n return _a.mul(_b).div(MAX());\n }\n\n function safePercent(uint _a, uint _b) internal pure returns (uint) {\n return Utils.safeMulDiv(_a, _b, MAX());\n }\n\n function isPercent(uint _a) internal pure returns (bool) {\n return _a >= MIN() && _a <= MAX();\n }\n\n function toPercent(uint _a) internal pure returns (uint) {\n require(_a <= 100);\n\n return _a.mul(10 ** ADD_EXP());\n }\n\n function fromPercent(uint _a) internal pure returns (uint) {\n require(isPercent(_a));\n\n return _a.div(10 ** ADD_EXP());\n }\n}\n", + "bytecode": "0x610355610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600436106100af5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fe9114781146100b457806317b8f5e1146100d15780631a12cd47146100dc57806337a7f2b7146100e457806342318e3d146100ec57806350716c0e146100fa578063520b006614610108578063bc9c089114610127578063d49d51811461012f575b600080fd5b6100bf600435610137565b60408051918252519081900360200190f35b6100bf60043561016e565b6100bf610199565b6100bf6101ab565b6100bf6004356024356101b0565b6100bf6004356024356101e0565b610113600435610297565b604080519115158252519081900360200190f35b6100bf6102bc565b6100bf6102c1565b600061014282610297565b151561014d57600080fd5b6101686101586102bc565b8390600a0a63ffffffff6102d316565b92915050565b6000606482111561017e57600080fd5b6101686101896102bc565b8390600a0a63ffffffff6102fb16565b60006101a36102bc565b600201905090565b600090565b60006101d96101bd6102c1565b6101cd858563ffffffff6102fb16565b9063ffffffff6102d316565b9392505050565b600073__Utils_________________________________63bda4e61984846102066102c1565b6040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561026457600080fd5b505af4158015610278573d6000803e3d6000fd5b505050506040513d602081101561028e57600080fd5b50519392505050565b60006102a16101ab565b821015801561016857506102b36102c1565b90911115919050565b600290565b60006102cb610199565b600a0a905090565b6000808083116102e257600080fd5b82848115156102ed57fe5b0490508091505b5092915050565b60008083151561030e57600091506102f4565b5082820282848281151561031e57fe5b04146101d957600080fd00a165627a7a72305820c48643d51b0502ff756ccc66e9575bc4c344bcb42cee00663f0cdc9eeb353fc90029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100af5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fe9114781146100b457806317b8f5e1146100d15780631a12cd47146100dc57806337a7f2b7146100e457806342318e3d146100ec57806350716c0e146100fa578063520b006614610108578063bc9c089114610127578063d49d51811461012f575b600080fd5b6100bf600435610137565b60408051918252519081900360200190f35b6100bf60043561016e565b6100bf610199565b6100bf6101ab565b6100bf6004356024356101b0565b6100bf6004356024356101e0565b610113600435610297565b604080519115158252519081900360200190f35b6100bf6102bc565b6100bf6102c1565b600061014282610297565b151561014d57600080fd5b6101686101586102bc565b8390600a0a63ffffffff6102d316565b92915050565b6000606482111561017e57600080fd5b6101686101896102bc565b8390600a0a63ffffffff6102fb16565b60006101a36102bc565b600201905090565b600090565b60006101d96101bd6102c1565b6101cd858563ffffffff6102fb16565b9063ffffffff6102d316565b9392505050565b600073__Utils_________________________________63bda4e61984846102066102c1565b6040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561026457600080fd5b505af4158015610278573d6000803e3d6000fd5b505050506040513d602081101561028e57600080fd5b50519392505050565b60006102a16101ab565b821015801561016857506102b36102c1565b90911115919050565b600290565b60006102cb610199565b600a0a905090565b6000808083116102e257600080fd5b82848115156102ed57fe5b0490508091505b5092915050565b60008083151561030e57600091506102f4565b5082820282848281151561031e57fe5b04146101d957600080fd00a165627a7a72305820c48643d51b0502ff756ccc66e9575bc4c344bcb42cee00663f0cdc9eeb353fc90029", + "sourceMap": "109:946:21:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "109:946:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;916:137;;;;;;;;;;;;;;;;;;;;;;779:131;;;;;;225:67;;;;297:55;;;;428:107;;;;;;;;541:121;;;;;;;;668:105;;;;;;;;;;;;;;;;;;;;;;;;161:59;;;;357:65;;;;916:137;967:4;991:13;1001:2;991:9;:13::i;:::-;983:22;;;;;;;;1023:23;1036:9;:7;:9::i;:::-;1023:2;;1030;:15;1023:23;:6;:23;:::i;:::-;1016:30;916:137;-1:-1:-1;;916:137:21:o;779:131::-;828:4;858:3;852:9;;;844:18;;;;;;880:23;893:9;:7;:9::i;:::-;880:2;;887;:15;880:23;:6;:23;:::i;225:67::-;261:4;280:9;:7;:9::i;:::-;276:1;:13;269:20;;225:67;:::o;297:55::-;333:4;297:55;:::o;428:107::-;484:4;507:21;522:5;:3;:5::i;:::-;507:10;:2;514;507:10;:6;:10;:::i;:::-;:14;:21;:14;:21;:::i;:::-;500:28;428:107;-1:-1:-1;;;428:107:21:o;541:121::-;601:4;624:5;:16;641:2;645;649:5;:3;:5::i;:::-;624:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;624:31:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;624:31:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;624:31:21;;541:121;-1:-1:-1;;;541:121:21:o;668:105::-;717:4;746:5;:3;:5::i;:::-;740:2;:11;;:26;;;;;761:5;:3;:5::i;:::-;755:11;;;;;668:105;-1:-1:-1;668:105:21:o;161:59::-;216:1;161:59;:::o;357:65::-;393:4;414:5;:3;:5::i;:::-;408:2;:11;401:18;;357:65;:::o;695:270:54:-;753:7;;776:5;;;768:14;;;;;;862:1;858;:5;;;;;;;;846:17;;959:1;952:8;;695:270;;;;;;:::o;204:381::-;262:7;;486:6;;482:35;;;509:1;502:8;;;;482:35;-1:-1:-1;535:5:54;;;539:1;535;:5;554;;;;;;;;:10;546:19;;;;", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"./Utils.sol\";\n\nlibrary Percent {\n using SafeMath for uint;\n\n function ADD_EXP() public pure returns (uint) { return 2; }\n function EXP() public pure returns (uint) { return 2 + ADD_EXP(); }\n function MIN() public pure returns (uint) { return 0; }\n function MAX() public pure returns (uint) { return 10 ** EXP(); }\n\n function percent(uint _a, uint _b) public pure returns (uint) {\n return _a.mul(_b).div(MAX());\n }\n\n function safePercent(uint _a, uint _b) public pure returns (uint) {\n return Utils.safeMulDiv(_a, _b, MAX());\n }\n\n function isPercent(uint _a) public pure returns (bool) {\n return _a >= MIN() && _a <= MAX();\n }\n\n function toPercent(uint _a) public pure returns (uint) {\n require(_a <= 100);\n\n return _a.mul(10 ** ADD_EXP());\n }\n\n function fromPercent(uint _a) public pure returns (uint) {\n require(isPercent(_a));\n\n return _a.div(10 ** ADD_EXP());\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/libs/Percent.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "exportedSymbols": { "Percent": [ - 5214 + 6431 ] }, - "id": 5215, + "id": 6432, "nodeType": "SourceUnit", "nodes": [ { - "id": 5071, + "id": 6288, "literals": [ "solidity", "^", @@ -83,27 +186,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:13" + "src": "0:24:21" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 5072, + "id": 6289, "nodeType": "ImportDirective", - "scope": 5215, - "sourceUnit": 10049, - "src": "26:59:13", + "scope": 6432, + "sourceUnit": 12389, + "src": "26:59:21", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", "file": "./Utils.sol", - "id": 5073, + "id": 6290, "nodeType": "ImportDirective", - "scope": 5215, - "sourceUnit": 6325, - "src": "86:21:13", + "scope": 6432, + "sourceUnit": 8379, + "src": "86:21:21", "symbolAliases": [], "unitAlias": "" }, @@ -113,34 +216,34 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 5214, + "id": 6431, "linearizedBaseContracts": [ - 5214 + 6431 ], "name": "Percent", "nodeType": "ContractDefinition", "nodes": [ { - "id": 5076, + "id": 6293, "libraryName": { "contractScope": null, - "id": 5074, + "id": 6291, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "137:8:13", + "referencedDeclaration": 12388, + "src": "137:8:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "131:24:13", + "src": "131:24:21", "typeName": { - "id": 5075, + "id": 6292, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "150:4:13", + "src": "150:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -149,22 +252,22 @@ }, { "body": { - "id": 5083, + "id": 6300, "nodeType": "Block", - "src": "207:13:13", + "src": "207:13:21", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "32", - "id": 5081, + "id": 6298, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "216:1:13", + "src": "216:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -172,15 +275,15 @@ }, "value": "2" }, - "functionReturnParameters": 5080, - "id": 5082, + "functionReturnParameters": 6297, + "id": 6299, "nodeType": "Return", - "src": "209:8:13" + "src": "209:8:21" } ] }, "documentation": null, - "id": 5084, + "id": 6301, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -188,23 +291,23 @@ "name": "ADD_EXP", "nodeType": "FunctionDefinition", "parameters": { - "id": 5077, + "id": 6294, "nodeType": "ParameterList", "parameters": [], - "src": "177:2:13" + "src": "177:2:21" }, "payable": false, "returnParameters": { - "id": 5080, + "id": 6297, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5079, + "id": 6296, "name": "", "nodeType": "VariableDeclaration", - "scope": 5084, - "src": "201:4:13", + "scope": 6301, + "src": "201:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -212,10 +315,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5078, + "id": 6295, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "201:4:13", + "src": "201:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -225,19 +328,19 @@ "visibility": "internal" } ], - "src": "200:6:13" + "src": "200:6:21" }, - "scope": 5214, - "src": "161:59:13", + "scope": 6431, + "src": "161:59:21", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5094, + "id": 6311, "nodeType": "Block", - "src": "267:25:13", + "src": "267:25:21", "statements": [ { "expression": { @@ -246,7 +349,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5092, + "id": 6309, "isConstant": false, "isLValue": false, "isPure": false, @@ -254,14 +357,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5089, + "id": 6306, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "276:1:13", + "src": "276:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -276,18 +379,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5090, + "id": 6307, "name": "ADD_EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5084, - "src": "280:7:13", + "referencedDeclaration": 6301, + "src": "280:7:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5091, + "id": 6308, "isConstant": false, "isLValue": false, "isPure": false, @@ -295,27 +398,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "280:9:13", + "src": "280:9:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "276:13:13", + "src": "276:13:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5088, - "id": 5093, + "functionReturnParameters": 6305, + "id": 6310, "nodeType": "Return", - "src": "269:20:13" + "src": "269:20:21" } ] }, "documentation": null, - "id": 5095, + "id": 6312, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -323,23 +426,23 @@ "name": "EXP", "nodeType": "FunctionDefinition", "parameters": { - "id": 5085, + "id": 6302, "nodeType": "ParameterList", "parameters": [], - "src": "237:2:13" + "src": "237:2:21" }, "payable": false, "returnParameters": { - "id": 5088, + "id": 6305, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5087, + "id": 6304, "name": "", "nodeType": "VariableDeclaration", - "scope": 5095, - "src": "261:4:13", + "scope": 6312, + "src": "261:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -347,10 +450,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5086, + "id": 6303, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "261:4:13", + "src": "261:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -360,32 +463,32 @@ "visibility": "internal" } ], - "src": "260:6:13" + "src": "260:6:21" }, - "scope": 5214, - "src": "225:67:13", + "scope": 6431, + "src": "225:67:21", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5102, + "id": 6319, "nodeType": "Block", - "src": "339:13:13", + "src": "339:13:21", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 5100, + "id": 6317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "348:1:13", + "src": "348:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -393,15 +496,15 @@ }, "value": "0" }, - "functionReturnParameters": 5099, - "id": 5101, + "functionReturnParameters": 6316, + "id": 6318, "nodeType": "Return", - "src": "341:8:13" + "src": "341:8:21" } ] }, "documentation": null, - "id": 5103, + "id": 6320, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -409,23 +512,23 @@ "name": "MIN", "nodeType": "FunctionDefinition", "parameters": { - "id": 5096, + "id": 6313, "nodeType": "ParameterList", "parameters": [], - "src": "309:2:13" + "src": "309:2:21" }, "payable": false, "returnParameters": { - "id": 5099, + "id": 6316, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5098, + "id": 6315, "name": "", "nodeType": "VariableDeclaration", - "scope": 5103, - "src": "333:4:13", + "scope": 6320, + "src": "333:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -433,10 +536,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5097, + "id": 6314, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "333:4:13", + "src": "333:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -446,19 +549,19 @@ "visibility": "internal" } ], - "src": "332:6:13" + "src": "332:6:21" }, - "scope": 5214, - "src": "297:55:13", + "scope": 6431, + "src": "297:55:21", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5113, + "id": 6330, "nodeType": "Block", - "src": "399:23:13", + "src": "399:23:21", "statements": [ { "expression": { @@ -467,7 +570,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5111, + "id": 6328, "isConstant": false, "isLValue": false, "isPure": false, @@ -475,14 +578,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 5108, + "id": 6325, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "408:2:13", + "src": "408:2:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -497,18 +600,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5109, + "id": 6326, "name": "EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5095, - "src": "414:3:13", + "referencedDeclaration": 6312, + "src": "414:3:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5110, + "id": 6327, "isConstant": false, "isLValue": false, "isPure": false, @@ -516,27 +619,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "414:5:13", + "src": "414:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "408:11:13", + "src": "408:11:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5107, - "id": 5112, + "functionReturnParameters": 6324, + "id": 6329, "nodeType": "Return", - "src": "401:18:13" + "src": "401:18:21" } ] }, "documentation": null, - "id": 5114, + "id": 6331, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -544,23 +647,23 @@ "name": "MAX", "nodeType": "FunctionDefinition", "parameters": { - "id": 5104, + "id": 6321, "nodeType": "ParameterList", "parameters": [], - "src": "369:2:13" + "src": "369:2:21" }, "payable": false, "returnParameters": { - "id": 5107, + "id": 6324, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5106, + "id": 6323, "name": "", "nodeType": "VariableDeclaration", - "scope": 5114, - "src": "393:4:13", + "scope": 6331, + "src": "393:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -568,10 +671,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5105, + "id": 6322, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "393:4:13", + "src": "393:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -581,19 +684,19 @@ "visibility": "internal" } ], - "src": "392:6:13" + "src": "392:6:21" }, - "scope": 5214, - "src": "357:65:13", + "scope": 6431, + "src": "357:65:21", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5132, + "id": 6349, "nodeType": "Block", - "src": "492:45:13", + "src": "490:45:21", "statements": [ { "expression": { @@ -604,18 +707,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5128, + "id": 6345, "name": "MAX", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5114, - "src": "524:3:13", + "referencedDeclaration": 6331, + "src": "522:3:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5129, + "id": 6346, "isConstant": false, "isLValue": false, "isPure": false, @@ -623,7 +726,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "524:5:13", + "src": "522:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -642,12 +745,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5125, + "id": 6342, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5118, - "src": "516:2:13", + "referencedDeclaration": 6335, + "src": "514:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -663,32 +766,32 @@ ], "expression": { "argumentTypes": null, - "id": 5123, + "id": 6340, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5116, - "src": "509:2:13", + "referencedDeclaration": 6333, + "src": "507:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5124, + "id": 6341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "509:6:13", + "referencedDeclaration": 12295, + "src": "507:6:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5126, + "id": 6343, "isConstant": false, "isLValue": false, "isPure": false, @@ -696,27 +799,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "509:10:13", + "src": "507:10:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5127, + "id": 6344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "509:14:13", + "referencedDeclaration": 12319, + "src": "507:14:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5130, + "id": 6347, "isConstant": false, "isLValue": false, "isPure": false, @@ -724,21 +827,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "509:21:13", + "src": "507:21:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5122, - "id": 5131, + "functionReturnParameters": 6339, + "id": 6348, "nodeType": "Return", - "src": "502:28:13" + "src": "500:28:21" } ] }, "documentation": null, - "id": 5133, + "id": 6350, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -746,16 +849,16 @@ "name": "percent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5119, + "id": 6336, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5116, + "id": 6333, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5133, - "src": "445:7:13", + "scope": 6350, + "src": "445:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -763,10 +866,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5115, + "id": 6332, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "445:4:13", + "src": "445:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -777,11 +880,11 @@ }, { "constant": false, - "id": 5118, + "id": 6335, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 5133, - "src": "454:7:13", + "scope": 6350, + "src": "454:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -789,10 +892,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5117, + "id": 6334, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "454:4:13", + "src": "454:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -802,20 +905,20 @@ "visibility": "internal" } ], - "src": "444:18:13" + "src": "444:18:21" }, "payable": false, "returnParameters": { - "id": 5122, + "id": 6339, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5121, + "id": 6338, "name": "", "nodeType": "VariableDeclaration", - "scope": 5133, - "src": "486:4:13", + "scope": 6350, + "src": "484:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -823,10 +926,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5120, + "id": 6337, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "486:4:13", + "src": "484:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -836,19 +939,19 @@ "visibility": "internal" } ], - "src": "485:6:13" + "src": "483:6:21" }, - "scope": 5214, - "src": "428:109:13", + "scope": 6431, + "src": "428:107:21", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5150, + "id": 6367, "nodeType": "Block", - "src": "611:55:13", + "src": "607:55:21", "statements": [ { "expression": { @@ -856,12 +959,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5144, + "id": 6361, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5135, - "src": "645:2:13", + "referencedDeclaration": 6352, + "src": "641:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -869,12 +972,12 @@ }, { "argumentTypes": null, - "id": 5145, + "id": 6362, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5137, - "src": "649:2:13", + "referencedDeclaration": 6354, + "src": "645:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -885,18 +988,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5146, + "id": 6363, "name": "MAX", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5114, - "src": "653:3:13", + "referencedDeclaration": 6331, + "src": "649:3:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5147, + "id": 6364, "isConstant": false, "isLValue": false, "isPure": false, @@ -904,7 +1007,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "653:5:13", + "src": "649:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -928,32 +1031,32 @@ ], "expression": { "argumentTypes": null, - "id": 5142, + "id": 6359, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "628:5:13", + "referencedDeclaration": 8378, + "src": "624:5:21", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5143, + "id": 6360, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeMulDiv", "nodeType": "MemberAccess", - "referencedDeclaration": 6323, - "src": "628:16:13", + "referencedDeclaration": 8377, + "src": "624:16:21", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5148, + "id": 6365, "isConstant": false, "isLValue": false, "isPure": false, @@ -961,21 +1064,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "628:31:13", + "src": "624:31:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5141, - "id": 5149, + "functionReturnParameters": 6358, + "id": 6366, "nodeType": "Return", - "src": "621:38:13" + "src": "617:38:21" } ] }, "documentation": null, - "id": 5151, + "id": 6368, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -983,16 +1086,16 @@ "name": "safePercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5138, + "id": 6355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5135, + "id": 6352, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5151, - "src": "564:7:13", + "scope": 6368, + "src": "562:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1000,10 +1103,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5134, + "id": 6351, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "564:4:13", + "src": "562:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1014,11 +1117,11 @@ }, { "constant": false, - "id": 5137, + "id": 6354, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 5151, - "src": "573:7:13", + "scope": 6368, + "src": "571:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1026,10 +1129,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5136, + "id": 6353, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "573:4:13", + "src": "571:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1039,20 +1142,20 @@ "visibility": "internal" } ], - "src": "563:18:13" + "src": "561:18:21" }, "payable": false, "returnParameters": { - "id": 5141, + "id": 6358, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5140, + "id": 6357, "name": "", "nodeType": "VariableDeclaration", - "scope": 5151, - "src": "605:4:13", + "scope": 6368, + "src": "601:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1060,10 +1163,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5139, + "id": 6356, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "605:4:13", + "src": "601:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1073,19 +1176,19 @@ "visibility": "internal" } ], - "src": "604:6:13" + "src": "600:6:21" }, - "scope": 5214, - "src": "543:123:13", + "scope": 6431, + "src": "541:121:21", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5168, + "id": 6385, "nodeType": "Block", - "src": "729:50:13", + "src": "723:50:21", "statements": [ { "expression": { @@ -1094,7 +1197,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5166, + "id": 6383, "isConstant": false, "isLValue": false, "isPure": false, @@ -1105,19 +1208,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5161, + "id": 6378, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5158, + "id": 6375, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5153, - "src": "746:2:13", + "referencedDeclaration": 6370, + "src": "740:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1130,18 +1233,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5159, + "id": 6376, "name": "MIN", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5103, - "src": "752:3:13", + "referencedDeclaration": 6320, + "src": "746:3:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5160, + "id": 6377, "isConstant": false, "isLValue": false, "isPure": false, @@ -1149,13 +1252,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "752:5:13", + "src": "746:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "746:11:13", + "src": "740:11:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1169,19 +1272,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5165, + "id": 6382, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5162, + "id": 6379, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5153, - "src": "761:2:13", + "referencedDeclaration": 6370, + "src": "755:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1194,18 +1297,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5163, + "id": 6380, "name": "MAX", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5114, - "src": "767:3:13", + "referencedDeclaration": 6331, + "src": "761:3:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5164, + "id": 6381, "isConstant": false, "isLValue": false, "isPure": false, @@ -1213,33 +1316,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "767:5:13", + "src": "761:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "761:11:13", + "src": "755:11:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "746:26:13", + "src": "740:26:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 5157, - "id": 5167, + "functionReturnParameters": 6374, + "id": 6384, "nodeType": "Return", - "src": "739:33:13" + "src": "733:33:21" } ] }, "documentation": null, - "id": 5169, + "id": 6386, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1247,16 +1350,16 @@ "name": "isPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5154, + "id": 6371, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5153, + "id": 6370, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5169, - "src": "691:7:13", + "scope": 6386, + "src": "687:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1264,10 +1367,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5152, + "id": 6369, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "691:4:13", + "src": "687:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1277,20 +1380,20 @@ "visibility": "internal" } ], - "src": "690:9:13" + "src": "686:9:21" }, "payable": false, "returnParameters": { - "id": 5157, + "id": 6374, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5156, + "id": 6373, "name": "", "nodeType": "VariableDeclaration", - "scope": 5169, - "src": "723:4:13", + "scope": 6386, + "src": "717:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1298,10 +1401,10 @@ "typeString": "bool" }, "typeName": { - "id": 5155, + "id": 6372, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "723:4:13", + "src": "717:4:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1311,19 +1414,19 @@ "visibility": "internal" } ], - "src": "722:6:13" + "src": "716:6:21" }, - "scope": 5214, - "src": "672:107:13", + "scope": 6431, + "src": "668:105:21", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5190, + "id": 6407, "nodeType": "Block", - "src": "842:76:13", + "src": "834:76:21", "statements": [ { "expression": { @@ -1335,19 +1438,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5179, + "id": 6396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5177, + "id": 6394, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5171, - "src": "860:2:13", + "referencedDeclaration": 6388, + "src": "852:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1358,14 +1461,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 5178, + "id": 6395, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "866:3:13", + "src": "858:3:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -1373,7 +1476,7 @@ }, "value": "100" }, - "src": "860:9:13", + "src": "852:9:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1387,21 +1490,21 @@ "typeString": "bool" } ], - "id": 5176, + "id": 6393, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "852:7:13", + "referencedDeclaration": 13444, + "src": "844:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5180, + "id": 6397, "isConstant": false, "isLValue": false, "isPure": false, @@ -1409,15 +1512,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "852:18:13", + "src": "844:18:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5181, + "id": 6398, "nodeType": "ExpressionStatement", - "src": "852:18:13" + "src": "844:18:21" }, { "expression": { @@ -1429,7 +1532,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5187, + "id": 6404, "isConstant": false, "isLValue": false, "isPure": false, @@ -1437,14 +1540,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 5184, + "id": 6401, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "895:2:13", + "src": "887:2:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -1459,18 +1562,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5185, + "id": 6402, "name": "ADD_EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5084, - "src": "901:7:13", + "referencedDeclaration": 6301, + "src": "893:7:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5186, + "id": 6403, "isConstant": false, "isLValue": false, "isPure": false, @@ -1478,13 +1581,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "901:9:13", + "src": "893:9:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "895:15:13", + "src": "887:15:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1500,32 +1603,32 @@ ], "expression": { "argumentTypes": null, - "id": 5182, + "id": 6399, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5171, - "src": "888:2:13", + "referencedDeclaration": 6388, + "src": "880:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5183, + "id": 6400, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "888:6:13", + "referencedDeclaration": 12295, + "src": "880:6:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5188, + "id": 6405, "isConstant": false, "isLValue": false, "isPure": false, @@ -1533,21 +1636,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "888:23:13", + "src": "880:23:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5175, - "id": 5189, + "functionReturnParameters": 6392, + "id": 6406, "nodeType": "Return", - "src": "881:30:13" + "src": "873:30:21" } ] }, "documentation": null, - "id": 5191, + "id": 6408, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1555,16 +1658,16 @@ "name": "toPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5172, + "id": 6389, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5171, + "id": 6388, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5191, - "src": "804:7:13", + "scope": 6408, + "src": "798:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1572,10 +1675,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5170, + "id": 6387, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "804:4:13", + "src": "798:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1585,20 +1688,20 @@ "visibility": "internal" } ], - "src": "803:9:13" + "src": "797:9:21" }, "payable": false, "returnParameters": { - "id": 5175, + "id": 6392, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5174, + "id": 6391, "name": "", "nodeType": "VariableDeclaration", - "scope": 5191, - "src": "836:4:13", + "scope": 6408, + "src": "828:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1606,10 +1709,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5173, + "id": 6390, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "836:4:13", + "src": "828:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1619,19 +1722,19 @@ "visibility": "internal" } ], - "src": "835:6:13" + "src": "827:6:21" }, - "scope": 5214, - "src": "785:133:13", + "scope": 6431, + "src": "779:131:21", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5212, + "id": 6429, "nodeType": "Block", - "src": "983:80:13", + "src": "973:80:21", "statements": [ { "expression": { @@ -1642,12 +1745,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5200, + "id": 6417, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "1011:2:13", + "referencedDeclaration": 6410, + "src": "1001:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1661,18 +1764,18 @@ "typeString": "uint256" } ], - "id": 5199, + "id": 6416, "name": "isPercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5169, - "src": "1001:9:13", + "referencedDeclaration": 6386, + "src": "991:9:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 5201, + "id": 6418, "isConstant": false, "isLValue": false, "isPure": false, @@ -1680,7 +1783,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1001:13:13", + "src": "991:13:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1694,21 +1797,21 @@ "typeString": "bool" } ], - "id": 5198, + "id": 6415, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "993:7:13", + "referencedDeclaration": 13444, + "src": "983:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5202, + "id": 6419, "isConstant": false, "isLValue": false, "isPure": false, @@ -1716,15 +1819,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "993:22:13", + "src": "983:22:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5203, + "id": 6420, "nodeType": "ExpressionStatement", - "src": "993:22:13" + "src": "983:22:21" }, { "expression": { @@ -1736,7 +1839,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5209, + "id": 6426, "isConstant": false, "isLValue": false, "isPure": false, @@ -1744,14 +1847,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 5206, + "id": 6423, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1040:2:13", + "src": "1030:2:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -1766,18 +1869,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5207, + "id": 6424, "name": "ADD_EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5084, - "src": "1046:7:13", + "referencedDeclaration": 6301, + "src": "1036:7:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5208, + "id": 6425, "isConstant": false, "isLValue": false, "isPure": false, @@ -1785,13 +1888,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1046:9:13", + "src": "1036:9:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1040:15:13", + "src": "1030:15:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1807,32 +1910,32 @@ ], "expression": { "argumentTypes": null, - "id": 5204, + "id": 6421, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "1033:2:13", + "referencedDeclaration": 6410, + "src": "1023:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5205, + "id": 6422, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "1033:6:13", + "referencedDeclaration": 12319, + "src": "1023:6:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5210, + "id": 6427, "isConstant": false, "isLValue": false, "isPure": false, @@ -1840,21 +1943,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1033:23:13", + "src": "1023:23:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5197, - "id": 5211, + "functionReturnParameters": 6414, + "id": 6428, "nodeType": "Return", - "src": "1026:30:13" + "src": "1016:30:21" } ] }, "documentation": null, - "id": 5213, + "id": 6430, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1862,16 +1965,16 @@ "name": "fromPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5194, + "id": 6411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5193, + "id": 6410, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5213, - "src": "945:7:13", + "scope": 6430, + "src": "937:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1879,10 +1982,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5192, + "id": 6409, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "945:4:13", + "src": "937:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1892,20 +1995,20 @@ "visibility": "internal" } ], - "src": "944:9:13" + "src": "936:9:21" }, "payable": false, "returnParameters": { - "id": 5197, + "id": 6414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5196, + "id": 6413, "name": "", "nodeType": "VariableDeclaration", - "scope": 5213, - "src": "977:4:13", + "scope": 6430, + "src": "967:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1913,10 +2016,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5195, + "id": 6412, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "977:4:13", + "src": "967:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1926,33 +2029,33 @@ "visibility": "internal" } ], - "src": "976:6:13" + "src": "966:6:21" }, - "scope": 5214, - "src": "924:139:13", + "scope": 6431, + "src": "916:137:21", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" } ], - "scope": 5215, - "src": "109:956:13" + "scope": 6432, + "src": "109:946:21" } ], - "src": "0:1066:13" + "src": "0:1056:21" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "exportedSymbols": { "Percent": [ - 5214 + 6431 ] }, - "id": 5215, + "id": 6432, "nodeType": "SourceUnit", "nodes": [ { - "id": 5071, + "id": 6288, "literals": [ "solidity", "^", @@ -1960,27 +2063,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:13" + "src": "0:24:21" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 5072, + "id": 6289, "nodeType": "ImportDirective", - "scope": 5215, - "sourceUnit": 10049, - "src": "26:59:13", + "scope": 6432, + "sourceUnit": 12389, + "src": "26:59:21", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", "file": "./Utils.sol", - "id": 5073, + "id": 6290, "nodeType": "ImportDirective", - "scope": 5215, - "sourceUnit": 6325, - "src": "86:21:13", + "scope": 6432, + "sourceUnit": 8379, + "src": "86:21:21", "symbolAliases": [], "unitAlias": "" }, @@ -1990,34 +2093,34 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 5214, + "id": 6431, "linearizedBaseContracts": [ - 5214 + 6431 ], "name": "Percent", "nodeType": "ContractDefinition", "nodes": [ { - "id": 5076, + "id": 6293, "libraryName": { "contractScope": null, - "id": 5074, + "id": 6291, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "137:8:13", + "referencedDeclaration": 12388, + "src": "137:8:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "131:24:13", + "src": "131:24:21", "typeName": { - "id": 5075, + "id": 6292, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "150:4:13", + "src": "150:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2026,22 +2129,22 @@ }, { "body": { - "id": 5083, + "id": 6300, "nodeType": "Block", - "src": "207:13:13", + "src": "207:13:21", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "32", - "id": 5081, + "id": 6298, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "216:1:13", + "src": "216:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -2049,15 +2152,15 @@ }, "value": "2" }, - "functionReturnParameters": 5080, - "id": 5082, + "functionReturnParameters": 6297, + "id": 6299, "nodeType": "Return", - "src": "209:8:13" + "src": "209:8:21" } ] }, "documentation": null, - "id": 5084, + "id": 6301, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2065,23 +2168,23 @@ "name": "ADD_EXP", "nodeType": "FunctionDefinition", "parameters": { - "id": 5077, + "id": 6294, "nodeType": "ParameterList", "parameters": [], - "src": "177:2:13" + "src": "177:2:21" }, "payable": false, "returnParameters": { - "id": 5080, + "id": 6297, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5079, + "id": 6296, "name": "", "nodeType": "VariableDeclaration", - "scope": 5084, - "src": "201:4:13", + "scope": 6301, + "src": "201:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2089,10 +2192,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5078, + "id": 6295, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "201:4:13", + "src": "201:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2102,19 +2205,19 @@ "visibility": "internal" } ], - "src": "200:6:13" + "src": "200:6:21" }, - "scope": 5214, - "src": "161:59:13", + "scope": 6431, + "src": "161:59:21", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5094, + "id": 6311, "nodeType": "Block", - "src": "267:25:13", + "src": "267:25:21", "statements": [ { "expression": { @@ -2123,7 +2226,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5092, + "id": 6309, "isConstant": false, "isLValue": false, "isPure": false, @@ -2131,14 +2234,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5089, + "id": 6306, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "276:1:13", + "src": "276:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -2153,18 +2256,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5090, + "id": 6307, "name": "ADD_EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5084, - "src": "280:7:13", + "referencedDeclaration": 6301, + "src": "280:7:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5091, + "id": 6308, "isConstant": false, "isLValue": false, "isPure": false, @@ -2172,27 +2275,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "280:9:13", + "src": "280:9:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "276:13:13", + "src": "276:13:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5088, - "id": 5093, + "functionReturnParameters": 6305, + "id": 6310, "nodeType": "Return", - "src": "269:20:13" + "src": "269:20:21" } ] }, "documentation": null, - "id": 5095, + "id": 6312, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2200,23 +2303,23 @@ "name": "EXP", "nodeType": "FunctionDefinition", "parameters": { - "id": 5085, + "id": 6302, "nodeType": "ParameterList", "parameters": [], - "src": "237:2:13" + "src": "237:2:21" }, "payable": false, "returnParameters": { - "id": 5088, + "id": 6305, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5087, + "id": 6304, "name": "", "nodeType": "VariableDeclaration", - "scope": 5095, - "src": "261:4:13", + "scope": 6312, + "src": "261:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2224,10 +2327,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5086, + "id": 6303, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "261:4:13", + "src": "261:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2237,32 +2340,32 @@ "visibility": "internal" } ], - "src": "260:6:13" + "src": "260:6:21" }, - "scope": 5214, - "src": "225:67:13", + "scope": 6431, + "src": "225:67:21", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5102, + "id": 6319, "nodeType": "Block", - "src": "339:13:13", + "src": "339:13:21", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 5100, + "id": 6317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "348:1:13", + "src": "348:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2270,15 +2373,15 @@ }, "value": "0" }, - "functionReturnParameters": 5099, - "id": 5101, + "functionReturnParameters": 6316, + "id": 6318, "nodeType": "Return", - "src": "341:8:13" + "src": "341:8:21" } ] }, "documentation": null, - "id": 5103, + "id": 6320, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2286,23 +2389,23 @@ "name": "MIN", "nodeType": "FunctionDefinition", "parameters": { - "id": 5096, + "id": 6313, "nodeType": "ParameterList", "parameters": [], - "src": "309:2:13" + "src": "309:2:21" }, "payable": false, "returnParameters": { - "id": 5099, + "id": 6316, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5098, + "id": 6315, "name": "", "nodeType": "VariableDeclaration", - "scope": 5103, - "src": "333:4:13", + "scope": 6320, + "src": "333:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2310,10 +2413,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5097, + "id": 6314, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "333:4:13", + "src": "333:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2323,19 +2426,19 @@ "visibility": "internal" } ], - "src": "332:6:13" + "src": "332:6:21" }, - "scope": 5214, - "src": "297:55:13", + "scope": 6431, + "src": "297:55:21", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5113, + "id": 6330, "nodeType": "Block", - "src": "399:23:13", + "src": "399:23:21", "statements": [ { "expression": { @@ -2344,7 +2447,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5111, + "id": 6328, "isConstant": false, "isLValue": false, "isPure": false, @@ -2352,14 +2455,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 5108, + "id": 6325, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "408:2:13", + "src": "408:2:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -2374,18 +2477,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5109, + "id": 6326, "name": "EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5095, - "src": "414:3:13", + "referencedDeclaration": 6312, + "src": "414:3:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5110, + "id": 6327, "isConstant": false, "isLValue": false, "isPure": false, @@ -2393,27 +2496,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "414:5:13", + "src": "414:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "408:11:13", + "src": "408:11:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5107, - "id": 5112, + "functionReturnParameters": 6324, + "id": 6329, "nodeType": "Return", - "src": "401:18:13" + "src": "401:18:21" } ] }, "documentation": null, - "id": 5114, + "id": 6331, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2421,23 +2524,23 @@ "name": "MAX", "nodeType": "FunctionDefinition", "parameters": { - "id": 5104, + "id": 6321, "nodeType": "ParameterList", "parameters": [], - "src": "369:2:13" + "src": "369:2:21" }, "payable": false, "returnParameters": { - "id": 5107, + "id": 6324, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5106, + "id": 6323, "name": "", "nodeType": "VariableDeclaration", - "scope": 5114, - "src": "393:4:13", + "scope": 6331, + "src": "393:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2445,10 +2548,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5105, + "id": 6322, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "393:4:13", + "src": "393:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2458,19 +2561,19 @@ "visibility": "internal" } ], - "src": "392:6:13" + "src": "392:6:21" }, - "scope": 5214, - "src": "357:65:13", + "scope": 6431, + "src": "357:65:21", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5132, + "id": 6349, "nodeType": "Block", - "src": "492:45:13", + "src": "490:45:21", "statements": [ { "expression": { @@ -2481,18 +2584,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5128, + "id": 6345, "name": "MAX", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5114, - "src": "524:3:13", + "referencedDeclaration": 6331, + "src": "522:3:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5129, + "id": 6346, "isConstant": false, "isLValue": false, "isPure": false, @@ -2500,7 +2603,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "524:5:13", + "src": "522:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2519,12 +2622,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5125, + "id": 6342, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5118, - "src": "516:2:13", + "referencedDeclaration": 6335, + "src": "514:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2540,32 +2643,32 @@ ], "expression": { "argumentTypes": null, - "id": 5123, + "id": 6340, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5116, - "src": "509:2:13", + "referencedDeclaration": 6333, + "src": "507:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5124, + "id": 6341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "509:6:13", + "referencedDeclaration": 12295, + "src": "507:6:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5126, + "id": 6343, "isConstant": false, "isLValue": false, "isPure": false, @@ -2573,27 +2676,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "509:10:13", + "src": "507:10:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5127, + "id": 6344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "509:14:13", + "referencedDeclaration": 12319, + "src": "507:14:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5130, + "id": 6347, "isConstant": false, "isLValue": false, "isPure": false, @@ -2601,21 +2704,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "509:21:13", + "src": "507:21:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5122, - "id": 5131, + "functionReturnParameters": 6339, + "id": 6348, "nodeType": "Return", - "src": "502:28:13" + "src": "500:28:21" } ] }, "documentation": null, - "id": 5133, + "id": 6350, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2623,16 +2726,16 @@ "name": "percent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5119, + "id": 6336, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5116, + "id": 6333, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5133, - "src": "445:7:13", + "scope": 6350, + "src": "445:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2640,10 +2743,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5115, + "id": 6332, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "445:4:13", + "src": "445:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2654,11 +2757,11 @@ }, { "constant": false, - "id": 5118, + "id": 6335, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 5133, - "src": "454:7:13", + "scope": 6350, + "src": "454:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2666,10 +2769,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5117, + "id": 6334, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "454:4:13", + "src": "454:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2679,20 +2782,20 @@ "visibility": "internal" } ], - "src": "444:18:13" + "src": "444:18:21" }, "payable": false, "returnParameters": { - "id": 5122, + "id": 6339, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5121, + "id": 6338, "name": "", "nodeType": "VariableDeclaration", - "scope": 5133, - "src": "486:4:13", + "scope": 6350, + "src": "484:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2700,10 +2803,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5120, + "id": 6337, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "486:4:13", + "src": "484:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2713,19 +2816,19 @@ "visibility": "internal" } ], - "src": "485:6:13" + "src": "483:6:21" }, - "scope": 5214, - "src": "428:109:13", + "scope": 6431, + "src": "428:107:21", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5150, + "id": 6367, "nodeType": "Block", - "src": "611:55:13", + "src": "607:55:21", "statements": [ { "expression": { @@ -2733,12 +2836,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5144, + "id": 6361, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5135, - "src": "645:2:13", + "referencedDeclaration": 6352, + "src": "641:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2746,12 +2849,12 @@ }, { "argumentTypes": null, - "id": 5145, + "id": 6362, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5137, - "src": "649:2:13", + "referencedDeclaration": 6354, + "src": "645:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2762,18 +2865,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5146, + "id": 6363, "name": "MAX", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5114, - "src": "653:3:13", + "referencedDeclaration": 6331, + "src": "649:3:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5147, + "id": 6364, "isConstant": false, "isLValue": false, "isPure": false, @@ -2781,7 +2884,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "653:5:13", + "src": "649:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2805,32 +2908,32 @@ ], "expression": { "argumentTypes": null, - "id": 5142, + "id": 6359, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "628:5:13", + "referencedDeclaration": 8378, + "src": "624:5:21", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5143, + "id": 6360, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeMulDiv", "nodeType": "MemberAccess", - "referencedDeclaration": 6323, - "src": "628:16:13", + "referencedDeclaration": 8377, + "src": "624:16:21", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5148, + "id": 6365, "isConstant": false, "isLValue": false, "isPure": false, @@ -2838,21 +2941,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "628:31:13", + "src": "624:31:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5141, - "id": 5149, + "functionReturnParameters": 6358, + "id": 6366, "nodeType": "Return", - "src": "621:38:13" + "src": "617:38:21" } ] }, "documentation": null, - "id": 5151, + "id": 6368, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2860,16 +2963,16 @@ "name": "safePercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5138, + "id": 6355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5135, + "id": 6352, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5151, - "src": "564:7:13", + "scope": 6368, + "src": "562:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2877,10 +2980,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5134, + "id": 6351, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "564:4:13", + "src": "562:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2891,11 +2994,11 @@ }, { "constant": false, - "id": 5137, + "id": 6354, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 5151, - "src": "573:7:13", + "scope": 6368, + "src": "571:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2903,10 +3006,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5136, + "id": 6353, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "573:4:13", + "src": "571:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2916,20 +3019,20 @@ "visibility": "internal" } ], - "src": "563:18:13" + "src": "561:18:21" }, "payable": false, "returnParameters": { - "id": 5141, + "id": 6358, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5140, + "id": 6357, "name": "", "nodeType": "VariableDeclaration", - "scope": 5151, - "src": "605:4:13", + "scope": 6368, + "src": "601:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2937,10 +3040,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5139, + "id": 6356, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "605:4:13", + "src": "601:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2950,19 +3053,19 @@ "visibility": "internal" } ], - "src": "604:6:13" + "src": "600:6:21" }, - "scope": 5214, - "src": "543:123:13", + "scope": 6431, + "src": "541:121:21", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5168, + "id": 6385, "nodeType": "Block", - "src": "729:50:13", + "src": "723:50:21", "statements": [ { "expression": { @@ -2971,7 +3074,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5166, + "id": 6383, "isConstant": false, "isLValue": false, "isPure": false, @@ -2982,19 +3085,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5161, + "id": 6378, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5158, + "id": 6375, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5153, - "src": "746:2:13", + "referencedDeclaration": 6370, + "src": "740:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3007,18 +3110,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5159, + "id": 6376, "name": "MIN", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5103, - "src": "752:3:13", + "referencedDeclaration": 6320, + "src": "746:3:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5160, + "id": 6377, "isConstant": false, "isLValue": false, "isPure": false, @@ -3026,13 +3129,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "752:5:13", + "src": "746:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "746:11:13", + "src": "740:11:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3046,19 +3149,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5165, + "id": 6382, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5162, + "id": 6379, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5153, - "src": "761:2:13", + "referencedDeclaration": 6370, + "src": "755:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3071,18 +3174,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5163, + "id": 6380, "name": "MAX", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5114, - "src": "767:3:13", + "referencedDeclaration": 6331, + "src": "761:3:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5164, + "id": 6381, "isConstant": false, "isLValue": false, "isPure": false, @@ -3090,33 +3193,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "767:5:13", + "src": "761:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "761:11:13", + "src": "755:11:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "746:26:13", + "src": "740:26:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 5157, - "id": 5167, + "functionReturnParameters": 6374, + "id": 6384, "nodeType": "Return", - "src": "739:33:13" + "src": "733:33:21" } ] }, "documentation": null, - "id": 5169, + "id": 6386, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3124,16 +3227,16 @@ "name": "isPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5154, + "id": 6371, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5153, + "id": 6370, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5169, - "src": "691:7:13", + "scope": 6386, + "src": "687:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3141,10 +3244,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5152, + "id": 6369, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "691:4:13", + "src": "687:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3154,20 +3257,20 @@ "visibility": "internal" } ], - "src": "690:9:13" + "src": "686:9:21" }, "payable": false, "returnParameters": { - "id": 5157, + "id": 6374, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5156, + "id": 6373, "name": "", "nodeType": "VariableDeclaration", - "scope": 5169, - "src": "723:4:13", + "scope": 6386, + "src": "717:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3175,10 +3278,10 @@ "typeString": "bool" }, "typeName": { - "id": 5155, + "id": 6372, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "723:4:13", + "src": "717:4:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3188,19 +3291,19 @@ "visibility": "internal" } ], - "src": "722:6:13" + "src": "716:6:21" }, - "scope": 5214, - "src": "672:107:13", + "scope": 6431, + "src": "668:105:21", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5190, + "id": 6407, "nodeType": "Block", - "src": "842:76:13", + "src": "834:76:21", "statements": [ { "expression": { @@ -3212,19 +3315,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5179, + "id": 6396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5177, + "id": 6394, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5171, - "src": "860:2:13", + "referencedDeclaration": 6388, + "src": "852:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3235,14 +3338,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 5178, + "id": 6395, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "866:3:13", + "src": "858:3:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -3250,7 +3353,7 @@ }, "value": "100" }, - "src": "860:9:13", + "src": "852:9:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3264,21 +3367,21 @@ "typeString": "bool" } ], - "id": 5176, + "id": 6393, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "852:7:13", + "referencedDeclaration": 13444, + "src": "844:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5180, + "id": 6397, "isConstant": false, "isLValue": false, "isPure": false, @@ -3286,15 +3389,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "852:18:13", + "src": "844:18:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5181, + "id": 6398, "nodeType": "ExpressionStatement", - "src": "852:18:13" + "src": "844:18:21" }, { "expression": { @@ -3306,7 +3409,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5187, + "id": 6404, "isConstant": false, "isLValue": false, "isPure": false, @@ -3314,14 +3417,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 5184, + "id": 6401, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "895:2:13", + "src": "887:2:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3336,18 +3439,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5185, + "id": 6402, "name": "ADD_EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5084, - "src": "901:7:13", + "referencedDeclaration": 6301, + "src": "893:7:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5186, + "id": 6403, "isConstant": false, "isLValue": false, "isPure": false, @@ -3355,13 +3458,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "901:9:13", + "src": "893:9:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "895:15:13", + "src": "887:15:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3377,32 +3480,32 @@ ], "expression": { "argumentTypes": null, - "id": 5182, + "id": 6399, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5171, - "src": "888:2:13", + "referencedDeclaration": 6388, + "src": "880:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5183, + "id": 6400, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "888:6:13", + "referencedDeclaration": 12295, + "src": "880:6:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5188, + "id": 6405, "isConstant": false, "isLValue": false, "isPure": false, @@ -3410,21 +3513,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "888:23:13", + "src": "880:23:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5175, - "id": 5189, + "functionReturnParameters": 6392, + "id": 6406, "nodeType": "Return", - "src": "881:30:13" + "src": "873:30:21" } ] }, "documentation": null, - "id": 5191, + "id": 6408, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3432,16 +3535,16 @@ "name": "toPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5172, + "id": 6389, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5171, + "id": 6388, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5191, - "src": "804:7:13", + "scope": 6408, + "src": "798:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3449,10 +3552,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5170, + "id": 6387, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "804:4:13", + "src": "798:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3462,20 +3565,20 @@ "visibility": "internal" } ], - "src": "803:9:13" + "src": "797:9:21" }, "payable": false, "returnParameters": { - "id": 5175, + "id": 6392, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5174, + "id": 6391, "name": "", "nodeType": "VariableDeclaration", - "scope": 5191, - "src": "836:4:13", + "scope": 6408, + "src": "828:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3483,10 +3586,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5173, + "id": 6390, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "836:4:13", + "src": "828:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3496,19 +3599,19 @@ "visibility": "internal" } ], - "src": "835:6:13" + "src": "827:6:21" }, - "scope": 5214, - "src": "785:133:13", + "scope": 6431, + "src": "779:131:21", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5212, + "id": 6429, "nodeType": "Block", - "src": "983:80:13", + "src": "973:80:21", "statements": [ { "expression": { @@ -3519,12 +3622,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5200, + "id": 6417, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "1011:2:13", + "referencedDeclaration": 6410, + "src": "1001:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3538,18 +3641,18 @@ "typeString": "uint256" } ], - "id": 5199, + "id": 6416, "name": "isPercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5169, - "src": "1001:9:13", + "referencedDeclaration": 6386, + "src": "991:9:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 5201, + "id": 6418, "isConstant": false, "isLValue": false, "isPure": false, @@ -3557,7 +3660,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1001:13:13", + "src": "991:13:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3571,21 +3674,21 @@ "typeString": "bool" } ], - "id": 5198, + "id": 6415, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "993:7:13", + "referencedDeclaration": 13444, + "src": "983:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5202, + "id": 6419, "isConstant": false, "isLValue": false, "isPure": false, @@ -3593,15 +3696,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "993:22:13", + "src": "983:22:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5203, + "id": 6420, "nodeType": "ExpressionStatement", - "src": "993:22:13" + "src": "983:22:21" }, { "expression": { @@ -3613,7 +3716,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5209, + "id": 6426, "isConstant": false, "isLValue": false, "isPure": false, @@ -3621,14 +3724,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 5206, + "id": 6423, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1040:2:13", + "src": "1030:2:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3643,18 +3746,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5207, + "id": 6424, "name": "ADD_EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5084, - "src": "1046:7:13", + "referencedDeclaration": 6301, + "src": "1036:7:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5208, + "id": 6425, "isConstant": false, "isLValue": false, "isPure": false, @@ -3662,13 +3765,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1046:9:13", + "src": "1036:9:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1040:15:13", + "src": "1030:15:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3684,32 +3787,32 @@ ], "expression": { "argumentTypes": null, - "id": 5204, + "id": 6421, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "1033:2:13", + "referencedDeclaration": 6410, + "src": "1023:2:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5205, + "id": 6422, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "1033:6:13", + "referencedDeclaration": 12319, + "src": "1023:6:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5210, + "id": 6427, "isConstant": false, "isLValue": false, "isPure": false, @@ -3717,21 +3820,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1033:23:13", + "src": "1023:23:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5197, - "id": 5211, + "functionReturnParameters": 6414, + "id": 6428, "nodeType": "Return", - "src": "1026:30:13" + "src": "1016:30:21" } ] }, "documentation": null, - "id": 5213, + "id": 6430, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3739,16 +3842,16 @@ "name": "fromPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5194, + "id": 6411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5193, + "id": 6410, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5213, - "src": "945:7:13", + "scope": 6430, + "src": "937:7:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3756,10 +3859,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5192, + "id": 6409, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "945:4:13", + "src": "937:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3769,20 +3872,20 @@ "visibility": "internal" } ], - "src": "944:9:13" + "src": "936:9:21" }, "payable": false, "returnParameters": { - "id": 5197, + "id": 6414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5196, + "id": 6413, "name": "", "nodeType": "VariableDeclaration", - "scope": 5213, - "src": "977:4:13", + "scope": 6430, + "src": "967:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3790,10 +3893,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5195, + "id": 6412, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "977:4:13", + "src": "967:4:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3803,20 +3906,20 @@ "visibility": "internal" } ], - "src": "976:6:13" + "src": "966:6:21" }, - "scope": 5214, - "src": "924:139:13", + "scope": 6431, + "src": "916:137:21", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" } ], - "scope": 5215, - "src": "109:956:13" + "scope": 6432, + "src": "109:946:21" } ], - "src": "0:1066:13" + "src": "0:1056:21" }, "compiler": { "name": "solc", @@ -3825,11 +3928,13 @@ "networks": { "4": { "events": {}, - "links": {}, - "address": "0x0b4828a3e62b5ae0029d86d76fa68887ea9748ec", - "transactionHash": "0x63e8b33eaffc2bb32baa346e6dac785e6962a36590f59f183de1481232f82f1a" + "links": { + "Utils": "0x9666c128e3ab46e2e2480fa50e5294c54dad5621" + }, + "address": "0x04596c9a67ad5870686616d58c2a8198f8b94b34", + "transactionHash": "0x00457c091bb6d5ee0c112cb00702f63cbabb0a3a714f5c554d8c6432f85fdc39" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:55:06.457Z" + "updatedAt": "2018-12-06T13:18:18.751Z" } \ No newline at end of file diff --git a/build/contracts/PercentMock.json b/build/contracts/PercentMock.json index eebcd051..ceff123e 100644 --- a/build/contracts/PercentMock.json +++ b/build/contracts/PercentMock.json @@ -82,24 +82,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061026b806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fe91147811461006657806317b8f5e11461009057806342318e3d146100a8578063520b0066146100c3575b600080fd5b34801561007257600080fd5b5061007e6004356100ef565b60408051918252519081900360200190f35b34801561009c57600080fd5b5061007e600435610100565b3480156100b457600080fd5b5061007e60043560243561010b565b3480156100cf57600080fd5b506100db60043561011e565b604080519115158252519081900360200190f35b60006100fa82610129565b92915050565b60006100fa8261015a565b60006101178383610185565b9392505050565b60006100fa826101ae565b6000610134826101ae565b151561013f57600080fd5b6100fa61014a6101d3565b8390600a0a63ffffffff6101d816565b6000606482111561016a57600080fd5b6100fa6101756101d3565b8390600a0a63ffffffff6101ed16565b6000610117610192610216565b6101a2858563ffffffff6101ed16565b9063ffffffff6101d816565b60006101b8610228565b82101580156100fa57506101ca610216565b90911115919050565b600290565b600081838115156101e557fe5b049392505050565b60008215156101fe575060006100fa565b5081810281838281151561020e57fe5b04146100fa57fe5b600061022061022d565b600a0a905090565b600090565b60006102376101d3565b6002019050905600a165627a7a72305820030882ff4a40f45c9df50c48d092c849c1ebf9a2d5c9330e5953a90cd04b3c100029", - "deployedBytecode": "0x6080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fe91147811461006657806317b8f5e11461009057806342318e3d146100a8578063520b0066146100c3575b600080fd5b34801561007257600080fd5b5061007e6004356100ef565b60408051918252519081900360200190f35b34801561009c57600080fd5b5061007e600435610100565b3480156100b457600080fd5b5061007e60043560243561010b565b3480156100cf57600080fd5b506100db60043561011e565b604080519115158252519081900360200190f35b60006100fa82610129565b92915050565b60006100fa8261015a565b60006101178383610185565b9392505050565b60006100fa826101ae565b6000610134826101ae565b151561013f57600080fd5b6100fa61014a6101d3565b8390600a0a63ffffffff6101d816565b6000606482111561016a57600080fd5b6100fa6101756101d3565b8390600a0a63ffffffff6101ed16565b6000610117610192610216565b6101a2858563ffffffff6101ed16565b9063ffffffff6101d816565b60006101b8610228565b82101580156100fa57506101ca610216565b90911115919050565b600290565b600081838115156101e557fe5b049392505050565b60008215156101fe575060006100fa565b5081810281838281151561020e57fe5b04146100fa57fe5b600061022061022d565b600a0a905090565b600090565b60006102376101d3565b6002019050905600a165627a7a72305820030882ff4a40f45c9df50c48d092c849c1ebf9a2d5c9330e5953a90cd04b3c100029", - "sourceMap": "111:519:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;111:519:14;;;;;;;", - "deployedSourceMap": "111:519:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;524:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;524:104:14;;;;;;;;;;;;;;;;;;;;;418:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;418:100:14;;;;;196:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;196:110:14;;;;;;;312:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;312:100:14;;;;;;;;;;;;;;;;;;;;;;;524:104;575:4;598:23;618:2;598:19;:23::i;:::-;591:30;524:104;-1:-1:-1;;524:104:14:o;418:100::-;467:4;490:21;508:2;490:17;:21::i;196:110::-;252:4;276:23;292:2;296;276:15;:23::i;:::-;269:30;196:110;-1:-1:-1;;;196:110:14:o;312:100::-;361:4;384:21;402:2;384:17;:21::i;924:139:13:-;977:4;1001:13;1011:2;1001:9;:13::i;:::-;993:22;;;;;;;;1033:23;1046:9;:7;:9::i;:::-;1033:2;;1040;:15;1033:23;:6;:23;:::i;785:133::-;836:4;866:3;860:9;;;852:18;;;;;;888:23;901:9;:7;:9::i;:::-;888:2;;895;:15;888:23;:6;:23;:::i;428:109::-;486:4;509:21;524:5;:3;:5::i;:::-;509:10;:2;516;509:10;:6;:10;:::i;:::-;:14;:21;:14;:21;:::i;672:107::-;723:4;752:5;:3;:5::i;:::-;746:2;:11;;:26;;;;;767:5;:3;:5::i;:::-;761:11;;;;;672:107;-1:-1:-1;672:107:13:o;161:59::-;216:1;161:59;:::o;665:283:44:-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;203:380::-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:44;506:8;;485:36;-1:-1:-1;531:7:44;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;357:65:13;393:4;414:5;:3;:5::i;:::-;408:2;:11;401:18;;357:65;:::o;297:55::-;333:4;297:55;:::o;225:67::-;261:4;280:9;:7;:9::i;:::-;276:1;:13;269:20;;225:67;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"./Percent.sol\";\n\ncontract PercentMock {\n using SafeMath for uint;\n using Percent for uint;\n\n function percent(uint _a, uint _b) public pure returns (uint) {\n return Percent.percent(_a, _b);\n }\n\n function isPercent(uint _a) public pure returns (bool) {\n return Percent.isPercent(_a);\n }\n\n function toPercent(uint _a) public pure returns (uint) {\n return Percent.toPercent(_a);\n }\n\n function fromPercent(uint _a) public pure returns (uint) {\n return Percent.fromPercent(_a);\n }\n}\n", - "sourcePath": "/home/circleci/code/contracts/libs/PercentMock.sol", + "bytecode": "0x608060405234801561001057600080fd5b506102bf806100206000396000f3006080604052600436106100485763ffffffff60e060020a6000350416630fe91147811461004d57806317b8f5e11461007757806342318e3d1461008f578063520b0066146100aa575b600080fd5b34801561005957600080fd5b506100656004356100d6565b60408051918252519081900360200190f35b34801561008357600080fd5b5061006560043561015c565b34801561009b57600080fd5b506100656004356024356101b0565b3480156100b657600080fd5b506100c260043561023f565b604080519115158252519081900360200190f35b600073__Percent_______________________________630fe91147836040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801561012a57600080fd5b505af415801561013e573d6000803e3d6000fd5b505050506040513d602081101561015457600080fd5b505192915050565b600073__Percent_______________________________6317b8f5e1836040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801561012a57600080fd5b600073__Percent_______________________________6342318e3d84846040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b15801561020c57600080fd5b505af4158015610220573d6000803e3d6000fd5b505050506040513d602081101561023657600080fd5b50519392505050565b600073__Percent_______________________________63520b0066836040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801561012a57600080fd00a165627a7a72305820166cb3f3c16af42b67d9fad9eeb4c7e4797772af75bdaa11ca372b116a45ccd20029", + "deployedBytecode": "0x6080604052600436106100485763ffffffff60e060020a6000350416630fe91147811461004d57806317b8f5e11461007757806342318e3d1461008f578063520b0066146100aa575b600080fd5b34801561005957600080fd5b506100656004356100d6565b60408051918252519081900360200190f35b34801561008357600080fd5b5061006560043561015c565b34801561009b57600080fd5b506100656004356024356101b0565b3480156100b657600080fd5b506100c260043561023f565b604080519115158252519081900360200190f35b600073__Percent_______________________________630fe91147836040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801561012a57600080fd5b505af415801561013e573d6000803e3d6000fd5b505050506040513d602081101561015457600080fd5b505192915050565b600073__Percent_______________________________6317b8f5e1836040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801561012a57600080fd5b600073__Percent_______________________________6342318e3d84846040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b15801561020c57600080fd5b505af4158015610220573d6000803e3d6000fd5b505050506040513d602081101561023657600080fd5b50519392505050565b600073__Percent_______________________________63520b0066836040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801561012a57600080fd00a165627a7a72305820166cb3f3c16af42b67d9fad9eeb4c7e4797772af75bdaa11ca372b116a45ccd20029", + "sourceMap": "120:519:29:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;120:519:29;;;;;;;", + "deployedSourceMap": "120:519:29:-;;;;;;;;;-1:-1:-1;;;120:519:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;533:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;533:104:29;;;;;;;;;;;;;;;;;;;;;427:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;427:100:29;;;;;205:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;205:110:29;;;;;;;321:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;321:100:29;;;;;;;;;;;;;;;;;;;;;;;533:104;584:4;607:7;:19;627:2;607:23;;;;;-1:-1:-1;;;607:23:29;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;607:23:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;607:23:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;607:23:29;;533:104;-1:-1:-1;;533:104:29:o;427:100::-;476:4;499:7;:17;517:2;499:21;;;;;-1:-1:-1;;;499:21:29;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;205:110:29;261:4;285:7;:15;301:2;305;285:23;;;;;-1:-1:-1;;;285:23:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;285:23:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;285:23:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;285:23:29;;205:110;-1:-1:-1;;;205:110:29:o;321:100::-;370:4;393:7;:17;411:2;393:21;;;;;-1:-1:-1;;;393:21:29;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"../../libs/Percent.sol\";\n\ncontract PercentMock {\n using SafeMath for uint;\n using Percent for uint;\n\n function percent(uint _a, uint _b) public pure returns (uint) {\n return Percent.percent(_a, _b);\n }\n\n function isPercent(uint _a) public pure returns (bool) {\n return Percent.isPercent(_a);\n }\n\n function toPercent(uint _a) public pure returns (uint) {\n return Percent.toPercent(_a);\n }\n\n function fromPercent(uint _a) public pure returns (uint) {\n return Percent.fromPercent(_a);\n }\n}\n", + "sourcePath": "/home/circleci/code/contracts/mocks/libs/PercentMock.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/libs/PercentMock.sol", + "absolutePath": "/home/circleci/code/contracts/mocks/libs/PercentMock.sol", "exportedSymbols": { "PercentMock": [ - 5280 + 9200 ] }, - "id": 5281, + "id": 9201, "nodeType": "SourceUnit", "nodes": [ { - "id": 5216, + "id": 9136, "literals": [ "solidity", "^", @@ -107,27 +107,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:14" + "src": "0:24:29" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 5217, + "id": 9137, "nodeType": "ImportDirective", - "scope": 5281, - "sourceUnit": 10049, - "src": "26:59:14", + "scope": 9201, + "sourceUnit": 12389, + "src": "26:59:29", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", - "file": "./Percent.sol", - "id": 5218, + "file": "../../libs/Percent.sol", + "id": 9138, "nodeType": "ImportDirective", - "scope": 5281, - "sourceUnit": 5215, - "src": "86:23:14", + "scope": 9201, + "sourceUnit": 6432, + "src": "86:32:29", "symbolAliases": [], "unitAlias": "" }, @@ -137,34 +137,34 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 5280, + "id": 9200, "linearizedBaseContracts": [ - 5280 + 9200 ], "name": "PercentMock", "nodeType": "ContractDefinition", "nodes": [ { - "id": 5221, + "id": 9141, "libraryName": { "contractScope": null, - "id": 5219, + "id": 9139, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "144:8:14", + "referencedDeclaration": 12388, + "src": "153:8:29", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "138:24:14", + "src": "147:24:29", "typeName": { - "id": 5220, + "id": 9140, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "157:4:14", + "src": "166:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -172,26 +172,26 @@ } }, { - "id": 5224, + "id": 9144, "libraryName": { "contractScope": null, - "id": 5222, + "id": 9142, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5214, - "src": "173:7:14", + "referencedDeclaration": 6431, + "src": "182:7:29", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$5214", + "typeIdentifier": "t_contract$_Percent_$6431", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "167:23:14", + "src": "176:23:29", "typeName": { - "id": 5223, + "id": 9143, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "185:4:14", + "src": "194:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -200,9 +200,9 @@ }, { "body": { - "id": 5239, + "id": 9159, "nodeType": "Block", - "src": "259:47:14", + "src": "268:47:29", "statements": [ { "expression": { @@ -210,12 +210,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5235, + "id": 9155, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5226, - "src": "292:2:14", + "referencedDeclaration": 9146, + "src": "301:2:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -223,12 +223,12 @@ }, { "argumentTypes": null, - "id": 5236, + "id": 9156, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "296:2:14", + "referencedDeclaration": 9148, + "src": "305:2:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -248,32 +248,32 @@ ], "expression": { "argumentTypes": null, - "id": 5233, + "id": 9153, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "276:7:14", + "referencedDeclaration": 6431, + "src": "285:7:29", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5234, + "id": 9154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "percent", "nodeType": "MemberAccess", - "referencedDeclaration": 5133, - "src": "276:15:14", + "referencedDeclaration": 6350, + "src": "285:15:29", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5237, + "id": 9157, "isConstant": false, "isLValue": false, "isPure": false, @@ -281,21 +281,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "276:23:14", + "src": "285:23:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5232, - "id": 5238, + "functionReturnParameters": 9152, + "id": 9158, "nodeType": "Return", - "src": "269:30:14" + "src": "278:30:29" } ] }, "documentation": null, - "id": 5240, + "id": 9160, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -303,16 +303,16 @@ "name": "percent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5229, + "id": 9149, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5226, + "id": 9146, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5240, - "src": "213:7:14", + "scope": 9160, + "src": "222:7:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -320,10 +320,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5225, + "id": 9145, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "213:4:14", + "src": "222:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -334,11 +334,11 @@ }, { "constant": false, - "id": 5228, + "id": 9148, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 5240, - "src": "222:7:14", + "scope": 9160, + "src": "231:7:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -346,10 +346,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5227, + "id": 9147, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "222:4:14", + "src": "231:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -359,20 +359,20 @@ "visibility": "internal" } ], - "src": "212:18:14" + "src": "221:18:29" }, "payable": false, "returnParameters": { - "id": 5232, + "id": 9152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5231, + "id": 9151, "name": "", "nodeType": "VariableDeclaration", - "scope": 5240, - "src": "252:4:14", + "scope": 9160, + "src": "261:4:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -380,10 +380,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5230, + "id": 9150, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "252:4:14", + "src": "261:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -393,19 +393,19 @@ "visibility": "internal" } ], - "src": "251:6:14" + "src": "260:6:29" }, - "scope": 5280, - "src": "196:110:14", + "scope": 9200, + "src": "205:110:29", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5252, + "id": 9172, "nodeType": "Block", - "src": "367:45:14", + "src": "376:45:29", "statements": [ { "expression": { @@ -413,12 +413,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5249, + "id": 9169, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5242, - "src": "402:2:14", + "referencedDeclaration": 9162, + "src": "411:2:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -434,32 +434,32 @@ ], "expression": { "argumentTypes": null, - "id": 5247, + "id": 9167, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "384:7:14", + "referencedDeclaration": 6431, + "src": "393:7:29", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5248, + "id": 9168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "384:17:14", + "referencedDeclaration": 6386, + "src": "393:17:29", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 5250, + "id": 9170, "isConstant": false, "isLValue": false, "isPure": false, @@ -467,21 +467,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "384:21:14", + "src": "393:21:29", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 5246, - "id": 5251, + "functionReturnParameters": 9166, + "id": 9171, "nodeType": "Return", - "src": "377:28:14" + "src": "386:28:29" } ] }, "documentation": null, - "id": 5253, + "id": 9173, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -489,16 +489,16 @@ "name": "isPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5243, + "id": 9163, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5242, + "id": 9162, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5253, - "src": "331:7:14", + "scope": 9173, + "src": "340:7:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -506,10 +506,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5241, + "id": 9161, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "331:4:14", + "src": "340:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -519,20 +519,20 @@ "visibility": "internal" } ], - "src": "330:9:14" + "src": "339:9:29" }, "payable": false, "returnParameters": { - "id": 5246, + "id": 9166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5245, + "id": 9165, "name": "", "nodeType": "VariableDeclaration", - "scope": 5253, - "src": "361:4:14", + "scope": 9173, + "src": "370:4:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -540,10 +540,10 @@ "typeString": "bool" }, "typeName": { - "id": 5244, + "id": 9164, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "361:4:14", + "src": "370:4:29", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -553,19 +553,19 @@ "visibility": "internal" } ], - "src": "360:6:14" + "src": "369:6:29" }, - "scope": 5280, - "src": "312:100:14", + "scope": 9200, + "src": "321:100:29", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5265, + "id": 9185, "nodeType": "Block", - "src": "473:45:14", + "src": "482:45:29", "statements": [ { "expression": { @@ -573,12 +573,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5262, + "id": 9182, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "508:2:14", + "referencedDeclaration": 9175, + "src": "517:2:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -594,32 +594,32 @@ ], "expression": { "argumentTypes": null, - "id": 5260, + "id": 9180, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "490:7:14", + "referencedDeclaration": 6431, + "src": "499:7:29", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5261, + "id": 9181, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "toPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5191, - "src": "490:17:14", + "referencedDeclaration": 6408, + "src": "499:17:29", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 5263, + "id": 9183, "isConstant": false, "isLValue": false, "isPure": false, @@ -627,21 +627,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "490:21:14", + "src": "499:21:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5259, - "id": 5264, + "functionReturnParameters": 9179, + "id": 9184, "nodeType": "Return", - "src": "483:28:14" + "src": "492:28:29" } ] }, "documentation": null, - "id": 5266, + "id": 9186, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -649,16 +649,16 @@ "name": "toPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5256, + "id": 9176, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5255, + "id": 9175, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5266, - "src": "437:7:14", + "scope": 9186, + "src": "446:7:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -666,10 +666,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5254, + "id": 9174, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "437:4:14", + "src": "446:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -679,20 +679,20 @@ "visibility": "internal" } ], - "src": "436:9:14" + "src": "445:9:29" }, "payable": false, "returnParameters": { - "id": 5259, + "id": 9179, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5258, + "id": 9178, "name": "", "nodeType": "VariableDeclaration", - "scope": 5266, - "src": "467:4:14", + "scope": 9186, + "src": "476:4:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -700,10 +700,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5257, + "id": 9177, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "467:4:14", + "src": "476:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -713,19 +713,19 @@ "visibility": "internal" } ], - "src": "466:6:14" + "src": "475:6:29" }, - "scope": 5280, - "src": "418:100:14", + "scope": 9200, + "src": "427:100:29", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5278, + "id": 9198, "nodeType": "Block", - "src": "581:47:14", + "src": "590:47:29", "statements": [ { "expression": { @@ -733,12 +733,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5275, + "id": 9195, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5268, - "src": "618:2:14", + "referencedDeclaration": 9188, + "src": "627:2:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -754,32 +754,32 @@ ], "expression": { "argumentTypes": null, - "id": 5273, + "id": 9193, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "598:7:14", + "referencedDeclaration": 6431, + "src": "607:7:29", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5274, + "id": 9194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "598:19:14", + "referencedDeclaration": 6430, + "src": "607:19:29", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 5276, + "id": 9196, "isConstant": false, "isLValue": false, "isPure": false, @@ -787,21 +787,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "598:23:14", + "src": "607:23:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5272, - "id": 5277, + "functionReturnParameters": 9192, + "id": 9197, "nodeType": "Return", - "src": "591:30:14" + "src": "600:30:29" } ] }, "documentation": null, - "id": 5279, + "id": 9199, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -809,16 +809,16 @@ "name": "fromPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5269, + "id": 9189, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5268, + "id": 9188, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5279, - "src": "545:7:14", + "scope": 9199, + "src": "554:7:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -826,10 +826,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5267, + "id": 9187, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "545:4:14", + "src": "554:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -839,20 +839,20 @@ "visibility": "internal" } ], - "src": "544:9:14" + "src": "553:9:29" }, "payable": false, "returnParameters": { - "id": 5272, + "id": 9192, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5271, + "id": 9191, "name": "", "nodeType": "VariableDeclaration", - "scope": 5279, - "src": "575:4:14", + "scope": 9199, + "src": "584:4:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -860,10 +860,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5270, + "id": 9190, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "575:4:14", + "src": "584:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -873,33 +873,33 @@ "visibility": "internal" } ], - "src": "574:6:14" + "src": "583:6:29" }, - "scope": 5280, - "src": "524:104:14", + "scope": 9200, + "src": "533:104:29", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 5281, - "src": "111:519:14" + "scope": 9201, + "src": "120:519:29" } ], - "src": "0:631:14" + "src": "0:640:29" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/libs/PercentMock.sol", + "absolutePath": "/home/circleci/code/contracts/mocks/libs/PercentMock.sol", "exportedSymbols": { "PercentMock": [ - 5280 + 9200 ] }, - "id": 5281, + "id": 9201, "nodeType": "SourceUnit", "nodes": [ { - "id": 5216, + "id": 9136, "literals": [ "solidity", "^", @@ -907,27 +907,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:14" + "src": "0:24:29" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 5217, + "id": 9137, "nodeType": "ImportDirective", - "scope": 5281, - "sourceUnit": 10049, - "src": "26:59:14", + "scope": 9201, + "sourceUnit": 12389, + "src": "26:59:29", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", - "file": "./Percent.sol", - "id": 5218, + "file": "../../libs/Percent.sol", + "id": 9138, "nodeType": "ImportDirective", - "scope": 5281, - "sourceUnit": 5215, - "src": "86:23:14", + "scope": 9201, + "sourceUnit": 6432, + "src": "86:32:29", "symbolAliases": [], "unitAlias": "" }, @@ -937,34 +937,34 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 5280, + "id": 9200, "linearizedBaseContracts": [ - 5280 + 9200 ], "name": "PercentMock", "nodeType": "ContractDefinition", "nodes": [ { - "id": 5221, + "id": 9141, "libraryName": { "contractScope": null, - "id": 5219, + "id": 9139, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "144:8:14", + "referencedDeclaration": 12388, + "src": "153:8:29", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "138:24:14", + "src": "147:24:29", "typeName": { - "id": 5220, + "id": 9140, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "157:4:14", + "src": "166:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -972,26 +972,26 @@ } }, { - "id": 5224, + "id": 9144, "libraryName": { "contractScope": null, - "id": 5222, + "id": 9142, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5214, - "src": "173:7:14", + "referencedDeclaration": 6431, + "src": "182:7:29", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$5214", + "typeIdentifier": "t_contract$_Percent_$6431", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "167:23:14", + "src": "176:23:29", "typeName": { - "id": 5223, + "id": 9143, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "185:4:14", + "src": "194:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1000,9 +1000,9 @@ }, { "body": { - "id": 5239, + "id": 9159, "nodeType": "Block", - "src": "259:47:14", + "src": "268:47:29", "statements": [ { "expression": { @@ -1010,12 +1010,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5235, + "id": 9155, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5226, - "src": "292:2:14", + "referencedDeclaration": 9146, + "src": "301:2:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1023,12 +1023,12 @@ }, { "argumentTypes": null, - "id": 5236, + "id": 9156, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "296:2:14", + "referencedDeclaration": 9148, + "src": "305:2:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1048,32 +1048,32 @@ ], "expression": { "argumentTypes": null, - "id": 5233, + "id": 9153, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "276:7:14", + "referencedDeclaration": 6431, + "src": "285:7:29", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5234, + "id": 9154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "percent", "nodeType": "MemberAccess", - "referencedDeclaration": 5133, - "src": "276:15:14", + "referencedDeclaration": 6350, + "src": "285:15:29", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5237, + "id": 9157, "isConstant": false, "isLValue": false, "isPure": false, @@ -1081,21 +1081,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "276:23:14", + "src": "285:23:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5232, - "id": 5238, + "functionReturnParameters": 9152, + "id": 9158, "nodeType": "Return", - "src": "269:30:14" + "src": "278:30:29" } ] }, "documentation": null, - "id": 5240, + "id": 9160, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1103,16 +1103,16 @@ "name": "percent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5229, + "id": 9149, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5226, + "id": 9146, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5240, - "src": "213:7:14", + "scope": 9160, + "src": "222:7:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1120,10 +1120,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5225, + "id": 9145, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "213:4:14", + "src": "222:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1134,11 +1134,11 @@ }, { "constant": false, - "id": 5228, + "id": 9148, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 5240, - "src": "222:7:14", + "scope": 9160, + "src": "231:7:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1146,10 +1146,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5227, + "id": 9147, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "222:4:14", + "src": "231:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1159,20 +1159,20 @@ "visibility": "internal" } ], - "src": "212:18:14" + "src": "221:18:29" }, "payable": false, "returnParameters": { - "id": 5232, + "id": 9152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5231, + "id": 9151, "name": "", "nodeType": "VariableDeclaration", - "scope": 5240, - "src": "252:4:14", + "scope": 9160, + "src": "261:4:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1180,10 +1180,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5230, + "id": 9150, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "252:4:14", + "src": "261:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1193,19 +1193,19 @@ "visibility": "internal" } ], - "src": "251:6:14" + "src": "260:6:29" }, - "scope": 5280, - "src": "196:110:14", + "scope": 9200, + "src": "205:110:29", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5252, + "id": 9172, "nodeType": "Block", - "src": "367:45:14", + "src": "376:45:29", "statements": [ { "expression": { @@ -1213,12 +1213,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5249, + "id": 9169, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5242, - "src": "402:2:14", + "referencedDeclaration": 9162, + "src": "411:2:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1234,32 +1234,32 @@ ], "expression": { "argumentTypes": null, - "id": 5247, + "id": 9167, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "384:7:14", + "referencedDeclaration": 6431, + "src": "393:7:29", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5248, + "id": 9168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "384:17:14", + "referencedDeclaration": 6386, + "src": "393:17:29", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 5250, + "id": 9170, "isConstant": false, "isLValue": false, "isPure": false, @@ -1267,21 +1267,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "384:21:14", + "src": "393:21:29", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 5246, - "id": 5251, + "functionReturnParameters": 9166, + "id": 9171, "nodeType": "Return", - "src": "377:28:14" + "src": "386:28:29" } ] }, "documentation": null, - "id": 5253, + "id": 9173, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1289,16 +1289,16 @@ "name": "isPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5243, + "id": 9163, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5242, + "id": 9162, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5253, - "src": "331:7:14", + "scope": 9173, + "src": "340:7:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1306,10 +1306,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5241, + "id": 9161, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "331:4:14", + "src": "340:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1319,20 +1319,20 @@ "visibility": "internal" } ], - "src": "330:9:14" + "src": "339:9:29" }, "payable": false, "returnParameters": { - "id": 5246, + "id": 9166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5245, + "id": 9165, "name": "", "nodeType": "VariableDeclaration", - "scope": 5253, - "src": "361:4:14", + "scope": 9173, + "src": "370:4:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1340,10 +1340,10 @@ "typeString": "bool" }, "typeName": { - "id": 5244, + "id": 9164, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "361:4:14", + "src": "370:4:29", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1353,19 +1353,19 @@ "visibility": "internal" } ], - "src": "360:6:14" + "src": "369:6:29" }, - "scope": 5280, - "src": "312:100:14", + "scope": 9200, + "src": "321:100:29", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5265, + "id": 9185, "nodeType": "Block", - "src": "473:45:14", + "src": "482:45:29", "statements": [ { "expression": { @@ -1373,12 +1373,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5262, + "id": 9182, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "508:2:14", + "referencedDeclaration": 9175, + "src": "517:2:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1394,32 +1394,32 @@ ], "expression": { "argumentTypes": null, - "id": 5260, + "id": 9180, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "490:7:14", + "referencedDeclaration": 6431, + "src": "499:7:29", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5261, + "id": 9181, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "toPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5191, - "src": "490:17:14", + "referencedDeclaration": 6408, + "src": "499:17:29", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 5263, + "id": 9183, "isConstant": false, "isLValue": false, "isPure": false, @@ -1427,21 +1427,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "490:21:14", + "src": "499:21:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5259, - "id": 5264, + "functionReturnParameters": 9179, + "id": 9184, "nodeType": "Return", - "src": "483:28:14" + "src": "492:28:29" } ] }, "documentation": null, - "id": 5266, + "id": 9186, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1449,16 +1449,16 @@ "name": "toPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5256, + "id": 9176, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5255, + "id": 9175, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5266, - "src": "437:7:14", + "scope": 9186, + "src": "446:7:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1466,10 +1466,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5254, + "id": 9174, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "437:4:14", + "src": "446:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1479,20 +1479,20 @@ "visibility": "internal" } ], - "src": "436:9:14" + "src": "445:9:29" }, "payable": false, "returnParameters": { - "id": 5259, + "id": 9179, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5258, + "id": 9178, "name": "", "nodeType": "VariableDeclaration", - "scope": 5266, - "src": "467:4:14", + "scope": 9186, + "src": "476:4:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1500,10 +1500,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5257, + "id": 9177, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "467:4:14", + "src": "476:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1513,19 +1513,19 @@ "visibility": "internal" } ], - "src": "466:6:14" + "src": "475:6:29" }, - "scope": 5280, - "src": "418:100:14", + "scope": 9200, + "src": "427:100:29", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5278, + "id": 9198, "nodeType": "Block", - "src": "581:47:14", + "src": "590:47:29", "statements": [ { "expression": { @@ -1533,12 +1533,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5275, + "id": 9195, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5268, - "src": "618:2:14", + "referencedDeclaration": 9188, + "src": "627:2:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1554,32 +1554,32 @@ ], "expression": { "argumentTypes": null, - "id": 5273, + "id": 9193, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "598:7:14", + "referencedDeclaration": 6431, + "src": "607:7:29", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5274, + "id": 9194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "598:19:14", + "referencedDeclaration": 6430, + "src": "607:19:29", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 5276, + "id": 9196, "isConstant": false, "isLValue": false, "isPure": false, @@ -1587,21 +1587,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "598:23:14", + "src": "607:23:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5272, - "id": 5277, + "functionReturnParameters": 9192, + "id": 9197, "nodeType": "Return", - "src": "591:30:14" + "src": "600:30:29" } ] }, "documentation": null, - "id": 5279, + "id": 9199, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1609,16 +1609,16 @@ "name": "fromPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 5269, + "id": 9189, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5268, + "id": 9188, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 5279, - "src": "545:7:14", + "scope": 9199, + "src": "554:7:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1626,10 +1626,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5267, + "id": 9187, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "545:4:14", + "src": "554:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1639,20 +1639,20 @@ "visibility": "internal" } ], - "src": "544:9:14" + "src": "553:9:29" }, "payable": false, "returnParameters": { - "id": 5272, + "id": 9192, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5271, + "id": 9191, "name": "", "nodeType": "VariableDeclaration", - "scope": 5279, - "src": "575:4:14", + "scope": 9199, + "src": "584:4:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1660,10 +1660,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5270, + "id": 9190, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "575:4:14", + "src": "584:4:29", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1673,20 +1673,20 @@ "visibility": "internal" } ], - "src": "574:6:14" + "src": "583:6:29" }, - "scope": 5280, - "src": "524:104:14", + "scope": 9200, + "src": "533:104:29", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 5281, - "src": "111:519:14" + "scope": 9201, + "src": "120:519:29" } ], - "src": "0:631:14" + "src": "0:640:29" }, "compiler": { "name": "solc", @@ -1694,5 +1694,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.294Z" + "updatedAt": "2018-12-06T13:18:18.802Z" } \ No newline at end of file diff --git a/build/contracts/PricerRole.json b/build/contracts/PricerRole.json index 44bd15eb..3ef9acec 100644 --- a/build/contracts/PricerRole.json +++ b/build/contracts/PricerRole.json @@ -52,51 +52,32 @@ }, { "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "addPricer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "removePricer", + "inputs": [], + "name": "renouncePricer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061002333640100000000610028810204565b6100b1565b600160a060020a038116151561003d57600080fd5b6100556000826401000000006101ee61008c82021704565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b610261806100c06000396000f3006080604052600436106100565763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663451a5e65811461005b57806379d445731461007e578063e92179441461009f575b600080fd5b34801561006757600080fd5b5061007c600160a060020a03600435166100d4565b005b34801561008a57600080fd5b5061007c600160a060020a03600435166100f4565b3480156100ab57600080fd5b506100c0600160a060020a03600435166100fd565b604080519115158252519081900360200190f35b6100dd336100fd565b15156100e857600080fd5b6100f181610115565b50565b6100f181610172565b600061010f818363ffffffff6101cf16565b92915050565b600160a060020a038116151561012a57600080fd5b61013b60008263ffffffff6101ee16565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a038116151561018757600080fd5b61019860008263ffffffff61021316565b604051600160a060020a038216907fdbde5a1472d701cfaea5fcee6419072f226c14cc6c5478fbe8552044053a316a90600090a250565b600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a72305820bf8884a849f93aaa77de2c7782d535365976d958a1c623476238be3a2555e6c00029", - "deployedBytecode": "0x6080604052600436106100565763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663451a5e65811461005b57806379d445731461007e578063e92179441461009f575b600080fd5b34801561006757600080fd5b5061007c600160a060020a03600435166100d4565b005b34801561008a57600080fd5b5061007c600160a060020a03600435166100f4565b3480156100ab57600080fd5b506100c0600160a060020a03600435166100fd565b604080519115158252519081900360200190f35b6100dd336100fd565b15156100e857600080fd5b6100f181610115565b50565b6100f181610172565b600061010f818363ffffffff6101cf16565b92915050565b600160a060020a038116151561012a57600080fd5b61013b60008263ffffffff6101ee16565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a038116151561018757600080fd5b61019860008263ffffffff61021316565b604051600160a060020a038216907fdbde5a1472d701cfaea5fcee6419072f226c14cc6c5478fbe8552044053a316a90600090a250565b600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a72305820bf8884a849f93aaa77de2c7782d535365976d958a1c623476238be3a2555e6c00029", - "sourceMap": "115:990:28:-;;;321:60;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;352:22:28;363:10;352;;;;:22;:::i;:::-;115:990;;771:159;-1:-1:-1;;;;;835:21:28;;;;827:30;;;;;;868:20;:7;880;868:11;;;;;;:20;:::i;:::-;903;;-1:-1:-1;;;;;903:20:28;;;;;;;;771:159;:::o;321:100:43:-;-1:-1:-1;;;;;390:19:43;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:43;412:4;390:26;;;321:100::o;115:990:28:-;;;;;;;", - "deployedSourceMap": "115:990:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;584:90:28;-1:-1:-1;;;;;584:90:28;;;;;;;680:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;680:85:28;-1:-1:-1;;;;;680:85:28;;;;;472:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;472:106:28;-1:-1:-1;;;;;472:106:28;;;;;;;;;;;;;;;;;;;;;;;584:90;427:20;436:10;427:8;:20::i;:::-;419:29;;;;;;;;648:19;659:7;648:10;:19::i;:::-;584:90;:::o;680:85::-;736:22;750:7;736:13;:22::i;472:106::-;528:4;551:20;528:4;563:7;551:20;:11;:20;:::i;:::-;544:27;472:106;-1:-1:-1;;472:106:28:o;771:159::-;-1:-1:-1;;;;;835:21:28;;;;827:30;;;;;;868:20;:7;880;868:20;:11;:20;:::i;:::-;903;;-1:-1:-1;;;;;903:20:28;;;;;;;;771:159;:::o;936:167::-;-1:-1:-1;;;;;1003:21:28;;;;995:30;;;;;;1036:23;:7;1051;1036:23;:14;:23;:::i;:::-;1074:22;;-1:-1:-1;;;;;1074:22:28;;;;;;;;936:167;:::o;855:128:43:-;-1:-1:-1;;;;;959:19:43;938:4;959:19;;;;;;;;;;;;;;;855:128::o;321:100::-;-1:-1:-1;;;;;390:19:43;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:43;412:4;390:26;;;321:100::o;486:104::-;-1:-1:-1;;;;;558:19:43;580:5;558:19;;;;;;;;;;;:27;;-1:-1:-1;;558:27:43;;;486:104::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/access/rbac/Roles.sol\";\nimport \"./IPricer.sol\";\n\ncontract PricerRole is IPricerRole {\n using Roles for Roles.Role;\n\n event PricerAdded(address indexed account);\n event PricerRemoved(address indexed account);\n\n Roles.Role private pricers;\n\n constructor() public {\n _addPricer(msg.sender);\n }\n\n modifier onlyPricer() {\n require(isPricer(msg.sender));\n _;\n }\n\n function isPricer(address account) public view returns (bool) {\n return pricers.has(account);\n }\n\n function addPricer(address account) public onlyPricer {\n _addPricer(account);\n }\n\n function removePricer(address account) public {\n _removePricer(account);\n }\n\n function _addPricer(address account) internal {\n require(account != address(0));\n\n pricers.add(account);\n emit PricerAdded(account);\n }\n\n function _removePricer(address account) internal {\n require(account != address(0));\n\n pricers.remove(account);\n emit PricerRemoved(account);\n }\n}\n", - "sourcePath": "/home/circleci/code/contracts/rates/roles/Pricer.sol", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/access/Roles.sol\";\n\ncontract PricerRole {\n using Roles for Roles.Role;\n\n event PricerAdded(address indexed account);\n event PricerRemoved(address indexed account);\n\n Roles.Role private pricers;\n\n constructor() internal {\n _addPricer(msg.sender);\n }\n\n modifier onlyPricer() {\n require(isPricer(msg.sender));\n _;\n }\n\n function isPricer(address account) public view returns (bool) {\n return pricers.has(account);\n }\n\n function renouncePricer() public {\n _removePricer(msg.sender);\n }\n\n function _addPricer(address account) internal {\n require(account != address(0));\n\n pricers.add(account);\n emit PricerAdded(account);\n }\n\n function _removePricer(address account) internal {\n require(account != address(0));\n\n pricers.remove(account);\n emit PricerRemoved(account);\n }\n}\n", + "sourcePath": "/home/circleci/code/contracts/access/roles/PricerRole.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/rates/roles/Pricer.sol", + "absolutePath": "/home/circleci/code/contracts/access/roles/PricerRole.sol", "exportedSymbols": { "PricerRole": [ - 7809 + 1528 ] }, - "id": 7810, + "id": 1529, "nodeType": "SourceUnit", "nodes": [ { - "id": 7688, + "id": 1423, "literals": [ "solidity", "^", @@ -104,90 +85,57 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:28" + "src": "0:24:7" }, { - "absolutePath": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", - "file": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", - "id": 7689, + "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", + "file": "openzeppelin-solidity/contracts/access/Roles.sol", + "id": 1424, "nodeType": "ImportDirective", - "scope": 7810, - "sourceUnit": 9955, - "src": "26:63:28", + "scope": 1529, + "sourceUnit": 12158, + "src": "26:58:7", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", - "file": "./IPricer.sol", - "id": 7690, - "nodeType": "ImportDirective", - "scope": 7810, - "sourceUnit": 7687, - "src": "90:23:28", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7691, - "name": "IPricerRole", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7686, - "src": "138:11:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPricerRole_$7686", - "typeString": "contract IPricerRole" - } - }, - "id": 7692, - "nodeType": "InheritanceSpecifier", - "src": "138:11:28" - } - ], - "contractDependencies": [ - 7686 - ], + "baseContracts": [], + "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 7809, + "id": 1528, "linearizedBaseContracts": [ - 7809, - 7686 + 1528 ], "name": "PricerRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 7695, + "id": 1427, "libraryName": { "contractScope": null, - "id": 7693, + "id": 1425, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9954, - "src": "162:5:28", + "referencedDeclaration": 12157, + "src": "118:5:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$9954", + "typeIdentifier": "t_contract$_Roles_$12157", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", - "src": "156:27:28", + "src": "112:27:7", "typeName": { "contractScope": null, - "id": 7694, + "id": 1426, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9891, - "src": "172:10:28", + "referencedDeclaration": 12070, + "src": "128:10:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" } } @@ -195,21 +143,21 @@ { "anonymous": false, "documentation": null, - "id": 7699, + "id": 1431, "name": "PricerAdded", "nodeType": "EventDefinition", "parameters": { - "id": 7698, + "id": 1430, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7697, + "id": 1429, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7699, - "src": "207:23:28", + "scope": 1431, + "src": "163:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -217,10 +165,10 @@ "typeString": "address" }, "typeName": { - "id": 7696, + "id": 1428, "name": "address", "nodeType": "ElementaryTypeName", - "src": "207:7:28", + "src": "163:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -230,28 +178,28 @@ "visibility": "internal" } ], - "src": "206:25:28" + "src": "162:25:7" }, - "src": "189:43:28" + "src": "145:43:7" }, { "anonymous": false, "documentation": null, - "id": 7703, + "id": 1435, "name": "PricerRemoved", "nodeType": "EventDefinition", "parameters": { - "id": 7702, + "id": 1434, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7701, + "id": 1433, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7703, - "src": "257:23:28", + "scope": 1435, + "src": "213:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -259,10 +207,10 @@ "typeString": "address" }, "typeName": { - "id": 7700, + "id": 1432, "name": "address", "nodeType": "ElementaryTypeName", - "src": "257:7:28", + "src": "213:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -272,32 +220,32 @@ "visibility": "internal" } ], - "src": "256:25:28" + "src": "212:25:7" }, - "src": "237:45:28" + "src": "193:45:7" }, { "constant": false, - "id": 7705, + "id": 1437, "name": "pricers", "nodeType": "VariableDeclaration", - "scope": 7809, - "src": "288:26:28", + "scope": 1528, + "src": "244:26:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage", + "typeIdentifier": "t_struct$_Role_$12070_storage", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 7704, + "id": 1436, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9891, - "src": "288:10:28", + "referencedDeclaration": 12070, + "src": "244:10:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -306,9 +254,9 @@ }, { "body": { - "id": 7713, + "id": 1445, "nodeType": "Block", - "src": "342:39:28", + "src": "300:39:7", "statements": [ { "expression": { @@ -318,18 +266,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7709, + "id": 1441, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "363:3:28", + "referencedDeclaration": 13441, + "src": "321:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 7710, + "id": 1442, "isConstant": false, "isLValue": false, "isPure": false, @@ -337,7 +285,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "363:10:28", + "src": "321:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -351,18 +299,18 @@ "typeString": "address" } ], - "id": 7708, + "id": 1440, "name": "_addPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7784, - "src": "352:10:28", + "referencedDeclaration": 1503, + "src": "310:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7711, + "id": 1443, "isConstant": false, "isLValue": false, "isPure": false, @@ -370,20 +318,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "352:22:28", + "src": "310:22:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7712, + "id": 1444, "nodeType": "ExpressionStatement", - "src": "352:22:28" + "src": "310:22:7" } ] }, "documentation": null, - "id": 7714, + "id": 1446, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -391,29 +339,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 7706, + "id": 1438, "nodeType": "ParameterList", "parameters": [], - "src": "332:2:28" + "src": "288:2:7" }, "payable": false, "returnParameters": { - "id": 7707, + "id": 1439, "nodeType": "ParameterList", "parameters": [], - "src": "342:0:28" + "src": "300:0:7" }, - "scope": 7809, - "src": "321:60:28", + "scope": 1528, + "src": "277:62:7", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "internal" }, { "body": { - "id": 7724, + "id": 1456, "nodeType": "Block", - "src": "409:57:28", + "src": "367:57:7", "statements": [ { "expression": { @@ -426,18 +374,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7718, + "id": 1450, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "436:3:28", + "referencedDeclaration": 13441, + "src": "394:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 7719, + "id": 1451, "isConstant": false, "isLValue": false, "isPure": false, @@ -445,7 +393,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "436:10:28", + "src": "394:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -459,20 +407,18 @@ "typeString": "address" } ], - "id": 7717, + "id": 1449, "name": "isPricer", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7738 - ], - "referencedDeclaration": 7738, - "src": "427:8:28", + "overloadedDeclarations": [], + "referencedDeclaration": 1470, + "src": "385:8:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 7720, + "id": 1452, "isConstant": false, "isLValue": false, "isPure": false, @@ -480,7 +426,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "427:20:28", + "src": "385:20:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -494,21 +440,21 @@ "typeString": "bool" } ], - "id": 7716, + "id": 1448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "419:7:28", + "referencedDeclaration": 13444, + "src": "377:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7721, + "id": 1453, "isConstant": false, "isLValue": false, "isPure": false, @@ -516,41 +462,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "419:29:28", + "src": "377:29:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7722, + "id": 1454, "nodeType": "ExpressionStatement", - "src": "419:29:28" + "src": "377:29:7" }, { - "id": 7723, + "id": 1455, "nodeType": "PlaceholderStatement", - "src": "458:1:28" + "src": "416:1:7" } ] }, "documentation": null, - "id": 7725, + "id": 1457, "name": "onlyPricer", "nodeType": "ModifierDefinition", "parameters": { - "id": 7715, + "id": 1447, "nodeType": "ParameterList", "parameters": [], - "src": "406:2:28" + "src": "364:2:7" }, - "src": "387:79:28", + "src": "345:79:7", "visibility": "internal" }, { "body": { - "id": 7737, + "id": 1469, "nodeType": "Block", - "src": "534:44:28", + "src": "492:44:7", "statements": [ { "expression": { @@ -558,12 +504,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7734, + "id": 1466, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7727, - "src": "563:7:28", + "referencedDeclaration": 1459, + "src": "521:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -579,32 +525,32 @@ ], "expression": { "argumentTypes": null, - "id": 7732, + "id": 1464, "name": "pricers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7705, - "src": "551:7:28", + "referencedDeclaration": 1437, + "src": "509:7:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage", + "typeIdentifier": "t_struct$_Role_$12070_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 7733, + "id": 1465, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 9953, - "src": "551:11:28", + "referencedDeclaration": 12156, + "src": "509:11:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$9891_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$9891_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$12070_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 7735, + "id": 1467, "isConstant": false, "isLValue": false, "isPure": false, @@ -612,21 +558,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "551:20:28", + "src": "509:20:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 7731, - "id": 7736, + "functionReturnParameters": 1463, + "id": 1468, "nodeType": "Return", - "src": "544:27:28" + "src": "502:27:7" } ] }, "documentation": null, - "id": 7738, + "id": 1470, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -634,16 +580,16 @@ "name": "isPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7728, + "id": 1460, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7727, + "id": 1459, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7738, - "src": "490:15:28", + "scope": 1470, + "src": "448:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -651,10 +597,10 @@ "typeString": "address" }, "typeName": { - "id": 7726, + "id": 1458, "name": "address", "nodeType": "ElementaryTypeName", - "src": "490:7:28", + "src": "448:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -664,20 +610,20 @@ "visibility": "internal" } ], - "src": "489:17:28" + "src": "447:17:7" }, "payable": false, "returnParameters": { - "id": 7731, + "id": 1463, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7730, + "id": 1462, "name": "", "nodeType": "VariableDeclaration", - "scope": 7738, - "src": "528:4:28", + "scope": 1470, + "src": "486:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -685,10 +631,10 @@ "typeString": "bool" }, "typeName": { - "id": 7729, + "id": 1461, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "528:4:28", + "src": "486:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -698,155 +644,19 @@ "visibility": "internal" } ], - "src": "527:6:28" + "src": "485:6:7" }, - "scope": 7809, - "src": "472:106:28", + "scope": 1528, + "src": "430:106:7", "stateMutability": "view", - "superFunction": 7675, - "visibility": "public" - }, - { - "body": { - "id": 7749, - "nodeType": "Block", - "src": "638:36:28", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7746, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7740, - "src": "659:7:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7745, - "name": "_addPricer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7784, - "src": "648:10:28", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 7747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "648:19:28", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7748, - "nodeType": "ExpressionStatement", - "src": "648:19:28" - } - ] - }, - "documentation": null, - "id": 7750, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 7743, - "modifierName": { - "argumentTypes": null, - "id": 7742, - "name": "onlyPricer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7725, - "src": "627:10:28", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "627:10:28" - } - ], - "name": "addPricer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7741, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7740, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 7750, - "src": "603:15:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7739, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "603:7:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "602:17:28" - }, - "payable": false, - "returnParameters": { - "id": 7744, - "nodeType": "ParameterList", - "parameters": [], - "src": "638:0:28" - }, - "scope": 7809, - "src": "584:90:28", - "stateMutability": "nonpayable", - "superFunction": 7680, + "superFunction": 1384, "visibility": "public" }, { "body": { - "id": 7759, + "id": 1478, "nodeType": "Block", - "src": "726:39:28", + "src": "575:42:7", "statements": [ { "expression": { @@ -854,12 +664,28 @@ "arguments": [ { "argumentTypes": null, - "id": 7756, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7752, - "src": "750:7:28", + "expression": { + "argumentTypes": null, + "id": 1474, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "599:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "599:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -873,18 +699,18 @@ "typeString": "address" } ], - "id": 7755, + "id": 1473, "name": "_removePricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7808, - "src": "736:13:28", + "referencedDeclaration": 1527, + "src": "585:13:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7757, + "id": 1476, "isConstant": false, "isLValue": false, "isPure": false, @@ -892,77 +718,50 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "736:22:28", + "src": "585:25:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7758, + "id": 1477, "nodeType": "ExpressionStatement", - "src": "736:22:28" + "src": "585:25:7" } ] }, "documentation": null, - "id": 7760, + "id": 1479, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "removePricer", + "name": "renouncePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7753, + "id": 1471, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7752, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 7760, - "src": "702:15:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7751, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "702:7:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "701:17:28" + "parameters": [], + "src": "565:2:7" }, "payable": false, "returnParameters": { - "id": 7754, + "id": 1472, "nodeType": "ParameterList", "parameters": [], - "src": "726:0:28" + "src": "575:0:7" }, - "scope": 7809, - "src": "680:85:28", + "scope": 1528, + "src": "542:75:7", "stateMutability": "nonpayable", - "superFunction": 7685, + "superFunction": 1397, "visibility": "public" }, { "body": { - "id": 7783, + "id": 1502, "nodeType": "Block", - "src": "817:113:28", + "src": "669:113:7", "statements": [ { "expression": { @@ -974,19 +773,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 7770, + "id": 1489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7766, + "id": 1485, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7762, - "src": "835:7:28", + "referencedDeclaration": 1481, + "src": "687:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1000,14 +799,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 7768, + "id": 1487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "854:1:28", + "src": "706:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1023,20 +822,20 @@ "typeString": "int_const 0" } ], - "id": 7767, + "id": 1486, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "846:7:28", + "src": "698:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 7769, + "id": 1488, "isConstant": false, "isLValue": false, "isPure": true, @@ -1044,13 +843,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "846:10:28", + "src": "698:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "835:21:28", + "src": "687:21:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1064,21 +863,21 @@ "typeString": "bool" } ], - "id": 7765, + "id": 1484, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "827:7:28", + "referencedDeclaration": 13444, + "src": "679:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7771, + "id": 1490, "isConstant": false, "isLValue": false, "isPure": false, @@ -1086,15 +885,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "827:30:28", + "src": "679:30:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7772, + "id": 1491, "nodeType": "ExpressionStatement", - "src": "827:30:28" + "src": "679:30:7" }, { "expression": { @@ -1102,12 +901,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7776, + "id": 1495, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7762, - "src": "880:7:28", + "referencedDeclaration": 1481, + "src": "732:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1123,32 +922,32 @@ ], "expression": { "argumentTypes": null, - "id": 7773, + "id": 1492, "name": "pricers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7705, - "src": "868:7:28", + "referencedDeclaration": 1437, + "src": "720:7:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage", + "typeIdentifier": "t_struct$_Role_$12070_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 7775, + "id": 1494, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 9907, - "src": "868:11:28", + "referencedDeclaration": 12102, + "src": "720:11:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$9891_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9891_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 7777, + "id": 1496, "isConstant": false, "isLValue": false, "isPure": false, @@ -1156,15 +955,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "868:20:28", + "src": "720:20:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7778, + "id": 1497, "nodeType": "ExpressionStatement", - "src": "868:20:28" + "src": "720:20:7" }, { "eventCall": { @@ -1172,12 +971,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7780, + "id": 1499, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7762, - "src": "915:7:28", + "referencedDeclaration": 1481, + "src": "767:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1191,18 +990,18 @@ "typeString": "address" } ], - "id": 7779, + "id": 1498, "name": "PricerAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7699, - "src": "903:11:28", + "referencedDeclaration": 1431, + "src": "755:11:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7781, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, @@ -1210,20 +1009,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "903:20:28", + "src": "755:20:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7782, + "id": 1501, "nodeType": "EmitStatement", - "src": "898:25:28" + "src": "750:25:7" } ] }, "documentation": null, - "id": 7784, + "id": 1503, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1231,16 +1030,16 @@ "name": "_addPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7763, + "id": 1482, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7762, + "id": 1481, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7784, - "src": "791:15:28", + "scope": 1503, + "src": "643:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1248,10 +1047,10 @@ "typeString": "address" }, "typeName": { - "id": 7761, + "id": 1480, "name": "address", "nodeType": "ElementaryTypeName", - "src": "791:7:28", + "src": "643:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1261,26 +1060,26 @@ "visibility": "internal" } ], - "src": "790:17:28" + "src": "642:17:7" }, "payable": false, "returnParameters": { - "id": 7764, + "id": 1483, "nodeType": "ParameterList", "parameters": [], - "src": "817:0:28" + "src": "669:0:7" }, - "scope": 7809, - "src": "771:159:28", + "scope": 1528, + "src": "623:159:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7807, + "id": 1526, "nodeType": "Block", - "src": "985:118:28", + "src": "837:118:7", "statements": [ { "expression": { @@ -1292,19 +1091,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 7794, + "id": 1513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7790, + "id": 1509, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "1003:7:28", + "referencedDeclaration": 1505, + "src": "855:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1318,14 +1117,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 7792, + "id": 1511, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1022:1:28", + "src": "874:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1341,20 +1140,20 @@ "typeString": "int_const 0" } ], - "id": 7791, + "id": 1510, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1014:7:28", + "src": "866:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 7793, + "id": 1512, "isConstant": false, "isLValue": false, "isPure": true, @@ -1362,13 +1161,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1014:10:28", + "src": "866:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1003:21:28", + "src": "855:21:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1382,21 +1181,21 @@ "typeString": "bool" } ], - "id": 7789, + "id": 1508, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "995:7:28", + "referencedDeclaration": 13444, + "src": "847:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7795, + "id": 1514, "isConstant": false, "isLValue": false, "isPure": false, @@ -1404,15 +1203,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "995:30:28", + "src": "847:30:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7796, + "id": 1515, "nodeType": "ExpressionStatement", - "src": "995:30:28" + "src": "847:30:7" }, { "expression": { @@ -1420,12 +1219,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7800, + "id": 1519, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "1051:7:28", + "referencedDeclaration": 1505, + "src": "903:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1441,32 +1240,32 @@ ], "expression": { "argumentTypes": null, - "id": 7797, + "id": 1516, "name": "pricers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7705, - "src": "1036:7:28", + "referencedDeclaration": 1437, + "src": "888:7:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage", + "typeIdentifier": "t_struct$_Role_$12070_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 7799, + "id": 1518, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 9923, - "src": "1036:14:28", + "referencedDeclaration": 12133, + "src": "888:14:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$9891_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9891_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 7801, + "id": 1520, "isConstant": false, "isLValue": false, "isPure": false, @@ -1474,15 +1273,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1036:23:28", + "src": "888:23:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7802, + "id": 1521, "nodeType": "ExpressionStatement", - "src": "1036:23:28" + "src": "888:23:7" }, { "eventCall": { @@ -1490,12 +1289,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7804, + "id": 1523, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "1088:7:28", + "referencedDeclaration": 1505, + "src": "940:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1509,18 +1308,18 @@ "typeString": "address" } ], - "id": 7803, + "id": 1522, "name": "PricerRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7703, - "src": "1074:13:28", + "referencedDeclaration": 1435, + "src": "926:13:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7805, + "id": 1524, "isConstant": false, "isLValue": false, "isPure": false, @@ -1528,20 +1327,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1074:22:28", + "src": "926:22:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7806, + "id": 1525, "nodeType": "EmitStatement", - "src": "1069:27:28" + "src": "921:27:7" } ] }, "documentation": null, - "id": 7808, + "id": 1527, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1549,16 +1348,16 @@ "name": "_removePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7787, + "id": 1506, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7786, + "id": 1505, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7808, - "src": "959:15:28", + "scope": 1527, + "src": "811:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1566,10 +1365,10 @@ "typeString": "address" }, "typeName": { - "id": 7785, + "id": 1504, "name": "address", "nodeType": "ElementaryTypeName", - "src": "959:7:28", + "src": "811:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1579,40 +1378,40 @@ "visibility": "internal" } ], - "src": "958:17:28" + "src": "810:17:7" }, "payable": false, "returnParameters": { - "id": 7788, + "id": 1507, "nodeType": "ParameterList", "parameters": [], - "src": "985:0:28" + "src": "837:0:7" }, - "scope": 7809, - "src": "936:167:28", + "scope": 1528, + "src": "788:167:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 7810, - "src": "115:990:28" + "scope": 1529, + "src": "86:871:7" } ], - "src": "0:1106:28" + "src": "0:958:7" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/rates/roles/Pricer.sol", + "absolutePath": "/home/circleci/code/contracts/access/roles/PricerRole.sol", "exportedSymbols": { "PricerRole": [ - 7809 + 1528 ] }, - "id": 7810, + "id": 1529, "nodeType": "SourceUnit", "nodes": [ { - "id": 7688, + "id": 1423, "literals": [ "solidity", "^", @@ -1620,90 +1419,57 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:28" + "src": "0:24:7" }, { - "absolutePath": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", - "file": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", - "id": 7689, + "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", + "file": "openzeppelin-solidity/contracts/access/Roles.sol", + "id": 1424, "nodeType": "ImportDirective", - "scope": 7810, - "sourceUnit": 9955, - "src": "26:63:28", + "scope": 1529, + "sourceUnit": 12158, + "src": "26:58:7", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", - "file": "./IPricer.sol", - "id": 7690, - "nodeType": "ImportDirective", - "scope": 7810, - "sourceUnit": 7687, - "src": "90:23:28", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7691, - "name": "IPricerRole", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7686, - "src": "138:11:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPricerRole_$7686", - "typeString": "contract IPricerRole" - } - }, - "id": 7692, - "nodeType": "InheritanceSpecifier", - "src": "138:11:28" - } - ], - "contractDependencies": [ - 7686 - ], + "baseContracts": [], + "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 7809, + "id": 1528, "linearizedBaseContracts": [ - 7809, - 7686 + 1528 ], "name": "PricerRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 7695, + "id": 1427, "libraryName": { "contractScope": null, - "id": 7693, + "id": 1425, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9954, - "src": "162:5:28", + "referencedDeclaration": 12157, + "src": "118:5:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$9954", + "typeIdentifier": "t_contract$_Roles_$12157", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", - "src": "156:27:28", + "src": "112:27:7", "typeName": { "contractScope": null, - "id": 7694, + "id": 1426, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9891, - "src": "172:10:28", + "referencedDeclaration": 12070, + "src": "128:10:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" } } @@ -1711,21 +1477,21 @@ { "anonymous": false, "documentation": null, - "id": 7699, + "id": 1431, "name": "PricerAdded", "nodeType": "EventDefinition", "parameters": { - "id": 7698, + "id": 1430, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7697, + "id": 1429, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7699, - "src": "207:23:28", + "scope": 1431, + "src": "163:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1733,10 +1499,10 @@ "typeString": "address" }, "typeName": { - "id": 7696, + "id": 1428, "name": "address", "nodeType": "ElementaryTypeName", - "src": "207:7:28", + "src": "163:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1746,28 +1512,28 @@ "visibility": "internal" } ], - "src": "206:25:28" + "src": "162:25:7" }, - "src": "189:43:28" + "src": "145:43:7" }, { "anonymous": false, "documentation": null, - "id": 7703, + "id": 1435, "name": "PricerRemoved", "nodeType": "EventDefinition", "parameters": { - "id": 7702, + "id": 1434, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7701, + "id": 1433, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7703, - "src": "257:23:28", + "scope": 1435, + "src": "213:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1775,10 +1541,10 @@ "typeString": "address" }, "typeName": { - "id": 7700, + "id": 1432, "name": "address", "nodeType": "ElementaryTypeName", - "src": "257:7:28", + "src": "213:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1788,32 +1554,32 @@ "visibility": "internal" } ], - "src": "256:25:28" + "src": "212:25:7" }, - "src": "237:45:28" + "src": "193:45:7" }, { "constant": false, - "id": 7705, + "id": 1437, "name": "pricers", "nodeType": "VariableDeclaration", - "scope": 7809, - "src": "288:26:28", + "scope": 1528, + "src": "244:26:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage", + "typeIdentifier": "t_struct$_Role_$12070_storage", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 7704, + "id": 1436, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9891, - "src": "288:10:28", + "referencedDeclaration": 12070, + "src": "244:10:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -1822,9 +1588,9 @@ }, { "body": { - "id": 7713, + "id": 1445, "nodeType": "Block", - "src": "342:39:28", + "src": "300:39:7", "statements": [ { "expression": { @@ -1834,18 +1600,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7709, + "id": 1441, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "363:3:28", + "referencedDeclaration": 13441, + "src": "321:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 7710, + "id": 1442, "isConstant": false, "isLValue": false, "isPure": false, @@ -1853,7 +1619,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "363:10:28", + "src": "321:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1867,18 +1633,18 @@ "typeString": "address" } ], - "id": 7708, + "id": 1440, "name": "_addPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7784, - "src": "352:10:28", + "referencedDeclaration": 1503, + "src": "310:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7711, + "id": 1443, "isConstant": false, "isLValue": false, "isPure": false, @@ -1886,20 +1652,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "352:22:28", + "src": "310:22:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7712, + "id": 1444, "nodeType": "ExpressionStatement", - "src": "352:22:28" + "src": "310:22:7" } ] }, "documentation": null, - "id": 7714, + "id": 1446, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1907,29 +1673,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 7706, + "id": 1438, "nodeType": "ParameterList", "parameters": [], - "src": "332:2:28" + "src": "288:2:7" }, "payable": false, "returnParameters": { - "id": 7707, + "id": 1439, "nodeType": "ParameterList", "parameters": [], - "src": "342:0:28" + "src": "300:0:7" }, - "scope": 7809, - "src": "321:60:28", + "scope": 1528, + "src": "277:62:7", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "internal" }, { "body": { - "id": 7724, + "id": 1456, "nodeType": "Block", - "src": "409:57:28", + "src": "367:57:7", "statements": [ { "expression": { @@ -1942,18 +1708,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7718, + "id": 1450, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "436:3:28", + "referencedDeclaration": 13441, + "src": "394:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 7719, + "id": 1451, "isConstant": false, "isLValue": false, "isPure": false, @@ -1961,7 +1727,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "436:10:28", + "src": "394:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1975,20 +1741,18 @@ "typeString": "address" } ], - "id": 7717, + "id": 1449, "name": "isPricer", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7738 - ], - "referencedDeclaration": 7738, - "src": "427:8:28", + "overloadedDeclarations": [], + "referencedDeclaration": 1470, + "src": "385:8:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 7720, + "id": 1452, "isConstant": false, "isLValue": false, "isPure": false, @@ -1996,7 +1760,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "427:20:28", + "src": "385:20:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2010,21 +1774,21 @@ "typeString": "bool" } ], - "id": 7716, + "id": 1448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "419:7:28", + "referencedDeclaration": 13444, + "src": "377:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7721, + "id": 1453, "isConstant": false, "isLValue": false, "isPure": false, @@ -2032,41 +1796,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "419:29:28", + "src": "377:29:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7722, + "id": 1454, "nodeType": "ExpressionStatement", - "src": "419:29:28" + "src": "377:29:7" }, { - "id": 7723, + "id": 1455, "nodeType": "PlaceholderStatement", - "src": "458:1:28" + "src": "416:1:7" } ] }, "documentation": null, - "id": 7725, + "id": 1457, "name": "onlyPricer", "nodeType": "ModifierDefinition", "parameters": { - "id": 7715, + "id": 1447, "nodeType": "ParameterList", "parameters": [], - "src": "406:2:28" + "src": "364:2:7" }, - "src": "387:79:28", + "src": "345:79:7", "visibility": "internal" }, { "body": { - "id": 7737, + "id": 1469, "nodeType": "Block", - "src": "534:44:28", + "src": "492:44:7", "statements": [ { "expression": { @@ -2074,12 +1838,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7734, + "id": 1466, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7727, - "src": "563:7:28", + "referencedDeclaration": 1459, + "src": "521:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2095,32 +1859,32 @@ ], "expression": { "argumentTypes": null, - "id": 7732, + "id": 1464, "name": "pricers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7705, - "src": "551:7:28", + "referencedDeclaration": 1437, + "src": "509:7:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage", + "typeIdentifier": "t_struct$_Role_$12070_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 7733, + "id": 1465, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 9953, - "src": "551:11:28", + "referencedDeclaration": 12156, + "src": "509:11:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$9891_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$9891_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$12070_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 7735, + "id": 1467, "isConstant": false, "isLValue": false, "isPure": false, @@ -2128,21 +1892,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "551:20:28", + "src": "509:20:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 7731, - "id": 7736, + "functionReturnParameters": 1463, + "id": 1468, "nodeType": "Return", - "src": "544:27:28" + "src": "502:27:7" } ] }, "documentation": null, - "id": 7738, + "id": 1470, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2150,16 +1914,16 @@ "name": "isPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7728, + "id": 1460, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7727, + "id": 1459, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7738, - "src": "490:15:28", + "scope": 1470, + "src": "448:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2167,10 +1931,10 @@ "typeString": "address" }, "typeName": { - "id": 7726, + "id": 1458, "name": "address", "nodeType": "ElementaryTypeName", - "src": "490:7:28", + "src": "448:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2180,20 +1944,20 @@ "visibility": "internal" } ], - "src": "489:17:28" + "src": "447:17:7" }, "payable": false, "returnParameters": { - "id": 7731, + "id": 1463, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7730, + "id": 1462, "name": "", "nodeType": "VariableDeclaration", - "scope": 7738, - "src": "528:4:28", + "scope": 1470, + "src": "486:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2201,10 +1965,10 @@ "typeString": "bool" }, "typeName": { - "id": 7729, + "id": 1461, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "528:4:28", + "src": "486:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2214,155 +1978,19 @@ "visibility": "internal" } ], - "src": "527:6:28" + "src": "485:6:7" }, - "scope": 7809, - "src": "472:106:28", + "scope": 1528, + "src": "430:106:7", "stateMutability": "view", - "superFunction": 7675, - "visibility": "public" - }, - { - "body": { - "id": 7749, - "nodeType": "Block", - "src": "638:36:28", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7746, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7740, - "src": "659:7:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7745, - "name": "_addPricer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7784, - "src": "648:10:28", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 7747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "648:19:28", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7748, - "nodeType": "ExpressionStatement", - "src": "648:19:28" - } - ] - }, - "documentation": null, - "id": 7750, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 7743, - "modifierName": { - "argumentTypes": null, - "id": 7742, - "name": "onlyPricer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7725, - "src": "627:10:28", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "627:10:28" - } - ], - "name": "addPricer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7741, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7740, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 7750, - "src": "603:15:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7739, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "603:7:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "602:17:28" - }, - "payable": false, - "returnParameters": { - "id": 7744, - "nodeType": "ParameterList", - "parameters": [], - "src": "638:0:28" - }, - "scope": 7809, - "src": "584:90:28", - "stateMutability": "nonpayable", - "superFunction": 7680, + "superFunction": 1384, "visibility": "public" }, { "body": { - "id": 7759, + "id": 1478, "nodeType": "Block", - "src": "726:39:28", + "src": "575:42:7", "statements": [ { "expression": { @@ -2370,12 +1998,28 @@ "arguments": [ { "argumentTypes": null, - "id": 7756, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7752, - "src": "750:7:28", + "expression": { + "argumentTypes": null, + "id": 1474, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "599:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "599:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2389,18 +2033,18 @@ "typeString": "address" } ], - "id": 7755, + "id": 1473, "name": "_removePricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7808, - "src": "736:13:28", + "referencedDeclaration": 1527, + "src": "585:13:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7757, + "id": 1476, "isConstant": false, "isLValue": false, "isPure": false, @@ -2408,77 +2052,50 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "736:22:28", + "src": "585:25:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7758, + "id": 1477, "nodeType": "ExpressionStatement", - "src": "736:22:28" + "src": "585:25:7" } ] }, "documentation": null, - "id": 7760, + "id": 1479, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "removePricer", + "name": "renouncePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7753, + "id": 1471, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7752, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 7760, - "src": "702:15:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7751, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "702:7:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "701:17:28" + "parameters": [], + "src": "565:2:7" }, "payable": false, "returnParameters": { - "id": 7754, + "id": 1472, "nodeType": "ParameterList", "parameters": [], - "src": "726:0:28" + "src": "575:0:7" }, - "scope": 7809, - "src": "680:85:28", + "scope": 1528, + "src": "542:75:7", "stateMutability": "nonpayable", - "superFunction": 7685, + "superFunction": 1397, "visibility": "public" }, { "body": { - "id": 7783, + "id": 1502, "nodeType": "Block", - "src": "817:113:28", + "src": "669:113:7", "statements": [ { "expression": { @@ -2490,19 +2107,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 7770, + "id": 1489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7766, + "id": 1485, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7762, - "src": "835:7:28", + "referencedDeclaration": 1481, + "src": "687:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2516,14 +2133,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 7768, + "id": 1487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "854:1:28", + "src": "706:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2539,20 +2156,20 @@ "typeString": "int_const 0" } ], - "id": 7767, + "id": 1486, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "846:7:28", + "src": "698:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 7769, + "id": 1488, "isConstant": false, "isLValue": false, "isPure": true, @@ -2560,13 +2177,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "846:10:28", + "src": "698:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "835:21:28", + "src": "687:21:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2580,21 +2197,21 @@ "typeString": "bool" } ], - "id": 7765, + "id": 1484, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "827:7:28", + "referencedDeclaration": 13444, + "src": "679:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7771, + "id": 1490, "isConstant": false, "isLValue": false, "isPure": false, @@ -2602,15 +2219,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "827:30:28", + "src": "679:30:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7772, + "id": 1491, "nodeType": "ExpressionStatement", - "src": "827:30:28" + "src": "679:30:7" }, { "expression": { @@ -2618,12 +2235,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7776, + "id": 1495, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7762, - "src": "880:7:28", + "referencedDeclaration": 1481, + "src": "732:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2639,32 +2256,32 @@ ], "expression": { "argumentTypes": null, - "id": 7773, + "id": 1492, "name": "pricers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7705, - "src": "868:7:28", + "referencedDeclaration": 1437, + "src": "720:7:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage", + "typeIdentifier": "t_struct$_Role_$12070_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 7775, + "id": 1494, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 9907, - "src": "868:11:28", + "referencedDeclaration": 12102, + "src": "720:11:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$9891_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9891_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 7777, + "id": 1496, "isConstant": false, "isLValue": false, "isPure": false, @@ -2672,15 +2289,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "868:20:28", + "src": "720:20:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7778, + "id": 1497, "nodeType": "ExpressionStatement", - "src": "868:20:28" + "src": "720:20:7" }, { "eventCall": { @@ -2688,12 +2305,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7780, + "id": 1499, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7762, - "src": "915:7:28", + "referencedDeclaration": 1481, + "src": "767:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2707,18 +2324,18 @@ "typeString": "address" } ], - "id": 7779, + "id": 1498, "name": "PricerAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7699, - "src": "903:11:28", + "referencedDeclaration": 1431, + "src": "755:11:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7781, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, @@ -2726,20 +2343,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "903:20:28", + "src": "755:20:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7782, + "id": 1501, "nodeType": "EmitStatement", - "src": "898:25:28" + "src": "750:25:7" } ] }, "documentation": null, - "id": 7784, + "id": 1503, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2747,16 +2364,16 @@ "name": "_addPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7763, + "id": 1482, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7762, + "id": 1481, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7784, - "src": "791:15:28", + "scope": 1503, + "src": "643:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2764,10 +2381,10 @@ "typeString": "address" }, "typeName": { - "id": 7761, + "id": 1480, "name": "address", "nodeType": "ElementaryTypeName", - "src": "791:7:28", + "src": "643:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2777,26 +2394,26 @@ "visibility": "internal" } ], - "src": "790:17:28" + "src": "642:17:7" }, "payable": false, "returnParameters": { - "id": 7764, + "id": 1483, "nodeType": "ParameterList", "parameters": [], - "src": "817:0:28" + "src": "669:0:7" }, - "scope": 7809, - "src": "771:159:28", + "scope": 1528, + "src": "623:159:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7807, + "id": 1526, "nodeType": "Block", - "src": "985:118:28", + "src": "837:118:7", "statements": [ { "expression": { @@ -2808,19 +2425,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 7794, + "id": 1513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7790, + "id": 1509, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "1003:7:28", + "referencedDeclaration": 1505, + "src": "855:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2834,14 +2451,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 7792, + "id": 1511, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1022:1:28", + "src": "874:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2857,20 +2474,20 @@ "typeString": "int_const 0" } ], - "id": 7791, + "id": 1510, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1014:7:28", + "src": "866:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 7793, + "id": 1512, "isConstant": false, "isLValue": false, "isPure": true, @@ -2878,13 +2495,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1014:10:28", + "src": "866:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1003:21:28", + "src": "855:21:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2898,21 +2515,21 @@ "typeString": "bool" } ], - "id": 7789, + "id": 1508, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "995:7:28", + "referencedDeclaration": 13444, + "src": "847:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7795, + "id": 1514, "isConstant": false, "isLValue": false, "isPure": false, @@ -2920,15 +2537,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "995:30:28", + "src": "847:30:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7796, + "id": 1515, "nodeType": "ExpressionStatement", - "src": "995:30:28" + "src": "847:30:7" }, { "expression": { @@ -2936,12 +2553,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7800, + "id": 1519, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "1051:7:28", + "referencedDeclaration": 1505, + "src": "903:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2957,32 +2574,32 @@ ], "expression": { "argumentTypes": null, - "id": 7797, + "id": 1516, "name": "pricers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7705, - "src": "1036:7:28", + "referencedDeclaration": 1437, + "src": "888:7:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage", + "typeIdentifier": "t_struct$_Role_$12070_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 7799, + "id": 1518, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 9923, - "src": "1036:14:28", + "referencedDeclaration": 12133, + "src": "888:14:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$9891_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9891_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 7801, + "id": 1520, "isConstant": false, "isLValue": false, "isPure": false, @@ -2990,15 +2607,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1036:23:28", + "src": "888:23:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7802, + "id": 1521, "nodeType": "ExpressionStatement", - "src": "1036:23:28" + "src": "888:23:7" }, { "eventCall": { @@ -3006,12 +2623,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7804, + "id": 1523, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "1088:7:28", + "referencedDeclaration": 1505, + "src": "940:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3025,18 +2642,18 @@ "typeString": "address" } ], - "id": 7803, + "id": 1522, "name": "PricerRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7703, - "src": "1074:13:28", + "referencedDeclaration": 1435, + "src": "926:13:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7805, + "id": 1524, "isConstant": false, "isLValue": false, "isPure": false, @@ -3044,20 +2661,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1074:22:28", + "src": "926:22:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7806, + "id": 1525, "nodeType": "EmitStatement", - "src": "1069:27:28" + "src": "921:27:7" } ] }, "documentation": null, - "id": 7808, + "id": 1527, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3065,16 +2682,16 @@ "name": "_removePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7787, + "id": 1506, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7786, + "id": 1505, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7808, - "src": "959:15:28", + "scope": 1527, + "src": "811:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3082,10 +2699,10 @@ "typeString": "address" }, "typeName": { - "id": 7785, + "id": 1504, "name": "address", "nodeType": "ElementaryTypeName", - "src": "959:7:28", + "src": "811:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3095,27 +2712,27 @@ "visibility": "internal" } ], - "src": "958:17:28" + "src": "810:17:7" }, "payable": false, "returnParameters": { - "id": 7788, + "id": 1507, "nodeType": "ParameterList", "parameters": [], - "src": "985:0:28" + "src": "837:0:7" }, - "scope": 7809, - "src": "936:167:28", + "scope": 1528, + "src": "788:167:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 7810, - "src": "115:990:28" + "scope": 1529, + "src": "86:871:7" } ], - "src": "0:1106:28" + "src": "0:958:7" }, "compiler": { "name": "solc", @@ -3123,5 +2740,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.323Z" + "updatedAt": "2018-12-06T13:14:33.056Z" } \ No newline at end of file diff --git a/build/contracts/ProjectOwnerRole.json b/build/contracts/ProjectOwnerRole.json new file mode 100644 index 00000000..9509199d --- /dev/null +++ b/build/contracts/ProjectOwnerRole.json @@ -0,0 +1,2216 @@ +{ + "contractName": "ProjectOwnerRole", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "ProjectOwnerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "ProjectOwnerRemoved", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/access/Roles.sol\";\n\ncontract ProjectOwnerRole {\n using Roles for Roles.Role;\n\n event ProjectOwnerAdded(address indexed account);\n event ProjectOwnerRemoved(address indexed account);\n\n Roles.Role private projectOwners;\n\n constructor() internal {\n _addProjectOwner(msg.sender);\n }\n\n modifier onlyProjectOwner() {\n require(isProjectOwner(msg.sender));\n _;\n }\n\n function isProjectOwner(address account) public view returns (bool) {\n return projectOwners.has(account);\n }\n\n function renounceProjectOwner() public {\n _removeProjectOwner(msg.sender);\n }\n\n function _addProjectOwner(address account) internal {\n projectOwners.add(account);\n emit ProjectOwnerAdded(account);\n }\n\n function _removeProjectOwner(address account) internal {\n projectOwners.remove(account);\n emit ProjectOwnerRemoved(account);\n }\n}\n", + "sourcePath": "/home/circleci/code/contracts/access/roles/ProjectOwnerRole.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/access/roles/ProjectOwnerRole.sol", + "exportedSymbols": { + "ProjectOwnerRole": [ + 1619 + ] + }, + "id": 1620, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1530, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:8" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", + "file": "openzeppelin-solidity/contracts/access/Roles.sol", + "id": 1531, + "nodeType": "ImportDirective", + "scope": 1620, + "sourceUnit": 12158, + "src": "26:58:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1619, + "linearizedBaseContracts": [ + 1619 + ], + "name": "ProjectOwnerRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1534, + "libraryName": { + "contractScope": null, + "id": 1532, + "name": "Roles", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12157, + "src": "124:5:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Roles_$12157", + "typeString": "library Roles" + } + }, + "nodeType": "UsingForDirective", + "src": "118:27:8", + "typeName": { + "contractScope": null, + "id": 1533, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12070, + "src": "134:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 1538, + "name": "ProjectOwnerAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 1537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1536, + "indexed": true, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1538, + "src": "175:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1535, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "175:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "174:25:8" + }, + "src": "151:49:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 1542, + "name": "ProjectOwnerRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 1541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1540, + "indexed": true, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "231:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "231:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "230:25:8" + }, + "src": "205:51:8" + }, + { + "constant": false, + "id": 1544, + "name": "projectOwners", + "nodeType": "VariableDeclaration", + "scope": 1619, + "src": "262:32:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role" + }, + "typeName": { + "contractScope": null, + "id": 1543, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12070, + "src": "262:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 1552, + "nodeType": "Block", + "src": "324:45:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1548, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "351:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "351:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1547, + "name": "_addProjectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1602, + "src": "334:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "334:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1551, + "nodeType": "ExpressionStatement", + "src": "334:28:8" + } + ] + }, + "documentation": null, + "id": 1553, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1545, + "nodeType": "ParameterList", + "parameters": [], + "src": "312:2:8" + }, + "payable": false, + "returnParameters": { + "id": 1546, + "nodeType": "ParameterList", + "parameters": [], + "src": "324:0:8" + }, + "scope": 1619, + "src": "301:68:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1563, + "nodeType": "Block", + "src": "403:63:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1557, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "436:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "436:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1556, + "name": "isProjectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1577, + "src": "421:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "421:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1555, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "413:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "413:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1561, + "nodeType": "ExpressionStatement", + "src": "413:35:8" + }, + { + "id": 1562, + "nodeType": "PlaceholderStatement", + "src": "458:1:8" + } + ] + }, + "documentation": null, + "id": 1564, + "name": "onlyProjectOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1554, + "nodeType": "ParameterList", + "parameters": [], + "src": "400:2:8" + }, + "src": "375:91:8", + "visibility": "internal" + }, + { + "body": { + "id": 1576, + "nodeType": "Block", + "src": "540:50:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1573, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "575:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1571, + "name": "projectOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "557:13:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "has", + "nodeType": "MemberAccess", + "referencedDeclaration": 12156, + "src": "557:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 1574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "557:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1575, + "nodeType": "Return", + "src": "550:33:8" + } + ] + }, + "documentation": null, + "id": 1577, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1566, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1577, + "src": "496:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "496:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "495:17:8" + }, + "payable": false, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1577, + "src": "534:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "534:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "533:6:8" + }, + "scope": 1619, + "src": "472:118:8", + "stateMutability": "view", + "superFunction": 1407, + "visibility": "public" + }, + { + "body": { + "id": 1585, + "nodeType": "Block", + "src": "635:48:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1581, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "665:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "665:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1580, + "name": "_removeProjectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "645:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "645:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1584, + "nodeType": "ExpressionStatement", + "src": "645:31:8" + } + ] + }, + "documentation": null, + "id": 1586, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1578, + "nodeType": "ParameterList", + "parameters": [], + "src": "625:2:8" + }, + "payable": false, + "returnParameters": { + "id": 1579, + "nodeType": "ParameterList", + "parameters": [], + "src": "635:0:8" + }, + "scope": 1619, + "src": "596:87:8", + "stateMutability": "nonpayable", + "superFunction": 1415, + "visibility": "public" + }, + { + "body": { + "id": 1601, + "nodeType": "Block", + "src": "741:84:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1594, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "769:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1591, + "name": "projectOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "751:13:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 1593, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12102, + "src": "751:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 1595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "751:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1596, + "nodeType": "ExpressionStatement", + "src": "751:26:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1598, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "810:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1597, + "name": "ProjectOwnerAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1538, + "src": "792:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "792:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1600, + "nodeType": "EmitStatement", + "src": "787:31:8" + } + ] + }, + "documentation": null, + "id": 1602, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1588, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1602, + "src": "715:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "715:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "714:17:8" + }, + "payable": false, + "returnParameters": { + "id": 1590, + "nodeType": "ParameterList", + "parameters": [], + "src": "741:0:8" + }, + "scope": 1619, + "src": "689:136:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1617, + "nodeType": "Block", + "src": "886:89:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1610, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1604, + "src": "917:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1607, + "name": "projectOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "896:13:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 12133, + "src": "896:20:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "896:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1612, + "nodeType": "ExpressionStatement", + "src": "896:29:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1614, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1604, + "src": "960:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1613, + "name": "ProjectOwnerRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "940:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "940:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1616, + "nodeType": "EmitStatement", + "src": "935:33:8" + } + ] + }, + "documentation": null, + "id": 1618, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1604, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1618, + "src": "860:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "860:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "859:17:8" + }, + "payable": false, + "returnParameters": { + "id": 1606, + "nodeType": "ParameterList", + "parameters": [], + "src": "886:0:8" + }, + "scope": 1619, + "src": "831:144:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 1620, + "src": "86:891:8" + } + ], + "src": "0:978:8" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/access/roles/ProjectOwnerRole.sol", + "exportedSymbols": { + "ProjectOwnerRole": [ + 1619 + ] + }, + "id": 1620, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1530, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:8" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", + "file": "openzeppelin-solidity/contracts/access/Roles.sol", + "id": 1531, + "nodeType": "ImportDirective", + "scope": 1620, + "sourceUnit": 12158, + "src": "26:58:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1619, + "linearizedBaseContracts": [ + 1619 + ], + "name": "ProjectOwnerRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1534, + "libraryName": { + "contractScope": null, + "id": 1532, + "name": "Roles", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12157, + "src": "124:5:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Roles_$12157", + "typeString": "library Roles" + } + }, + "nodeType": "UsingForDirective", + "src": "118:27:8", + "typeName": { + "contractScope": null, + "id": 1533, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12070, + "src": "134:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 1538, + "name": "ProjectOwnerAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 1537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1536, + "indexed": true, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1538, + "src": "175:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1535, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "175:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "174:25:8" + }, + "src": "151:49:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 1542, + "name": "ProjectOwnerRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 1541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1540, + "indexed": true, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "231:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "231:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "230:25:8" + }, + "src": "205:51:8" + }, + { + "constant": false, + "id": 1544, + "name": "projectOwners", + "nodeType": "VariableDeclaration", + "scope": 1619, + "src": "262:32:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role" + }, + "typeName": { + "contractScope": null, + "id": 1543, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12070, + "src": "262:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 1552, + "nodeType": "Block", + "src": "324:45:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1548, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "351:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "351:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1547, + "name": "_addProjectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1602, + "src": "334:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "334:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1551, + "nodeType": "ExpressionStatement", + "src": "334:28:8" + } + ] + }, + "documentation": null, + "id": 1553, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1545, + "nodeType": "ParameterList", + "parameters": [], + "src": "312:2:8" + }, + "payable": false, + "returnParameters": { + "id": 1546, + "nodeType": "ParameterList", + "parameters": [], + "src": "324:0:8" + }, + "scope": 1619, + "src": "301:68:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1563, + "nodeType": "Block", + "src": "403:63:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1557, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "436:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "436:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1556, + "name": "isProjectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1577, + "src": "421:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "421:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1555, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "413:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "413:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1561, + "nodeType": "ExpressionStatement", + "src": "413:35:8" + }, + { + "id": 1562, + "nodeType": "PlaceholderStatement", + "src": "458:1:8" + } + ] + }, + "documentation": null, + "id": 1564, + "name": "onlyProjectOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1554, + "nodeType": "ParameterList", + "parameters": [], + "src": "400:2:8" + }, + "src": "375:91:8", + "visibility": "internal" + }, + { + "body": { + "id": 1576, + "nodeType": "Block", + "src": "540:50:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1573, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "575:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1571, + "name": "projectOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "557:13:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "has", + "nodeType": "MemberAccess", + "referencedDeclaration": 12156, + "src": "557:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 1574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "557:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1575, + "nodeType": "Return", + "src": "550:33:8" + } + ] + }, + "documentation": null, + "id": 1577, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1566, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1577, + "src": "496:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "496:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "495:17:8" + }, + "payable": false, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1577, + "src": "534:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "534:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "533:6:8" + }, + "scope": 1619, + "src": "472:118:8", + "stateMutability": "view", + "superFunction": 1407, + "visibility": "public" + }, + { + "body": { + "id": 1585, + "nodeType": "Block", + "src": "635:48:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1581, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "665:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "665:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1580, + "name": "_removeProjectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "645:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "645:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1584, + "nodeType": "ExpressionStatement", + "src": "645:31:8" + } + ] + }, + "documentation": null, + "id": 1586, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1578, + "nodeType": "ParameterList", + "parameters": [], + "src": "625:2:8" + }, + "payable": false, + "returnParameters": { + "id": 1579, + "nodeType": "ParameterList", + "parameters": [], + "src": "635:0:8" + }, + "scope": 1619, + "src": "596:87:8", + "stateMutability": "nonpayable", + "superFunction": 1415, + "visibility": "public" + }, + { + "body": { + "id": 1601, + "nodeType": "Block", + "src": "741:84:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1594, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "769:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1591, + "name": "projectOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "751:13:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 1593, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12102, + "src": "751:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 1595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "751:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1596, + "nodeType": "ExpressionStatement", + "src": "751:26:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1598, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "810:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1597, + "name": "ProjectOwnerAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1538, + "src": "792:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "792:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1600, + "nodeType": "EmitStatement", + "src": "787:31:8" + } + ] + }, + "documentation": null, + "id": 1602, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1588, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1602, + "src": "715:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "715:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "714:17:8" + }, + "payable": false, + "returnParameters": { + "id": 1590, + "nodeType": "ParameterList", + "parameters": [], + "src": "741:0:8" + }, + "scope": 1619, + "src": "689:136:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1617, + "nodeType": "Block", + "src": "886:89:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1610, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1604, + "src": "917:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1607, + "name": "projectOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "896:13:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 12133, + "src": "896:20:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$12070_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "896:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1612, + "nodeType": "ExpressionStatement", + "src": "896:29:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1614, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1604, + "src": "960:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1613, + "name": "ProjectOwnerRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "940:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "940:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1616, + "nodeType": "EmitStatement", + "src": "935:33:8" + } + ] + }, + "documentation": null, + "id": 1618, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1604, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1618, + "src": "860:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "860:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "859:17:8" + }, + "payable": false, + "returnParameters": { + "id": 1606, + "nodeType": "ParameterList", + "parameters": [], + "src": "886:0:8" + }, + "scope": 1619, + "src": "831:144:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 1620, + "src": "86:891:8" + } + ], + "src": "0:978:8" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.016Z" +} \ No newline at end of file diff --git a/build/contracts/PurchaseProcessing.json b/build/contracts/PurchaseProcessing.json index 1ac3d384..0d4bae11 100644 --- a/build/contracts/PurchaseProcessing.json +++ b/build/contracts/PurchaseProcessing.json @@ -1,24 +1,308 @@ { "contractName": "PurchaseProcessing", - "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820593a2fa9857bf2d1d423cb494cc05ef5753d44e845097cc6d342a3e1d7b7b8f20029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820593a2fa9857bf2d1d423cb494cc05ef5753d44e845097cc6d342a3e1d7b7b8f20029", - "sourceMap": "228:9032:15:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "228:9032:15:-;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"./Percent.sol\";\nimport \"./Utils.sol\";\nimport \"../token/IWToken.sol\";\n\nlibrary PurchaseProcessing {\n using SafeMath for uint;\n using Percent for uint;\n\n function METHOD_ETH() internal pure returns (bytes32) {return bytes32('ETH');}\n\n function checkInvoiceInput(\n bytes32 method,\n uint amount,\n uint methodUSDRate,\n uint tokenUSDRate,\n uint currentBalanceInTokens,\n uint tokenDecimals,\n uint methodDecimals\n ) internal pure returns(bool result) {\n result = amount > 0\n && methodUSDRate > 0\n && tokenUSDRate > 0\n && currentBalanceInTokens >= 10 ** tokenDecimals;\n\n if (method == METHOD_ETH()) {\n result = result && methodDecimals == 18;\n }\n }\n\n /**\n * @notice Generate invoice\n * @dev 1 USD = 10^8. In this case precision will be up to 10^8 decimals after point\n * @param method Payment method\n * @param paymentAmount Payment amount\n * @param discount Discount percent\n * @param volumeBoundaries Volume boundaries to calculate bonus\n * @param volumeBonuses List of bonuses bound to boundaries\n * @param methodUSDRate Payment method rate in USD\n * @param tokenUSDRate Token rate in USD\n * @param tokenDecimals Token decimal\n * @param methodDecimals Method decimal. N for token, 18 for ETH\n * @param currentBalanceInTokens Current balance in tokens\n * @return uint[5] result Invoice calculation result:\n *\n * [tokenAmount, cost, costUSD, change, actualTokenPriceUSD]\n *\n * [0] tokenAmount - amount of token to buy\n * [1] cost - cost in method currency\n * [2] costUSD cost in USD\n * [3] change - change in method currency\n * [4] actualTokenPriceUSD - actual token price in USD(with discount)\n */\n function invoice(\n bytes32 method,\n uint paymentAmount,\n uint discount,\n uint[] volumeBoundaries,\n uint[] volumeBonuses,\n uint methodUSDRate,\n uint tokenUSDRate,\n uint tokenDecimals,\n uint methodDecimals,\n uint currentBalanceInTokens\n )\n internal view returns(uint[5] result)\n {\n require(checkInvoiceInput(\n method,\n paymentAmount,\n methodUSDRate,\n tokenUSDRate,\n currentBalanceInTokens,\n tokenDecimals,\n methodDecimals\n ));\n\n // costUSD\n result[2] = Utils.safeConversionByRate(\n paymentAmount,\n methodDecimals,\n methodUSDRate\n );\n\n // min costUSD = tokenUSDRate\n require(result[2] >= tokenUSDRate);\n\n uint bonus = getBonus(result[2], volumeBoundaries, volumeBonuses);\n\n // priceUSD\n result[4] = discount > 0\n ? tokenUSDRate.percent(Percent.MAX() - discount)\n : tokenUSDRate;\n\n // tokens\n result[0] = Utils.safeReverseConversionByRate(\n result[2].safePercent(Percent.MAX().add(bonus)),\n tokenDecimals,\n result[4]\n );\n\n // if current balance is not enough\n if (currentBalanceInTokens < result[0]) {\n result[2] = Utils.safeConversionByRate(\n currentBalanceInTokens,\n tokenDecimals,\n result[4]\n );\n result[0] = currentBalanceInTokens;\n }\n\n // cost\n result[1] = Utils.safeReverseConversionByRate(\n result[2],\n methodDecimals,\n methodUSDRate\n );\n\n // reset if cost is zero\n if (result[1] == 0 || result[0] == 0) {\n result[0] = 0;\n result[1] = 0;\n result[2] = 0;\n }\n\n // change\n result[3] = paymentAmount.sub(result[1]);\n }\n\n /**\n * @notice Generate invoice by token amount\n * @dev 1 USD = 10^8. In this case precision will be up to 10^8 decimals after point\n * @param method Payment method\n * @param tokenAmount Token amount\n * @param discount Discount percent\n * @param volumeBoundaries Volume boundaries to calculate bonus\n * @param volumeBonuses List of bonuses bound to boundaries\n * @param methodUSDRate Payment method rate in USD\n * @param tokenUSDRate Token rate in USD\n * @param tokenDecimals Token decimal\n * @param methodDecimals Method decimal. N for token, 18 for ETH\n * @param currentBalanceInTokens Current balance in tokens\n * @return uint[4] result Invoice calculation result:\n *\n * [tokenAmount, cost, costUSD, change, actualTokenPriceUSD]\n *\n * [0] tokenAmount - amount of token to buy\n * [1] cost - cost in method currency\n * [2] costUSD cost in USD\n * [3] actualTokenPriceUSD - actual token price in USD(with discount)\n */\n function invoiceByTokenAmount(\n bytes32 method,\n uint tokenAmount,\n uint discount,\n uint[] volumeBoundaries,\n uint[] volumeBonuses,\n uint methodUSDRate,\n uint tokenUSDRate,\n uint tokenDecimals,\n uint methodDecimals,\n uint currentBalanceInTokens\n )\n internal view returns (uint[4] result)\n {\n require(checkInvoiceInput(\n method,\n tokenAmount,\n methodUSDRate,\n tokenUSDRate,\n currentBalanceInTokens,\n tokenDecimals,\n methodDecimals\n ));\n\n if (currentBalanceInTokens < tokenAmount) {\n tokenAmount = currentBalanceInTokens;\n }\n\n // tokens\n result[0] = tokenAmount;\n\n // priceUSD\n result[3] = discount > 0\n ? tokenUSDRate.percent(Percent.MAX() - discount)\n : tokenUSDRate;\n\n // costUSD\n result[2] = Utils.safeConversionByRate(\n tokenAmount,\n tokenDecimals,\n result[3]\n );\n\n // min costUSD = tokenUSDRate\n require(result[2] >= tokenUSDRate);\n\n uint bonus = getBonus(result[2], volumeBoundaries, volumeBonuses);\n\n result[1] = Utils.safeReverseConversionByRate(\n result[2],\n methodDecimals,\n methodUSDRate.safePercent(Percent.MAX().add(bonus))\n );\n\n // reset if cost is zero\n if (result[1] == 0) {\n result[0] = 0;\n result[1] = 0;\n result[2] = 0;\n return;\n }\n }\n\n function fee(uint tokenAmount, uint cost, uint tokenFee, uint purchaseFee) internal pure returns(uint[2] result) {\n if (tokenFee > 0) result[0] = tokenAmount.safePercent(tokenFee);\n if (purchaseFee > 0) result[1] = cost.safePercent(purchaseFee);\n }\n\n function transferFee(\n uint[2] _fee,\n bytes32 method,\n address methodToken,\n address token,\n address originToken,\n address exchanger,\n address serviceWallet\n ) internal {\n require(originToken != address(0));\n require(token != address(0));\n require(exchanger != address(0));\n require(serviceWallet != address(0));\n\n if (_fee[1] > 0 && method != METHOD_ETH()) {\n require(methodToken != address(0));\n }\n\n if (_fee[0] > 0) {\n require(ERC20(originToken).transferFrom(exchanger, serviceWallet, _fee[0]));\n require(ERC20(token).transfer(exchanger, _fee[0]));\n }\n\n if (_fee[1] > 0) {\n if (method == METHOD_ETH()) {\n serviceWallet.transfer(_fee[1]);\n } else {\n require(ERC20(methodToken).allowance(msg.sender, address(this)) >= _fee[1]);\n require(ERC20(methodToken).transferFrom(msg.sender, serviceWallet, _fee[1]));\n }\n }\n }\n\n function transferPurchase(\n uint[5] _invoice,\n uint[2] _fee,\n uint32 vesting,\n bytes32 method,\n address methodToken,\n address token\n ) internal {\n require(token != address(0));\n require(_invoice[0] != 0);\n require(_invoice[1] != 0);\n require(_invoice[0] > _fee[0]);\n require(_invoice[1] > _fee[1]);\n\n if (method == METHOD_ETH()) {\n require(msg.value >= _invoice[1]);\n }\n\n if (method != METHOD_ETH()) {\n require(methodToken != address(0));\n require(ERC20(methodToken).allowance(msg.sender, address(this)) >= _invoice[1].sub(_fee[1]));\n require(ERC20(methodToken).transferFrom(msg.sender, address(this), _invoice[1].sub(_fee[1])));\n }\n\n require(IWToken(token).vestingTransfer(msg.sender, _invoice[0], vesting));\n\n if (_invoice[3] > 0) {\n if (method == METHOD_ETH()) {\n msg.sender.transfer(_invoice[3]);\n }\n }\n }\n\n function getBonus(uint value, uint[] volumeBoundaries, uint[] volumeBonuses) internal view returns(uint bonus) {\n for (uint i = 0; i < volumeBoundaries.length; i++) {\n if (value >= volumeBoundaries[i]) {\n bonus = volumeBonuses[i];\n } else {\n break;\n }\n }\n }\n}\n", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "methodUSDRate", + "type": "uint256" + }, + { + "name": "tokenUSDRate", + "type": "uint256" + }, + { + "name": "currentBalanceInTokens", + "type": "uint256" + }, + { + "name": "tokenDecimals", + "type": "uint256" + }, + { + "name": "methodDecimals", + "type": "uint256" + } + ], + "name": "checkInvoiceInput", + "outputs": [ + { + "name": "result", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "paymentAmount", + "type": "uint256" + }, + { + "name": "discount", + "type": "uint256" + }, + { + "name": "volumeBoundaries", + "type": "uint256[]" + }, + { + "name": "volumeBonuses", + "type": "uint256[]" + }, + { + "name": "methodUSDRate", + "type": "uint256" + }, + { + "name": "tokenUSDRate", + "type": "uint256" + }, + { + "name": "tokenDecimals", + "type": "uint256" + }, + { + "name": "methodDecimals", + "type": "uint256" + }, + { + "name": "currentBalanceInTokens", + "type": "uint256" + } + ], + "name": "invoice", + "outputs": [ + { + "name": "result", + "type": "uint256[5]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "discount", + "type": "uint256" + }, + { + "name": "volumeBoundaries", + "type": "uint256[]" + }, + { + "name": "volumeBonuses", + "type": "uint256[]" + }, + { + "name": "methodUSDRate", + "type": "uint256" + }, + { + "name": "tokenUSDRate", + "type": "uint256" + }, + { + "name": "tokenDecimals", + "type": "uint256" + }, + { + "name": "methodDecimals", + "type": "uint256" + }, + { + "name": "currentBalanceInTokens", + "type": "uint256" + } + ], + "name": "invoiceByTokenAmount", + "outputs": [ + { + "name": "result", + "type": "uint256[4]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "tokenFee", + "type": "uint256" + }, + { + "name": "purchaseFee", + "type": "uint256" + } + ], + "name": "fee", + "outputs": [ + { + "name": "result", + "type": "uint256[2]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_fee", + "type": "uint256[2]" + }, + { + "name": "method", + "type": "bytes32" + }, + { + "name": "methodToken", + "type": "address" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "originToken", + "type": "address" + }, + { + "name": "exchanger", + "type": "address" + }, + { + "name": "serviceWallet", + "type": "address" + } + ], + "name": "transferFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_invoice", + "type": "uint256[5]" + }, + { + "name": "_fee", + "type": "uint256[2]" + }, + { + "name": "vesting", + "type": "uint32" + }, + { + "name": "method", + "type": "bytes32" + }, + { + "name": "methodToken", + "type": "address" + }, + { + "name": "token", + "type": "address" + } + ], + "name": "transferPurchase", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + }, + { + "name": "volumeBoundaries", + "type": "uint256[]" + }, + { + "name": "volumeBonuses", + "type": "uint256[]" + } + ], + "name": "getBonus", + "outputs": [ + { + "name": "bonus", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x61167c610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600436106100805763ffffffff60e060020a6000350416633676737c81146100855780634bb1e9ff146100f75780636cd5c0561461018057806391bfca31146101cf57806391dab4221461028b578063b8005df214610347578063d8e5c914146103df575b600080fd5b81801561009157600080fd5b506040805180820182526100f5913691600491604491908390600290839083908082843750939650508335945050600160a060020a036020840135811693604081013582169350606081013582169250608081013582169160a09091013516610410565b005b81801561010357600080fd5b506040805160a08181019092526100f591369160049160a49190839060059083908390808284375050604080518082018252949796958181019594509250600291508390839080828437509396505050823563ffffffff16935050506020810135906040810135600160a060020a039081169160600135166107a8565b610194600435602435604435606435610aab565b6040518082600260200280838360005b838110156101bc5781810151838201526020016101a4565b5050505090500191505060405180910390f35b6040805160643560048181013560208181028581018201909652818552610276958335956024803596604435963696909560849592909301929091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050843595505050602083013592604081013592506060810135915060800135610c12565b60405181518152808260a080838360206101a4565b6040805160643560048181013560208181028581018201909652818552610332958335956024803596604435963696909560849592909301929091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050843595505050602083013592604081013592506060810135915060800135611147565b604051815181528082608080838360206101a4565b6040805160206004602480358281013584810280870186019097528086526103cd96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506114ec9650505050505050565b60408051918252519081900360200190f35b6103fc60043560243560443560643560843560a43560c43561154b565b604080519115158252519081900360200190f35b600160a060020a038316151561042557600080fd5b600160a060020a038416151561043a57600080fd5b600160a060020a038216151561044f57600080fd5b600160a060020a038116151561046457600080fd5b6020870151600010801561047f575061047b6115a3565b8614155b1561049957600160a060020a038516151561049957600080fd5b8651600010156105f7578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b15801561051a57600080fd5b505af115801561052e573d6000803e3d6000fd5b505050506040513d602081101561054457600080fd5b5051151561055157600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b505050506040513d60208110156105ea57600080fd5b505115156105f757600080fd5b60208701516000101561079f5761060c6115a3565b861415610652576020870151604051600160a060020a0383169180156108fc02916000818181858888f1935050505015801561064c573d6000803e3d6000fd5b5061079f565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b1580156106be57600080fd5b505af11580156106d2573d6000803e3d6000fd5b505050506040513d60208110156106e857600080fd5b505110156106f557600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561076857600080fd5b505af115801561077c573d6000803e3d6000fd5b505050506040513d602081101561079257600080fd5b5051151561079f57600080fd5b50505050505050565b600160a060020a03811615156107bd57600080fd5b855115156107ca57600080fd5b602086015115156107da57600080fd5b84518651116107e857600080fd5b60208086015190870151116107fc57600080fd5b6108046115a3565b83141561081c57602086015134101561081c57600080fd5b6108246115a3565b83146109aa57600160a060020a038216151561083f57600080fd5b602085015161085d908760015b60200201519063ffffffff6115c716565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b1580156108c457600080fd5b505af11580156108d8573d6000803e3d6000fd5b505050506040513d60208110156108ee57600080fd5b505110156108fb57600080fd5b600160a060020a0382166323b872dd333061091f89600160200201518b600161084c565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561097357600080fd5b505af1158015610987573d6000803e3d6000fd5b505050506040513d602081101561099d57600080fd5b505115156109aa57600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b158015610a2057600080fd5b505af1158015610a34573d6000803e3d6000fd5b505050506040513d6020811015610a4a57600080fd5b50511515610a5757600080fd5b606086015160001015610aa357610a6c6115a3565b831415610aa3576060860151604051339180156108fc02916000818181858888f1935050505015801561079f573d6000803e3d6000fd5b505050505050565b610ab36115f7565b6000831115610b5d57604080517f50716c0e0000000000000000000000000000000000000000000000000000000081526004810187905260248101859052905173__Percent_______________________________916350716c0e916044808301926020929190829003018186803b158015610b2e57600080fd5b505af4158015610b42573d6000803e3d6000fd5b505050506040513d6020811015610b5857600080fd5b505181525b6000821115610c0a57604080517f50716c0e0000000000000000000000000000000000000000000000000000000081526004810186905260248101849052905173__Percent_______________________________916350716c0e916044808301926020929190829003018186803b158015610bd857600080fd5b505af4158015610bec573d6000803e3d6000fd5b505050506040513d6020811015610c0257600080fd5b505160208201525b949350505050565b610c1a611612565b6000610c2b8c8c8989878a8a61154b565b1515610c3657600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610c9857600080fd5b505af4158015610cac573d6000803e3d6000fd5b505050506040513d6020811015610cc257600080fd5b505160408301819052861115610cd757600080fd5b610cea8260025b60200201518a8a6114ec565b905060008a11610cfa5785610dfb565b8573__Percent_______________________________6342318e3d90918c73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610d5f57600080fd5b505af4158015610d73573d6000803e3d6000fd5b505050506040513d6020811015610d8957600080fd5b50516040805160e060020a63ffffffff871602815260048101949094529190036024830152516044808301926020929190829003018186803b158015610dce57600080fd5b505af4158015610de2573d6000803e3d6000fd5b505050506040513d6020811015610df857600080fd5b50515b826004602002015273__Utils_________________________________63a5a55fcf836002602002015173__Percent_______________________________6350716c0e9091610ec48673__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610e8c57600080fd5b505af4158015610ea0573d6000803e3d6000fd5b505050506040513d6020811015610eb657600080fd5b50519063ffffffff6115de16565b6040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b158015610f0257600080fd5b505af4158015610f16573d6000803e3d6000fd5b505050506040513d6020811015610f2c57600080fd5b50518785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610f7c57600080fd5b505af4158015610f90573d6000803e3d6000fd5b505050506040513d6020811015610fa657600080fd5b5051808352831015611065576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b15801561103057600080fd5b505af4158015611044573d6000803e3d6000fd5b505050506040513d602081101561105a57600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156110ce57600080fd5b505af41580156110e2573d6000803e3d6000fd5b505050506040513d60208110156110f857600080fd5b505160208301819052158061110c57508151155b156111235760008083526020830181905260408301525b6020820151611133908c906115c7565b6060830152509a9950505050505050505050565b61114f611631565b60006111608c8c8989878a8a61154b565b151561116b57600080fd5b8a83101561117757829a505b8a825260008a116111885785611289565b8573__Percent_______________________________6342318e3d90918c73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156111ed57600080fd5b505af4158015611201573d6000803e3d6000fd5b505050506040513d602081101561121757600080fd5b50516040805160e060020a63ffffffff871602815260048101949094529190036024830152516044808301926020929190829003018186803b15801561125c57600080fd5b505af4158015611270573d6000803e3d6000fd5b505050506040513d602081101561128657600080fd5b50515b60608301819052604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018e90526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b15801561130957600080fd5b505af415801561131d573d6000803e3d6000fd5b505050506040513d602081101561133357600080fd5b50516040830181905286111561134857600080fd5b611353826002610cde565b905073__Utils_________________________________63a5a55fcf8360026020020151868a73__Percent_______________________________6350716c0e90916113e08873__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610e8c57600080fd5b6040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b15801561141e57600080fd5b505af4158015611432573d6000803e3d6000fd5b505050506040513d602081101561144857600080fd5b50516040805160e060020a63ffffffff8716028152600481019490945260248401929092526044830152516064808301926020929190829003018186803b15801561149257600080fd5b505af41580156114a6573d6000803e3d6000fd5b505050506040513d60208110156114bc57600080fd5b50516020830181905215156114dd5760008083526020830181905260408301525b509a9950505050505050505050565b6000805b835181101561154357838181518110151561150757fe5b60209081029091010151851061153657828181518110151561152557fe5b90602001906020020151915061153b565b611543565b6001016114f0565b509392505050565b6000808711801561155c5750600086115b80156115685750600085115b8015611577575082600a0a8410155b90506115816115a3565b881415611598578080156115955750816012145b90505b979650505050505050565b7f455448000000000000000000000000000000000000000000000000000000000090565b600080838311156115d757600080fd5b5050900390565b6000828201838110156115f057600080fd5b9392505050565b60408051808201825290600290829080388339509192915050565b60a0604051908101604052806005906020820280388339509192915050565b60806040519081016040528060049060208202803883395091929150505600a165627a7a72305820d34205e2ec438d98443113a3d551bdea9527aad27ee3564375d28486cc538c2f0029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100805763ffffffff60e060020a6000350416633676737c81146100855780634bb1e9ff146100f75780636cd5c0561461018057806391bfca31146101cf57806391dab4221461028b578063b8005df214610347578063d8e5c914146103df575b600080fd5b81801561009157600080fd5b506040805180820182526100f5913691600491604491908390600290839083908082843750939650508335945050600160a060020a036020840135811693604081013582169350606081013582169250608081013582169160a09091013516610410565b005b81801561010357600080fd5b506040805160a08181019092526100f591369160049160a49190839060059083908390808284375050604080518082018252949796958181019594509250600291508390839080828437509396505050823563ffffffff16935050506020810135906040810135600160a060020a039081169160600135166107a8565b610194600435602435604435606435610aab565b6040518082600260200280838360005b838110156101bc5781810151838201526020016101a4565b5050505090500191505060405180910390f35b6040805160643560048181013560208181028581018201909652818552610276958335956024803596604435963696909560849592909301929091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050843595505050602083013592604081013592506060810135915060800135610c12565b60405181518152808260a080838360206101a4565b6040805160643560048181013560208181028581018201909652818552610332958335956024803596604435963696909560849592909301929091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050843595505050602083013592604081013592506060810135915060800135611147565b604051815181528082608080838360206101a4565b6040805160206004602480358281013584810280870186019097528086526103cd96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506114ec9650505050505050565b60408051918252519081900360200190f35b6103fc60043560243560443560643560843560a43560c43561154b565b604080519115158252519081900360200190f35b600160a060020a038316151561042557600080fd5b600160a060020a038416151561043a57600080fd5b600160a060020a038216151561044f57600080fd5b600160a060020a038116151561046457600080fd5b6020870151600010801561047f575061047b6115a3565b8614155b1561049957600160a060020a038516151561049957600080fd5b8651600010156105f7578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b15801561051a57600080fd5b505af115801561052e573d6000803e3d6000fd5b505050506040513d602081101561054457600080fd5b5051151561055157600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b505050506040513d60208110156105ea57600080fd5b505115156105f757600080fd5b60208701516000101561079f5761060c6115a3565b861415610652576020870151604051600160a060020a0383169180156108fc02916000818181858888f1935050505015801561064c573d6000803e3d6000fd5b5061079f565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b1580156106be57600080fd5b505af11580156106d2573d6000803e3d6000fd5b505050506040513d60208110156106e857600080fd5b505110156106f557600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561076857600080fd5b505af115801561077c573d6000803e3d6000fd5b505050506040513d602081101561079257600080fd5b5051151561079f57600080fd5b50505050505050565b600160a060020a03811615156107bd57600080fd5b855115156107ca57600080fd5b602086015115156107da57600080fd5b84518651116107e857600080fd5b60208086015190870151116107fc57600080fd5b6108046115a3565b83141561081c57602086015134101561081c57600080fd5b6108246115a3565b83146109aa57600160a060020a038216151561083f57600080fd5b602085015161085d908760015b60200201519063ffffffff6115c716565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b1580156108c457600080fd5b505af11580156108d8573d6000803e3d6000fd5b505050506040513d60208110156108ee57600080fd5b505110156108fb57600080fd5b600160a060020a0382166323b872dd333061091f89600160200201518b600161084c565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561097357600080fd5b505af1158015610987573d6000803e3d6000fd5b505050506040513d602081101561099d57600080fd5b505115156109aa57600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b158015610a2057600080fd5b505af1158015610a34573d6000803e3d6000fd5b505050506040513d6020811015610a4a57600080fd5b50511515610a5757600080fd5b606086015160001015610aa357610a6c6115a3565b831415610aa3576060860151604051339180156108fc02916000818181858888f1935050505015801561079f573d6000803e3d6000fd5b505050505050565b610ab36115f7565b6000831115610b5d57604080517f50716c0e0000000000000000000000000000000000000000000000000000000081526004810187905260248101859052905173__Percent_______________________________916350716c0e916044808301926020929190829003018186803b158015610b2e57600080fd5b505af4158015610b42573d6000803e3d6000fd5b505050506040513d6020811015610b5857600080fd5b505181525b6000821115610c0a57604080517f50716c0e0000000000000000000000000000000000000000000000000000000081526004810186905260248101849052905173__Percent_______________________________916350716c0e916044808301926020929190829003018186803b158015610bd857600080fd5b505af4158015610bec573d6000803e3d6000fd5b505050506040513d6020811015610c0257600080fd5b505160208201525b949350505050565b610c1a611612565b6000610c2b8c8c8989878a8a61154b565b1515610c3657600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610c9857600080fd5b505af4158015610cac573d6000803e3d6000fd5b505050506040513d6020811015610cc257600080fd5b505160408301819052861115610cd757600080fd5b610cea8260025b60200201518a8a6114ec565b905060008a11610cfa5785610dfb565b8573__Percent_______________________________6342318e3d90918c73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610d5f57600080fd5b505af4158015610d73573d6000803e3d6000fd5b505050506040513d6020811015610d8957600080fd5b50516040805160e060020a63ffffffff871602815260048101949094529190036024830152516044808301926020929190829003018186803b158015610dce57600080fd5b505af4158015610de2573d6000803e3d6000fd5b505050506040513d6020811015610df857600080fd5b50515b826004602002015273__Utils_________________________________63a5a55fcf836002602002015173__Percent_______________________________6350716c0e9091610ec48673__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610e8c57600080fd5b505af4158015610ea0573d6000803e3d6000fd5b505050506040513d6020811015610eb657600080fd5b50519063ffffffff6115de16565b6040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b158015610f0257600080fd5b505af4158015610f16573d6000803e3d6000fd5b505050506040513d6020811015610f2c57600080fd5b50518785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610f7c57600080fd5b505af4158015610f90573d6000803e3d6000fd5b505050506040513d6020811015610fa657600080fd5b5051808352831015611065576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b15801561103057600080fd5b505af4158015611044573d6000803e3d6000fd5b505050506040513d602081101561105a57600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156110ce57600080fd5b505af41580156110e2573d6000803e3d6000fd5b505050506040513d60208110156110f857600080fd5b505160208301819052158061110c57508151155b156111235760008083526020830181905260408301525b6020820151611133908c906115c7565b6060830152509a9950505050505050505050565b61114f611631565b60006111608c8c8989878a8a61154b565b151561116b57600080fd5b8a83101561117757829a505b8a825260008a116111885785611289565b8573__Percent_______________________________6342318e3d90918c73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156111ed57600080fd5b505af4158015611201573d6000803e3d6000fd5b505050506040513d602081101561121757600080fd5b50516040805160e060020a63ffffffff871602815260048101949094529190036024830152516044808301926020929190829003018186803b15801561125c57600080fd5b505af4158015611270573d6000803e3d6000fd5b505050506040513d602081101561128657600080fd5b50515b60608301819052604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018e90526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b15801561130957600080fd5b505af415801561131d573d6000803e3d6000fd5b505050506040513d602081101561133357600080fd5b50516040830181905286111561134857600080fd5b611353826002610cde565b905073__Utils_________________________________63a5a55fcf8360026020020151868a73__Percent_______________________________6350716c0e90916113e08873__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610e8c57600080fd5b6040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b15801561141e57600080fd5b505af4158015611432573d6000803e3d6000fd5b505050506040513d602081101561144857600080fd5b50516040805160e060020a63ffffffff8716028152600481019490945260248401929092526044830152516064808301926020929190829003018186803b15801561149257600080fd5b505af41580156114a6573d6000803e3d6000fd5b505050506040513d60208110156114bc57600080fd5b50516020830181905215156114dd5760008083526020830181905260408301525b509a9950505050505050505050565b6000805b835181101561154357838181518110151561150757fe5b60209081029091010151851061153657828181518110151561152557fe5b90602001906020020151915061153b565b611543565b6001016114f0565b509392505050565b6000808711801561155c5750600086115b80156115685750600085115b8015611577575082600a0a8410155b90506115816115a3565b881415611598578080156115955750816012145b90505b979650505050505050565b7f455448000000000000000000000000000000000000000000000000000000000090565b600080838311156115d757600080fd5b5050900390565b6000828201838110156115f057600080fd5b9392505050565b60408051808201825290600290829080388339509192915050565b60a0604051908101604052806005906020820280388339509192915050565b60806040519081016040528060049060208202803883395091929150505600a165627a7a72305820d34205e2ec438d98443113a3d551bdea9527aad27ee3564375d28486cc538c2f0029", + "sourceMap": "229:9024:22:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "229:9024:22:-;;;;;;;;;;;;-1:-1:-1;;;229:9024:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6828:1054;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6828:1054:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6828:1054:22;;-1:-1:-1;;6828:1054:22;;;-1:-1:-1;;;;;;;6828:1054:22;;;;;;;;;;;;;;-1:-1:-1;6828:1054:22;;;;;;;-1:-1:-1;6828:1054:22;;;;;;;;;;;;;;;;;7888:1022;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7888:1022:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7888:1022:22;;;;;;;;;;;;;;;;;-1:-1:-1;7888:1022:22;-1:-1:-1;7888:1022:22;;-1:-1:-1;7888:1022:22;;;;;;;;-1:-1:-1;7888:1022:22;;-1:-1:-1;;;7888:1022:22;;;;;-1:-1:-1;;;7888:1022:22;;;;;;;;;-1:-1:-1;;;;;7888:1022:22;;;;;;;;;;6559:263;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6559:263:22;;;;;;;;;;;;;;;;1974:1978;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1974:1978:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1974:1978:22;;;;-1:-1:-1;1974:1978:22;-1:-1:-1;1974:1978:22;;-1:-1:-1;1974:1978:22;;;;;;;;;-1:-1:-1;1974:1978:22;;-1:-1:-1;;1974:1978:22;;;-1:-1:-1;;;1974:1978:22;;;;;;;;;;-1:-1:-1;1974:1978:22;;;;;-1:-1:-1;1974:1978:22;;;;;;;;84:18:-1;;64:39;;1974:1978:22;;;;;;52:2:-1;8:100;;4964:1589:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4964:1589:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4964:1589:22;;;;-1:-1:-1;4964:1589:22;-1:-1:-1;4964:1589:22;;-1:-1:-1;4964:1589:22;;;;;;;;;-1:-1:-1;4964:1589:22;;-1:-1:-1;;4964:1589:22;;;-1:-1:-1;;;4964:1589:22;;;;;;;;;;-1:-1:-1;4964:1589:22;;;;;-1:-1:-1;4964:1589:22;;;;;;;;84:18:-1;;64:39;;4964:1589:22;;;;;;52:2:-1;8:100;;8916:335:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8916:335:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8916:335:22;;;;-1:-1:-1;8916:335:22;-1:-1:-1;8916:335:22;;-1:-1:-1;8916:335:22;;;;;;;;;-1:-1:-1;8916:335:22;;-1:-1:-1;8916:335:22;;-1:-1:-1;;;;;;;8916:335:22;;;;;;;;;;;;;;;;;404:524;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6828:1054;-1:-1:-1;;;;;7065:25:22;;;;7057:34;;;;;;-1:-1:-1;;;;;7109:19:22;;;;7101:28;;;;;;-1:-1:-1;;;;;7147:23:22;;;;7139:32;;;;;;-1:-1:-1;;;;;7189:27:22;;;;7181:36;;;;;;7232:7;;;;7242:1;-1:-1:-1;7232:37:22;;;;;7257:12;:10;:12::i;:::-;7247:22;;;7232:37;7228:102;;;-1:-1:-1;;;;;7293:25:22;;;;7285:34;;;;;;7344:7;;7354:1;-1:-1:-1;7340:183:22;;;7438:7;;7379:67;;;;;;-1:-1:-1;;;;;7379:67:22;;;;;;;;;;;;;;;;;;;;;;;:32;;;;;;:67;;;;;7438:7;;7379:67;;;;;;;;7443:1;7379:32;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;7379:67:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7379:67:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7379:67:22;7371:76;;;;;;;;7503:7;;7469:42;;;;;;-1:-1:-1;;;;;7469:42:22;;;;;;;;;;;;;;;;:22;;;;;;:42;;;;;7503:7;;7469:42;;;;;;;;7508:1;7469:22;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;7469:42:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7469:42:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7469:42:22;7461:51;;;;;;;;7537:7;;;;7547:1;-1:-1:-1;7533:343:22;;;7578:12;:10;:12::i;:::-;7568:22;;7564:302;;;7633:7;;;;7610:31;;-1:-1:-1;;;;;7610:22:22;;;:31;;;;;;;;;7633:7;7610:22;:31;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7610:31:22;7564:302;;;7748:7;;;;;7688:56;;;;;;7718:10;7688:56;;;;7738:4;7688:56;;;;;;7748:7;;-1:-1:-1;;;;;7688:29:22;;;;;:56;;;;;7748:7;7688:56;;;;;;-1:-1:-1;7688:29:22;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;7688:56:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7688:56:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7688:56:22;:67;;7680:76;;;;;;7842:7;;;;;7782:68;;;;;;7815:10;7782:68;;;;-1:-1:-1;;;;;7782:68:22;;;;;;;;;;;;;;;;:32;;;;;;:68;;;;;;;;;;-1:-1:-1;7782:32:22;:68;;;5:2:-1;;;;30:1;27;20:12;5:2;7782:68:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7782:68:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7782:68:22;7774:77;;;;;;;;6828:1054;;;;;;;:::o;7888:1022::-;-1:-1:-1;;;;;8093:19:22;;;;8085:28;;;;;;8131:11;;:16;;8123:25;;;;;;8166:11;;;;:16;;8158:25;;;;;;8215:7;;8201:11;;:21;8193:30;;;;;;8255:7;;;;;8241:11;;;;:21;8233:30;;;;;;8288:12;:10;:12::i;:::-;8278:22;;8274:86;;;8337:11;;;;8324:9;:24;;8316:33;;;;;;8384:12;:10;:12::i;:::-;8374:22;;8370:302;;-1:-1:-1;;;;;8420:25:22;;;;8412:34;;;;;;8544:7;;;;8528:24;;:8;8549:1;8528:11;;;;;;:24;:15;:24;:::i;:::-;8468:56;;;;;;8498:10;8468:56;;;;8518:4;8468:56;;;;;;-1:-1:-1;;;;;8468:29:22;;;;;:56;;;;;;;;;;;;;;-1:-1:-1;8468:29:22;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;8468:56:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8468:56:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8468:56:22;:84;;8460:93;;;;;;-1:-1:-1;;;;;8575:32:22;;;8608:10;8628:4;8635:24;8651:4;8656:1;8651:7;;;;8635:8;8644:1;8635:11;;:24;8575:85;;;-1:-1:-1;;;8575:85:22;;;;;;-1:-1:-1;;;;;8575:85:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8575:85:22;;;;5:2:-1;;;;30:1;27;20:12;5:2;8575:85:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8575:85:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8575:85:22;8567:94;;;;;;;;8733:11;;8690:64;;;;;;8721:10;8690:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8690:30:22;;;;;:64;;;;;8733:11;;8690:64;;;;;;;8742:1;8690:30;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;8690:64:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8690:64:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8690:64:22;8682:73;;;;;;;;8770:11;;;;8784:1;-1:-1:-1;8766:138:22;;;8815:12;:10;:12::i;:::-;8805:22;;8801:93;;;8867:11;;;;8847:32;;:10;;:32;;;;;;;;;8867:11;8847:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;8801:93:22;7888:1022;;;;;;:::o;6559:263::-;6654:14;;:::i;:::-;6695:1;6684:8;:12;6680:63;;;6710:33;;;;;;;;;;;;;;;;;;;;:23;;;;:33;;;;;;;;;;;;;;:23;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6710:33:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6710:33:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6710:33:22;6698:45;;6680:63;6771:1;6757:11;:15;6753:62;;;6786:29;;;;;;;;;;;;;;;;;;;;:16;;;;:29;;;;;;;;;;;;;;:16;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;6786:29:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6786:29:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6786:29:22;6774:9;;;:41;6753:62;6559:263;;;;;;:::o;1974:1978::-;2312:14;;:::i;:::-;2823:10;2350:218;2381:6;2401:13;2428;2455:12;2481:22;2517:13;2544:14;2350:17;:218::i;:::-;2342:227;;;;;;;;2611:5;:26;2651:13;2678:14;2706:13;2611:118;;;;;-1:-1:-1;;;2611:118:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2611:118:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2611:118:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2611:118:22;2599:9;;;:130;;;2786:25;-1:-1:-1;2786:25:22;2778:34;;;;;;2836:52;2845:6;2852:1;2845:9;;;;;2856:16;2874:13;2836:8;:52::i;:::-;2823:65;;2942:1;2931:8;:12;:100;;3019:12;2931:100;;;2958:12;:20;;;;2995:8;2979:7;:11;:13;;;;;-1:-1:-1;;;2979:13:22;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2979:13:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2979:13:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2979:13:22;2958:46;;;-1:-1:-1;;;2958:46:22;;;;;;;;;;;;;2979:24;;;2958:46;;;;;;;;;;2979:13;;2958:46;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;2958:46:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2958:46:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2958:46:22;2931:100;2919:6;2926:1;2919:9;;;:112;3072:5;:33;3119:6;3126:1;3119:9;;;;:21;;;;3141:24;3159:5;3141:7;:11;:13;;;;;-1:-1:-1;;;3141:13:22;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3141:13:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3141:13:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3141:13:22;;:24;:17;:24;:::i;:::-;3119:47;;;;;-1:-1:-1;;;3119:47:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3119:47:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3119:47:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3119:47:22;3180:13;3207:6;3214:1;3207:9;;;;3072:154;;;;;-1:-1:-1;;;3072:154:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3072:154:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3072:154:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3072:154:22;3060:166;;;3285:34;;3281:263;;;3462:9;;;;3347:138;;;;;;3469:1;3347:138;;;;;;;;;;;;;;;;;;;:5;;:26;;:138;;;;;3462:9;;3347:138;;;;;;;:5;:138;;;5:2:-1;;;;30:1;27;20:12;5:2;3347:138:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3347:138:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3347:138:22;3335:9;;;:150;3499:34;;;3281:263;3582:5;:33;3629:6;3636:1;3629:9;;;;3652:14;3680:13;3582:121;;;;;-1:-1:-1;;;3582:121:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3582:121:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3582:121:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3582:121:22;3570:9;;;:133;;;3751:14;;:32;;-1:-1:-1;3769:9:22;;:14;3751:32;3747:130;;;3811:1;3799:13;;;:9;3826;;:13;;;3853:9;;;:13;3747:130;3935:9;;;;3917:28;;:13;;:17;:28::i;:::-;3905:9;;;:40;-1:-1:-1;3905:6:22;1974:1978;-1:-1:-1;;;;;;;;;;1974:1978:22:o;4964:1589::-;5314:14;;:::i;:::-;6124:10;5352:216;5383:6;5403:11;5428:13;5455:12;5481:22;5517:13;5544:14;5352:17;:216::i;:::-;5344:225;;;;;;;;5609:11;5584:22;:36;5580:103;;;5650:22;5636:36;;5580:103;5711:23;;;5718:1;5777:12;;:100;;5865:12;5777:100;;;5804:12;:20;;;;5841:8;5825:7;:11;:13;;;;;-1:-1:-1;;;5825:13:22;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5825:13:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5825:13:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5825:13:22;5804:46;;;-1:-1:-1;;;5804:46:22;;;;;;;;;;;;;5825:24;;;5804:46;;;;;;;;;;5825:13;;5804:46;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;5804:46:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5804:46:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5804:46:22;5777:100;5765:9;;;:112;;;5919:111;;;;;;;;;;;;;;;;;;;;;;;;;;:5;;:26;;:111;;;;;5765:9;;5919:111;;;;;;;:5;:111;;;5:2:-1;;;;30:1;27;20:12;5:2;5919:111:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5919:111:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5919:111:22;5907:9;;;:123;;;6087:25;-1:-1:-1;6087:25:22;6079:34;;;;;;6137:52;6146:6;6153:1;6146:9;;6137:52;6124:65;-1:-1:-1;6212:5:22;:33;6259:6;6266:1;6259:9;;;;6282:14;6310:13;:25;;;;6336:24;6354:5;6336:7;:11;:13;;;;;-1:-1:-1;;;6336:13:22;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;6336:24:22;6310:51;;;;;-1:-1:-1;;;6310:51:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6310:51:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6310:51:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6310:51:22;6212:159;;;-1:-1:-1;;;6212:159:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6310:51;;6212:159;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;6212:159:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6212:159:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6212:159:22;6200:9;;;:171;;;6419:14;6415:132;;;6461:1;6449:13;;;:9;6476;;:13;;;6503:9;;;:13;6415:132;4964:1589;;;;;;;;;;;;;:::o;8916:335::-;9013:10;;9035:210;9056:16;:23;9052:1;:27;9035:210;;;9113:16;9130:1;9113:19;;;;;;;;;;;;;;;;;;;9104:28;;9100:135;;9160:13;9174:1;9160:16;;;;;;;;;;;;;;;;;;9152:24;;9100:135;;;9215:5;;9100:135;9081:3;;9035:210;;;8916:335;;;;;;:::o;404:524::-;651:11;692:1;683:6;:10;:43;;;;;725:1;709:13;:17;683:43;:75;;;;;757:1;742:12;:16;683:75;:136;;;;;806:13;800:2;:19;774:22;:45;;683:136;674:145;;844:12;:10;:12::i;:::-;834:22;;830:92;;;881:6;:30;;;;;891:14;909:2;891:20;881:30;872:39;;830:92;404:524;;;;;;;;;:::o;320:78::-;382:14;320:78;:::o;1078:131:54:-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;1272:::-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;;1397:1;1272:131;-1:-1:-1;;;1272:131:54:o;229:9024:22:-;;;;;;;;;;;;;;;105:10:-1;229:9024:22;88:34:-1;-1:-1;229:9024:22;;;-1:-1:-1;;229:9024:22:o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;229:9024:22;;;-1:-1:-1;;229:9024:22:o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;229:9024:22;;;-1:-1:-1;;229:9024:22:o", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"./Percent.sol\";\nimport \"./Utils.sol\";\nimport \"../token/IWToken.sol\";\n\nlibrary PurchaseProcessing {\n using SafeMath for uint;\n using Percent for uint;\n\n function METHOD_ETH() internal pure returns (bytes32) {return bytes32('ETH');}\n\n function checkInvoiceInput(\n bytes32 method,\n uint amount,\n uint methodUSDRate,\n uint tokenUSDRate,\n uint currentBalanceInTokens,\n uint tokenDecimals,\n uint methodDecimals\n ) public pure returns(bool result) {\n result = amount > 0\n && methodUSDRate > 0\n && tokenUSDRate > 0\n && currentBalanceInTokens >= 10 ** tokenDecimals;\n\n if (method == METHOD_ETH()) {\n result = result && methodDecimals == 18;\n }\n }\n\n /**\n * @notice Generate invoice\n * @dev 1 USD = 10^8. In this case precision will be up to 10^8 decimals after point\n * @param method Payment method\n * @param paymentAmount Payment amount\n * @param discount Discount percent\n * @param volumeBoundaries Volume boundaries to calculate bonus\n * @param volumeBonuses List of bonuses bound to boundaries\n * @param methodUSDRate Payment method rate in USD\n * @param tokenUSDRate Token rate in USD\n * @param tokenDecimals Token decimal\n * @param methodDecimals Method decimal. N for token, 18 for ETH\n * @param currentBalanceInTokens Current balance in tokens\n * @return uint[5] result Invoice calculation result:\n *\n * [tokenAmount, cost, costUSD, change, actualTokenPriceUSD]\n *\n * [0] tokenAmount - amount of token to buy\n * [1] cost - cost in method currency\n * [2] costUSD cost in USD\n * [3] change - change in method currency\n * [4] actualTokenPriceUSD - actual token price in USD(with discount)\n */\n function invoice(\n bytes32 method,\n uint paymentAmount,\n uint discount,\n uint[] volumeBoundaries,\n uint[] volumeBonuses,\n uint methodUSDRate,\n uint tokenUSDRate,\n uint tokenDecimals,\n uint methodDecimals,\n uint currentBalanceInTokens\n )\n public view returns(uint[5] result)\n {\n require(checkInvoiceInput(\n method,\n paymentAmount,\n methodUSDRate,\n tokenUSDRate,\n currentBalanceInTokens,\n tokenDecimals,\n methodDecimals\n ));\n\n // costUSD\n result[2] = Utils.safeConversionByRate(\n paymentAmount,\n methodDecimals,\n methodUSDRate\n );\n\n // min costUSD = tokenUSDRate\n require(result[2] >= tokenUSDRate);\n\n uint bonus = getBonus(result[2], volumeBoundaries, volumeBonuses);\n\n // priceUSD\n result[4] = discount > 0\n ? tokenUSDRate.percent(Percent.MAX() - discount)\n : tokenUSDRate;\n\n // tokens\n result[0] = Utils.safeReverseConversionByRate(\n result[2].safePercent(Percent.MAX().add(bonus)),\n tokenDecimals,\n result[4]\n );\n\n // if current balance is not enough\n if (currentBalanceInTokens < result[0]) {\n result[2] = Utils.safeConversionByRate(\n currentBalanceInTokens,\n tokenDecimals,\n result[4]\n );\n result[0] = currentBalanceInTokens;\n }\n\n // cost\n result[1] = Utils.safeReverseConversionByRate(\n result[2],\n methodDecimals,\n methodUSDRate\n );\n\n // reset if cost is zero\n if (result[1] == 0 || result[0] == 0) {\n result[0] = 0;\n result[1] = 0;\n result[2] = 0;\n }\n\n // change\n result[3] = paymentAmount.sub(result[1]);\n }\n\n /**\n * @notice Generate invoice by token amount\n * @dev 1 USD = 10^8. In this case precision will be up to 10^8 decimals after point\n * @param method Payment method\n * @param tokenAmount Token amount\n * @param discount Discount percent\n * @param volumeBoundaries Volume boundaries to calculate bonus\n * @param volumeBonuses List of bonuses bound to boundaries\n * @param methodUSDRate Payment method rate in USD\n * @param tokenUSDRate Token rate in USD\n * @param tokenDecimals Token decimal\n * @param methodDecimals Method decimal. N for token, 18 for ETH\n * @param currentBalanceInTokens Current balance in tokens\n * @return uint[4] result Invoice calculation result:\n *\n * [tokenAmount, cost, costUSD, change, actualTokenPriceUSD]\n *\n * [0] tokenAmount - amount of token to buy\n * [1] cost - cost in method currency\n * [2] costUSD cost in USD\n * [3] actualTokenPriceUSD - actual token price in USD(with discount)\n */\n function invoiceByTokenAmount(\n bytes32 method,\n uint tokenAmount,\n uint discount,\n uint[] volumeBoundaries,\n uint[] volumeBonuses,\n uint methodUSDRate,\n uint tokenUSDRate,\n uint tokenDecimals,\n uint methodDecimals,\n uint currentBalanceInTokens\n )\n public view returns (uint[4] result)\n {\n require(checkInvoiceInput(\n method,\n tokenAmount,\n methodUSDRate,\n tokenUSDRate,\n currentBalanceInTokens,\n tokenDecimals,\n methodDecimals\n ));\n\n if (currentBalanceInTokens < tokenAmount) {\n tokenAmount = currentBalanceInTokens;\n }\n\n // tokens\n result[0] = tokenAmount;\n\n // priceUSD\n result[3] = discount > 0\n ? tokenUSDRate.percent(Percent.MAX() - discount)\n : tokenUSDRate;\n\n // costUSD\n result[2] = Utils.safeConversionByRate(\n tokenAmount,\n tokenDecimals,\n result[3]\n );\n\n // min costUSD = tokenUSDRate\n require(result[2] >= tokenUSDRate);\n\n uint bonus = getBonus(result[2], volumeBoundaries, volumeBonuses);\n\n result[1] = Utils.safeReverseConversionByRate(\n result[2],\n methodDecimals,\n methodUSDRate.safePercent(Percent.MAX().add(bonus))\n );\n\n // reset if cost is zero\n if (result[1] == 0) {\n result[0] = 0;\n result[1] = 0;\n result[2] = 0;\n return;\n }\n }\n\n function fee(uint tokenAmount, uint cost, uint tokenFee, uint purchaseFee) public pure returns(uint[2] result) {\n if (tokenFee > 0) result[0] = tokenAmount.safePercent(tokenFee);\n if (purchaseFee > 0) result[1] = cost.safePercent(purchaseFee);\n }\n\n function transferFee(\n uint[2] _fee,\n bytes32 method,\n address methodToken,\n address token,\n address originToken,\n address exchanger,\n address serviceWallet\n ) public {\n require(originToken != address(0));\n require(token != address(0));\n require(exchanger != address(0));\n require(serviceWallet != address(0));\n\n if (_fee[1] > 0 && method != METHOD_ETH()) {\n require(methodToken != address(0));\n }\n\n if (_fee[0] > 0) {\n require(IERC20(originToken).transferFrom(exchanger, serviceWallet, _fee[0]));\n require(IERC20(token).transfer(exchanger, _fee[0]));\n }\n\n if (_fee[1] > 0) {\n if (method == METHOD_ETH()) {\n serviceWallet.transfer(_fee[1]);\n } else {\n require(IERC20(methodToken).allowance(msg.sender, address(this)) >= _fee[1]);\n require(IERC20(methodToken).transferFrom(msg.sender, serviceWallet, _fee[1]));\n }\n }\n }\n\n function transferPurchase(\n uint[5] _invoice,\n uint[2] _fee,\n uint32 vesting,\n bytes32 method,\n address methodToken,\n address token\n ) public {\n require(token != address(0));\n require(_invoice[0] != 0);\n require(_invoice[1] != 0);\n require(_invoice[0] > _fee[0]);\n require(_invoice[1] > _fee[1]);\n\n if (method == METHOD_ETH()) {\n require(msg.value >= _invoice[1]);\n }\n\n if (method != METHOD_ETH()) {\n require(methodToken != address(0));\n require(IERC20(methodToken).allowance(msg.sender, address(this)) >= _invoice[1].sub(_fee[1]));\n require(IERC20(methodToken).transferFrom(msg.sender, address(this), _invoice[1].sub(_fee[1])));\n }\n\n require(IWToken(token).vestingTransfer(msg.sender, _invoice[0], vesting));\n\n if (_invoice[3] > 0) {\n if (method == METHOD_ETH()) {\n msg.sender.transfer(_invoice[3]);\n }\n }\n }\n\n function getBonus(uint value, uint[] volumeBoundaries, uint[] volumeBonuses) public view returns(uint bonus) {\n for (uint i = 0; i < volumeBoundaries.length; i++) {\n if (value >= volumeBoundaries[i]) {\n bonus = volumeBonuses[i];\n } else {\n break;\n }\n }\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", "exportedSymbols": { "PurchaseProcessing": [ - 6118 + 7269 ] }, - "id": 6119, + "id": 7270, "nodeType": "SourceUnit", "nodes": [ { - "id": 5282, + "id": 6433, "literals": [ "solidity", "^", @@ -26,60 +310,60 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:15" + "src": "0:24:22" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 5283, + "id": 6434, "nodeType": "ImportDirective", - "scope": 6119, - "sourceUnit": 10049, - "src": "26:59:15", + "scope": 7270, + "sourceUnit": 12389, + "src": "26:59:22", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 5284, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 6435, "nodeType": "ImportDirective", - "scope": 6119, - "sourceUnit": 10212, - "src": "86:63:15", + "scope": 7270, + "sourceUnit": 13084, + "src": "86:64:22", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "file": "./Percent.sol", - "id": 5285, + "id": 6436, "nodeType": "ImportDirective", - "scope": 6119, - "sourceUnit": 5215, - "src": "150:23:15", + "scope": 7270, + "sourceUnit": 6432, + "src": "151:23:22", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", "file": "./Utils.sol", - "id": 5286, + "id": 6437, "nodeType": "ImportDirective", - "scope": 6119, - "sourceUnit": 6325, - "src": "174:21:15", + "scope": 7270, + "sourceUnit": 8379, + "src": "175:21:22", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", "file": "../token/IWToken.sol", - "id": 5287, + "id": 6438, "nodeType": "ImportDirective", - "scope": 6119, - "sourceUnit": 7895, - "src": "196:30:15", + "scope": 7270, + "sourceUnit": 10486, + "src": "197:30:22", "symbolAliases": [], "unitAlias": "" }, @@ -89,34 +373,34 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 6118, + "id": 7269, "linearizedBaseContracts": [ - 6118 + 7269 ], "name": "PurchaseProcessing", "nodeType": "ContractDefinition", "nodes": [ { - "id": 5290, + "id": 6441, "libraryName": { "contractScope": null, - "id": 5288, + "id": 6439, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "267:8:15", + "referencedDeclaration": 12388, + "src": "268:8:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "261:24:15", + "src": "262:24:22", "typeName": { - "id": 5289, + "id": 6440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "280:4:15", + "src": "281:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -124,26 +408,26 @@ } }, { - "id": 5293, + "id": 6444, "libraryName": { "contractScope": null, - "id": 5291, + "id": 6442, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5214, - "src": "296:7:15", + "referencedDeclaration": 6431, + "src": "297:7:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$5214", + "typeIdentifier": "t_contract$_Percent_$6431", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "290:23:15", + "src": "291:23:22", "typeName": { - "id": 5292, + "id": 6443, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "308:4:15", + "src": "309:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -152,9 +436,9 @@ }, { "body": { - "id": 5302, + "id": 6453, "nodeType": "Block", - "src": "373:24:15", + "src": "374:24:22", "statements": [ { "expression": { @@ -163,14 +447,14 @@ { "argumentTypes": null, "hexValue": "455448", - "id": 5299, + "id": 6450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "389:5:15", + "src": "390:5:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", @@ -186,20 +470,20 @@ "typeString": "literal_string \"ETH\"" } ], - "id": 5298, + "id": 6449, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "381:7:15", + "src": "382:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": "bytes32" }, - "id": 5300, + "id": 6451, "isConstant": false, "isLValue": false, "isPure": true, @@ -207,21 +491,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "381:14:15", + "src": "382:14:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 5297, - "id": 5301, + "functionReturnParameters": 6448, + "id": 6452, "nodeType": "Return", - "src": "374:21:15" + "src": "375:21:22" } ] }, "documentation": null, - "id": 5303, + "id": 6454, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -229,23 +513,23 @@ "name": "METHOD_ETH", "nodeType": "FunctionDefinition", "parameters": { - "id": 5294, + "id": 6445, "nodeType": "ParameterList", "parameters": [], - "src": "338:2:15" + "src": "339:2:22" }, "payable": false, "returnParameters": { - "id": 5297, + "id": 6448, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5296, + "id": 6447, "name": "", "nodeType": "VariableDeclaration", - "scope": 5303, - "src": "364:7:15", + "scope": 6454, + "src": "365:7:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -253,10 +537,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5295, + "id": 6446, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "364:7:15", + "src": "365:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -266,36 +550,36 @@ "visibility": "internal" } ], - "src": "363:9:15" + "src": "364:9:22" }, - "scope": 6118, - "src": "319:78:15", + "scope": 7269, + "src": "320:78:22", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 5356, + "id": 6507, "nodeType": "Block", - "src": "665:264:15", + "src": "664:264:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 5340, + "id": 6491, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5322, + "id": 6473, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "675:6:15", + "referencedDeclaration": 6471, + "src": "674:6:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -309,7 +593,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5339, + "id": 6490, "isConstant": false, "isLValue": false, "isPure": false, @@ -320,7 +604,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5333, + "id": 6484, "isConstant": false, "isLValue": false, "isPure": false, @@ -331,7 +615,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5329, + "id": 6480, "isConstant": false, "isLValue": false, "isPure": false, @@ -342,19 +626,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5325, + "id": 6476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5323, + "id": 6474, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5307, - "src": "684:6:15", + "referencedDeclaration": 6458, + "src": "683:6:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -365,14 +649,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5324, + "id": 6475, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "693:1:15", + "src": "692:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -380,7 +664,7 @@ }, "value": "0" }, - "src": "684:10:15", + "src": "683:10:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -394,19 +678,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5328, + "id": 6479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5326, + "id": 6477, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5309, - "src": "710:13:15", + "referencedDeclaration": 6460, + "src": "709:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -417,14 +701,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5327, + "id": 6478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "726:1:15", + "src": "725:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -432,13 +716,13 @@ }, "value": "0" }, - "src": "710:17:15", + "src": "709:17:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "684:43:15", + "src": "683:43:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -452,19 +736,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5332, + "id": 6483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5330, + "id": 6481, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5311, - "src": "743:12:15", + "referencedDeclaration": 6462, + "src": "742:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -475,14 +759,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5331, + "id": 6482, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "758:1:15", + "src": "757:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -490,13 +774,13 @@ }, "value": "0" }, - "src": "743:16:15", + "src": "742:16:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "684:75:15", + "src": "683:75:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -510,19 +794,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5338, + "id": 6489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5334, + "id": 6485, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "775:22:15", + "referencedDeclaration": 6464, + "src": "774:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -536,7 +820,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5337, + "id": 6488, "isConstant": false, "isLValue": false, "isPure": false, @@ -544,14 +828,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 5335, + "id": 6486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "801:2:15", + "src": "800:2:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -563,44 +847,44 @@ "operator": "**", "rightExpression": { "argumentTypes": null, - "id": 5336, + "id": 6487, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5315, - "src": "807:13:15", + "referencedDeclaration": 6466, + "src": "806:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "801:19:15", + "src": "800:19:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "775:45:15", + "src": "774:45:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "684:136:15", + "src": "683:136:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "675:145:15", + "src": "674:145:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5341, + "id": 6492, "nodeType": "ExpressionStatement", - "src": "675:145:15" + "src": "674:145:22" }, { "condition": { @@ -609,19 +893,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 5345, + "id": 6496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5342, + "id": 6493, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5305, - "src": "835:6:15", + "referencedDeclaration": 6456, + "src": "834:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -634,18 +918,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5343, + "id": 6494, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5303, - "src": "845:10:15", + "referencedDeclaration": 6454, + "src": "844:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 5344, + "id": 6495, "isConstant": false, "isLValue": false, "isPure": false, @@ -653,43 +937,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:12:15", + "src": "844:12:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "835:22:15", + "src": "834:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5355, + "id": 6506, "nodeType": "IfStatement", - "src": "831:92:15", + "src": "830:92:22", "trueBody": { - "id": 5354, + "id": 6505, "nodeType": "Block", - "src": "859:64:15", + "src": "858:64:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 5352, + "id": 6503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5346, + "id": 6497, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "873:6:15", + "referencedDeclaration": 6471, + "src": "872:6:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -703,19 +987,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5351, + "id": 6502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5347, + "id": 6498, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "882:6:15", + "referencedDeclaration": 6471, + "src": "881:6:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -729,19 +1013,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5350, + "id": 6501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5348, + "id": 6499, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5317, - "src": "892:14:15", + "referencedDeclaration": 6468, + "src": "891:14:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -752,14 +1036,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3138", - "id": 5349, + "id": 6500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "910:2:15", + "src": "909:2:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -767,27 +1051,27 @@ }, "value": "18" }, - "src": "892:20:15", + "src": "891:20:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "882:30:15", + "src": "881:30:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "873:39:15", + "src": "872:39:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5353, + "id": 6504, "nodeType": "ExpressionStatement", - "src": "873:39:15" + "src": "872:39:22" } ] } @@ -795,7 +1079,7 @@ ] }, "documentation": null, - "id": 5357, + "id": 6508, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -803,16 +1087,16 @@ "name": "checkInvoiceInput", "nodeType": "FunctionDefinition", "parameters": { - "id": 5318, + "id": 6469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5305, + "id": 6456, "name": "method", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "439:14:15", + "scope": 6508, + "src": "440:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -820,10 +1104,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5304, + "id": 6455, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "439:7:15", + "src": "440:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -834,11 +1118,11 @@ }, { "constant": false, - "id": 5307, + "id": 6458, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "463:11:15", + "scope": 6508, + "src": "464:11:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -846,10 +1130,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5306, + "id": 6457, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "463:4:15", + "src": "464:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -860,11 +1144,11 @@ }, { "constant": false, - "id": 5309, + "id": 6460, "name": "methodUSDRate", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "484:18:15", + "scope": 6508, + "src": "485:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -872,10 +1156,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5308, + "id": 6459, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "484:4:15", + "src": "485:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -886,11 +1170,11 @@ }, { "constant": false, - "id": 5311, + "id": 6462, "name": "tokenUSDRate", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "512:17:15", + "scope": 6508, + "src": "513:17:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -898,10 +1182,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5310, + "id": 6461, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "512:4:15", + "src": "513:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -912,11 +1196,11 @@ }, { "constant": false, - "id": 5313, + "id": 6464, "name": "currentBalanceInTokens", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "539:27:15", + "scope": 6508, + "src": "540:27:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -924,10 +1208,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5312, + "id": 6463, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "539:4:15", + "src": "540:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -938,11 +1222,11 @@ }, { "constant": false, - "id": 5315, + "id": 6466, "name": "tokenDecimals", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "576:18:15", + "scope": 6508, + "src": "577:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -950,10 +1234,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5314, + "id": 6465, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "576:4:15", + "src": "577:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -964,11 +1248,11 @@ }, { "constant": false, - "id": 5317, + "id": 6468, "name": "methodDecimals", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "604:19:15", + "scope": 6508, + "src": "605:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -976,10 +1260,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5316, + "id": 6467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "604:4:15", + "src": "605:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -989,20 +1273,20 @@ "visibility": "internal" } ], - "src": "429:200:15" + "src": "430:200:22" }, "payable": false, "returnParameters": { - "id": 5321, + "id": 6472, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5320, + "id": 6471, "name": "result", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "652:11:15", + "scope": 6508, + "src": "651:11:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1010,10 +1294,10 @@ "typeString": "bool" }, "typeName": { - "id": 5319, + "id": 6470, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "652:4:15", + "src": "651:4:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1023,19 +1307,19 @@ "visibility": "internal" } ], - "src": "651:13:15" + "src": "650:13:22" }, - "scope": 6118, - "src": "403:526:15", + "scope": 7269, + "src": "404:524:22", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5549, + "id": 6700, "nodeType": "Block", - "src": "2335:1620:15", + "src": "2332:1620:22", "statements": [ { "expression": { @@ -1046,12 +1330,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5388, + "id": 6539, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5359, - "src": "2384:6:15", + "referencedDeclaration": 6510, + "src": "2381:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1059,12 +1343,12 @@ }, { "argumentTypes": null, - "id": 5389, + "id": 6540, "name": "paymentAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5361, - "src": "2404:13:15", + "referencedDeclaration": 6512, + "src": "2401:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1072,12 +1356,12 @@ }, { "argumentTypes": null, - "id": 5390, + "id": 6541, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5371, - "src": "2431:13:15", + "referencedDeclaration": 6522, + "src": "2428:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1085,12 +1369,12 @@ }, { "argumentTypes": null, - "id": 5391, + "id": 6542, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "2458:12:15", + "referencedDeclaration": 6524, + "src": "2455:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1098,12 +1382,12 @@ }, { "argumentTypes": null, - "id": 5392, + "id": 6543, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5379, - "src": "2484:22:15", + "referencedDeclaration": 6530, + "src": "2481:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1111,12 +1395,12 @@ }, { "argumentTypes": null, - "id": 5393, + "id": 6544, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5375, - "src": "2520:13:15", + "referencedDeclaration": 6526, + "src": "2517:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1124,12 +1408,12 @@ }, { "argumentTypes": null, - "id": 5394, + "id": 6545, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5377, - "src": "2547:14:15", + "referencedDeclaration": 6528, + "src": "2544:14:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1167,18 +1451,18 @@ "typeString": "uint256" } ], - "id": 5387, + "id": 6538, "name": "checkInvoiceInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5357, - "src": "2353:17:15", + "referencedDeclaration": 6508, + "src": "2350:17:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (bytes32,uint256,uint256,uint256,uint256,uint256,uint256) pure returns (bool)" } }, - "id": 5395, + "id": 6546, "isConstant": false, "isLValue": false, "isPure": false, @@ -1186,7 +1470,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2353:218:15", + "src": "2350:218:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1200,21 +1484,21 @@ "typeString": "bool" } ], - "id": 5386, + "id": 6537, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2345:7:15", + "referencedDeclaration": 13444, + "src": "2342:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5396, + "id": 6547, "isConstant": false, "isLValue": false, "isPure": false, @@ -1222,20 +1506,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2345:227:15", + "src": "2342:227:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5397, + "id": 6548, "nodeType": "ExpressionStatement", - "src": "2345:227:15" + "src": "2342:227:22" }, { "expression": { "argumentTypes": null, - "id": 5407, + "id": 6558, "isConstant": false, "isLValue": false, "isPure": false, @@ -1244,29 +1528,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5398, + "id": 6549, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "2602:6:15", + "referencedDeclaration": 6535, + "src": "2599:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5400, + "id": 6551, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5399, + "id": 6550, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2609:1:15", + "src": "2606:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -1279,7 +1563,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2602:9:15", + "src": "2599:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1292,12 +1576,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5403, + "id": 6554, "name": "paymentAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5361, - "src": "2654:13:15", + "referencedDeclaration": 6512, + "src": "2651:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1305,12 +1589,12 @@ }, { "argumentTypes": null, - "id": 5404, + "id": 6555, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5377, - "src": "2681:14:15", + "referencedDeclaration": 6528, + "src": "2678:14:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1318,12 +1602,12 @@ }, { "argumentTypes": null, - "id": 5405, + "id": 6556, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5371, - "src": "2709:13:15", + "referencedDeclaration": 6522, + "src": "2706:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1347,32 +1631,32 @@ ], "expression": { "argumentTypes": null, - "id": 5401, + "id": 6552, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "2614:5:15", + "referencedDeclaration": 8378, + "src": "2611:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5402, + "id": 6553, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6169, - "src": "2614:26:15", + "referencedDeclaration": 8222, + "src": "2611:26:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5406, + "id": 6557, "isConstant": false, "isLValue": false, "isPure": false, @@ -1380,21 +1664,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2614:118:15", + "src": "2611:118:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2602:130:15", + "src": "2599:130:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5408, + "id": 6559, "nodeType": "ExpressionStatement", - "src": "2602:130:15" + "src": "2599:130:22" }, { "expression": { @@ -1406,7 +1690,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5414, + "id": 6565, "isConstant": false, "isLValue": false, "isPure": false, @@ -1415,29 +1699,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5410, + "id": 6561, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "2789:6:15", + "referencedDeclaration": 6535, + "src": "2786:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5412, + "id": 6563, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5411, + "id": 6562, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2796:1:15", + "src": "2793:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -1450,7 +1734,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2789:9:15", + "src": "2786:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1460,18 +1744,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 5413, + "id": 6564, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "2802:12:15", + "referencedDeclaration": 6524, + "src": "2799:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2789:25:15", + "src": "2786:25:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1485,21 +1769,21 @@ "typeString": "bool" } ], - "id": 5409, + "id": 6560, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2781:7:15", + "referencedDeclaration": 13444, + "src": "2778:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5415, + "id": 6566, "isConstant": false, "isLValue": false, "isPure": false, @@ -1507,28 +1791,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2781:34:15", + "src": "2778:34:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5416, + "id": 6567, "nodeType": "ExpressionStatement", - "src": "2781:34:15" + "src": "2778:34:22" }, { "assignments": [ - 5418 + 6569 ], "declarations": [ { "constant": false, - "id": 5418, + "id": 6569, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2826:10:15", + "scope": 6701, + "src": "2823:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1536,10 +1820,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5417, + "id": 6568, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2826:4:15", + "src": "2823:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1549,7 +1833,7 @@ "visibility": "internal" } ], - "id": 5426, + "id": 6577, "initialValue": { "argumentTypes": null, "arguments": [ @@ -1557,29 +1841,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5420, + "id": 6571, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "2848:6:15", + "referencedDeclaration": 6535, + "src": "2845:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5422, + "id": 6573, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5421, + "id": 6572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2855:1:15", + "src": "2852:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -1592,7 +1876,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2848:9:15", + "src": "2845:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1600,12 +1884,12 @@ }, { "argumentTypes": null, - "id": 5423, + "id": 6574, "name": "volumeBoundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5366, - "src": "2859:16:15", + "referencedDeclaration": 6517, + "src": "2856:16:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -1613,12 +1897,12 @@ }, { "argumentTypes": null, - "id": 5424, + "id": 6575, "name": "volumeBonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5369, - "src": "2877:13:15", + "referencedDeclaration": 6520, + "src": "2874:13:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -1640,18 +1924,18 @@ "typeString": "uint256[] memory" } ], - "id": 5419, + "id": 6570, "name": "getBonus", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6117, - "src": "2839:8:15", + "referencedDeclaration": 7268, + "src": "2836:8:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,uint256[] memory,uint256[] memory) view returns (uint256)" } }, - "id": 5425, + "id": 6576, "isConstant": false, "isLValue": false, "isPure": false, @@ -1659,19 +1943,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2839:52:15", + "src": "2836:52:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2826:65:15" + "src": "2823:65:22" }, { "expression": { "argumentTypes": null, - "id": 5443, + "id": 6594, "isConstant": false, "isLValue": false, "isPure": false, @@ -1680,29 +1964,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5427, + "id": 6578, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "2922:6:15", + "referencedDeclaration": 6535, + "src": "2919:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5429, + "id": 6580, "indexExpression": { "argumentTypes": null, "hexValue": "34", - "id": 5428, + "id": 6579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2929:1:15", + "src": "2926:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -1715,7 +1999,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2922:9:15", + "src": "2919:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1731,19 +2015,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5432, + "id": 6583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5430, + "id": 6581, "name": "discount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5363, - "src": "2934:8:15", + "referencedDeclaration": 6514, + "src": "2931:8:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1754,14 +2038,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5431, + "id": 6582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2945:1:15", + "src": "2942:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1769,7 +2053,7 @@ }, "value": "0" }, - "src": "2934:12:15", + "src": "2931:12:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1777,24 +2061,24 @@ }, "falseExpression": { "argumentTypes": null, - "id": 5441, + "id": 6592, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "3022:12:15", + "referencedDeclaration": 6524, + "src": "3019:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5442, + "id": 6593, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "2934:100:15", + "src": "2931:100:22", "trueExpression": { "argumentTypes": null, "arguments": [ @@ -1804,7 +2088,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5439, + "id": 6590, "isConstant": false, "isLValue": false, "isPure": false, @@ -1816,32 +2100,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 5435, + "id": 6586, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "2982:7:15", + "referencedDeclaration": 6431, + "src": "2979:7:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5436, + "id": 6587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "2982:11:15", + "referencedDeclaration": 6331, + "src": "2979:11:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5437, + "id": 6588, "isConstant": false, "isLValue": false, "isPure": false, @@ -1849,7 +2133,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2982:13:15", + "src": "2979:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1859,18 +2143,18 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 5438, + "id": 6589, "name": "discount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5363, - "src": "2998:8:15", + "referencedDeclaration": 6514, + "src": "2995:8:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2982:24:15", + "src": "2979:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1886,32 +2170,32 @@ ], "expression": { "argumentTypes": null, - "id": 5433, + "id": 6584, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "2961:12:15", + "referencedDeclaration": 6524, + "src": "2958:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5434, + "id": 6585, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "percent", "nodeType": "MemberAccess", - "referencedDeclaration": 5133, - "src": "2961:20:15", + "referencedDeclaration": 6350, + "src": "2958:20:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5440, + "id": 6591, "isConstant": false, "isLValue": false, "isPure": false, @@ -1919,7 +2203,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2961:46:15", + "src": "2958:46:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1930,20 +2214,20 @@ "typeString": "uint256" } }, - "src": "2922:112:15", + "src": "2919:112:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5444, + "id": 6595, "nodeType": "ExpressionStatement", - "src": "2922:112:15" + "src": "2919:112:22" }, { "expression": { "argumentTypes": null, - "id": 5466, + "id": 6617, "isConstant": false, "isLValue": false, "isPure": false, @@ -1952,29 +2236,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5445, + "id": 6596, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3063:6:15", + "referencedDeclaration": 6535, + "src": "3060:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5447, + "id": 6598, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5446, + "id": 6597, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3070:1:15", + "src": "3067:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1987,7 +2271,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3063:9:15", + "src": "3060:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2006,12 +2290,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5458, + "id": 6609, "name": "bonus", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5418, - "src": "3162:5:15", + "referencedDeclaration": 6569, + "src": "3159:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2032,32 +2316,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 5454, + "id": 6605, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "3144:7:15", + "referencedDeclaration": 6431, + "src": "3141:7:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5455, + "id": 6606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "3144:11:15", + "referencedDeclaration": 6331, + "src": "3141:11:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5456, + "id": 6607, "isConstant": false, "isLValue": false, "isPure": false, @@ -2065,27 +2349,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3144:13:15", + "src": "3141:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5457, + "id": 6608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "3144:17:15", + "referencedDeclaration": 12367, + "src": "3141:17:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5459, + "id": 6610, "isConstant": false, "isLValue": false, "isPure": false, @@ -2093,7 +2377,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3144:24:15", + "src": "3141:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2111,29 +2395,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5450, + "id": 6601, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3122:6:15", + "referencedDeclaration": 6535, + "src": "3119:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5452, + "id": 6603, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5451, + "id": 6602, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3129:1:15", + "src": "3126:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -2146,27 +2430,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3122:9:15", + "src": "3119:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5453, + "id": 6604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "3122:21:15", + "referencedDeclaration": 6368, + "src": "3119:21:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5460, + "id": 6611, "isConstant": false, "isLValue": false, "isPure": false, @@ -2174,7 +2458,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3122:47:15", + "src": "3119:47:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2182,12 +2466,12 @@ }, { "argumentTypes": null, - "id": 5461, + "id": 6612, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5375, - "src": "3183:13:15", + "referencedDeclaration": 6526, + "src": "3180:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2197,29 +2481,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5462, + "id": 6613, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3210:6:15", + "referencedDeclaration": 6535, + "src": "3207:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5464, + "id": 6615, "indexExpression": { "argumentTypes": null, "hexValue": "34", - "id": 5463, + "id": 6614, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3217:1:15", + "src": "3214:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -2232,7 +2516,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3210:9:15", + "src": "3207:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2256,32 +2540,32 @@ ], "expression": { "argumentTypes": null, - "id": 5448, + "id": 6599, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "3075:5:15", + "referencedDeclaration": 8378, + "src": "3072:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5449, + "id": 6600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeReverseConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6205, - "src": "3075:33:15", + "referencedDeclaration": 8258, + "src": "3072:33:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5465, + "id": 6616, "isConstant": false, "isLValue": false, "isPure": false, @@ -2289,21 +2573,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3075:154:15", + "src": "3072:154:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3063:166:15", + "src": "3060:166:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5467, + "id": 6618, "nodeType": "ExpressionStatement", - "src": "3063:166:15" + "src": "3060:166:22" }, { "condition": { @@ -2312,19 +2596,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5472, + "id": 6623, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5468, + "id": 6619, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5379, - "src": "3288:22:15", + "referencedDeclaration": 6530, + "src": "3285:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2336,29 +2620,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5469, + "id": 6620, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3313:6:15", + "referencedDeclaration": 6535, + "src": "3310:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5471, + "id": 6622, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5470, + "id": 6621, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3320:1:15", + "src": "3317:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2371,31 +2655,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3313:9:15", + "src": "3310:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3288:34:15", + "src": "3285:34:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5493, + "id": 6644, "nodeType": "IfStatement", - "src": "3284:263:15", + "src": "3281:263:22", "trueBody": { - "id": 5492, + "id": 6643, "nodeType": "Block", - "src": "3324:223:15", + "src": "3321:223:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 5484, + "id": 6635, "isConstant": false, "isLValue": false, "isPure": false, @@ -2404,29 +2688,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5473, + "id": 6624, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3338:6:15", + "referencedDeclaration": 6535, + "src": "3335:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5475, + "id": 6626, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5474, + "id": 6625, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3345:1:15", + "src": "3342:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -2439,7 +2723,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3338:9:15", + "src": "3335:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2452,12 +2736,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5478, + "id": 6629, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5379, - "src": "3394:22:15", + "referencedDeclaration": 6530, + "src": "3391:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2465,12 +2749,12 @@ }, { "argumentTypes": null, - "id": 5479, + "id": 6630, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5375, - "src": "3434:13:15", + "referencedDeclaration": 6526, + "src": "3431:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2480,29 +2764,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5480, + "id": 6631, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3465:6:15", + "referencedDeclaration": 6535, + "src": "3462:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5482, + "id": 6633, "indexExpression": { "argumentTypes": null, "hexValue": "34", - "id": 5481, + "id": 6632, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3472:1:15", + "src": "3469:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -2515,7 +2799,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3465:9:15", + "src": "3462:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2539,32 +2823,32 @@ ], "expression": { "argumentTypes": null, - "id": 5476, + "id": 6627, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "3350:5:15", + "referencedDeclaration": 8378, + "src": "3347:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5477, + "id": 6628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6169, - "src": "3350:26:15", + "referencedDeclaration": 8222, + "src": "3347:26:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5483, + "id": 6634, "isConstant": false, "isLValue": false, "isPure": false, @@ -2572,26 +2856,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3350:138:15", + "src": "3347:138:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3338:150:15", + "src": "3335:150:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5485, + "id": 6636, "nodeType": "ExpressionStatement", - "src": "3338:150:15" + "src": "3335:150:22" }, { "expression": { "argumentTypes": null, - "id": 5490, + "id": 6641, "isConstant": false, "isLValue": false, "isPure": false, @@ -2600,29 +2884,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5486, + "id": 6637, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3502:6:15", + "referencedDeclaration": 6535, + "src": "3499:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5488, + "id": 6639, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5487, + "id": 6638, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3509:1:15", + "src": "3506:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2635,7 +2919,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3502:9:15", + "src": "3499:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2645,26 +2929,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 5489, + "id": 6640, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5379, - "src": "3514:22:15", + "referencedDeclaration": 6530, + "src": "3511:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3502:34:15", + "src": "3499:34:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5491, + "id": 6642, "nodeType": "ExpressionStatement", - "src": "3502:34:15" + "src": "3499:34:22" } ] } @@ -2672,7 +2956,7 @@ { "expression": { "argumentTypes": null, - "id": 5505, + "id": 6656, "isConstant": false, "isLValue": false, "isPure": false, @@ -2681,29 +2965,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5494, + "id": 6645, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3573:6:15", + "referencedDeclaration": 6535, + "src": "3570:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5496, + "id": 6647, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5495, + "id": 6646, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3580:1:15", + "src": "3577:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -2716,7 +3000,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3573:9:15", + "src": "3570:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2731,29 +3015,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5499, + "id": 6650, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3632:6:15", + "referencedDeclaration": 6535, + "src": "3629:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5501, + "id": 6652, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5500, + "id": 6651, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3639:1:15", + "src": "3636:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -2766,7 +3050,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3632:9:15", + "src": "3629:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2774,12 +3058,12 @@ }, { "argumentTypes": null, - "id": 5502, + "id": 6653, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5377, - "src": "3655:14:15", + "referencedDeclaration": 6528, + "src": "3652:14:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2787,12 +3071,12 @@ }, { "argumentTypes": null, - "id": 5503, + "id": 6654, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5371, - "src": "3683:13:15", + "referencedDeclaration": 6522, + "src": "3680:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2816,32 +3100,32 @@ ], "expression": { "argumentTypes": null, - "id": 5497, + "id": 6648, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "3585:5:15", + "referencedDeclaration": 8378, + "src": "3582:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5498, + "id": 6649, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeReverseConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6205, - "src": "3585:33:15", + "referencedDeclaration": 8258, + "src": "3582:33:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5504, + "id": 6655, "isConstant": false, "isLValue": false, "isPure": false, @@ -2849,21 +3133,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3585:121:15", + "src": "3582:121:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3573:133:15", + "src": "3570:133:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5506, + "id": 6657, "nodeType": "ExpressionStatement", - "src": "3573:133:15" + "src": "3570:133:22" }, { "condition": { @@ -2872,7 +3156,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5517, + "id": 6668, "isConstant": false, "isLValue": false, "isPure": false, @@ -2883,7 +3167,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5511, + "id": 6662, "isConstant": false, "isLValue": false, "isPure": false, @@ -2892,29 +3176,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5507, + "id": 6658, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3754:6:15", + "referencedDeclaration": 6535, + "src": "3751:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5509, + "id": 6660, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5508, + "id": 6659, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3761:1:15", + "src": "3758:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -2927,7 +3211,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3754:9:15", + "src": "3751:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2938,14 +3222,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5510, + "id": 6661, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3767:1:15", + "src": "3764:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2953,7 +3237,7 @@ }, "value": "0" }, - "src": "3754:14:15", + "src": "3751:14:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2967,7 +3251,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5516, + "id": 6667, "isConstant": false, "isLValue": false, "isPure": false, @@ -2976,29 +3260,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5512, + "id": 6663, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3772:6:15", + "referencedDeclaration": 6535, + "src": "3769:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5514, + "id": 6665, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5513, + "id": 6664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3779:1:15", + "src": "3776:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3011,7 +3295,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3772:9:15", + "src": "3769:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3022,14 +3306,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5515, + "id": 6666, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3785:1:15", + "src": "3782:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3037,31 +3321,31 @@ }, "value": "0" }, - "src": "3772:14:15", + "src": "3769:14:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3754:32:15", + "src": "3751:32:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5537, + "id": 6688, "nodeType": "IfStatement", - "src": "3750:130:15", + "src": "3747:130:22", "trueBody": { - "id": 5536, + "id": 6687, "nodeType": "Block", - "src": "3788:92:15", + "src": "3785:92:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 5522, + "id": 6673, "isConstant": false, "isLValue": false, "isPure": false, @@ -3070,29 +3354,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5518, + "id": 6669, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3802:6:15", + "referencedDeclaration": 6535, + "src": "3799:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5520, + "id": 6671, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5519, + "id": 6670, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3809:1:15", + "src": "3806:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3105,7 +3389,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3802:9:15", + "src": "3799:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3116,14 +3400,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5521, + "id": 6672, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3814:1:15", + "src": "3811:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3131,20 +3415,20 @@ }, "value": "0" }, - "src": "3802:13:15", + "src": "3799:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5523, + "id": 6674, "nodeType": "ExpressionStatement", - "src": "3802:13:15" + "src": "3799:13:22" }, { "expression": { "argumentTypes": null, - "id": 5528, + "id": 6679, "isConstant": false, "isLValue": false, "isPure": false, @@ -3153,29 +3437,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5524, + "id": 6675, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3829:6:15", + "referencedDeclaration": 6535, + "src": "3826:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5526, + "id": 6677, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5525, + "id": 6676, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3836:1:15", + "src": "3833:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3188,7 +3472,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3829:9:15", + "src": "3826:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3199,14 +3483,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5527, + "id": 6678, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3841:1:15", + "src": "3838:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3214,20 +3498,20 @@ }, "value": "0" }, - "src": "3829:13:15", + "src": "3826:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5529, + "id": 6680, "nodeType": "ExpressionStatement", - "src": "3829:13:15" + "src": "3826:13:22" }, { "expression": { "argumentTypes": null, - "id": 5534, + "id": 6685, "isConstant": false, "isLValue": false, "isPure": false, @@ -3236,29 +3520,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5530, + "id": 6681, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3856:6:15", + "referencedDeclaration": 6535, + "src": "3853:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5532, + "id": 6683, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5531, + "id": 6682, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3863:1:15", + "src": "3860:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -3271,7 +3555,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3856:9:15", + "src": "3853:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3282,14 +3566,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5533, + "id": 6684, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3868:1:15", + "src": "3865:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3297,15 +3581,15 @@ }, "value": "0" }, - "src": "3856:13:15", + "src": "3853:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5535, + "id": 6686, "nodeType": "ExpressionStatement", - "src": "3856:13:15" + "src": "3853:13:22" } ] } @@ -3313,7 +3597,7 @@ { "expression": { "argumentTypes": null, - "id": 5547, + "id": 6698, "isConstant": false, "isLValue": false, "isPure": false, @@ -3322,29 +3606,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5538, + "id": 6689, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3908:6:15", + "referencedDeclaration": 6535, + "src": "3905:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5540, + "id": 6691, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 5539, + "id": 6690, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3915:1:15", + "src": "3912:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -3357,7 +3641,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3908:9:15", + "src": "3905:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3372,29 +3656,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5543, + "id": 6694, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3938:6:15", + "referencedDeclaration": 6535, + "src": "3935:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5545, + "id": 6696, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5544, + "id": 6695, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3945:1:15", + "src": "3942:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3407,7 +3691,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3938:9:15", + "src": "3935:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3423,32 +3707,32 @@ ], "expression": { "argumentTypes": null, - "id": 5541, + "id": 6692, "name": "paymentAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5361, - "src": "3920:13:15", + "referencedDeclaration": 6512, + "src": "3917:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5542, + "id": 6693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "3920:17:15", + "referencedDeclaration": 12343, + "src": "3917:17:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5546, + "id": 6697, "isConstant": false, "isLValue": false, "isPure": false, @@ -3456,26 +3740,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3920:28:15", + "src": "3917:28:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3908:40:15", + "src": "3905:40:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5548, + "id": 6699, "nodeType": "ExpressionStatement", - "src": "3908:40:15" + "src": "3905:40:22" } ] }, "documentation": "@notice Generate invoice\n@dev 1 USD = 10^8. In this case precision will be up to 10^8 decimals after point\n@param method Payment method\n@param paymentAmount Payment amount\n@param discount Discount percent\n@param volumeBoundaries Volume boundaries to calculate bonus\n@param volumeBonuses List of bonuses bound to boundaries\n@param methodUSDRate Payment method rate in USD\n@param tokenUSDRate Token rate in USD\n@param tokenDecimals Token decimal\n@param methodDecimals Method decimal. N for token, 18 for ETH\n@param currentBalanceInTokens Current balance in tokens\n@return uint[5] result Invoice calculation result:\n * [tokenAmount, cost, costUSD, change, actualTokenPriceUSD]\n * [0] tokenAmount - amount of token to buy\n[1] cost - cost in method currency\n[2] costUSD cost in USD\n[3] change - change in method currency\n[4] actualTokenPriceUSD - actual token price in USD(with discount)", - "id": 5550, + "id": 6701, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3483,16 +3767,16 @@ "name": "invoice", "nodeType": "FunctionDefinition", "parameters": { - "id": 5380, + "id": 6531, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5359, + "id": 6510, "name": "method", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2001:14:15", + "scope": 6701, + "src": "2000:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3500,10 +3784,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5358, + "id": 6509, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2001:7:15", + "src": "2000:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3514,11 +3798,11 @@ }, { "constant": false, - "id": 5361, + "id": 6512, "name": "paymentAmount", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2025:18:15", + "scope": 6701, + "src": "2024:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3526,10 +3810,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5360, + "id": 6511, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2025:4:15", + "src": "2024:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3540,11 +3824,11 @@ }, { "constant": false, - "id": 5363, + "id": 6514, "name": "discount", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2053:13:15", + "scope": 6701, + "src": "2052:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3552,10 +3836,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5362, + "id": 6513, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2053:4:15", + "src": "2052:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3566,11 +3850,11 @@ }, { "constant": false, - "id": 5366, + "id": 6517, "name": "volumeBoundaries", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2076:23:15", + "scope": 6701, + "src": "2075:23:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3579,19 +3863,19 @@ }, "typeName": { "baseType": { - "id": 5364, + "id": 6515, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2076:4:15", + "src": "2075:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5365, + "id": 6516, "length": null, "nodeType": "ArrayTypeName", - "src": "2076:6:15", + "src": "2075:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -3602,11 +3886,11 @@ }, { "constant": false, - "id": 5369, + "id": 6520, "name": "volumeBonuses", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2109:20:15", + "scope": 6701, + "src": "2108:20:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3615,19 +3899,19 @@ }, "typeName": { "baseType": { - "id": 5367, + "id": 6518, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2109:4:15", + "src": "2108:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5368, + "id": 6519, "length": null, "nodeType": "ArrayTypeName", - "src": "2109:6:15", + "src": "2108:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -3638,11 +3922,11 @@ }, { "constant": false, - "id": 5371, + "id": 6522, "name": "methodUSDRate", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2139:18:15", + "scope": 6701, + "src": "2138:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3650,10 +3934,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5370, + "id": 6521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2139:4:15", + "src": "2138:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3664,11 +3948,11 @@ }, { "constant": false, - "id": 5373, + "id": 6524, "name": "tokenUSDRate", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2167:17:15", + "scope": 6701, + "src": "2166:17:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3676,10 +3960,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5372, + "id": 6523, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2167:4:15", + "src": "2166:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3690,11 +3974,11 @@ }, { "constant": false, - "id": 5375, + "id": 6526, "name": "tokenDecimals", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2194:18:15", + "scope": 6701, + "src": "2193:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3702,10 +3986,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5374, + "id": 6525, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2194:4:15", + "src": "2193:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3716,11 +4000,11 @@ }, { "constant": false, - "id": 5377, + "id": 6528, "name": "methodDecimals", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2222:19:15", + "scope": 6701, + "src": "2221:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3728,10 +4012,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5376, + "id": 6527, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2222:4:15", + "src": "2221:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3742,11 +4026,11 @@ }, { "constant": false, - "id": 5379, + "id": 6530, "name": "currentBalanceInTokens", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2251:27:15", + "scope": 6701, + "src": "2250:27:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3754,10 +4038,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5378, + "id": 6529, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2251:4:15", + "src": "2250:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3767,20 +4051,20 @@ "visibility": "internal" } ], - "src": "1991:293:15" + "src": "1990:293:22" }, "payable": false, "returnParameters": { - "id": 5385, + "id": 6536, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5384, + "id": 6535, "name": "result", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2315:14:15", + "scope": 6701, + "src": "2312:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3789,27 +4073,27 @@ }, "typeName": { "baseType": { - "id": 5381, + "id": 6532, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2315:4:15", + "src": "2312:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5383, + "id": 6534, "length": { "argumentTypes": null, "hexValue": "35", - "id": 5382, + "id": 6533, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2320:1:15", + "src": "2317:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -3818,7 +4102,7 @@ "value": "5" }, "nodeType": "ArrayTypeName", - "src": "2315:7:15", + "src": "2312:7:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", "typeString": "uint256[5]" @@ -3828,19 +4112,19 @@ "visibility": "internal" } ], - "src": "2314:16:15" + "src": "2311:16:22" }, - "scope": 6118, - "src": "1975:1980:15", + "scope": 7269, + "src": "1974:1978:22", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5702, + "id": 6853, "nodeType": "Block", - "src": "5339:1219:15", + "src": "5334:1219:22", "statements": [ { "expression": { @@ -3851,12 +4135,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5581, + "id": 6732, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5552, - "src": "5388:6:15", + "referencedDeclaration": 6703, + "src": "5383:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3864,12 +4148,12 @@ }, { "argumentTypes": null, - "id": 5582, + "id": 6733, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5554, - "src": "5408:11:15", + "referencedDeclaration": 6705, + "src": "5403:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3877,12 +4161,12 @@ }, { "argumentTypes": null, - "id": 5583, + "id": 6734, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5564, - "src": "5433:13:15", + "referencedDeclaration": 6715, + "src": "5428:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3890,12 +4174,12 @@ }, { "argumentTypes": null, - "id": 5584, + "id": 6735, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5566, - "src": "5460:12:15", + "referencedDeclaration": 6717, + "src": "5455:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3903,12 +4187,12 @@ }, { "argumentTypes": null, - "id": 5585, + "id": 6736, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5572, - "src": "5486:22:15", + "referencedDeclaration": 6723, + "src": "5481:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3916,12 +4200,12 @@ }, { "argumentTypes": null, - "id": 5586, + "id": 6737, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5568, - "src": "5522:13:15", + "referencedDeclaration": 6719, + "src": "5517:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3929,12 +4213,12 @@ }, { "argumentTypes": null, - "id": 5587, + "id": 6738, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5570, - "src": "5549:14:15", + "referencedDeclaration": 6721, + "src": "5544:14:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3972,18 +4256,18 @@ "typeString": "uint256" } ], - "id": 5580, + "id": 6731, "name": "checkInvoiceInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5357, - "src": "5357:17:15", + "referencedDeclaration": 6508, + "src": "5352:17:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (bytes32,uint256,uint256,uint256,uint256,uint256,uint256) pure returns (bool)" } }, - "id": 5588, + "id": 6739, "isConstant": false, "isLValue": false, "isPure": false, @@ -3991,7 +4275,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5357:216:15", + "src": "5352:216:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4005,21 +4289,21 @@ "typeString": "bool" } ], - "id": 5579, + "id": 6730, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "5349:7:15", + "referencedDeclaration": 13444, + "src": "5344:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5589, + "id": 6740, "isConstant": false, "isLValue": false, "isPure": false, @@ -4027,15 +4311,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5349:225:15", + "src": "5344:225:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5590, + "id": 6741, "nodeType": "ExpressionStatement", - "src": "5349:225:15" + "src": "5344:225:22" }, { "condition": { @@ -4044,19 +4328,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5593, + "id": 6744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5591, + "id": 6742, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5572, - "src": "5589:22:15", + "referencedDeclaration": 6723, + "src": "5584:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4066,48 +4350,48 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 5592, + "id": 6743, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5554, - "src": "5614:11:15", + "referencedDeclaration": 6705, + "src": "5609:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5589:36:15", + "src": "5584:36:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5599, + "id": 6750, "nodeType": "IfStatement", - "src": "5585:103:15", + "src": "5580:103:22", "trueBody": { - "id": 5598, + "id": 6749, "nodeType": "Block", - "src": "5627:61:15", + "src": "5622:61:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 5596, + "id": 6747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5594, + "id": 6745, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5554, - "src": "5641:11:15", + "referencedDeclaration": 6705, + "src": "5636:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4117,26 +4401,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 5595, + "id": 6746, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5572, - "src": "5655:22:15", + "referencedDeclaration": 6723, + "src": "5650:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5641:36:15", + "src": "5636:36:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5597, + "id": 6748, "nodeType": "ExpressionStatement", - "src": "5641:36:15" + "src": "5636:36:22" } ] } @@ -4144,7 +4428,7 @@ { "expression": { "argumentTypes": null, - "id": 5604, + "id": 6755, "isConstant": false, "isLValue": false, "isPure": false, @@ -4153,29 +4437,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5600, + "id": 6751, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "5716:6:15", + "referencedDeclaration": 6728, + "src": "5711:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5602, + "id": 6753, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5601, + "id": 6752, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5723:1:15", + "src": "5718:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4188,7 +4472,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5716:9:15", + "src": "5711:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4198,31 +4482,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 5603, + "id": 6754, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5554, - "src": "5728:11:15", + "referencedDeclaration": 6705, + "src": "5723:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5716:23:15", + "src": "5711:23:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5605, + "id": 6756, "nodeType": "ExpressionStatement", - "src": "5716:23:15" + "src": "5711:23:22" }, { "expression": { "argumentTypes": null, - "id": 5622, + "id": 6773, "isConstant": false, "isLValue": false, "isPure": false, @@ -4231,29 +4515,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5606, + "id": 6757, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "5770:6:15", + "referencedDeclaration": 6728, + "src": "5765:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5608, + "id": 6759, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 5607, + "id": 6758, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5777:1:15", + "src": "5772:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -4266,7 +4550,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5770:9:15", + "src": "5765:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4282,19 +4566,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5611, + "id": 6762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5609, + "id": 6760, "name": "discount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5556, - "src": "5782:8:15", + "referencedDeclaration": 6707, + "src": "5777:8:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4305,14 +4589,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5610, + "id": 6761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5793:1:15", + "src": "5788:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4320,7 +4604,7 @@ }, "value": "0" }, - "src": "5782:12:15", + "src": "5777:12:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4328,24 +4612,24 @@ }, "falseExpression": { "argumentTypes": null, - "id": 5620, + "id": 6771, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5566, - "src": "5870:12:15", + "referencedDeclaration": 6717, + "src": "5865:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5621, + "id": 6772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "5782:100:15", + "src": "5777:100:22", "trueExpression": { "argumentTypes": null, "arguments": [ @@ -4355,7 +4639,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5618, + "id": 6769, "isConstant": false, "isLValue": false, "isPure": false, @@ -4367,32 +4651,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 5614, + "id": 6765, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "5830:7:15", + "referencedDeclaration": 6431, + "src": "5825:7:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5615, + "id": 6766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "5830:11:15", + "referencedDeclaration": 6331, + "src": "5825:11:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5616, + "id": 6767, "isConstant": false, "isLValue": false, "isPure": false, @@ -4400,7 +4684,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5830:13:15", + "src": "5825:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4410,18 +4694,18 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 5617, + "id": 6768, "name": "discount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5556, - "src": "5846:8:15", + "referencedDeclaration": 6707, + "src": "5841:8:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5830:24:15", + "src": "5825:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4437,32 +4721,32 @@ ], "expression": { "argumentTypes": null, - "id": 5612, + "id": 6763, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5566, - "src": "5809:12:15", + "referencedDeclaration": 6717, + "src": "5804:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5613, + "id": 6764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "percent", "nodeType": "MemberAccess", - "referencedDeclaration": 5133, - "src": "5809:20:15", + "referencedDeclaration": 6350, + "src": "5804:20:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5619, + "id": 6770, "isConstant": false, "isLValue": false, "isPure": false, @@ -4470,7 +4754,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5809:46:15", + "src": "5804:46:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4481,20 +4765,20 @@ "typeString": "uint256" } }, - "src": "5770:112:15", + "src": "5765:112:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5623, + "id": 6774, "nodeType": "ExpressionStatement", - "src": "5770:112:15" + "src": "5765:112:22" }, { "expression": { "argumentTypes": null, - "id": 5635, + "id": 6786, "isConstant": false, "isLValue": false, "isPure": false, @@ -4503,29 +4787,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5624, + "id": 6775, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "5912:6:15", + "referencedDeclaration": 6728, + "src": "5907:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5626, + "id": 6777, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5625, + "id": 6776, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5919:1:15", + "src": "5914:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -4538,7 +4822,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5912:9:15", + "src": "5907:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4551,12 +4835,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5629, + "id": 6780, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5554, - "src": "5964:11:15", + "referencedDeclaration": 6705, + "src": "5959:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4564,12 +4848,12 @@ }, { "argumentTypes": null, - "id": 5630, + "id": 6781, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5568, - "src": "5989:13:15", + "referencedDeclaration": 6719, + "src": "5984:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4579,29 +4863,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5631, + "id": 6782, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6016:6:15", + "referencedDeclaration": 6728, + "src": "6011:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5633, + "id": 6784, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 5632, + "id": 6783, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6023:1:15", + "src": "6018:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -4614,7 +4898,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6016:9:15", + "src": "6011:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4638,32 +4922,32 @@ ], "expression": { "argumentTypes": null, - "id": 5627, + "id": 6778, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "5924:5:15", + "referencedDeclaration": 8378, + "src": "5919:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5628, + "id": 6779, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6169, - "src": "5924:26:15", + "referencedDeclaration": 8222, + "src": "5919:26:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5634, + "id": 6785, "isConstant": false, "isLValue": false, "isPure": false, @@ -4671,21 +4955,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5924:111:15", + "src": "5919:111:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5912:123:15", + "src": "5907:123:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5636, + "id": 6787, "nodeType": "ExpressionStatement", - "src": "5912:123:15" + "src": "5907:123:22" }, { "expression": { @@ -4697,7 +4981,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5642, + "id": 6793, "isConstant": false, "isLValue": false, "isPure": false, @@ -4706,29 +4990,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5638, + "id": 6789, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6092:6:15", + "referencedDeclaration": 6728, + "src": "6087:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5640, + "id": 6791, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5639, + "id": 6790, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6099:1:15", + "src": "6094:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -4741,7 +5025,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6092:9:15", + "src": "6087:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4751,18 +5035,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 5641, + "id": 6792, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5566, - "src": "6105:12:15", + "referencedDeclaration": 6717, + "src": "6100:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6092:25:15", + "src": "6087:25:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4776,21 +5060,21 @@ "typeString": "bool" } ], - "id": 5637, + "id": 6788, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "6084:7:15", + "referencedDeclaration": 13444, + "src": "6079:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5643, + "id": 6794, "isConstant": false, "isLValue": false, "isPure": false, @@ -4798,28 +5082,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6084:34:15", + "src": "6079:34:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5644, + "id": 6795, "nodeType": "ExpressionStatement", - "src": "6084:34:15" + "src": "6079:34:22" }, { "assignments": [ - 5646 + 6797 ], "declarations": [ { "constant": false, - "id": 5646, + "id": 6797, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "6129:10:15", + "scope": 6854, + "src": "6124:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4827,10 +5111,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5645, + "id": 6796, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6129:4:15", + "src": "6124:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4840,7 +5124,7 @@ "visibility": "internal" } ], - "id": 5654, + "id": 6805, "initialValue": { "argumentTypes": null, "arguments": [ @@ -4848,29 +5132,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5648, + "id": 6799, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6151:6:15", + "referencedDeclaration": 6728, + "src": "6146:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5650, + "id": 6801, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5649, + "id": 6800, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6158:1:15", + "src": "6153:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -4883,7 +5167,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6151:9:15", + "src": "6146:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4891,12 +5175,12 @@ }, { "argumentTypes": null, - "id": 5651, + "id": 6802, "name": "volumeBoundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5559, - "src": "6162:16:15", + "referencedDeclaration": 6710, + "src": "6157:16:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -4904,12 +5188,12 @@ }, { "argumentTypes": null, - "id": 5652, + "id": 6803, "name": "volumeBonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5562, - "src": "6180:13:15", + "referencedDeclaration": 6713, + "src": "6175:13:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -4931,18 +5215,18 @@ "typeString": "uint256[] memory" } ], - "id": 5647, + "id": 6798, "name": "getBonus", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6117, - "src": "6142:8:15", + "referencedDeclaration": 7268, + "src": "6137:8:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,uint256[] memory,uint256[] memory) view returns (uint256)" } }, - "id": 5653, + "id": 6804, "isConstant": false, "isLValue": false, "isPure": false, @@ -4950,19 +5234,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6142:52:15", + "src": "6137:52:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6129:65:15" + "src": "6124:65:22" }, { "expression": { "argumentTypes": null, - "id": 5674, + "id": 6825, "isConstant": false, "isLValue": false, "isPure": false, @@ -4971,29 +5255,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5655, + "id": 6806, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6205:6:15", + "referencedDeclaration": 6728, + "src": "6200:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5657, + "id": 6808, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5656, + "id": 6807, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6212:1:15", + "src": "6207:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5006,7 +5290,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6205:9:15", + "src": "6200:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5021,29 +5305,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5660, + "id": 6811, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6264:6:15", + "referencedDeclaration": 6728, + "src": "6259:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5662, + "id": 6813, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5661, + "id": 6812, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6271:1:15", + "src": "6266:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -5056,7 +5340,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6264:9:15", + "src": "6259:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5064,12 +5348,12 @@ }, { "argumentTypes": null, - "id": 5663, + "id": 6814, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5570, - "src": "6287:14:15", + "referencedDeclaration": 6721, + "src": "6282:14:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5083,12 +5367,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5670, + "id": 6821, "name": "bonus", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5646, - "src": "6359:5:15", + "referencedDeclaration": 6797, + "src": "6354:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5109,32 +5393,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 5666, + "id": 6817, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "6341:7:15", + "referencedDeclaration": 6431, + "src": "6336:7:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5667, + "id": 6818, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "6341:11:15", + "referencedDeclaration": 6331, + "src": "6336:11:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5668, + "id": 6819, "isConstant": false, "isLValue": false, "isPure": false, @@ -5142,27 +5426,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6341:13:15", + "src": "6336:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5669, + "id": 6820, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6341:17:15", + "referencedDeclaration": 12367, + "src": "6336:17:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5671, + "id": 6822, "isConstant": false, "isLValue": false, "isPure": false, @@ -5170,7 +5454,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6341:24:15", + "src": "6336:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5186,32 +5470,32 @@ ], "expression": { "argumentTypes": null, - "id": 5664, + "id": 6815, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5564, - "src": "6315:13:15", + "referencedDeclaration": 6715, + "src": "6310:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5665, + "id": 6816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "6315:25:15", + "referencedDeclaration": 6368, + "src": "6310:25:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5672, + "id": 6823, "isConstant": false, "isLValue": false, "isPure": false, @@ -5219,7 +5503,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6315:51:15", + "src": "6310:51:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5243,32 +5527,32 @@ ], "expression": { "argumentTypes": null, - "id": 5658, + "id": 6809, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "6217:5:15", + "referencedDeclaration": 8378, + "src": "6212:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5659, + "id": 6810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeReverseConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6205, - "src": "6217:33:15", + "referencedDeclaration": 8258, + "src": "6212:33:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5673, + "id": 6824, "isConstant": false, "isLValue": false, "isPure": false, @@ -5276,21 +5560,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6217:159:15", + "src": "6212:159:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6205:171:15", + "src": "6200:171:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5675, + "id": 6826, "nodeType": "ExpressionStatement", - "src": "6205:171:15" + "src": "6200:171:22" }, { "condition": { @@ -5299,7 +5583,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5680, + "id": 6831, "isConstant": false, "isLValue": false, "isPure": false, @@ -5308,29 +5592,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5676, + "id": 6827, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6424:6:15", + "referencedDeclaration": 6728, + "src": "6419:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5678, + "id": 6829, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5677, + "id": 6828, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6431:1:15", + "src": "6426:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5343,7 +5627,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6424:9:15", + "src": "6419:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5354,14 +5638,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5679, + "id": 6830, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6437:1:15", + "src": "6432:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5369,25 +5653,25 @@ }, "value": "0" }, - "src": "6424:14:15", + "src": "6419:14:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5701, + "id": 6852, "nodeType": "IfStatement", - "src": "6420:132:15", + "src": "6415:132:22", "trueBody": { - "id": 5700, + "id": 6851, "nodeType": "Block", - "src": "6440:112:15", + "src": "6435:112:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 5685, + "id": 6836, "isConstant": false, "isLValue": false, "isPure": false, @@ -5396,29 +5680,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5681, + "id": 6832, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6454:6:15", + "referencedDeclaration": 6728, + "src": "6449:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5683, + "id": 6834, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5682, + "id": 6833, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6461:1:15", + "src": "6456:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5431,7 +5715,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6454:9:15", + "src": "6449:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5442,14 +5726,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5684, + "id": 6835, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6466:1:15", + "src": "6461:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5457,20 +5741,20 @@ }, "value": "0" }, - "src": "6454:13:15", + "src": "6449:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5686, + "id": 6837, "nodeType": "ExpressionStatement", - "src": "6454:13:15" + "src": "6449:13:22" }, { "expression": { "argumentTypes": null, - "id": 5691, + "id": 6842, "isConstant": false, "isLValue": false, "isPure": false, @@ -5479,29 +5763,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5687, + "id": 6838, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6481:6:15", + "referencedDeclaration": 6728, + "src": "6476:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5689, + "id": 6840, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5688, + "id": 6839, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6488:1:15", + "src": "6483:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5514,7 +5798,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6481:9:15", + "src": "6476:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5525,14 +5809,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5690, + "id": 6841, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6493:1:15", + "src": "6488:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5540,20 +5824,20 @@ }, "value": "0" }, - "src": "6481:13:15", + "src": "6476:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5692, + "id": 6843, "nodeType": "ExpressionStatement", - "src": "6481:13:15" + "src": "6476:13:22" }, { "expression": { "argumentTypes": null, - "id": 5697, + "id": 6848, "isConstant": false, "isLValue": false, "isPure": false, @@ -5562,29 +5846,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5693, + "id": 6844, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6508:6:15", + "referencedDeclaration": 6728, + "src": "6503:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5695, + "id": 6846, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5694, + "id": 6845, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6515:1:15", + "src": "6510:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -5597,7 +5881,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6508:9:15", + "src": "6503:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5608,14 +5892,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5696, + "id": 6847, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6520:1:15", + "src": "6515:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5623,22 +5907,22 @@ }, "value": "0" }, - "src": "6508:13:15", + "src": "6503:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5698, + "id": 6849, "nodeType": "ExpressionStatement", - "src": "6508:13:15" + "src": "6503:13:22" }, { "expression": null, - "functionReturnParameters": 5578, - "id": 5699, + "functionReturnParameters": 6729, + "id": 6850, "nodeType": "Return", - "src": "6535:7:15" + "src": "6530:7:22" } ] } @@ -5646,7 +5930,7 @@ ] }, "documentation": "@notice Generate invoice by token amount\n@dev 1 USD = 10^8. In this case precision will be up to 10^8 decimals after point\n@param method Payment method\n@param tokenAmount Token amount\n@param discount Discount percent\n@param volumeBoundaries Volume boundaries to calculate bonus\n@param volumeBonuses List of bonuses bound to boundaries\n@param methodUSDRate Payment method rate in USD\n@param tokenUSDRate Token rate in USD\n@param tokenDecimals Token decimal\n@param methodDecimals Method decimal. N for token, 18 for ETH\n@param currentBalanceInTokens Current balance in tokens\n@return uint[4] result Invoice calculation result:\n * [tokenAmount, cost, costUSD, change, actualTokenPriceUSD]\n * [0] tokenAmount - amount of token to buy\n[1] cost - cost in method currency\n[2] costUSD cost in USD\n[3] actualTokenPriceUSD - actual token price in USD(with discount)", - "id": 5703, + "id": 6854, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5654,16 +5938,16 @@ "name": "invoiceByTokenAmount", "nodeType": "FunctionDefinition", "parameters": { - "id": 5573, + "id": 6724, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5552, + "id": 6703, "name": "method", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5006:14:15", + "scope": 6854, + "src": "5003:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5671,10 +5955,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5551, + "id": 6702, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5006:7:15", + "src": "5003:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5685,11 +5969,11 @@ }, { "constant": false, - "id": 5554, + "id": 6705, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5030:16:15", + "scope": 6854, + "src": "5027:16:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5697,10 +5981,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5553, + "id": 6704, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5030:4:15", + "src": "5027:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5711,11 +5995,11 @@ }, { "constant": false, - "id": 5556, + "id": 6707, "name": "discount", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5056:13:15", + "scope": 6854, + "src": "5053:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5723,10 +6007,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5555, + "id": 6706, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5056:4:15", + "src": "5053:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5737,11 +6021,11 @@ }, { "constant": false, - "id": 5559, + "id": 6710, "name": "volumeBoundaries", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5079:23:15", + "scope": 6854, + "src": "5076:23:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5750,19 +6034,19 @@ }, "typeName": { "baseType": { - "id": 5557, + "id": 6708, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5079:4:15", + "src": "5076:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5558, + "id": 6709, "length": null, "nodeType": "ArrayTypeName", - "src": "5079:6:15", + "src": "5076:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -5773,11 +6057,11 @@ }, { "constant": false, - "id": 5562, + "id": 6713, "name": "volumeBonuses", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5112:20:15", + "scope": 6854, + "src": "5109:20:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5786,19 +6070,19 @@ }, "typeName": { "baseType": { - "id": 5560, + "id": 6711, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5112:4:15", + "src": "5109:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5561, + "id": 6712, "length": null, "nodeType": "ArrayTypeName", - "src": "5112:6:15", + "src": "5109:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -5809,11 +6093,11 @@ }, { "constant": false, - "id": 5564, + "id": 6715, "name": "methodUSDRate", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5142:18:15", + "scope": 6854, + "src": "5139:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5821,10 +6105,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5563, + "id": 6714, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5142:4:15", + "src": "5139:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5835,11 +6119,11 @@ }, { "constant": false, - "id": 5566, + "id": 6717, "name": "tokenUSDRate", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5170:17:15", + "scope": 6854, + "src": "5167:17:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5847,10 +6131,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5565, + "id": 6716, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5170:4:15", + "src": "5167:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5861,11 +6145,11 @@ }, { "constant": false, - "id": 5568, + "id": 6719, "name": "tokenDecimals", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5197:18:15", + "scope": 6854, + "src": "5194:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5873,10 +6157,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5567, + "id": 6718, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5197:4:15", + "src": "5194:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5887,11 +6171,11 @@ }, { "constant": false, - "id": 5570, + "id": 6721, "name": "methodDecimals", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5225:19:15", + "scope": 6854, + "src": "5222:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5899,10 +6183,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5569, + "id": 6720, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5225:4:15", + "src": "5222:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5913,11 +6197,11 @@ }, { "constant": false, - "id": 5572, + "id": 6723, "name": "currentBalanceInTokens", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5254:27:15", + "scope": 6854, + "src": "5251:27:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5925,10 +6209,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5571, + "id": 6722, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5254:4:15", + "src": "5251:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5938,20 +6222,20 @@ "visibility": "internal" } ], - "src": "4996:291:15" + "src": "4993:291:22" }, "payable": false, "returnParameters": { - "id": 5578, + "id": 6729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5577, + "id": 6728, "name": "result", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5319:14:15", + "scope": 6854, + "src": "5314:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5960,27 +6244,27 @@ }, "typeName": { "baseType": { - "id": 5574, + "id": 6725, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5319:4:15", + "src": "5314:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5576, + "id": 6727, "length": { "argumentTypes": null, "hexValue": "34", - "id": 5575, + "id": 6726, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5324:1:15", + "src": "5319:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -5989,7 +6273,7 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "5319:7:15", + "src": "5314:7:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" @@ -5999,19 +6283,19 @@ "visibility": "internal" } ], - "src": "5318:16:15" + "src": "5313:16:22" }, - "scope": 6118, - "src": "4967:1591:15", + "scope": 7269, + "src": "4964:1589:22", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5744, + "id": 6895, "nodeType": "Block", - "src": "6677:152:15", + "src": "6670:152:22", "statements": [ { "condition": { @@ -6020,19 +6304,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5720, + "id": 6871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5718, + "id": 6869, "name": "tokenFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5709, - "src": "6691:8:15", + "referencedDeclaration": 6860, + "src": "6684:8:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6043,14 +6327,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5719, + "id": 6870, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6702:1:15", + "src": "6695:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6058,20 +6342,20 @@ }, "value": "0" }, - "src": "6691:12:15", + "src": "6684:12:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5730, + "id": 6881, "nodeType": "IfStatement", - "src": "6687:63:15", + "src": "6680:63:22", "trueBody": { "expression": { "argumentTypes": null, - "id": 5728, + "id": 6879, "isConstant": false, "isLValue": false, "isPure": false, @@ -6080,29 +6364,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5721, + "id": 6872, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "6705:6:15", + "referencedDeclaration": 6867, + "src": "6698:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5723, + "id": 6874, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5722, + "id": 6873, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6712:1:15", + "src": "6705:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6115,7 +6399,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6705:9:15", + "src": "6698:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6128,12 +6412,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5726, + "id": 6877, "name": "tokenFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5709, - "src": "6741:8:15", + "referencedDeclaration": 6860, + "src": "6734:8:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6149,32 +6433,32 @@ ], "expression": { "argumentTypes": null, - "id": 5724, + "id": 6875, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5705, - "src": "6717:11:15", + "referencedDeclaration": 6856, + "src": "6710:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5725, + "id": 6876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "6717:23:15", + "referencedDeclaration": 6368, + "src": "6710:23:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5727, + "id": 6878, "isConstant": false, "isLValue": false, "isPure": false, @@ -6182,21 +6466,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6717:33:15", + "src": "6710:33:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6705:45:15", + "src": "6698:45:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5729, + "id": 6880, "nodeType": "ExpressionStatement", - "src": "6705:45:15" + "src": "6698:45:22" } }, { @@ -6206,19 +6490,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5733, + "id": 6884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5731, + "id": 6882, "name": "purchaseFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5711, - "src": "6764:11:15", + "referencedDeclaration": 6862, + "src": "6757:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6229,14 +6513,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5732, + "id": 6883, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6778:1:15", + "src": "6771:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6244,20 +6528,20 @@ }, "value": "0" }, - "src": "6764:15:15", + "src": "6757:15:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5743, + "id": 6894, "nodeType": "IfStatement", - "src": "6760:62:15", + "src": "6753:62:22", "trueBody": { "expression": { "argumentTypes": null, - "id": 5741, + "id": 6892, "isConstant": false, "isLValue": false, "isPure": false, @@ -6266,29 +6550,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5734, + "id": 6885, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "6781:6:15", + "referencedDeclaration": 6867, + "src": "6774:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5736, + "id": 6887, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5735, + "id": 6886, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6788:1:15", + "src": "6781:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6301,7 +6585,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6781:9:15", + "src": "6774:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6314,12 +6598,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5739, + "id": 6890, "name": "purchaseFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5711, - "src": "6810:11:15", + "referencedDeclaration": 6862, + "src": "6803:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6335,32 +6619,32 @@ ], "expression": { "argumentTypes": null, - "id": 5737, + "id": 6888, "name": "cost", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5707, - "src": "6793:4:15", + "referencedDeclaration": 6858, + "src": "6786:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5738, + "id": 6889, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "6793:16:15", + "referencedDeclaration": 6368, + "src": "6786:16:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5740, + "id": 6891, "isConstant": false, "isLValue": false, "isPure": false, @@ -6368,27 +6652,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6793:29:15", + "src": "6786:29:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6781:41:15", + "src": "6774:41:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5742, + "id": 6893, "nodeType": "ExpressionStatement", - "src": "6781:41:15" + "src": "6774:41:22" } } ] }, "documentation": null, - "id": 5745, + "id": 6896, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6396,16 +6680,16 @@ "name": "fee", "nodeType": "FunctionDefinition", "parameters": { - "id": 5712, + "id": 6863, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5705, + "id": 6856, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 5745, - "src": "6577:16:15", + "scope": 6896, + "src": "6572:16:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6413,10 +6697,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5704, + "id": 6855, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6577:4:15", + "src": "6572:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6427,11 +6711,11 @@ }, { "constant": false, - "id": 5707, + "id": 6858, "name": "cost", "nodeType": "VariableDeclaration", - "scope": 5745, - "src": "6595:9:15", + "scope": 6896, + "src": "6590:9:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6439,10 +6723,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5706, + "id": 6857, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6595:4:15", + "src": "6590:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6453,11 +6737,11 @@ }, { "constant": false, - "id": 5709, + "id": 6860, "name": "tokenFee", "nodeType": "VariableDeclaration", - "scope": 5745, - "src": "6606:13:15", + "scope": 6896, + "src": "6601:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6465,10 +6749,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5708, + "id": 6859, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6606:4:15", + "src": "6601:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6479,11 +6763,11 @@ }, { "constant": false, - "id": 5711, + "id": 6862, "name": "purchaseFee", "nodeType": "VariableDeclaration", - "scope": 5745, - "src": "6621:16:15", + "scope": 6896, + "src": "6616:16:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6491,10 +6775,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5710, + "id": 6861, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6621:4:15", + "src": "6616:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6504,20 +6788,20 @@ "visibility": "internal" } ], - "src": "6576:62:15" + "src": "6571:62:22" }, "payable": false, "returnParameters": { - "id": 5717, + "id": 6868, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5716, + "id": 6867, "name": "result", "nodeType": "VariableDeclaration", - "scope": 5745, - "src": "6661:14:15", + "scope": 6896, + "src": "6654:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6526,27 +6810,27 @@ }, "typeName": { "baseType": { - "id": 5713, + "id": 6864, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6661:4:15", + "src": "6654:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5715, + "id": 6866, "length": { "argumentTypes": null, "hexValue": "32", - "id": 5714, + "id": 6865, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6666:1:15", + "src": "6659:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -6555,7 +6839,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "6661:7:15", + "src": "6654:7:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -6565,19 +6849,19 @@ "visibility": "internal" } ], - "src": "6660:16:15" + "src": "6653:16:22" }, - "scope": 6118, - "src": "6564:265:15", + "scope": 7269, + "src": "6559:263:22", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5901, + "id": 7052, "nodeType": "Block", - "src": "7056:831:15", + "src": "7047:835:22", "statements": [ { "expression": { @@ -6589,19 +6873,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5769, + "id": 6920, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5765, + "id": 6916, "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5757, - "src": "7074:11:15", + "referencedDeclaration": 6908, + "src": "7065:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6615,14 +6899,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5767, + "id": 6918, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7097:1:15", + "src": "7088:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6638,20 +6922,20 @@ "typeString": "int_const 0" } ], - "id": 5766, + "id": 6917, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7089:7:15", + "src": "7080:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5768, + "id": 6919, "isConstant": false, "isLValue": false, "isPure": true, @@ -6659,13 +6943,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7089:10:15", + "src": "7080:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7074:25:15", + "src": "7065:25:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6679,21 +6963,21 @@ "typeString": "bool" } ], - "id": 5764, + "id": 6915, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7066:7:15", + "referencedDeclaration": 13444, + "src": "7057:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5770, + "id": 6921, "isConstant": false, "isLValue": false, "isPure": false, @@ -6701,15 +6985,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7066:34:15", + "src": "7057:34:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5771, + "id": 6922, "nodeType": "ExpressionStatement", - "src": "7066:34:15" + "src": "7057:34:22" }, { "expression": { @@ -6721,19 +7005,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5777, + "id": 6928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5773, + "id": 6924, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5755, - "src": "7118:5:15", + "referencedDeclaration": 6906, + "src": "7109:5:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6747,14 +7031,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5775, + "id": 6926, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7135:1:15", + "src": "7126:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6770,20 +7054,20 @@ "typeString": "int_const 0" } ], - "id": 5774, + "id": 6925, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7127:7:15", + "src": "7118:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5776, + "id": 6927, "isConstant": false, "isLValue": false, "isPure": true, @@ -6791,13 +7075,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7127:10:15", + "src": "7118:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7118:19:15", + "src": "7109:19:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6811,21 +7095,21 @@ "typeString": "bool" } ], - "id": 5772, + "id": 6923, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7110:7:15", + "referencedDeclaration": 13444, + "src": "7101:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5778, + "id": 6929, "isConstant": false, "isLValue": false, "isPure": false, @@ -6833,15 +7117,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7110:28:15", + "src": "7101:28:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5779, + "id": 6930, "nodeType": "ExpressionStatement", - "src": "7110:28:15" + "src": "7101:28:22" }, { "expression": { @@ -6853,19 +7137,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5785, + "id": 6936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5781, + "id": 6932, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5759, - "src": "7156:9:15", + "referencedDeclaration": 6910, + "src": "7147:9:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6879,14 +7163,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5783, + "id": 6934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7177:1:15", + "src": "7168:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6902,20 +7186,20 @@ "typeString": "int_const 0" } ], - "id": 5782, + "id": 6933, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7169:7:15", + "src": "7160:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5784, + "id": 6935, "isConstant": false, "isLValue": false, "isPure": true, @@ -6923,13 +7207,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7169:10:15", + "src": "7160:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7156:23:15", + "src": "7147:23:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6943,21 +7227,21 @@ "typeString": "bool" } ], - "id": 5780, + "id": 6931, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7148:7:15", + "referencedDeclaration": 13444, + "src": "7139:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5786, + "id": 6937, "isConstant": false, "isLValue": false, "isPure": false, @@ -6965,15 +7249,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7148:32:15", + "src": "7139:32:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5787, + "id": 6938, "nodeType": "ExpressionStatement", - "src": "7148:32:15" + "src": "7139:32:22" }, { "expression": { @@ -6985,19 +7269,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5793, + "id": 6944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5789, + "id": 6940, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5761, - "src": "7198:13:15", + "referencedDeclaration": 6912, + "src": "7189:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7011,14 +7295,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5791, + "id": 6942, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7223:1:15", + "src": "7214:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7034,20 +7318,20 @@ "typeString": "int_const 0" } ], - "id": 5790, + "id": 6941, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7215:7:15", + "src": "7206:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5792, + "id": 6943, "isConstant": false, "isLValue": false, "isPure": true, @@ -7055,13 +7339,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7215:10:15", + "src": "7206:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7198:27:15", + "src": "7189:27:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7075,21 +7359,21 @@ "typeString": "bool" } ], - "id": 5788, + "id": 6939, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7190:7:15", + "referencedDeclaration": 13444, + "src": "7181:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5794, + "id": 6945, "isConstant": false, "isLValue": false, "isPure": false, @@ -7097,15 +7381,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7190:36:15", + "src": "7181:36:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5795, + "id": 6946, "nodeType": "ExpressionStatement", - "src": "7190:36:15" + "src": "7181:36:22" }, { "condition": { @@ -7114,7 +7398,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5805, + "id": 6956, "isConstant": false, "isLValue": false, "isPure": false, @@ -7125,7 +7409,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5800, + "id": 6951, "isConstant": false, "isLValue": false, "isPure": false, @@ -7134,29 +7418,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5796, + "id": 6947, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7241:4:15", + "referencedDeclaration": 6900, + "src": "7232:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5798, + "id": 6949, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5797, + "id": 6948, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7246:1:15", + "src": "7237:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -7169,7 +7453,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7241:7:15", + "src": "7232:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7180,14 +7464,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5799, + "id": 6950, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7251:1:15", + "src": "7242:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7195,7 +7479,7 @@ }, "value": "0" }, - "src": "7241:11:15", + "src": "7232:11:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7209,19 +7493,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 5804, + "id": 6955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5801, + "id": 6952, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5751, - "src": "7256:6:15", + "referencedDeclaration": 6902, + "src": "7247:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7234,18 +7518,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5802, + "id": 6953, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5303, - "src": "7266:10:15", + "referencedDeclaration": 6454, + "src": "7257:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 5803, + "id": 6954, "isConstant": false, "isLValue": false, "isPure": false, @@ -7253,32 +7537,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7266:12:15", + "src": "7257:12:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7256:22:15", + "src": "7247:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "7241:37:15", + "src": "7232:37:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5815, + "id": 6966, "nodeType": "IfStatement", - "src": "7237:102:15", + "src": "7228:102:22", "trueBody": { - "id": 5814, + "id": 6965, "nodeType": "Block", - "src": "7280:59:15", + "src": "7271:59:22", "statements": [ { "expression": { @@ -7290,19 +7574,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5811, + "id": 6962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5807, + "id": 6958, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5753, - "src": "7302:11:15", + "referencedDeclaration": 6904, + "src": "7293:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7316,14 +7600,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5809, + "id": 6960, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7325:1:15", + "src": "7316:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7339,20 +7623,20 @@ "typeString": "int_const 0" } ], - "id": 5808, + "id": 6959, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7317:7:15", + "src": "7308:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5810, + "id": 6961, "isConstant": false, "isLValue": false, "isPure": true, @@ -7360,13 +7644,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7317:10:15", + "src": "7308:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7302:25:15", + "src": "7293:25:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7380,21 +7664,21 @@ "typeString": "bool" } ], - "id": 5806, + "id": 6957, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7294:7:15", + "referencedDeclaration": 13444, + "src": "7285:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5812, + "id": 6963, "isConstant": false, "isLValue": false, "isPure": false, @@ -7402,15 +7686,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7294:34:15", + "src": "7285:34:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5813, + "id": 6964, "nodeType": "ExpressionStatement", - "src": "7294:34:15" + "src": "7285:34:22" } ] } @@ -7422,7 +7706,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5820, + "id": 6971, "isConstant": false, "isLValue": false, "isPure": false, @@ -7431,29 +7715,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5816, + "id": 6967, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7353:4:15", + "referencedDeclaration": 6900, + "src": "7344:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5818, + "id": 6969, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5817, + "id": 6968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7358:1:15", + "src": "7349:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7466,7 +7750,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7353:7:15", + "src": "7344:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7477,14 +7761,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5819, + "id": 6970, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7363:1:15", + "src": "7354:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7492,20 +7776,20 @@ }, "value": "0" }, - "src": "7353:11:15", + "src": "7344:11:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5847, + "id": 6998, "nodeType": "IfStatement", - "src": "7349:181:15", + "src": "7340:183:22", "trueBody": { - "id": 5846, + "id": 6997, "nodeType": "Block", - "src": "7366:164:15", + "src": "7357:166:22", "statements": [ { "expression": { @@ -7516,12 +7800,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5826, + "id": 6977, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5759, - "src": "7420:9:15", + "referencedDeclaration": 6910, + "src": "7412:9:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7529,12 +7813,12 @@ }, { "argumentTypes": null, - "id": 5827, + "id": 6978, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5761, - "src": "7431:13:15", + "referencedDeclaration": 6912, + "src": "7423:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7544,29 +7828,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5828, + "id": 6979, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7446:4:15", + "referencedDeclaration": 6900, + "src": "7438:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5830, + "id": 6981, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5829, + "id": 6980, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7451:1:15", + "src": "7443:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7579,7 +7863,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7446:7:15", + "src": "7438:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7606,12 +7890,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5823, + "id": 6974, "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5757, - "src": "7394:11:15", + "referencedDeclaration": 6908, + "src": "7386:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7625,18 +7909,18 @@ "typeString": "address" } ], - "id": 5822, - "name": "ERC20", + "id": 6973, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "7388:5:15", + "referencedDeclaration": 13083, + "src": "7379:6:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 5824, + "id": 6975, "isConstant": false, "isLValue": false, "isPure": false, @@ -7644,27 +7928,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7388:18:15", + "src": "7379:19:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 5825, + "id": 6976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 10193, - "src": "7388:31:15", + "referencedDeclaration": 13066, + "src": "7379:32:22", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 5831, + "id": 6982, "isConstant": false, "isLValue": false, "isPure": false, @@ -7672,7 +7956,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7388:66:15", + "src": "7379:67:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7686,21 +7970,21 @@ "typeString": "bool" } ], - "id": 5821, + "id": 6972, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7380:7:15", + "referencedDeclaration": 13444, + "src": "7371:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5832, + "id": 6983, "isConstant": false, "isLValue": false, "isPure": false, @@ -7708,15 +7992,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7380:75:15", + "src": "7371:76:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5833, + "id": 6984, "nodeType": "ExpressionStatement", - "src": "7380:75:15" + "src": "7371:76:22" }, { "expression": { @@ -7727,12 +8011,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5839, + "id": 6990, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5759, - "src": "7499:9:15", + "referencedDeclaration": 6910, + "src": "7492:9:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7742,29 +8026,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5840, + "id": 6991, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7510:4:15", + "referencedDeclaration": 6900, + "src": "7503:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5842, + "id": 6993, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5841, + "id": 6992, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7515:1:15", + "src": "7508:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7777,7 +8061,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7510:7:15", + "src": "7503:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7800,12 +8084,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5836, + "id": 6987, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5755, - "src": "7483:5:15", + "referencedDeclaration": 6906, + "src": "7476:5:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7819,18 +8103,18 @@ "typeString": "address" } ], - "id": 5835, - "name": "ERC20", + "id": 6986, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "7477:5:15", + "referencedDeclaration": 13083, + "src": "7469:6:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 5837, + "id": 6988, "isConstant": false, "isLValue": false, "isPure": false, @@ -7838,27 +8122,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7477:12:15", + "src": "7469:13:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 5838, + "id": 6989, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "7477:21:15", + "referencedDeclaration": 13046, + "src": "7469:22:22", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 5843, + "id": 6994, "isConstant": false, "isLValue": false, "isPure": false, @@ -7866,7 +8150,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7477:41:15", + "src": "7469:42:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7880,21 +8164,21 @@ "typeString": "bool" } ], - "id": 5834, + "id": 6985, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7469:7:15", + "referencedDeclaration": 13444, + "src": "7461:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5844, + "id": 6995, "isConstant": false, "isLValue": false, "isPure": false, @@ -7902,15 +8186,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7469:50:15", + "src": "7461:51:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5845, + "id": 6996, "nodeType": "ExpressionStatement", - "src": "7469:50:15" + "src": "7461:51:22" } ] } @@ -7922,7 +8206,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5852, + "id": 7003, "isConstant": false, "isLValue": false, "isPure": false, @@ -7931,29 +8215,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5848, + "id": 6999, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7544:4:15", + "referencedDeclaration": 6900, + "src": "7537:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5850, + "id": 7001, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5849, + "id": 7000, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7549:1:15", + "src": "7542:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -7966,7 +8250,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7544:7:15", + "src": "7537:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7977,14 +8261,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5851, + "id": 7002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7554:1:15", + "src": "7547:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7992,20 +8276,20 @@ }, "value": "0" }, - "src": "7544:11:15", + "src": "7537:11:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5900, + "id": 7051, "nodeType": "IfStatement", - "src": "7540:341:15", + "src": "7533:343:22", "trueBody": { - "id": 5899, + "id": 7050, "nodeType": "Block", - "src": "7557:324:15", + "src": "7550:326:22", "statements": [ { "condition": { @@ -8014,19 +8298,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 5856, + "id": 7007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5853, + "id": 7004, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5751, - "src": "7575:6:15", + "referencedDeclaration": 6902, + "src": "7568:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8039,18 +8323,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5854, + "id": 7005, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5303, - "src": "7585:10:15", + "referencedDeclaration": 6454, + "src": "7578:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 5855, + "id": 7006, "isConstant": false, "isLValue": false, "isPure": false, @@ -8058,22 +8342,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7585:12:15", + "src": "7578:12:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7575:22:15", + "src": "7568:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 5897, + "id": 7048, "nodeType": "Block", - "src": "7669:202:15", + "src": "7662:204:22", "statements": [ { "expression": { @@ -8085,7 +8369,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5880, + "id": 7031, "isConstant": false, "isLValue": false, "isPure": false, @@ -8097,18 +8381,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5871, + "id": 7022, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7724:3:15", + "referencedDeclaration": 13441, + "src": "7718:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5872, + "id": 7023, "isConstant": false, "isLValue": false, "isPure": false, @@ -8116,7 +8400,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7724:10:15", + "src": "7718:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8127,14 +8411,14 @@ "arguments": [ { "argumentTypes": null, - "id": 5874, + "id": 7025, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10557, - "src": "7744:4:15", + "referencedDeclaration": 13522, + "src": "7738:4:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_PurchaseProcessing_$6118", + "typeIdentifier": "t_contract$_PurchaseProcessing_$7269", "typeString": "library PurchaseProcessing" } } @@ -8142,24 +8426,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_PurchaseProcessing_$6118", + "typeIdentifier": "t_contract$_PurchaseProcessing_$7269", "typeString": "library PurchaseProcessing" } ], - "id": 5873, + "id": 7024, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7736:7:15", + "src": "7730:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5875, + "id": 7026, "isConstant": false, "isLValue": false, "isPure": false, @@ -8167,7 +8451,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7736:13:15", + "src": "7730:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8190,12 +8474,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5868, + "id": 7019, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5753, - "src": "7701:11:15", + "referencedDeclaration": 6904, + "src": "7695:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8209,18 +8493,18 @@ "typeString": "address" } ], - "id": 5867, - "name": "ERC20", + "id": 7018, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "7695:5:15", + "referencedDeclaration": 13083, + "src": "7688:6:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 5869, + "id": 7020, "isConstant": false, "isLValue": false, "isPure": false, @@ -8228,27 +8512,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7695:18:15", + "src": "7688:19:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 5870, + "id": 7021, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 10182, - "src": "7695:28:15", + "referencedDeclaration": 13037, + "src": "7688:29:22", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 5876, + "id": 7027, "isConstant": false, "isLValue": false, "isPure": false, @@ -8256,7 +8540,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7695:55:15", + "src": "7688:56:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8268,29 +8552,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5877, + "id": 7028, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7754:4:15", + "referencedDeclaration": 6900, + "src": "7748:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5879, + "id": 7030, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5878, + "id": 7029, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7759:1:15", + "src": "7753:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8303,13 +8587,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7754:7:15", + "src": "7748:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7695:66:15", + "src": "7688:67:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8323,21 +8607,21 @@ "typeString": "bool" } ], - "id": 5866, + "id": 7017, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7687:7:15", + "referencedDeclaration": 13444, + "src": "7680:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5881, + "id": 7032, "isConstant": false, "isLValue": false, "isPure": false, @@ -8345,15 +8629,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7687:75:15", + "src": "7680:76:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5882, + "id": 7033, "nodeType": "ExpressionStatement", - "src": "7687:75:15" + "src": "7680:76:22" }, { "expression": { @@ -8366,18 +8650,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5888, + "id": 7039, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7820:3:15", + "referencedDeclaration": 13441, + "src": "7815:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5889, + "id": 7040, "isConstant": false, "isLValue": false, "isPure": false, @@ -8385,7 +8669,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7820:10:15", + "src": "7815:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8393,12 +8677,12 @@ }, { "argumentTypes": null, - "id": 5890, + "id": 7041, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5761, - "src": "7832:13:15", + "referencedDeclaration": 6912, + "src": "7827:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8408,29 +8692,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5891, + "id": 7042, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7847:4:15", + "referencedDeclaration": 6900, + "src": "7842:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5893, + "id": 7044, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5892, + "id": 7043, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7852:1:15", + "src": "7847:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8443,7 +8727,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7847:7:15", + "src": "7842:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8470,12 +8754,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5885, + "id": 7036, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5753, - "src": "7794:11:15", + "referencedDeclaration": 6904, + "src": "7789:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8489,18 +8773,18 @@ "typeString": "address" } ], - "id": 5884, - "name": "ERC20", + "id": 7035, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "7788:5:15", + "referencedDeclaration": 13083, + "src": "7782:6:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 5886, + "id": 7037, "isConstant": false, "isLValue": false, "isPure": false, @@ -8508,27 +8792,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7788:18:15", + "src": "7782:19:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 5887, + "id": 7038, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 10193, - "src": "7788:31:15", + "referencedDeclaration": 13066, + "src": "7782:32:22", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 5894, + "id": 7045, "isConstant": false, "isLValue": false, "isPure": false, @@ -8536,7 +8820,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7788:67:15", + "src": "7782:68:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8550,21 +8834,21 @@ "typeString": "bool" } ], - "id": 5883, + "id": 7034, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7780:7:15", + "referencedDeclaration": 13444, + "src": "7774:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5895, + "id": 7046, "isConstant": false, "isLValue": false, "isPure": false, @@ -8572,25 +8856,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7780:76:15", + "src": "7774:77:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5896, + "id": 7047, "nodeType": "ExpressionStatement", - "src": "7780:76:15" + "src": "7774:77:22" } ] }, - "id": 5898, + "id": 7049, "nodeType": "IfStatement", - "src": "7571:300:15", + "src": "7564:302:22", "trueBody": { - "id": 5865, + "id": 7016, "nodeType": "Block", - "src": "7599:64:15", + "src": "7592:64:22", "statements": [ { "expression": { @@ -8600,29 +8884,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5860, + "id": 7011, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7640:4:15", + "referencedDeclaration": 6900, + "src": "7633:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5862, + "id": 7013, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5861, + "id": 7012, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7645:1:15", + "src": "7638:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8635,7 +8919,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7640:7:15", + "src": "7633:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8651,18 +8935,18 @@ ], "expression": { "argumentTypes": null, - "id": 5857, + "id": 7008, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5761, - "src": "7617:13:15", + "referencedDeclaration": 6912, + "src": "7610:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 5859, + "id": 7010, "isConstant": false, "isLValue": false, "isPure": false, @@ -8670,13 +8954,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7617:22:15", + "src": "7610:22:22", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 5863, + "id": 7014, "isConstant": false, "isLValue": false, "isPure": false, @@ -8684,15 +8968,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7617:31:15", + "src": "7610:31:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5864, + "id": 7015, "nodeType": "ExpressionStatement", - "src": "7617:31:15" + "src": "7610:31:22" } ] } @@ -8703,7 +8987,7 @@ ] }, "documentation": null, - "id": 5902, + "id": 7053, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8711,16 +8995,16 @@ "name": "transferFee", "nodeType": "FunctionDefinition", "parameters": { - "id": 5762, + "id": 6913, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5749, + "id": 6900, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "6865:12:15", + "scope": 7053, + "src": "6858:12:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8729,27 +9013,27 @@ }, "typeName": { "baseType": { - "id": 5746, + "id": 6897, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6865:4:15", + "src": "6858:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5748, + "id": 6899, "length": { "argumentTypes": null, "hexValue": "32", - "id": 5747, + "id": 6898, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6870:1:15", + "src": "6863:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -8758,7 +9042,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "6865:7:15", + "src": "6858:7:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -8769,11 +9053,11 @@ }, { "constant": false, - "id": 5751, + "id": 6902, "name": "method", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "6887:14:15", + "scope": 7053, + "src": "6880:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8781,10 +9065,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5750, + "id": 6901, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6887:7:15", + "src": "6880:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8795,11 +9079,11 @@ }, { "constant": false, - "id": 5753, + "id": 6904, "name": "methodToken", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "6911:19:15", + "scope": 7053, + "src": "6904:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8807,10 +9091,10 @@ "typeString": "address" }, "typeName": { - "id": 5752, + "id": 6903, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6911:7:15", + "src": "6904:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8821,11 +9105,11 @@ }, { "constant": false, - "id": 5755, + "id": 6906, "name": "token", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "6940:13:15", + "scope": 7053, + "src": "6933:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8833,10 +9117,10 @@ "typeString": "address" }, "typeName": { - "id": 5754, + "id": 6905, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6940:7:15", + "src": "6933:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8847,11 +9131,11 @@ }, { "constant": false, - "id": 5757, + "id": 6908, "name": "originToken", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "6963:19:15", + "scope": 7053, + "src": "6956:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8859,10 +9143,10 @@ "typeString": "address" }, "typeName": { - "id": 5756, + "id": 6907, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6963:7:15", + "src": "6956:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8873,11 +9157,11 @@ }, { "constant": false, - "id": 5759, + "id": 6910, "name": "exchanger", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "6992:17:15", + "scope": 7053, + "src": "6985:17:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8885,10 +9169,10 @@ "typeString": "address" }, "typeName": { - "id": 5758, + "id": 6909, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6992:7:15", + "src": "6985:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8899,11 +9183,11 @@ }, { "constant": false, - "id": 5761, + "id": 6912, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "7019:21:15", + "scope": 7053, + "src": "7012:21:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8911,10 +9195,10 @@ "typeString": "address" }, "typeName": { - "id": 5760, + "id": 6911, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7019:7:15", + "src": "7012:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8924,26 +9208,26 @@ "visibility": "internal" } ], - "src": "6855:191:15" + "src": "6848:191:22" }, "payable": false, "returnParameters": { - "id": 5763, + "id": 6914, "nodeType": "ParameterList", "parameters": [], - "src": "7056:0:15" + "src": "7047:0:22" }, - "scope": 6118, - "src": "6835:1052:15", + "scope": 7269, + "src": "6828:1054:22", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 6074, + "id": 7225, "nodeType": "Block", - "src": "8082:833:15", + "src": "8075:835:22", "statements": [ { "expression": { @@ -8955,19 +9239,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5926, + "id": 7077, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5922, + "id": 7073, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5918, - "src": "8100:5:15", + "referencedDeclaration": 7069, + "src": "8093:5:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8981,14 +9265,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5924, + "id": 7075, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8117:1:15", + "src": "8110:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9004,20 +9288,20 @@ "typeString": "int_const 0" } ], - "id": 5923, + "id": 7074, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8109:7:15", + "src": "8102:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5925, + "id": 7076, "isConstant": false, "isLValue": false, "isPure": true, @@ -9025,13 +9309,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8109:10:15", + "src": "8102:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8100:19:15", + "src": "8093:19:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9045,21 +9329,21 @@ "typeString": "bool" } ], - "id": 5921, + "id": 7072, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8092:7:15", + "referencedDeclaration": 13444, + "src": "8085:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5927, + "id": 7078, "isConstant": false, "isLValue": false, "isPure": false, @@ -9067,15 +9351,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8092:28:15", + "src": "8085:28:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5928, + "id": 7079, "nodeType": "ExpressionStatement", - "src": "8092:28:15" + "src": "8085:28:22" }, { "expression": { @@ -9087,7 +9371,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5934, + "id": 7085, "isConstant": false, "isLValue": false, "isPure": false, @@ -9096,29 +9380,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5930, + "id": 7081, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8138:8:15", + "referencedDeclaration": 7057, + "src": "8131:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5932, + "id": 7083, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5931, + "id": 7082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8147:1:15", + "src": "8140:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9131,7 +9415,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8138:11:15", + "src": "8131:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9142,14 +9426,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5933, + "id": 7084, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8153:1:15", + "src": "8146:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9157,7 +9441,7 @@ }, "value": "0" }, - "src": "8138:16:15", + "src": "8131:16:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9171,21 +9455,21 @@ "typeString": "bool" } ], - "id": 5929, + "id": 7080, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8130:7:15", + "referencedDeclaration": 13444, + "src": "8123:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5935, + "id": 7086, "isConstant": false, "isLValue": false, "isPure": false, @@ -9193,15 +9477,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8130:25:15", + "src": "8123:25:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5936, + "id": 7087, "nodeType": "ExpressionStatement", - "src": "8130:25:15" + "src": "8123:25:22" }, { "expression": { @@ -9213,7 +9497,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5942, + "id": 7093, "isConstant": false, "isLValue": false, "isPure": false, @@ -9222,29 +9506,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5938, + "id": 7089, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8173:8:15", + "referencedDeclaration": 7057, + "src": "8166:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5940, + "id": 7091, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5939, + "id": 7090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8182:1:15", + "src": "8175:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9257,7 +9541,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8173:11:15", + "src": "8166:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9268,14 +9552,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5941, + "id": 7092, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8188:1:15", + "src": "8181:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9283,7 +9567,7 @@ }, "value": "0" }, - "src": "8173:16:15", + "src": "8166:16:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9297,21 +9581,21 @@ "typeString": "bool" } ], - "id": 5937, + "id": 7088, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8165:7:15", + "referencedDeclaration": 13444, + "src": "8158:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5943, + "id": 7094, "isConstant": false, "isLValue": false, "isPure": false, @@ -9319,15 +9603,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8165:25:15", + "src": "8158:25:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5944, + "id": 7095, "nodeType": "ExpressionStatement", - "src": "8165:25:15" + "src": "8158:25:22" }, { "expression": { @@ -9339,7 +9623,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5952, + "id": 7103, "isConstant": false, "isLValue": false, "isPure": false, @@ -9348,29 +9632,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5946, + "id": 7097, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8208:8:15", + "referencedDeclaration": 7057, + "src": "8201:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5948, + "id": 7099, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5947, + "id": 7098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8217:1:15", + "src": "8210:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9383,7 +9667,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8208:11:15", + "src": "8201:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9395,29 +9679,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5949, + "id": 7100, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5910, - "src": "8222:4:15", + "referencedDeclaration": 7061, + "src": "8215:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5951, + "id": 7102, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5950, + "id": 7101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8227:1:15", + "src": "8220:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9430,13 +9714,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8222:7:15", + "src": "8215:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8208:21:15", + "src": "8201:21:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9450,21 +9734,21 @@ "typeString": "bool" } ], - "id": 5945, + "id": 7096, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8200:7:15", + "referencedDeclaration": 13444, + "src": "8193:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5953, + "id": 7104, "isConstant": false, "isLValue": false, "isPure": false, @@ -9472,15 +9756,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8200:30:15", + "src": "8193:30:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5954, + "id": 7105, "nodeType": "ExpressionStatement", - "src": "8200:30:15" + "src": "8193:30:22" }, { "expression": { @@ -9492,7 +9776,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5962, + "id": 7113, "isConstant": false, "isLValue": false, "isPure": false, @@ -9501,29 +9785,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5956, + "id": 7107, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8248:8:15", + "referencedDeclaration": 7057, + "src": "8241:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5958, + "id": 7109, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5957, + "id": 7108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8257:1:15", + "src": "8250:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9536,7 +9820,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8248:11:15", + "src": "8241:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9548,29 +9832,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5959, + "id": 7110, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5910, - "src": "8262:4:15", + "referencedDeclaration": 7061, + "src": "8255:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5961, + "id": 7112, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5960, + "id": 7111, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8267:1:15", + "src": "8260:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9583,13 +9867,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8262:7:15", + "src": "8255:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8248:21:15", + "src": "8241:21:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9603,21 +9887,21 @@ "typeString": "bool" } ], - "id": 5955, + "id": 7106, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8240:7:15", + "referencedDeclaration": 13444, + "src": "8233:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5963, + "id": 7114, "isConstant": false, "isLValue": false, "isPure": false, @@ -9625,15 +9909,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8240:30:15", + "src": "8233:30:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5964, + "id": 7115, "nodeType": "ExpressionStatement", - "src": "8240:30:15" + "src": "8233:30:22" }, { "condition": { @@ -9642,19 +9926,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 5968, + "id": 7119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5965, + "id": 7116, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5914, - "src": "8285:6:15", + "referencedDeclaration": 7065, + "src": "8278:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9667,18 +9951,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5966, + "id": 7117, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5303, - "src": "8295:10:15", + "referencedDeclaration": 6454, + "src": "8288:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 5967, + "id": 7118, "isConstant": false, "isLValue": false, "isPure": false, @@ -9686,26 +9970,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8295:12:15", + "src": "8288:12:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8285:22:15", + "src": "8278:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5979, + "id": 7130, "nodeType": "IfStatement", - "src": "8281:86:15", + "src": "8274:86:22", "trueBody": { - "id": 5978, + "id": 7129, "nodeType": "Block", - "src": "8309:58:15", + "src": "8302:58:22", "statements": [ { "expression": { @@ -9717,7 +10001,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5975, + "id": 7126, "isConstant": false, "isLValue": false, "isPure": false, @@ -9726,18 +10010,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5970, + "id": 7121, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8331:3:15", + "referencedDeclaration": 13441, + "src": "8324:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5971, + "id": 7122, "isConstant": false, "isLValue": false, "isPure": false, @@ -9745,7 +10029,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8331:9:15", + "src": "8324:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9757,29 +10041,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5972, + "id": 7123, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8344:8:15", + "referencedDeclaration": 7057, + "src": "8337:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5974, + "id": 7125, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5973, + "id": 7124, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8353:1:15", + "src": "8346:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9792,13 +10076,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8344:11:15", + "src": "8337:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8331:24:15", + "src": "8324:24:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9812,21 +10096,21 @@ "typeString": "bool" } ], - "id": 5969, + "id": 7120, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8323:7:15", + "referencedDeclaration": 13444, + "src": "8316:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5976, + "id": 7127, "isConstant": false, "isLValue": false, "isPure": false, @@ -9834,15 +10118,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8323:33:15", + "src": "8316:33:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5977, + "id": 7128, "nodeType": "ExpressionStatement", - "src": "8323:33:15" + "src": "8316:33:22" } ] } @@ -9854,19 +10138,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 5983, + "id": 7134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5980, + "id": 7131, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5914, - "src": "8381:6:15", + "referencedDeclaration": 7065, + "src": "8374:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9879,18 +10163,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5981, + "id": 7132, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5303, - "src": "8391:10:15", + "referencedDeclaration": 6454, + "src": "8384:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 5982, + "id": 7133, "isConstant": false, "isLValue": false, "isPure": false, @@ -9898,26 +10182,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8391:12:15", + "src": "8384:12:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8381:22:15", + "src": "8374:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6036, + "id": 7187, "nodeType": "IfStatement", - "src": "8377:300:15", + "src": "8370:302:22", "trueBody": { - "id": 6035, + "id": 7186, "nodeType": "Block", - "src": "8405:272:15", + "src": "8398:274:22", "statements": [ { "expression": { @@ -9929,19 +10213,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5989, + "id": 7140, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5985, + "id": 7136, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5916, - "src": "8427:11:15", + "referencedDeclaration": 7067, + "src": "8420:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9955,14 +10239,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5987, + "id": 7138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8450:1:15", + "src": "8443:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9978,20 +10262,20 @@ "typeString": "int_const 0" } ], - "id": 5986, + "id": 7137, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8442:7:15", + "src": "8435:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5988, + "id": 7139, "isConstant": false, "isLValue": false, "isPure": true, @@ -9999,13 +10283,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8442:10:15", + "src": "8435:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8427:25:15", + "src": "8420:25:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10019,21 +10303,21 @@ "typeString": "bool" } ], - "id": 5984, + "id": 7135, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8419:7:15", + "referencedDeclaration": 13444, + "src": "8412:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5990, + "id": 7141, "isConstant": false, "isLValue": false, "isPure": false, @@ -10041,15 +10325,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8419:34:15", + "src": "8412:34:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5991, + "id": 7142, "nodeType": "ExpressionStatement", - "src": "8419:34:15" + "src": "8412:34:22" }, { "expression": { @@ -10061,7 +10345,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6011, + "id": 7162, "isConstant": false, "isLValue": false, "isPure": false, @@ -10073,18 +10357,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5997, + "id": 7148, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8504:3:15", + "referencedDeclaration": 13441, + "src": "8498:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5998, + "id": 7149, "isConstant": false, "isLValue": false, "isPure": false, @@ -10092,7 +10376,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8504:10:15", + "src": "8498:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10103,14 +10387,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6000, + "id": 7151, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10557, - "src": "8524:4:15", + "referencedDeclaration": 13522, + "src": "8518:4:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_PurchaseProcessing_$6118", + "typeIdentifier": "t_contract$_PurchaseProcessing_$7269", "typeString": "library PurchaseProcessing" } } @@ -10118,24 +10402,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_PurchaseProcessing_$6118", + "typeIdentifier": "t_contract$_PurchaseProcessing_$7269", "typeString": "library PurchaseProcessing" } ], - "id": 5999, + "id": 7150, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8516:7:15", + "src": "8510:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6001, + "id": 7152, "isConstant": false, "isLValue": false, "isPure": false, @@ -10143,7 +10427,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8516:13:15", + "src": "8510:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10166,12 +10450,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5994, + "id": 7145, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5916, - "src": "8481:11:15", + "referencedDeclaration": 7067, + "src": "8475:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10185,18 +10469,18 @@ "typeString": "address" } ], - "id": 5993, - "name": "ERC20", + "id": 7144, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "8475:5:15", + "referencedDeclaration": 13083, + "src": "8468:6:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 5995, + "id": 7146, "isConstant": false, "isLValue": false, "isPure": false, @@ -10204,27 +10488,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8475:18:15", + "src": "8468:19:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 5996, + "id": 7147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 10182, - "src": "8475:28:15", + "referencedDeclaration": 13037, + "src": "8468:29:22", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 6002, + "id": 7153, "isConstant": false, "isLValue": false, "isPure": false, @@ -10232,7 +10516,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8475:55:15", + "src": "8468:56:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10247,29 +10531,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6007, + "id": 7158, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5910, - "src": "8550:4:15", + "referencedDeclaration": 7061, + "src": "8544:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 6009, + "id": 7160, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 6008, + "id": 7159, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8555:1:15", + "src": "8549:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -10282,7 +10566,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8550:7:15", + "src": "8544:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10300,29 +10584,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6003, + "id": 7154, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8534:8:15", + "referencedDeclaration": 7057, + "src": "8528:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 6005, + "id": 7156, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 6004, + "id": 7155, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8543:1:15", + "src": "8537:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -10335,27 +10619,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8534:11:15", + "src": "8528:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6006, + "id": 7157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8534:15:15", + "referencedDeclaration": 12343, + "src": "8528:15:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6010, + "id": 7161, "isConstant": false, "isLValue": false, "isPure": false, @@ -10363,13 +10647,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8534:24:15", + "src": "8528:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8475:83:15", + "src": "8468:84:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10383,21 +10667,21 @@ "typeString": "bool" } ], - "id": 5992, + "id": 7143, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8467:7:15", + "referencedDeclaration": 13444, + "src": "8460:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6012, + "id": 7163, "isConstant": false, "isLValue": false, "isPure": false, @@ -10405,15 +10689,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8467:92:15", + "src": "8460:93:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6013, + "id": 7164, "nodeType": "ExpressionStatement", - "src": "8467:92:15" + "src": "8460:93:22" }, { "expression": { @@ -10426,18 +10710,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6019, + "id": 7170, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8613:3:15", + "referencedDeclaration": 13441, + "src": "8608:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6020, + "id": 7171, "isConstant": false, "isLValue": false, "isPure": false, @@ -10445,7 +10729,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8613:10:15", + "src": "8608:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10456,14 +10740,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6022, + "id": 7173, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10557, - "src": "8633:4:15", + "referencedDeclaration": 13522, + "src": "8628:4:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_PurchaseProcessing_$6118", + "typeIdentifier": "t_contract$_PurchaseProcessing_$7269", "typeString": "library PurchaseProcessing" } } @@ -10471,24 +10755,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_PurchaseProcessing_$6118", + "typeIdentifier": "t_contract$_PurchaseProcessing_$7269", "typeString": "library PurchaseProcessing" } ], - "id": 6021, + "id": 7172, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8625:7:15", + "src": "8620:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6023, + "id": 7174, "isConstant": false, "isLValue": false, "isPure": false, @@ -10496,7 +10780,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8625:13:15", + "src": "8620:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10509,29 +10793,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6028, + "id": 7179, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5910, - "src": "8656:4:15", + "referencedDeclaration": 7061, + "src": "8651:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 6030, + "id": 7181, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 6029, + "id": 7180, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8661:1:15", + "src": "8656:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -10544,7 +10828,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8656:7:15", + "src": "8651:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10562,29 +10846,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6024, + "id": 7175, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8640:8:15", + "referencedDeclaration": 7057, + "src": "8635:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 6026, + "id": 7177, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 6025, + "id": 7176, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8649:1:15", + "src": "8644:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -10597,27 +10881,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8640:11:15", + "src": "8635:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6027, + "id": 7178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8640:15:15", + "referencedDeclaration": 12343, + "src": "8635:15:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6031, + "id": 7182, "isConstant": false, "isLValue": false, "isPure": false, @@ -10625,7 +10909,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8640:24:15", + "src": "8635:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10652,12 +10936,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6016, + "id": 7167, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5916, - "src": "8587:11:15", + "referencedDeclaration": 7067, + "src": "8582:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10671,18 +10955,18 @@ "typeString": "address" } ], - "id": 6015, - "name": "ERC20", + "id": 7166, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "8581:5:15", + "referencedDeclaration": 13083, + "src": "8575:6:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 6017, + "id": 7168, "isConstant": false, "isLValue": false, "isPure": false, @@ -10690,27 +10974,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8581:18:15", + "src": "8575:19:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 6018, + "id": 7169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 10193, - "src": "8581:31:15", + "referencedDeclaration": 13066, + "src": "8575:32:22", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 6032, + "id": 7183, "isConstant": false, "isLValue": false, "isPure": false, @@ -10718,7 +11002,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8581:84:15", + "src": "8575:85:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10732,21 +11016,21 @@ "typeString": "bool" } ], - "id": 6014, + "id": 7165, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8573:7:15", + "referencedDeclaration": 13444, + "src": "8567:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6033, + "id": 7184, "isConstant": false, "isLValue": false, "isPure": false, @@ -10754,15 +11038,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8573:93:15", + "src": "8567:94:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6034, + "id": 7185, "nodeType": "ExpressionStatement", - "src": "8573:93:15" + "src": "8567:94:22" } ] } @@ -10778,18 +11062,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6042, + "id": 7193, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8726:3:15", + "referencedDeclaration": 13441, + "src": "8721:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6043, + "id": 7194, "isConstant": false, "isLValue": false, "isPure": false, @@ -10797,7 +11081,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8726:10:15", + "src": "8721:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10807,29 +11091,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6044, + "id": 7195, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8738:8:15", + "referencedDeclaration": 7057, + "src": "8733:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 6046, + "id": 7197, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6045, + "id": 7196, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8747:1:15", + "src": "8742:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10842,7 +11126,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8738:11:15", + "src": "8733:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10850,12 +11134,12 @@ }, { "argumentTypes": null, - "id": 6047, + "id": 7198, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5912, - "src": "8751:7:15", + "referencedDeclaration": 7063, + "src": "8746:7:22", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -10882,12 +11166,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6039, + "id": 7190, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5918, - "src": "8703:5:15", + "referencedDeclaration": 7069, + "src": "8698:5:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10901,18 +11185,18 @@ "typeString": "address" } ], - "id": 6038, + "id": 7189, "name": "IWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7894, - "src": "8695:7:15", + "referencedDeclaration": 10485, + "src": "8690:7:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWToken_$7894_$", + "typeIdentifier": "t_type$_t_contract$_IWToken_$10485_$", "typeString": "type(contract IWToken)" } }, - "id": 6040, + "id": 7191, "isConstant": false, "isLValue": false, "isPure": false, @@ -10920,27 +11204,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8695:14:15", + "src": "8690:14:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "id": 6041, + "id": 7192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "vestingTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 7835, - "src": "8695:30:15", + "referencedDeclaration": 10421, + "src": "8690:30:22", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 6048, + "id": 7199, "isConstant": false, "isLValue": false, "isPure": false, @@ -10948,7 +11232,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8695:64:15", + "src": "8690:64:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10962,21 +11246,21 @@ "typeString": "bool" } ], - "id": 6037, + "id": 7188, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8687:7:15", + "referencedDeclaration": 13444, + "src": "8682:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6049, + "id": 7200, "isConstant": false, "isLValue": false, "isPure": false, @@ -10984,15 +11268,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8687:73:15", + "src": "8682:73:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6050, + "id": 7201, "nodeType": "ExpressionStatement", - "src": "8687:73:15" + "src": "8682:73:22" }, { "condition": { @@ -11001,7 +11285,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6055, + "id": 7206, "isConstant": false, "isLValue": false, "isPure": false, @@ -11010,29 +11294,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6051, + "id": 7202, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8775:8:15", + "referencedDeclaration": 7057, + "src": "8770:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 6053, + "id": 7204, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 6052, + "id": 7203, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8784:1:15", + "src": "8779:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -11045,7 +11329,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8775:11:15", + "src": "8770:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11056,14 +11340,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6054, + "id": 7205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8789:1:15", + "src": "8784:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11071,20 +11355,20 @@ }, "value": "0" }, - "src": "8775:15:15", + "src": "8770:15:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6073, + "id": 7224, "nodeType": "IfStatement", - "src": "8771:138:15", + "src": "8766:138:22", "trueBody": { - "id": 6072, + "id": 7223, "nodeType": "Block", - "src": "8792:117:15", + "src": "8787:117:22", "statements": [ { "condition": { @@ -11093,19 +11377,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 6059, + "id": 7210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6056, + "id": 7207, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5914, - "src": "8810:6:15", + "referencedDeclaration": 7065, + "src": "8805:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11118,18 +11402,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 6057, + "id": 7208, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5303, - "src": "8820:10:15", + "referencedDeclaration": 6454, + "src": "8815:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 6058, + "id": 7209, "isConstant": false, "isLValue": false, "isPure": false, @@ -11137,26 +11421,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8820:12:15", + "src": "8815:12:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8810:22:15", + "src": "8805:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6071, + "id": 7222, "nodeType": "IfStatement", - "src": "8806:93:15", + "src": "8801:93:22", "trueBody": { - "id": 6070, + "id": 7221, "nodeType": "Block", - "src": "8834:65:15", + "src": "8829:65:22", "statements": [ { "expression": { @@ -11166,29 +11450,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6065, + "id": 7216, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8872:8:15", + "referencedDeclaration": 7057, + "src": "8867:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 6067, + "id": 7218, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 6066, + "id": 7217, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8881:1:15", + "src": "8876:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -11201,7 +11485,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8872:11:15", + "src": "8867:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11219,18 +11503,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6060, + "id": 7211, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8852:3:15", + "referencedDeclaration": 13441, + "src": "8847:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6063, + "id": 7214, "isConstant": false, "isLValue": false, "isPure": false, @@ -11238,13 +11522,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8852:10:15", + "src": "8847:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6064, + "id": 7215, "isConstant": false, "isLValue": false, "isPure": false, @@ -11252,13 +11536,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8852:19:15", + "src": "8847:19:22", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 6068, + "id": 7219, "isConstant": false, "isLValue": false, "isPure": false, @@ -11266,15 +11550,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8852:32:15", + "src": "8847:32:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6069, + "id": 7220, "nodeType": "ExpressionStatement", - "src": "8852:32:15" + "src": "8847:32:22" } ] } @@ -11285,7 +11569,7 @@ ] }, "documentation": null, - "id": 6075, + "id": 7226, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11293,16 +11577,16 @@ "name": "transferPurchase", "nodeType": "FunctionDefinition", "parameters": { - "id": 5919, + "id": 7070, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5906, + "id": 7057, "name": "_invoice", "nodeType": "VariableDeclaration", - "scope": 6075, - "src": "7928:16:15", + "scope": 7226, + "src": "7923:16:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11311,27 +11595,27 @@ }, "typeName": { "baseType": { - "id": 5903, + "id": 7054, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7928:4:15", + "src": "7923:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5905, + "id": 7056, "length": { "argumentTypes": null, "hexValue": "35", - "id": 5904, + "id": 7055, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7933:1:15", + "src": "7928:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -11340,7 +11624,7 @@ "value": "5" }, "nodeType": "ArrayTypeName", - "src": "7928:7:15", + "src": "7923:7:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", "typeString": "uint256[5]" @@ -11351,11 +11635,11 @@ }, { "constant": false, - "id": 5910, + "id": 7061, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 6075, - "src": "7954:12:15", + "scope": 7226, + "src": "7949:12:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11364,27 +11648,27 @@ }, "typeName": { "baseType": { - "id": 5907, + "id": 7058, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7954:4:15", + "src": "7949:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5909, + "id": 7060, "length": { "argumentTypes": null, "hexValue": "32", - "id": 5908, + "id": 7059, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7959:1:15", + "src": "7954:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -11393,7 +11677,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "7954:7:15", + "src": "7949:7:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -11404,11 +11688,11 @@ }, { "constant": false, - "id": 5912, + "id": 7063, "name": "vesting", "nodeType": "VariableDeclaration", - "scope": 6075, - "src": "7976:14:15", + "scope": 7226, + "src": "7971:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11416,10 +11700,10 @@ "typeString": "uint32" }, "typeName": { - "id": 5911, + "id": 7062, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7976:6:15", + "src": "7971:6:22", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11430,11 +11714,11 @@ }, { "constant": false, - "id": 5914, + "id": 7065, "name": "method", "nodeType": "VariableDeclaration", - "scope": 6075, - "src": "8000:14:15", + "scope": 7226, + "src": "7995:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11442,10 +11726,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5913, + "id": 7064, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8000:7:15", + "src": "7995:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11456,11 +11740,11 @@ }, { "constant": false, - "id": 5916, + "id": 7067, "name": "methodToken", "nodeType": "VariableDeclaration", - "scope": 6075, - "src": "8024:19:15", + "scope": 7226, + "src": "8019:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11468,10 +11752,10 @@ "typeString": "address" }, "typeName": { - "id": 5915, + "id": 7066, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8024:7:15", + "src": "8019:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11482,11 +11766,11 @@ }, { "constant": false, - "id": 5918, + "id": 7069, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6075, - "src": "8053:13:15", + "scope": 7226, + "src": "8048:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11494,10 +11778,10 @@ "typeString": "address" }, "typeName": { - "id": 5917, + "id": 7068, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8053:7:15", + "src": "8048:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11507,32 +11791,32 @@ "visibility": "internal" } ], - "src": "7918:154:15" + "src": "7913:154:22" }, "payable": false, "returnParameters": { - "id": 5920, + "id": 7071, "nodeType": "ParameterList", "parameters": [], - "src": "8082:0:15" + "src": "8075:0:22" }, - "scope": 6118, - "src": "7893:1022:15", + "scope": 7269, + "src": "7888:1022:22", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 6116, + "id": 7267, "nodeType": "Block", - "src": "9032:226:15", + "src": "9025:226:22", "statements": [ { "body": { - "id": 6114, + "id": 7265, "nodeType": "Block", - "src": "9093:159:15", + "src": "9086:159:22", "statements": [ { "condition": { @@ -11541,19 +11825,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6103, + "id": 7254, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6099, + "id": 7250, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6077, - "src": "9111:5:15", + "referencedDeclaration": 7228, + "src": "9104:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11565,26 +11849,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6100, + "id": 7251, "name": "volumeBoundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6080, - "src": "9120:16:15", + "referencedDeclaration": 7231, + "src": "9113:16:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 6102, + "id": 7253, "indexExpression": { "argumentTypes": null, - "id": 6101, + "id": 7252, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6089, - "src": "9137:1:15", + "referencedDeclaration": 7240, + "src": "9130:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11595,54 +11879,54 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9120:19:15", + "src": "9113:19:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9111:28:15", + "src": "9104:28:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 6112, + "id": 7263, "nodeType": "Block", - "src": "9204:38:15", + "src": "9197:38:22", "statements": [ { - "id": 6111, + "id": 7262, "nodeType": "Break", - "src": "9222:5:15" + "src": "9215:5:22" } ] }, - "id": 6113, + "id": 7264, "nodeType": "IfStatement", - "src": "9107:135:15", + "src": "9100:135:22", "trueBody": { - "id": 6110, + "id": 7261, "nodeType": "Block", - "src": "9141:57:15", + "src": "9134:57:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 6108, + "id": 7259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6104, + "id": 7255, "name": "bonus", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6086, - "src": "9159:5:15", + "referencedDeclaration": 7237, + "src": "9152:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11654,26 +11938,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6105, + "id": 7256, "name": "volumeBonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6083, - "src": "9167:13:15", + "referencedDeclaration": 7234, + "src": "9160:13:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 6107, + "id": 7258, "indexExpression": { "argumentTypes": null, - "id": 6106, + "id": 7257, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6089, - "src": "9181:1:15", + "referencedDeclaration": 7240, + "src": "9174:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11684,21 +11968,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9167:16:15", + "src": "9160:16:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9159:24:15", + "src": "9152:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6109, + "id": 7260, "nodeType": "ExpressionStatement", - "src": "9159:24:15" + "src": "9152:24:22" } ] } @@ -11711,19 +11995,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6095, + "id": 7246, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6092, + "id": 7243, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6089, - "src": "9059:1:15", + "referencedDeclaration": 7240, + "src": "9052:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11735,18 +12019,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6093, + "id": 7244, "name": "volumeBoundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6080, - "src": "9063:16:15", + "referencedDeclaration": 7231, + "src": "9056:16:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 6094, + "id": 7245, "isConstant": false, "isLValue": false, "isPure": false, @@ -11754,31 +12038,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9063:23:15", + "src": "9056:23:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9059:27:15", + "src": "9052:27:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6115, + "id": 7266, "initializationExpression": { "assignments": [ - 6089 + 7240 ], "declarations": [ { "constant": false, - "id": 6089, + "id": 7240, "name": "i", "nodeType": "VariableDeclaration", - "scope": 6117, - "src": "9047:6:15", + "scope": 7268, + "src": "9040:6:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11786,10 +12070,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6088, + "id": 7239, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9047:4:15", + "src": "9040:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11799,18 +12083,18 @@ "visibility": "internal" } ], - "id": 6091, + "id": 7242, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 6090, + "id": 7241, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9056:1:15", + "src": "9049:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11819,12 +12103,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9047:10:15" + "src": "9040:10:22" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 6097, + "id": 7248, "isConstant": false, "isLValue": false, "isPure": false, @@ -11832,15 +12116,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9088:3:15", + "src": "9081:3:22", "subExpression": { "argumentTypes": null, - "id": 6096, + "id": 7247, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6089, - "src": "9088:1:15", + "referencedDeclaration": 7240, + "src": "9081:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11851,17 +12135,17 @@ "typeString": "uint256" } }, - "id": 6098, + "id": 7249, "nodeType": "ExpressionStatement", - "src": "9088:3:15" + "src": "9081:3:22" }, "nodeType": "ForStatement", - "src": "9042:210:15" + "src": "9035:210:22" } ] }, "documentation": null, - "id": 6117, + "id": 7268, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11869,16 +12153,16 @@ "name": "getBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 6084, + "id": 7235, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6077, + "id": 7228, "name": "value", "nodeType": "VariableDeclaration", - "scope": 6117, - "src": "8939:10:15", + "scope": 7268, + "src": "8934:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11886,10 +12170,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6076, + "id": 7227, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8939:4:15", + "src": "8934:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11900,11 +12184,11 @@ }, { "constant": false, - "id": 6080, + "id": 7231, "name": "volumeBoundaries", "nodeType": "VariableDeclaration", - "scope": 6117, - "src": "8951:23:15", + "scope": 7268, + "src": "8946:23:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11913,19 +12197,19 @@ }, "typeName": { "baseType": { - "id": 6078, + "id": 7229, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8951:4:15", + "src": "8946:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6079, + "id": 7230, "length": null, "nodeType": "ArrayTypeName", - "src": "8951:6:15", + "src": "8946:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -11936,11 +12220,11 @@ }, { "constant": false, - "id": 6083, + "id": 7234, "name": "volumeBonuses", "nodeType": "VariableDeclaration", - "scope": 6117, - "src": "8976:20:15", + "scope": 7268, + "src": "8971:20:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11949,19 +12233,19 @@ }, "typeName": { "baseType": { - "id": 6081, + "id": 7232, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8976:4:15", + "src": "8971:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6082, + "id": 7233, "length": null, "nodeType": "ArrayTypeName", - "src": "8976:6:15", + "src": "8971:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -11971,20 +12255,20 @@ "visibility": "internal" } ], - "src": "8938:59:15" + "src": "8933:59:22" }, "payable": false, "returnParameters": { - "id": 6087, + "id": 7238, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6086, + "id": 7237, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 6117, - "src": "9020:10:15", + "scope": 7268, + "src": "9013:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11992,10 +12276,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6085, + "id": 7236, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9020:4:15", + "src": "9013:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12005,33 +12289,33 @@ "visibility": "internal" } ], - "src": "9019:12:15" + "src": "9012:12:22" }, - "scope": 6118, - "src": "8921:337:15", + "scope": 7269, + "src": "8916:335:22", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" } ], - "scope": 6119, - "src": "228:9032:15" + "scope": 7270, + "src": "229:9024:22" } ], - "src": "0:9261:15" + "src": "0:9254:22" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", "exportedSymbols": { "PurchaseProcessing": [ - 6118 + 7269 ] }, - "id": 6119, + "id": 7270, "nodeType": "SourceUnit", "nodes": [ { - "id": 5282, + "id": 6433, "literals": [ "solidity", "^", @@ -12039,60 +12323,60 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:15" + "src": "0:24:22" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 5283, + "id": 6434, "nodeType": "ImportDirective", - "scope": 6119, - "sourceUnit": 10049, - "src": "26:59:15", + "scope": 7270, + "sourceUnit": 12389, + "src": "26:59:22", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 5284, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 6435, "nodeType": "ImportDirective", - "scope": 6119, - "sourceUnit": 10212, - "src": "86:63:15", + "scope": 7270, + "sourceUnit": 13084, + "src": "86:64:22", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "file": "./Percent.sol", - "id": 5285, + "id": 6436, "nodeType": "ImportDirective", - "scope": 6119, - "sourceUnit": 5215, - "src": "150:23:15", + "scope": 7270, + "sourceUnit": 6432, + "src": "151:23:22", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", "file": "./Utils.sol", - "id": 5286, + "id": 6437, "nodeType": "ImportDirective", - "scope": 6119, - "sourceUnit": 6325, - "src": "174:21:15", + "scope": 7270, + "sourceUnit": 8379, + "src": "175:21:22", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", "file": "../token/IWToken.sol", - "id": 5287, + "id": 6438, "nodeType": "ImportDirective", - "scope": 6119, - "sourceUnit": 7895, - "src": "196:30:15", + "scope": 7270, + "sourceUnit": 10486, + "src": "197:30:22", "symbolAliases": [], "unitAlias": "" }, @@ -12102,34 +12386,34 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 6118, + "id": 7269, "linearizedBaseContracts": [ - 6118 + 7269 ], "name": "PurchaseProcessing", "nodeType": "ContractDefinition", "nodes": [ { - "id": 5290, + "id": 6441, "libraryName": { "contractScope": null, - "id": 5288, + "id": 6439, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "267:8:15", + "referencedDeclaration": 12388, + "src": "268:8:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "261:24:15", + "src": "262:24:22", "typeName": { - "id": 5289, + "id": 6440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "280:4:15", + "src": "281:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12137,26 +12421,26 @@ } }, { - "id": 5293, + "id": 6444, "libraryName": { "contractScope": null, - "id": 5291, + "id": 6442, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5214, - "src": "296:7:15", + "referencedDeclaration": 6431, + "src": "297:7:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$5214", + "typeIdentifier": "t_contract$_Percent_$6431", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "290:23:15", + "src": "291:23:22", "typeName": { - "id": 5292, + "id": 6443, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "308:4:15", + "src": "309:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12165,9 +12449,9 @@ }, { "body": { - "id": 5302, + "id": 6453, "nodeType": "Block", - "src": "373:24:15", + "src": "374:24:22", "statements": [ { "expression": { @@ -12176,14 +12460,14 @@ { "argumentTypes": null, "hexValue": "455448", - "id": 5299, + "id": 6450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "389:5:15", + "src": "390:5:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", @@ -12199,20 +12483,20 @@ "typeString": "literal_string \"ETH\"" } ], - "id": 5298, + "id": 6449, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "381:7:15", + "src": "382:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": "bytes32" }, - "id": 5300, + "id": 6451, "isConstant": false, "isLValue": false, "isPure": true, @@ -12220,21 +12504,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "381:14:15", + "src": "382:14:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 5297, - "id": 5301, + "functionReturnParameters": 6448, + "id": 6452, "nodeType": "Return", - "src": "374:21:15" + "src": "375:21:22" } ] }, "documentation": null, - "id": 5303, + "id": 6454, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -12242,23 +12526,23 @@ "name": "METHOD_ETH", "nodeType": "FunctionDefinition", "parameters": { - "id": 5294, + "id": 6445, "nodeType": "ParameterList", "parameters": [], - "src": "338:2:15" + "src": "339:2:22" }, "payable": false, "returnParameters": { - "id": 5297, + "id": 6448, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5296, + "id": 6447, "name": "", "nodeType": "VariableDeclaration", - "scope": 5303, - "src": "364:7:15", + "scope": 6454, + "src": "365:7:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12266,10 +12550,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5295, + "id": 6446, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "364:7:15", + "src": "365:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12279,36 +12563,36 @@ "visibility": "internal" } ], - "src": "363:9:15" + "src": "364:9:22" }, - "scope": 6118, - "src": "319:78:15", + "scope": 7269, + "src": "320:78:22", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 5356, + "id": 6507, "nodeType": "Block", - "src": "665:264:15", + "src": "664:264:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 5340, + "id": 6491, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5322, + "id": 6473, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "675:6:15", + "referencedDeclaration": 6471, + "src": "674:6:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12322,7 +12606,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5339, + "id": 6490, "isConstant": false, "isLValue": false, "isPure": false, @@ -12333,7 +12617,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5333, + "id": 6484, "isConstant": false, "isLValue": false, "isPure": false, @@ -12344,7 +12628,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5329, + "id": 6480, "isConstant": false, "isLValue": false, "isPure": false, @@ -12355,19 +12639,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5325, + "id": 6476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5323, + "id": 6474, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5307, - "src": "684:6:15", + "referencedDeclaration": 6458, + "src": "683:6:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12378,14 +12662,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5324, + "id": 6475, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "693:1:15", + "src": "692:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12393,7 +12677,7 @@ }, "value": "0" }, - "src": "684:10:15", + "src": "683:10:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12407,19 +12691,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5328, + "id": 6479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5326, + "id": 6477, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5309, - "src": "710:13:15", + "referencedDeclaration": 6460, + "src": "709:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12430,14 +12714,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5327, + "id": 6478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "726:1:15", + "src": "725:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12445,13 +12729,13 @@ }, "value": "0" }, - "src": "710:17:15", + "src": "709:17:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "684:43:15", + "src": "683:43:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12465,19 +12749,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5332, + "id": 6483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5330, + "id": 6481, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5311, - "src": "743:12:15", + "referencedDeclaration": 6462, + "src": "742:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12488,14 +12772,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5331, + "id": 6482, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "758:1:15", + "src": "757:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12503,13 +12787,13 @@ }, "value": "0" }, - "src": "743:16:15", + "src": "742:16:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "684:75:15", + "src": "683:75:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12523,19 +12807,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5338, + "id": 6489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5334, + "id": 6485, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "775:22:15", + "referencedDeclaration": 6464, + "src": "774:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12549,7 +12833,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5337, + "id": 6488, "isConstant": false, "isLValue": false, "isPure": false, @@ -12557,14 +12841,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 5335, + "id": 6486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "801:2:15", + "src": "800:2:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -12576,44 +12860,44 @@ "operator": "**", "rightExpression": { "argumentTypes": null, - "id": 5336, + "id": 6487, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5315, - "src": "807:13:15", + "referencedDeclaration": 6466, + "src": "806:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "801:19:15", + "src": "800:19:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "775:45:15", + "src": "774:45:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "684:136:15", + "src": "683:136:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "675:145:15", + "src": "674:145:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5341, + "id": 6492, "nodeType": "ExpressionStatement", - "src": "675:145:15" + "src": "674:145:22" }, { "condition": { @@ -12622,19 +12906,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 5345, + "id": 6496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5342, + "id": 6493, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5305, - "src": "835:6:15", + "referencedDeclaration": 6456, + "src": "834:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12647,18 +12931,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5343, + "id": 6494, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5303, - "src": "845:10:15", + "referencedDeclaration": 6454, + "src": "844:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 5344, + "id": 6495, "isConstant": false, "isLValue": false, "isPure": false, @@ -12666,43 +12950,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:12:15", + "src": "844:12:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "835:22:15", + "src": "834:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5355, + "id": 6506, "nodeType": "IfStatement", - "src": "831:92:15", + "src": "830:92:22", "trueBody": { - "id": 5354, + "id": 6505, "nodeType": "Block", - "src": "859:64:15", + "src": "858:64:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 5352, + "id": 6503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5346, + "id": 6497, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "873:6:15", + "referencedDeclaration": 6471, + "src": "872:6:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12716,19 +13000,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5351, + "id": 6502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5347, + "id": 6498, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "882:6:15", + "referencedDeclaration": 6471, + "src": "881:6:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12742,19 +13026,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5350, + "id": 6501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5348, + "id": 6499, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5317, - "src": "892:14:15", + "referencedDeclaration": 6468, + "src": "891:14:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12765,14 +13049,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3138", - "id": 5349, + "id": 6500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "910:2:15", + "src": "909:2:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -12780,27 +13064,27 @@ }, "value": "18" }, - "src": "892:20:15", + "src": "891:20:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "882:30:15", + "src": "881:30:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "873:39:15", + "src": "872:39:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5353, + "id": 6504, "nodeType": "ExpressionStatement", - "src": "873:39:15" + "src": "872:39:22" } ] } @@ -12808,7 +13092,7 @@ ] }, "documentation": null, - "id": 5357, + "id": 6508, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -12816,16 +13100,16 @@ "name": "checkInvoiceInput", "nodeType": "FunctionDefinition", "parameters": { - "id": 5318, + "id": 6469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5305, + "id": 6456, "name": "method", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "439:14:15", + "scope": 6508, + "src": "440:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12833,10 +13117,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5304, + "id": 6455, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "439:7:15", + "src": "440:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12847,11 +13131,11 @@ }, { "constant": false, - "id": 5307, + "id": 6458, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "463:11:15", + "scope": 6508, + "src": "464:11:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12859,10 +13143,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5306, + "id": 6457, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "463:4:15", + "src": "464:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12873,11 +13157,11 @@ }, { "constant": false, - "id": 5309, + "id": 6460, "name": "methodUSDRate", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "484:18:15", + "scope": 6508, + "src": "485:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12885,10 +13169,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5308, + "id": 6459, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "484:4:15", + "src": "485:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12899,11 +13183,11 @@ }, { "constant": false, - "id": 5311, + "id": 6462, "name": "tokenUSDRate", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "512:17:15", + "scope": 6508, + "src": "513:17:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12911,10 +13195,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5310, + "id": 6461, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "512:4:15", + "src": "513:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12925,11 +13209,11 @@ }, { "constant": false, - "id": 5313, + "id": 6464, "name": "currentBalanceInTokens", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "539:27:15", + "scope": 6508, + "src": "540:27:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12937,10 +13221,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5312, + "id": 6463, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "539:4:15", + "src": "540:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12951,11 +13235,11 @@ }, { "constant": false, - "id": 5315, + "id": 6466, "name": "tokenDecimals", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "576:18:15", + "scope": 6508, + "src": "577:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12963,10 +13247,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5314, + "id": 6465, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "576:4:15", + "src": "577:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12977,11 +13261,11 @@ }, { "constant": false, - "id": 5317, + "id": 6468, "name": "methodDecimals", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "604:19:15", + "scope": 6508, + "src": "605:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12989,10 +13273,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5316, + "id": 6467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "604:4:15", + "src": "605:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13002,20 +13286,20 @@ "visibility": "internal" } ], - "src": "429:200:15" + "src": "430:200:22" }, "payable": false, "returnParameters": { - "id": 5321, + "id": 6472, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5320, + "id": 6471, "name": "result", "nodeType": "VariableDeclaration", - "scope": 5357, - "src": "652:11:15", + "scope": 6508, + "src": "651:11:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13023,10 +13307,10 @@ "typeString": "bool" }, "typeName": { - "id": 5319, + "id": 6470, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "652:4:15", + "src": "651:4:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13036,19 +13320,19 @@ "visibility": "internal" } ], - "src": "651:13:15" + "src": "650:13:22" }, - "scope": 6118, - "src": "403:526:15", + "scope": 7269, + "src": "404:524:22", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5549, + "id": 6700, "nodeType": "Block", - "src": "2335:1620:15", + "src": "2332:1620:22", "statements": [ { "expression": { @@ -13059,12 +13343,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5388, + "id": 6539, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5359, - "src": "2384:6:15", + "referencedDeclaration": 6510, + "src": "2381:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13072,12 +13356,12 @@ }, { "argumentTypes": null, - "id": 5389, + "id": 6540, "name": "paymentAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5361, - "src": "2404:13:15", + "referencedDeclaration": 6512, + "src": "2401:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13085,12 +13369,12 @@ }, { "argumentTypes": null, - "id": 5390, + "id": 6541, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5371, - "src": "2431:13:15", + "referencedDeclaration": 6522, + "src": "2428:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13098,12 +13382,12 @@ }, { "argumentTypes": null, - "id": 5391, + "id": 6542, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "2458:12:15", + "referencedDeclaration": 6524, + "src": "2455:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13111,12 +13395,12 @@ }, { "argumentTypes": null, - "id": 5392, + "id": 6543, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5379, - "src": "2484:22:15", + "referencedDeclaration": 6530, + "src": "2481:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13124,12 +13408,12 @@ }, { "argumentTypes": null, - "id": 5393, + "id": 6544, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5375, - "src": "2520:13:15", + "referencedDeclaration": 6526, + "src": "2517:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13137,12 +13421,12 @@ }, { "argumentTypes": null, - "id": 5394, + "id": 6545, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5377, - "src": "2547:14:15", + "referencedDeclaration": 6528, + "src": "2544:14:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13180,18 +13464,18 @@ "typeString": "uint256" } ], - "id": 5387, + "id": 6538, "name": "checkInvoiceInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5357, - "src": "2353:17:15", + "referencedDeclaration": 6508, + "src": "2350:17:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (bytes32,uint256,uint256,uint256,uint256,uint256,uint256) pure returns (bool)" } }, - "id": 5395, + "id": 6546, "isConstant": false, "isLValue": false, "isPure": false, @@ -13199,7 +13483,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2353:218:15", + "src": "2350:218:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13213,21 +13497,21 @@ "typeString": "bool" } ], - "id": 5386, + "id": 6537, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2345:7:15", + "referencedDeclaration": 13444, + "src": "2342:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5396, + "id": 6547, "isConstant": false, "isLValue": false, "isPure": false, @@ -13235,20 +13519,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2345:227:15", + "src": "2342:227:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5397, + "id": 6548, "nodeType": "ExpressionStatement", - "src": "2345:227:15" + "src": "2342:227:22" }, { "expression": { "argumentTypes": null, - "id": 5407, + "id": 6558, "isConstant": false, "isLValue": false, "isPure": false, @@ -13257,29 +13541,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5398, + "id": 6549, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "2602:6:15", + "referencedDeclaration": 6535, + "src": "2599:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5400, + "id": 6551, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5399, + "id": 6550, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2609:1:15", + "src": "2606:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13292,7 +13576,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2602:9:15", + "src": "2599:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13305,12 +13589,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5403, + "id": 6554, "name": "paymentAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5361, - "src": "2654:13:15", + "referencedDeclaration": 6512, + "src": "2651:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13318,12 +13602,12 @@ }, { "argumentTypes": null, - "id": 5404, + "id": 6555, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5377, - "src": "2681:14:15", + "referencedDeclaration": 6528, + "src": "2678:14:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13331,12 +13615,12 @@ }, { "argumentTypes": null, - "id": 5405, + "id": 6556, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5371, - "src": "2709:13:15", + "referencedDeclaration": 6522, + "src": "2706:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13360,32 +13644,32 @@ ], "expression": { "argumentTypes": null, - "id": 5401, + "id": 6552, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "2614:5:15", + "referencedDeclaration": 8378, + "src": "2611:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5402, + "id": 6553, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6169, - "src": "2614:26:15", + "referencedDeclaration": 8222, + "src": "2611:26:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5406, + "id": 6557, "isConstant": false, "isLValue": false, "isPure": false, @@ -13393,21 +13677,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2614:118:15", + "src": "2611:118:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2602:130:15", + "src": "2599:130:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5408, + "id": 6559, "nodeType": "ExpressionStatement", - "src": "2602:130:15" + "src": "2599:130:22" }, { "expression": { @@ -13419,7 +13703,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5414, + "id": 6565, "isConstant": false, "isLValue": false, "isPure": false, @@ -13428,29 +13712,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5410, + "id": 6561, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "2789:6:15", + "referencedDeclaration": 6535, + "src": "2786:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5412, + "id": 6563, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5411, + "id": 6562, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2796:1:15", + "src": "2793:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13463,7 +13747,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2789:9:15", + "src": "2786:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13473,18 +13757,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 5413, + "id": 6564, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "2802:12:15", + "referencedDeclaration": 6524, + "src": "2799:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2789:25:15", + "src": "2786:25:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13498,21 +13782,21 @@ "typeString": "bool" } ], - "id": 5409, + "id": 6560, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2781:7:15", + "referencedDeclaration": 13444, + "src": "2778:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5415, + "id": 6566, "isConstant": false, "isLValue": false, "isPure": false, @@ -13520,28 +13804,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2781:34:15", + "src": "2778:34:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5416, + "id": 6567, "nodeType": "ExpressionStatement", - "src": "2781:34:15" + "src": "2778:34:22" }, { "assignments": [ - 5418 + 6569 ], "declarations": [ { "constant": false, - "id": 5418, + "id": 6569, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2826:10:15", + "scope": 6701, + "src": "2823:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13549,10 +13833,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5417, + "id": 6568, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2826:4:15", + "src": "2823:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13562,7 +13846,7 @@ "visibility": "internal" } ], - "id": 5426, + "id": 6577, "initialValue": { "argumentTypes": null, "arguments": [ @@ -13570,29 +13854,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5420, + "id": 6571, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "2848:6:15", + "referencedDeclaration": 6535, + "src": "2845:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5422, + "id": 6573, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5421, + "id": 6572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2855:1:15", + "src": "2852:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13605,7 +13889,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2848:9:15", + "src": "2845:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13613,12 +13897,12 @@ }, { "argumentTypes": null, - "id": 5423, + "id": 6574, "name": "volumeBoundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5366, - "src": "2859:16:15", + "referencedDeclaration": 6517, + "src": "2856:16:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -13626,12 +13910,12 @@ }, { "argumentTypes": null, - "id": 5424, + "id": 6575, "name": "volumeBonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5369, - "src": "2877:13:15", + "referencedDeclaration": 6520, + "src": "2874:13:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -13653,18 +13937,18 @@ "typeString": "uint256[] memory" } ], - "id": 5419, + "id": 6570, "name": "getBonus", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6117, - "src": "2839:8:15", + "referencedDeclaration": 7268, + "src": "2836:8:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,uint256[] memory,uint256[] memory) view returns (uint256)" } }, - "id": 5425, + "id": 6576, "isConstant": false, "isLValue": false, "isPure": false, @@ -13672,19 +13956,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2839:52:15", + "src": "2836:52:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2826:65:15" + "src": "2823:65:22" }, { "expression": { "argumentTypes": null, - "id": 5443, + "id": 6594, "isConstant": false, "isLValue": false, "isPure": false, @@ -13693,29 +13977,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5427, + "id": 6578, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "2922:6:15", + "referencedDeclaration": 6535, + "src": "2919:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5429, + "id": 6580, "indexExpression": { "argumentTypes": null, "hexValue": "34", - "id": 5428, + "id": 6579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2929:1:15", + "src": "2926:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -13728,7 +14012,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2922:9:15", + "src": "2919:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13744,19 +14028,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5432, + "id": 6583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5430, + "id": 6581, "name": "discount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5363, - "src": "2934:8:15", + "referencedDeclaration": 6514, + "src": "2931:8:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13767,14 +14051,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5431, + "id": 6582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2945:1:15", + "src": "2942:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13782,7 +14066,7 @@ }, "value": "0" }, - "src": "2934:12:15", + "src": "2931:12:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13790,24 +14074,24 @@ }, "falseExpression": { "argumentTypes": null, - "id": 5441, + "id": 6592, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "3022:12:15", + "referencedDeclaration": 6524, + "src": "3019:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5442, + "id": 6593, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "2934:100:15", + "src": "2931:100:22", "trueExpression": { "argumentTypes": null, "arguments": [ @@ -13817,7 +14101,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5439, + "id": 6590, "isConstant": false, "isLValue": false, "isPure": false, @@ -13829,32 +14113,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 5435, + "id": 6586, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "2982:7:15", + "referencedDeclaration": 6431, + "src": "2979:7:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5436, + "id": 6587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "2982:11:15", + "referencedDeclaration": 6331, + "src": "2979:11:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5437, + "id": 6588, "isConstant": false, "isLValue": false, "isPure": false, @@ -13862,7 +14146,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2982:13:15", + "src": "2979:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13872,18 +14156,18 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 5438, + "id": 6589, "name": "discount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5363, - "src": "2998:8:15", + "referencedDeclaration": 6514, + "src": "2995:8:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2982:24:15", + "src": "2979:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13899,32 +14183,32 @@ ], "expression": { "argumentTypes": null, - "id": 5433, + "id": 6584, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "2961:12:15", + "referencedDeclaration": 6524, + "src": "2958:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5434, + "id": 6585, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "percent", "nodeType": "MemberAccess", - "referencedDeclaration": 5133, - "src": "2961:20:15", + "referencedDeclaration": 6350, + "src": "2958:20:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5440, + "id": 6591, "isConstant": false, "isLValue": false, "isPure": false, @@ -13932,7 +14216,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2961:46:15", + "src": "2958:46:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13943,20 +14227,20 @@ "typeString": "uint256" } }, - "src": "2922:112:15", + "src": "2919:112:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5444, + "id": 6595, "nodeType": "ExpressionStatement", - "src": "2922:112:15" + "src": "2919:112:22" }, { "expression": { "argumentTypes": null, - "id": 5466, + "id": 6617, "isConstant": false, "isLValue": false, "isPure": false, @@ -13965,29 +14249,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5445, + "id": 6596, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3063:6:15", + "referencedDeclaration": 6535, + "src": "3060:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5447, + "id": 6598, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5446, + "id": 6597, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3070:1:15", + "src": "3067:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14000,7 +14284,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3063:9:15", + "src": "3060:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14019,12 +14303,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5458, + "id": 6609, "name": "bonus", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5418, - "src": "3162:5:15", + "referencedDeclaration": 6569, + "src": "3159:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14045,32 +14329,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 5454, + "id": 6605, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "3144:7:15", + "referencedDeclaration": 6431, + "src": "3141:7:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5455, + "id": 6606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "3144:11:15", + "referencedDeclaration": 6331, + "src": "3141:11:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5456, + "id": 6607, "isConstant": false, "isLValue": false, "isPure": false, @@ -14078,27 +14362,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3144:13:15", + "src": "3141:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5457, + "id": 6608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "3144:17:15", + "referencedDeclaration": 12367, + "src": "3141:17:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5459, + "id": 6610, "isConstant": false, "isLValue": false, "isPure": false, @@ -14106,7 +14390,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3144:24:15", + "src": "3141:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14124,29 +14408,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5450, + "id": 6601, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3122:6:15", + "referencedDeclaration": 6535, + "src": "3119:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5452, + "id": 6603, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5451, + "id": 6602, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3129:1:15", + "src": "3126:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -14159,27 +14443,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3122:9:15", + "src": "3119:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5453, + "id": 6604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "3122:21:15", + "referencedDeclaration": 6368, + "src": "3119:21:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5460, + "id": 6611, "isConstant": false, "isLValue": false, "isPure": false, @@ -14187,7 +14471,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3122:47:15", + "src": "3119:47:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14195,12 +14479,12 @@ }, { "argumentTypes": null, - "id": 5461, + "id": 6612, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5375, - "src": "3183:13:15", + "referencedDeclaration": 6526, + "src": "3180:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14210,29 +14494,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5462, + "id": 6613, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3210:6:15", + "referencedDeclaration": 6535, + "src": "3207:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5464, + "id": 6615, "indexExpression": { "argumentTypes": null, "hexValue": "34", - "id": 5463, + "id": 6614, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3217:1:15", + "src": "3214:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -14245,7 +14529,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3210:9:15", + "src": "3207:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14269,32 +14553,32 @@ ], "expression": { "argumentTypes": null, - "id": 5448, + "id": 6599, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "3075:5:15", + "referencedDeclaration": 8378, + "src": "3072:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5449, + "id": 6600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeReverseConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6205, - "src": "3075:33:15", + "referencedDeclaration": 8258, + "src": "3072:33:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5465, + "id": 6616, "isConstant": false, "isLValue": false, "isPure": false, @@ -14302,21 +14586,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3075:154:15", + "src": "3072:154:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3063:166:15", + "src": "3060:166:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5467, + "id": 6618, "nodeType": "ExpressionStatement", - "src": "3063:166:15" + "src": "3060:166:22" }, { "condition": { @@ -14325,19 +14609,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5472, + "id": 6623, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5468, + "id": 6619, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5379, - "src": "3288:22:15", + "referencedDeclaration": 6530, + "src": "3285:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14349,29 +14633,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5469, + "id": 6620, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3313:6:15", + "referencedDeclaration": 6535, + "src": "3310:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5471, + "id": 6622, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5470, + "id": 6621, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3320:1:15", + "src": "3317:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14384,31 +14668,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3313:9:15", + "src": "3310:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3288:34:15", + "src": "3285:34:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5493, + "id": 6644, "nodeType": "IfStatement", - "src": "3284:263:15", + "src": "3281:263:22", "trueBody": { - "id": 5492, + "id": 6643, "nodeType": "Block", - "src": "3324:223:15", + "src": "3321:223:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 5484, + "id": 6635, "isConstant": false, "isLValue": false, "isPure": false, @@ -14417,29 +14701,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5473, + "id": 6624, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3338:6:15", + "referencedDeclaration": 6535, + "src": "3335:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5475, + "id": 6626, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5474, + "id": 6625, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3345:1:15", + "src": "3342:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -14452,7 +14736,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3338:9:15", + "src": "3335:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14465,12 +14749,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5478, + "id": 6629, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5379, - "src": "3394:22:15", + "referencedDeclaration": 6530, + "src": "3391:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14478,12 +14762,12 @@ }, { "argumentTypes": null, - "id": 5479, + "id": 6630, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5375, - "src": "3434:13:15", + "referencedDeclaration": 6526, + "src": "3431:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14493,29 +14777,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5480, + "id": 6631, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3465:6:15", + "referencedDeclaration": 6535, + "src": "3462:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5482, + "id": 6633, "indexExpression": { "argumentTypes": null, "hexValue": "34", - "id": 5481, + "id": 6632, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3472:1:15", + "src": "3469:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -14528,7 +14812,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3465:9:15", + "src": "3462:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14552,32 +14836,32 @@ ], "expression": { "argumentTypes": null, - "id": 5476, + "id": 6627, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "3350:5:15", + "referencedDeclaration": 8378, + "src": "3347:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5477, + "id": 6628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6169, - "src": "3350:26:15", + "referencedDeclaration": 8222, + "src": "3347:26:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5483, + "id": 6634, "isConstant": false, "isLValue": false, "isPure": false, @@ -14585,26 +14869,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3350:138:15", + "src": "3347:138:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3338:150:15", + "src": "3335:150:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5485, + "id": 6636, "nodeType": "ExpressionStatement", - "src": "3338:150:15" + "src": "3335:150:22" }, { "expression": { "argumentTypes": null, - "id": 5490, + "id": 6641, "isConstant": false, "isLValue": false, "isPure": false, @@ -14613,29 +14897,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5486, + "id": 6637, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3502:6:15", + "referencedDeclaration": 6535, + "src": "3499:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5488, + "id": 6639, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5487, + "id": 6638, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3509:1:15", + "src": "3506:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14648,7 +14932,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3502:9:15", + "src": "3499:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14658,26 +14942,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 5489, + "id": 6640, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5379, - "src": "3514:22:15", + "referencedDeclaration": 6530, + "src": "3511:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3502:34:15", + "src": "3499:34:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5491, + "id": 6642, "nodeType": "ExpressionStatement", - "src": "3502:34:15" + "src": "3499:34:22" } ] } @@ -14685,7 +14969,7 @@ { "expression": { "argumentTypes": null, - "id": 5505, + "id": 6656, "isConstant": false, "isLValue": false, "isPure": false, @@ -14694,29 +14978,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5494, + "id": 6645, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3573:6:15", + "referencedDeclaration": 6535, + "src": "3570:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5496, + "id": 6647, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5495, + "id": 6646, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3580:1:15", + "src": "3577:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14729,7 +15013,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3573:9:15", + "src": "3570:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14744,29 +15028,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5499, + "id": 6650, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3632:6:15", + "referencedDeclaration": 6535, + "src": "3629:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5501, + "id": 6652, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5500, + "id": 6651, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3639:1:15", + "src": "3636:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -14779,7 +15063,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3632:9:15", + "src": "3629:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14787,12 +15071,12 @@ }, { "argumentTypes": null, - "id": 5502, + "id": 6653, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5377, - "src": "3655:14:15", + "referencedDeclaration": 6528, + "src": "3652:14:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14800,12 +15084,12 @@ }, { "argumentTypes": null, - "id": 5503, + "id": 6654, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5371, - "src": "3683:13:15", + "referencedDeclaration": 6522, + "src": "3680:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14829,32 +15113,32 @@ ], "expression": { "argumentTypes": null, - "id": 5497, + "id": 6648, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "3585:5:15", + "referencedDeclaration": 8378, + "src": "3582:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5498, + "id": 6649, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeReverseConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6205, - "src": "3585:33:15", + "referencedDeclaration": 8258, + "src": "3582:33:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5504, + "id": 6655, "isConstant": false, "isLValue": false, "isPure": false, @@ -14862,21 +15146,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3585:121:15", + "src": "3582:121:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3573:133:15", + "src": "3570:133:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5506, + "id": 6657, "nodeType": "ExpressionStatement", - "src": "3573:133:15" + "src": "3570:133:22" }, { "condition": { @@ -14885,7 +15169,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5517, + "id": 6668, "isConstant": false, "isLValue": false, "isPure": false, @@ -14896,7 +15180,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5511, + "id": 6662, "isConstant": false, "isLValue": false, "isPure": false, @@ -14905,29 +15189,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5507, + "id": 6658, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3754:6:15", + "referencedDeclaration": 6535, + "src": "3751:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5509, + "id": 6660, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5508, + "id": 6659, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3761:1:15", + "src": "3758:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14940,7 +15224,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3754:9:15", + "src": "3751:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14951,14 +15235,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5510, + "id": 6661, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3767:1:15", + "src": "3764:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14966,7 +15250,7 @@ }, "value": "0" }, - "src": "3754:14:15", + "src": "3751:14:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14980,7 +15264,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5516, + "id": 6667, "isConstant": false, "isLValue": false, "isPure": false, @@ -14989,29 +15273,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5512, + "id": 6663, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3772:6:15", + "referencedDeclaration": 6535, + "src": "3769:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5514, + "id": 6665, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5513, + "id": 6664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3779:1:15", + "src": "3776:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15024,7 +15308,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3772:9:15", + "src": "3769:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15035,14 +15319,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5515, + "id": 6666, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3785:1:15", + "src": "3782:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15050,31 +15334,31 @@ }, "value": "0" }, - "src": "3772:14:15", + "src": "3769:14:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3754:32:15", + "src": "3751:32:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5537, + "id": 6688, "nodeType": "IfStatement", - "src": "3750:130:15", + "src": "3747:130:22", "trueBody": { - "id": 5536, + "id": 6687, "nodeType": "Block", - "src": "3788:92:15", + "src": "3785:92:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 5522, + "id": 6673, "isConstant": false, "isLValue": false, "isPure": false, @@ -15083,29 +15367,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5518, + "id": 6669, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3802:6:15", + "referencedDeclaration": 6535, + "src": "3799:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5520, + "id": 6671, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5519, + "id": 6670, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3809:1:15", + "src": "3806:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15118,7 +15402,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3802:9:15", + "src": "3799:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15129,14 +15413,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5521, + "id": 6672, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3814:1:15", + "src": "3811:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15144,20 +15428,20 @@ }, "value": "0" }, - "src": "3802:13:15", + "src": "3799:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5523, + "id": 6674, "nodeType": "ExpressionStatement", - "src": "3802:13:15" + "src": "3799:13:22" }, { "expression": { "argumentTypes": null, - "id": 5528, + "id": 6679, "isConstant": false, "isLValue": false, "isPure": false, @@ -15166,29 +15450,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5524, + "id": 6675, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3829:6:15", + "referencedDeclaration": 6535, + "src": "3826:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5526, + "id": 6677, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5525, + "id": 6676, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3836:1:15", + "src": "3833:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -15201,7 +15485,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3829:9:15", + "src": "3826:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15212,14 +15496,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5527, + "id": 6678, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3841:1:15", + "src": "3838:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15227,20 +15511,20 @@ }, "value": "0" }, - "src": "3829:13:15", + "src": "3826:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5529, + "id": 6680, "nodeType": "ExpressionStatement", - "src": "3829:13:15" + "src": "3826:13:22" }, { "expression": { "argumentTypes": null, - "id": 5534, + "id": 6685, "isConstant": false, "isLValue": false, "isPure": false, @@ -15249,29 +15533,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5530, + "id": 6681, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3856:6:15", + "referencedDeclaration": 6535, + "src": "3853:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5532, + "id": 6683, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5531, + "id": 6682, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3863:1:15", + "src": "3860:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -15284,7 +15568,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3856:9:15", + "src": "3853:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15295,14 +15579,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5533, + "id": 6684, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3868:1:15", + "src": "3865:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15310,15 +15594,15 @@ }, "value": "0" }, - "src": "3856:13:15", + "src": "3853:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5535, + "id": 6686, "nodeType": "ExpressionStatement", - "src": "3856:13:15" + "src": "3853:13:22" } ] } @@ -15326,7 +15610,7 @@ { "expression": { "argumentTypes": null, - "id": 5547, + "id": 6698, "isConstant": false, "isLValue": false, "isPure": false, @@ -15335,29 +15619,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5538, + "id": 6689, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3908:6:15", + "referencedDeclaration": 6535, + "src": "3905:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5540, + "id": 6691, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 5539, + "id": 6690, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3915:1:15", + "src": "3912:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -15370,7 +15654,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3908:9:15", + "src": "3905:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15385,29 +15669,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5543, + "id": 6694, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3938:6:15", + "referencedDeclaration": 6535, + "src": "3935:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5545, + "id": 6696, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5544, + "id": 6695, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3945:1:15", + "src": "3942:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -15420,7 +15704,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3938:9:15", + "src": "3935:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15436,32 +15720,32 @@ ], "expression": { "argumentTypes": null, - "id": 5541, + "id": 6692, "name": "paymentAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5361, - "src": "3920:13:15", + "referencedDeclaration": 6512, + "src": "3917:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5542, + "id": 6693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "3920:17:15", + "referencedDeclaration": 12343, + "src": "3917:17:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5546, + "id": 6697, "isConstant": false, "isLValue": false, "isPure": false, @@ -15469,26 +15753,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3920:28:15", + "src": "3917:28:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3908:40:15", + "src": "3905:40:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5548, + "id": 6699, "nodeType": "ExpressionStatement", - "src": "3908:40:15" + "src": "3905:40:22" } ] }, "documentation": "@notice Generate invoice\n@dev 1 USD = 10^8. In this case precision will be up to 10^8 decimals after point\n@param method Payment method\n@param paymentAmount Payment amount\n@param discount Discount percent\n@param volumeBoundaries Volume boundaries to calculate bonus\n@param volumeBonuses List of bonuses bound to boundaries\n@param methodUSDRate Payment method rate in USD\n@param tokenUSDRate Token rate in USD\n@param tokenDecimals Token decimal\n@param methodDecimals Method decimal. N for token, 18 for ETH\n@param currentBalanceInTokens Current balance in tokens\n@return uint[5] result Invoice calculation result:\n * [tokenAmount, cost, costUSD, change, actualTokenPriceUSD]\n * [0] tokenAmount - amount of token to buy\n[1] cost - cost in method currency\n[2] costUSD cost in USD\n[3] change - change in method currency\n[4] actualTokenPriceUSD - actual token price in USD(with discount)", - "id": 5550, + "id": 6701, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -15496,16 +15780,16 @@ "name": "invoice", "nodeType": "FunctionDefinition", "parameters": { - "id": 5380, + "id": 6531, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5359, + "id": 6510, "name": "method", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2001:14:15", + "scope": 6701, + "src": "2000:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15513,10 +15797,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5358, + "id": 6509, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2001:7:15", + "src": "2000:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15527,11 +15811,11 @@ }, { "constant": false, - "id": 5361, + "id": 6512, "name": "paymentAmount", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2025:18:15", + "scope": 6701, + "src": "2024:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15539,10 +15823,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5360, + "id": 6511, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2025:4:15", + "src": "2024:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15553,11 +15837,11 @@ }, { "constant": false, - "id": 5363, + "id": 6514, "name": "discount", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2053:13:15", + "scope": 6701, + "src": "2052:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15565,10 +15849,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5362, + "id": 6513, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2053:4:15", + "src": "2052:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15579,11 +15863,11 @@ }, { "constant": false, - "id": 5366, + "id": 6517, "name": "volumeBoundaries", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2076:23:15", + "scope": 6701, + "src": "2075:23:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15592,19 +15876,19 @@ }, "typeName": { "baseType": { - "id": 5364, + "id": 6515, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2076:4:15", + "src": "2075:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5365, + "id": 6516, "length": null, "nodeType": "ArrayTypeName", - "src": "2076:6:15", + "src": "2075:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -15615,11 +15899,11 @@ }, { "constant": false, - "id": 5369, + "id": 6520, "name": "volumeBonuses", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2109:20:15", + "scope": 6701, + "src": "2108:20:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15628,19 +15912,19 @@ }, "typeName": { "baseType": { - "id": 5367, + "id": 6518, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2109:4:15", + "src": "2108:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5368, + "id": 6519, "length": null, "nodeType": "ArrayTypeName", - "src": "2109:6:15", + "src": "2108:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -15651,11 +15935,11 @@ }, { "constant": false, - "id": 5371, + "id": 6522, "name": "methodUSDRate", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2139:18:15", + "scope": 6701, + "src": "2138:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15663,10 +15947,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5370, + "id": 6521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2139:4:15", + "src": "2138:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15677,11 +15961,11 @@ }, { "constant": false, - "id": 5373, + "id": 6524, "name": "tokenUSDRate", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2167:17:15", + "scope": 6701, + "src": "2166:17:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15689,10 +15973,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5372, + "id": 6523, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2167:4:15", + "src": "2166:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15703,11 +15987,11 @@ }, { "constant": false, - "id": 5375, + "id": 6526, "name": "tokenDecimals", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2194:18:15", + "scope": 6701, + "src": "2193:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15715,10 +15999,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5374, + "id": 6525, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2194:4:15", + "src": "2193:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15729,11 +16013,11 @@ }, { "constant": false, - "id": 5377, + "id": 6528, "name": "methodDecimals", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2222:19:15", + "scope": 6701, + "src": "2221:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15741,10 +16025,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5376, + "id": 6527, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2222:4:15", + "src": "2221:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15755,11 +16039,11 @@ }, { "constant": false, - "id": 5379, + "id": 6530, "name": "currentBalanceInTokens", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2251:27:15", + "scope": 6701, + "src": "2250:27:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15767,10 +16051,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5378, + "id": 6529, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2251:4:15", + "src": "2250:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15780,20 +16064,20 @@ "visibility": "internal" } ], - "src": "1991:293:15" + "src": "1990:293:22" }, "payable": false, "returnParameters": { - "id": 5385, + "id": 6536, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5384, + "id": 6535, "name": "result", "nodeType": "VariableDeclaration", - "scope": 5550, - "src": "2315:14:15", + "scope": 6701, + "src": "2312:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15802,27 +16086,27 @@ }, "typeName": { "baseType": { - "id": 5381, + "id": 6532, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2315:4:15", + "src": "2312:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5383, + "id": 6534, "length": { "argumentTypes": null, "hexValue": "35", - "id": 5382, + "id": 6533, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2320:1:15", + "src": "2317:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -15831,7 +16115,7 @@ "value": "5" }, "nodeType": "ArrayTypeName", - "src": "2315:7:15", + "src": "2312:7:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", "typeString": "uint256[5]" @@ -15841,19 +16125,19 @@ "visibility": "internal" } ], - "src": "2314:16:15" + "src": "2311:16:22" }, - "scope": 6118, - "src": "1975:1980:15", + "scope": 7269, + "src": "1974:1978:22", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5702, + "id": 6853, "nodeType": "Block", - "src": "5339:1219:15", + "src": "5334:1219:22", "statements": [ { "expression": { @@ -15864,12 +16148,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5581, + "id": 6732, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5552, - "src": "5388:6:15", + "referencedDeclaration": 6703, + "src": "5383:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15877,12 +16161,12 @@ }, { "argumentTypes": null, - "id": 5582, + "id": 6733, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5554, - "src": "5408:11:15", + "referencedDeclaration": 6705, + "src": "5403:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15890,12 +16174,12 @@ }, { "argumentTypes": null, - "id": 5583, + "id": 6734, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5564, - "src": "5433:13:15", + "referencedDeclaration": 6715, + "src": "5428:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15903,12 +16187,12 @@ }, { "argumentTypes": null, - "id": 5584, + "id": 6735, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5566, - "src": "5460:12:15", + "referencedDeclaration": 6717, + "src": "5455:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15916,12 +16200,12 @@ }, { "argumentTypes": null, - "id": 5585, + "id": 6736, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5572, - "src": "5486:22:15", + "referencedDeclaration": 6723, + "src": "5481:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15929,12 +16213,12 @@ }, { "argumentTypes": null, - "id": 5586, + "id": 6737, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5568, - "src": "5522:13:15", + "referencedDeclaration": 6719, + "src": "5517:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15942,12 +16226,12 @@ }, { "argumentTypes": null, - "id": 5587, + "id": 6738, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5570, - "src": "5549:14:15", + "referencedDeclaration": 6721, + "src": "5544:14:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15985,18 +16269,18 @@ "typeString": "uint256" } ], - "id": 5580, + "id": 6731, "name": "checkInvoiceInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5357, - "src": "5357:17:15", + "referencedDeclaration": 6508, + "src": "5352:17:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (bytes32,uint256,uint256,uint256,uint256,uint256,uint256) pure returns (bool)" } }, - "id": 5588, + "id": 6739, "isConstant": false, "isLValue": false, "isPure": false, @@ -16004,7 +16288,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5357:216:15", + "src": "5352:216:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16018,21 +16302,21 @@ "typeString": "bool" } ], - "id": 5579, + "id": 6730, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "5349:7:15", + "referencedDeclaration": 13444, + "src": "5344:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5589, + "id": 6740, "isConstant": false, "isLValue": false, "isPure": false, @@ -16040,15 +16324,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5349:225:15", + "src": "5344:225:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5590, + "id": 6741, "nodeType": "ExpressionStatement", - "src": "5349:225:15" + "src": "5344:225:22" }, { "condition": { @@ -16057,19 +16341,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5593, + "id": 6744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5591, + "id": 6742, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5572, - "src": "5589:22:15", + "referencedDeclaration": 6723, + "src": "5584:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16079,48 +16363,48 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 5592, + "id": 6743, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5554, - "src": "5614:11:15", + "referencedDeclaration": 6705, + "src": "5609:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5589:36:15", + "src": "5584:36:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5599, + "id": 6750, "nodeType": "IfStatement", - "src": "5585:103:15", + "src": "5580:103:22", "trueBody": { - "id": 5598, + "id": 6749, "nodeType": "Block", - "src": "5627:61:15", + "src": "5622:61:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 5596, + "id": 6747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5594, + "id": 6745, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5554, - "src": "5641:11:15", + "referencedDeclaration": 6705, + "src": "5636:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16130,26 +16414,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 5595, + "id": 6746, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5572, - "src": "5655:22:15", + "referencedDeclaration": 6723, + "src": "5650:22:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5641:36:15", + "src": "5636:36:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5597, + "id": 6748, "nodeType": "ExpressionStatement", - "src": "5641:36:15" + "src": "5636:36:22" } ] } @@ -16157,7 +16441,7 @@ { "expression": { "argumentTypes": null, - "id": 5604, + "id": 6755, "isConstant": false, "isLValue": false, "isPure": false, @@ -16166,29 +16450,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5600, + "id": 6751, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "5716:6:15", + "referencedDeclaration": 6728, + "src": "5711:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5602, + "id": 6753, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5601, + "id": 6752, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5723:1:15", + "src": "5718:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -16201,7 +16485,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5716:9:15", + "src": "5711:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16211,31 +16495,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 5603, + "id": 6754, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5554, - "src": "5728:11:15", + "referencedDeclaration": 6705, + "src": "5723:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5716:23:15", + "src": "5711:23:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5605, + "id": 6756, "nodeType": "ExpressionStatement", - "src": "5716:23:15" + "src": "5711:23:22" }, { "expression": { "argumentTypes": null, - "id": 5622, + "id": 6773, "isConstant": false, "isLValue": false, "isPure": false, @@ -16244,29 +16528,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5606, + "id": 6757, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "5770:6:15", + "referencedDeclaration": 6728, + "src": "5765:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5608, + "id": 6759, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 5607, + "id": 6758, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5777:1:15", + "src": "5772:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -16279,7 +16563,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5770:9:15", + "src": "5765:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16295,19 +16579,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5611, + "id": 6762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5609, + "id": 6760, "name": "discount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5556, - "src": "5782:8:15", + "referencedDeclaration": 6707, + "src": "5777:8:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16318,14 +16602,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5610, + "id": 6761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5793:1:15", + "src": "5788:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -16333,7 +16617,7 @@ }, "value": "0" }, - "src": "5782:12:15", + "src": "5777:12:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16341,24 +16625,24 @@ }, "falseExpression": { "argumentTypes": null, - "id": 5620, + "id": 6771, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5566, - "src": "5870:12:15", + "referencedDeclaration": 6717, + "src": "5865:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5621, + "id": 6772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "5782:100:15", + "src": "5777:100:22", "trueExpression": { "argumentTypes": null, "arguments": [ @@ -16368,7 +16652,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5618, + "id": 6769, "isConstant": false, "isLValue": false, "isPure": false, @@ -16380,32 +16664,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 5614, + "id": 6765, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "5830:7:15", + "referencedDeclaration": 6431, + "src": "5825:7:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5615, + "id": 6766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "5830:11:15", + "referencedDeclaration": 6331, + "src": "5825:11:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5616, + "id": 6767, "isConstant": false, "isLValue": false, "isPure": false, @@ -16413,7 +16697,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5830:13:15", + "src": "5825:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16423,18 +16707,18 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 5617, + "id": 6768, "name": "discount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5556, - "src": "5846:8:15", + "referencedDeclaration": 6707, + "src": "5841:8:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5830:24:15", + "src": "5825:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16450,32 +16734,32 @@ ], "expression": { "argumentTypes": null, - "id": 5612, + "id": 6763, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5566, - "src": "5809:12:15", + "referencedDeclaration": 6717, + "src": "5804:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5613, + "id": 6764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "percent", "nodeType": "MemberAccess", - "referencedDeclaration": 5133, - "src": "5809:20:15", + "referencedDeclaration": 6350, + "src": "5804:20:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5619, + "id": 6770, "isConstant": false, "isLValue": false, "isPure": false, @@ -16483,7 +16767,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5809:46:15", + "src": "5804:46:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16494,20 +16778,20 @@ "typeString": "uint256" } }, - "src": "5770:112:15", + "src": "5765:112:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5623, + "id": 6774, "nodeType": "ExpressionStatement", - "src": "5770:112:15" + "src": "5765:112:22" }, { "expression": { "argumentTypes": null, - "id": 5635, + "id": 6786, "isConstant": false, "isLValue": false, "isPure": false, @@ -16516,29 +16800,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5624, + "id": 6775, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "5912:6:15", + "referencedDeclaration": 6728, + "src": "5907:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5626, + "id": 6777, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5625, + "id": 6776, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5919:1:15", + "src": "5914:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -16551,7 +16835,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5912:9:15", + "src": "5907:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16564,12 +16848,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5629, + "id": 6780, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5554, - "src": "5964:11:15", + "referencedDeclaration": 6705, + "src": "5959:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16577,12 +16861,12 @@ }, { "argumentTypes": null, - "id": 5630, + "id": 6781, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5568, - "src": "5989:13:15", + "referencedDeclaration": 6719, + "src": "5984:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16592,29 +16876,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5631, + "id": 6782, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6016:6:15", + "referencedDeclaration": 6728, + "src": "6011:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5633, + "id": 6784, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 5632, + "id": 6783, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6023:1:15", + "src": "6018:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -16627,7 +16911,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6016:9:15", + "src": "6011:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16651,32 +16935,32 @@ ], "expression": { "argumentTypes": null, - "id": 5627, + "id": 6778, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "5924:5:15", + "referencedDeclaration": 8378, + "src": "5919:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5628, + "id": 6779, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6169, - "src": "5924:26:15", + "referencedDeclaration": 8222, + "src": "5919:26:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5634, + "id": 6785, "isConstant": false, "isLValue": false, "isPure": false, @@ -16684,21 +16968,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5924:111:15", + "src": "5919:111:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5912:123:15", + "src": "5907:123:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5636, + "id": 6787, "nodeType": "ExpressionStatement", - "src": "5912:123:15" + "src": "5907:123:22" }, { "expression": { @@ -16710,7 +16994,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5642, + "id": 6793, "isConstant": false, "isLValue": false, "isPure": false, @@ -16719,29 +17003,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5638, + "id": 6789, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6092:6:15", + "referencedDeclaration": 6728, + "src": "6087:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5640, + "id": 6791, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5639, + "id": 6790, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6099:1:15", + "src": "6094:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -16754,7 +17038,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6092:9:15", + "src": "6087:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16764,18 +17048,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 5641, + "id": 6792, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5566, - "src": "6105:12:15", + "referencedDeclaration": 6717, + "src": "6100:12:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6092:25:15", + "src": "6087:25:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16789,21 +17073,21 @@ "typeString": "bool" } ], - "id": 5637, + "id": 6788, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "6084:7:15", + "referencedDeclaration": 13444, + "src": "6079:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5643, + "id": 6794, "isConstant": false, "isLValue": false, "isPure": false, @@ -16811,28 +17095,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6084:34:15", + "src": "6079:34:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5644, + "id": 6795, "nodeType": "ExpressionStatement", - "src": "6084:34:15" + "src": "6079:34:22" }, { "assignments": [ - 5646 + 6797 ], "declarations": [ { "constant": false, - "id": 5646, + "id": 6797, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "6129:10:15", + "scope": 6854, + "src": "6124:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16840,10 +17124,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5645, + "id": 6796, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6129:4:15", + "src": "6124:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16853,7 +17137,7 @@ "visibility": "internal" } ], - "id": 5654, + "id": 6805, "initialValue": { "argumentTypes": null, "arguments": [ @@ -16861,29 +17145,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5648, + "id": 6799, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6151:6:15", + "referencedDeclaration": 6728, + "src": "6146:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5650, + "id": 6801, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5649, + "id": 6800, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6158:1:15", + "src": "6153:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -16896,7 +17180,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6151:9:15", + "src": "6146:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16904,12 +17188,12 @@ }, { "argumentTypes": null, - "id": 5651, + "id": 6802, "name": "volumeBoundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5559, - "src": "6162:16:15", + "referencedDeclaration": 6710, + "src": "6157:16:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -16917,12 +17201,12 @@ }, { "argumentTypes": null, - "id": 5652, + "id": 6803, "name": "volumeBonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5562, - "src": "6180:13:15", + "referencedDeclaration": 6713, + "src": "6175:13:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -16944,18 +17228,18 @@ "typeString": "uint256[] memory" } ], - "id": 5647, + "id": 6798, "name": "getBonus", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6117, - "src": "6142:8:15", + "referencedDeclaration": 7268, + "src": "6137:8:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,uint256[] memory,uint256[] memory) view returns (uint256)" } }, - "id": 5653, + "id": 6804, "isConstant": false, "isLValue": false, "isPure": false, @@ -16963,19 +17247,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6142:52:15", + "src": "6137:52:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6129:65:15" + "src": "6124:65:22" }, { "expression": { "argumentTypes": null, - "id": 5674, + "id": 6825, "isConstant": false, "isLValue": false, "isPure": false, @@ -16984,29 +17268,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5655, + "id": 6806, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6205:6:15", + "referencedDeclaration": 6728, + "src": "6200:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5657, + "id": 6808, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5656, + "id": 6807, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6212:1:15", + "src": "6207:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -17019,7 +17303,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6205:9:15", + "src": "6200:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17034,29 +17318,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5660, + "id": 6811, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6264:6:15", + "referencedDeclaration": 6728, + "src": "6259:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5662, + "id": 6813, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5661, + "id": 6812, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6271:1:15", + "src": "6266:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -17069,7 +17353,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6264:9:15", + "src": "6259:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17077,12 +17361,12 @@ }, { "argumentTypes": null, - "id": 5663, + "id": 6814, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5570, - "src": "6287:14:15", + "referencedDeclaration": 6721, + "src": "6282:14:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17096,12 +17380,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5670, + "id": 6821, "name": "bonus", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5646, - "src": "6359:5:15", + "referencedDeclaration": 6797, + "src": "6354:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17122,32 +17406,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 5666, + "id": 6817, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "6341:7:15", + "referencedDeclaration": 6431, + "src": "6336:7:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$6431_$", "typeString": "type(library Percent)" } }, - "id": 5667, + "id": 6818, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "6341:11:15", + "referencedDeclaration": 6331, + "src": "6336:11:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 5668, + "id": 6819, "isConstant": false, "isLValue": false, "isPure": false, @@ -17155,27 +17439,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6341:13:15", + "src": "6336:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5669, + "id": 6820, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6341:17:15", + "referencedDeclaration": 12367, + "src": "6336:17:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5671, + "id": 6822, "isConstant": false, "isLValue": false, "isPure": false, @@ -17183,7 +17467,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6341:24:15", + "src": "6336:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17199,32 +17483,32 @@ ], "expression": { "argumentTypes": null, - "id": 5664, + "id": 6815, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5564, - "src": "6315:13:15", + "referencedDeclaration": 6715, + "src": "6310:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5665, + "id": 6816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "6315:25:15", + "referencedDeclaration": 6368, + "src": "6310:25:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5672, + "id": 6823, "isConstant": false, "isLValue": false, "isPure": false, @@ -17232,7 +17516,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6315:51:15", + "src": "6310:51:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17256,32 +17540,32 @@ ], "expression": { "argumentTypes": null, - "id": 5658, + "id": 6809, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "6217:5:15", + "referencedDeclaration": 8378, + "src": "6212:5:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 5659, + "id": 6810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeReverseConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6205, - "src": "6217:33:15", + "referencedDeclaration": 8258, + "src": "6212:33:22", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 5673, + "id": 6824, "isConstant": false, "isLValue": false, "isPure": false, @@ -17289,21 +17573,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6217:159:15", + "src": "6212:159:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6205:171:15", + "src": "6200:171:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5675, + "id": 6826, "nodeType": "ExpressionStatement", - "src": "6205:171:15" + "src": "6200:171:22" }, { "condition": { @@ -17312,7 +17596,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5680, + "id": 6831, "isConstant": false, "isLValue": false, "isPure": false, @@ -17321,29 +17605,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5676, + "id": 6827, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6424:6:15", + "referencedDeclaration": 6728, + "src": "6419:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5678, + "id": 6829, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5677, + "id": 6828, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6431:1:15", + "src": "6426:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -17356,7 +17640,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6424:9:15", + "src": "6419:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17367,14 +17651,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5679, + "id": 6830, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6437:1:15", + "src": "6432:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17382,25 +17666,25 @@ }, "value": "0" }, - "src": "6424:14:15", + "src": "6419:14:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5701, + "id": 6852, "nodeType": "IfStatement", - "src": "6420:132:15", + "src": "6415:132:22", "trueBody": { - "id": 5700, + "id": 6851, "nodeType": "Block", - "src": "6440:112:15", + "src": "6435:112:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 5685, + "id": 6836, "isConstant": false, "isLValue": false, "isPure": false, @@ -17409,29 +17693,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5681, + "id": 6832, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6454:6:15", + "referencedDeclaration": 6728, + "src": "6449:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5683, + "id": 6834, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5682, + "id": 6833, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6461:1:15", + "src": "6456:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17444,7 +17728,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6454:9:15", + "src": "6449:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17455,14 +17739,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5684, + "id": 6835, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6466:1:15", + "src": "6461:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17470,20 +17754,20 @@ }, "value": "0" }, - "src": "6454:13:15", + "src": "6449:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5686, + "id": 6837, "nodeType": "ExpressionStatement", - "src": "6454:13:15" + "src": "6449:13:22" }, { "expression": { "argumentTypes": null, - "id": 5691, + "id": 6842, "isConstant": false, "isLValue": false, "isPure": false, @@ -17492,29 +17776,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5687, + "id": 6838, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6481:6:15", + "referencedDeclaration": 6728, + "src": "6476:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5689, + "id": 6840, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5688, + "id": 6839, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6488:1:15", + "src": "6483:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -17527,7 +17811,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6481:9:15", + "src": "6476:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17538,14 +17822,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5690, + "id": 6841, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6493:1:15", + "src": "6488:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17553,20 +17837,20 @@ }, "value": "0" }, - "src": "6481:13:15", + "src": "6476:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5692, + "id": 6843, "nodeType": "ExpressionStatement", - "src": "6481:13:15" + "src": "6476:13:22" }, { "expression": { "argumentTypes": null, - "id": 5697, + "id": 6848, "isConstant": false, "isLValue": false, "isPure": false, @@ -17575,29 +17859,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5693, + "id": 6844, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "6508:6:15", + "referencedDeclaration": 6728, + "src": "6503:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 5695, + "id": 6846, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 5694, + "id": 6845, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6515:1:15", + "src": "6510:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -17610,7 +17894,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6508:9:15", + "src": "6503:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17621,14 +17905,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5696, + "id": 6847, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6520:1:15", + "src": "6515:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17636,22 +17920,22 @@ }, "value": "0" }, - "src": "6508:13:15", + "src": "6503:13:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5698, + "id": 6849, "nodeType": "ExpressionStatement", - "src": "6508:13:15" + "src": "6503:13:22" }, { "expression": null, - "functionReturnParameters": 5578, - "id": 5699, + "functionReturnParameters": 6729, + "id": 6850, "nodeType": "Return", - "src": "6535:7:15" + "src": "6530:7:22" } ] } @@ -17659,7 +17943,7 @@ ] }, "documentation": "@notice Generate invoice by token amount\n@dev 1 USD = 10^8. In this case precision will be up to 10^8 decimals after point\n@param method Payment method\n@param tokenAmount Token amount\n@param discount Discount percent\n@param volumeBoundaries Volume boundaries to calculate bonus\n@param volumeBonuses List of bonuses bound to boundaries\n@param methodUSDRate Payment method rate in USD\n@param tokenUSDRate Token rate in USD\n@param tokenDecimals Token decimal\n@param methodDecimals Method decimal. N for token, 18 for ETH\n@param currentBalanceInTokens Current balance in tokens\n@return uint[4] result Invoice calculation result:\n * [tokenAmount, cost, costUSD, change, actualTokenPriceUSD]\n * [0] tokenAmount - amount of token to buy\n[1] cost - cost in method currency\n[2] costUSD cost in USD\n[3] actualTokenPriceUSD - actual token price in USD(with discount)", - "id": 5703, + "id": 6854, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -17667,16 +17951,16 @@ "name": "invoiceByTokenAmount", "nodeType": "FunctionDefinition", "parameters": { - "id": 5573, + "id": 6724, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5552, + "id": 6703, "name": "method", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5006:14:15", + "scope": 6854, + "src": "5003:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17684,10 +17968,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5551, + "id": 6702, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5006:7:15", + "src": "5003:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17698,11 +17982,11 @@ }, { "constant": false, - "id": 5554, + "id": 6705, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5030:16:15", + "scope": 6854, + "src": "5027:16:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17710,10 +17994,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5553, + "id": 6704, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5030:4:15", + "src": "5027:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17724,11 +18008,11 @@ }, { "constant": false, - "id": 5556, + "id": 6707, "name": "discount", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5056:13:15", + "scope": 6854, + "src": "5053:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17736,10 +18020,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5555, + "id": 6706, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5056:4:15", + "src": "5053:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17750,11 +18034,11 @@ }, { "constant": false, - "id": 5559, + "id": 6710, "name": "volumeBoundaries", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5079:23:15", + "scope": 6854, + "src": "5076:23:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17763,19 +18047,19 @@ }, "typeName": { "baseType": { - "id": 5557, + "id": 6708, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5079:4:15", + "src": "5076:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5558, + "id": 6709, "length": null, "nodeType": "ArrayTypeName", - "src": "5079:6:15", + "src": "5076:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -17786,11 +18070,11 @@ }, { "constant": false, - "id": 5562, + "id": 6713, "name": "volumeBonuses", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5112:20:15", + "scope": 6854, + "src": "5109:20:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17799,19 +18083,19 @@ }, "typeName": { "baseType": { - "id": 5560, + "id": 6711, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5112:4:15", + "src": "5109:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5561, + "id": 6712, "length": null, "nodeType": "ArrayTypeName", - "src": "5112:6:15", + "src": "5109:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -17822,11 +18106,11 @@ }, { "constant": false, - "id": 5564, + "id": 6715, "name": "methodUSDRate", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5142:18:15", + "scope": 6854, + "src": "5139:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17834,10 +18118,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5563, + "id": 6714, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5142:4:15", + "src": "5139:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17848,11 +18132,11 @@ }, { "constant": false, - "id": 5566, + "id": 6717, "name": "tokenUSDRate", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5170:17:15", + "scope": 6854, + "src": "5167:17:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17860,10 +18144,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5565, + "id": 6716, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5170:4:15", + "src": "5167:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17874,11 +18158,11 @@ }, { "constant": false, - "id": 5568, + "id": 6719, "name": "tokenDecimals", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5197:18:15", + "scope": 6854, + "src": "5194:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17886,10 +18170,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5567, + "id": 6718, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5197:4:15", + "src": "5194:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17900,11 +18184,11 @@ }, { "constant": false, - "id": 5570, + "id": 6721, "name": "methodDecimals", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5225:19:15", + "scope": 6854, + "src": "5222:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17912,10 +18196,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5569, + "id": 6720, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5225:4:15", + "src": "5222:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17926,11 +18210,11 @@ }, { "constant": false, - "id": 5572, + "id": 6723, "name": "currentBalanceInTokens", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5254:27:15", + "scope": 6854, + "src": "5251:27:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17938,10 +18222,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5571, + "id": 6722, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5254:4:15", + "src": "5251:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17951,20 +18235,20 @@ "visibility": "internal" } ], - "src": "4996:291:15" + "src": "4993:291:22" }, "payable": false, "returnParameters": { - "id": 5578, + "id": 6729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5577, + "id": 6728, "name": "result", "nodeType": "VariableDeclaration", - "scope": 5703, - "src": "5319:14:15", + "scope": 6854, + "src": "5314:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17973,27 +18257,27 @@ }, "typeName": { "baseType": { - "id": 5574, + "id": 6725, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5319:4:15", + "src": "5314:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5576, + "id": 6727, "length": { "argumentTypes": null, "hexValue": "34", - "id": 5575, + "id": 6726, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5324:1:15", + "src": "5319:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -18002,7 +18286,7 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "5319:7:15", + "src": "5314:7:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" @@ -18012,19 +18296,19 @@ "visibility": "internal" } ], - "src": "5318:16:15" + "src": "5313:16:22" }, - "scope": 6118, - "src": "4967:1591:15", + "scope": 7269, + "src": "4964:1589:22", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5744, + "id": 6895, "nodeType": "Block", - "src": "6677:152:15", + "src": "6670:152:22", "statements": [ { "condition": { @@ -18033,19 +18317,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5720, + "id": 6871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5718, + "id": 6869, "name": "tokenFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5709, - "src": "6691:8:15", + "referencedDeclaration": 6860, + "src": "6684:8:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18056,14 +18340,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5719, + "id": 6870, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6702:1:15", + "src": "6695:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18071,20 +18355,20 @@ }, "value": "0" }, - "src": "6691:12:15", + "src": "6684:12:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5730, + "id": 6881, "nodeType": "IfStatement", - "src": "6687:63:15", + "src": "6680:63:22", "trueBody": { "expression": { "argumentTypes": null, - "id": 5728, + "id": 6879, "isConstant": false, "isLValue": false, "isPure": false, @@ -18093,29 +18377,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5721, + "id": 6872, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "6705:6:15", + "referencedDeclaration": 6867, + "src": "6698:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5723, + "id": 6874, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5722, + "id": 6873, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6712:1:15", + "src": "6705:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18128,7 +18412,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6705:9:15", + "src": "6698:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18141,12 +18425,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5726, + "id": 6877, "name": "tokenFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5709, - "src": "6741:8:15", + "referencedDeclaration": 6860, + "src": "6734:8:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18162,32 +18446,32 @@ ], "expression": { "argumentTypes": null, - "id": 5724, + "id": 6875, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5705, - "src": "6717:11:15", + "referencedDeclaration": 6856, + "src": "6710:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5725, + "id": 6876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "6717:23:15", + "referencedDeclaration": 6368, + "src": "6710:23:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5727, + "id": 6878, "isConstant": false, "isLValue": false, "isPure": false, @@ -18195,21 +18479,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6717:33:15", + "src": "6710:33:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6705:45:15", + "src": "6698:45:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5729, + "id": 6880, "nodeType": "ExpressionStatement", - "src": "6705:45:15" + "src": "6698:45:22" } }, { @@ -18219,19 +18503,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5733, + "id": 6884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5731, + "id": 6882, "name": "purchaseFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5711, - "src": "6764:11:15", + "referencedDeclaration": 6862, + "src": "6757:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18242,14 +18526,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5732, + "id": 6883, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6778:1:15", + "src": "6771:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18257,20 +18541,20 @@ }, "value": "0" }, - "src": "6764:15:15", + "src": "6757:15:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5743, + "id": 6894, "nodeType": "IfStatement", - "src": "6760:62:15", + "src": "6753:62:22", "trueBody": { "expression": { "argumentTypes": null, - "id": 5741, + "id": 6892, "isConstant": false, "isLValue": false, "isPure": false, @@ -18279,29 +18563,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5734, + "id": 6885, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "6781:6:15", + "referencedDeclaration": 6867, + "src": "6774:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5736, + "id": 6887, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5735, + "id": 6886, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6788:1:15", + "src": "6781:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -18314,7 +18598,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6781:9:15", + "src": "6774:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18327,12 +18611,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5739, + "id": 6890, "name": "purchaseFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5711, - "src": "6810:11:15", + "referencedDeclaration": 6862, + "src": "6803:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18348,32 +18632,32 @@ ], "expression": { "argumentTypes": null, - "id": 5737, + "id": 6888, "name": "cost", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5707, - "src": "6793:4:15", + "referencedDeclaration": 6858, + "src": "6786:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5738, + "id": 6889, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "6793:16:15", + "referencedDeclaration": 6368, + "src": "6786:16:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 5740, + "id": 6891, "isConstant": false, "isLValue": false, "isPure": false, @@ -18381,27 +18665,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6793:29:15", + "src": "6786:29:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6781:41:15", + "src": "6774:41:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5742, + "id": 6893, "nodeType": "ExpressionStatement", - "src": "6781:41:15" + "src": "6774:41:22" } } ] }, "documentation": null, - "id": 5745, + "id": 6896, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -18409,16 +18693,16 @@ "name": "fee", "nodeType": "FunctionDefinition", "parameters": { - "id": 5712, + "id": 6863, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5705, + "id": 6856, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 5745, - "src": "6577:16:15", + "scope": 6896, + "src": "6572:16:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18426,10 +18710,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5704, + "id": 6855, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6577:4:15", + "src": "6572:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18440,11 +18724,11 @@ }, { "constant": false, - "id": 5707, + "id": 6858, "name": "cost", "nodeType": "VariableDeclaration", - "scope": 5745, - "src": "6595:9:15", + "scope": 6896, + "src": "6590:9:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18452,10 +18736,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5706, + "id": 6857, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6595:4:15", + "src": "6590:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18466,11 +18750,11 @@ }, { "constant": false, - "id": 5709, + "id": 6860, "name": "tokenFee", "nodeType": "VariableDeclaration", - "scope": 5745, - "src": "6606:13:15", + "scope": 6896, + "src": "6601:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18478,10 +18762,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5708, + "id": 6859, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6606:4:15", + "src": "6601:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18492,11 +18776,11 @@ }, { "constant": false, - "id": 5711, + "id": 6862, "name": "purchaseFee", "nodeType": "VariableDeclaration", - "scope": 5745, - "src": "6621:16:15", + "scope": 6896, + "src": "6616:16:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18504,10 +18788,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5710, + "id": 6861, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6621:4:15", + "src": "6616:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18517,20 +18801,20 @@ "visibility": "internal" } ], - "src": "6576:62:15" + "src": "6571:62:22" }, "payable": false, "returnParameters": { - "id": 5717, + "id": 6868, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5716, + "id": 6867, "name": "result", "nodeType": "VariableDeclaration", - "scope": 5745, - "src": "6661:14:15", + "scope": 6896, + "src": "6654:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18539,27 +18823,27 @@ }, "typeName": { "baseType": { - "id": 5713, + "id": 6864, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6661:4:15", + "src": "6654:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5715, + "id": 6866, "length": { "argumentTypes": null, "hexValue": "32", - "id": 5714, + "id": 6865, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6666:1:15", + "src": "6659:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -18568,7 +18852,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "6661:7:15", + "src": "6654:7:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -18578,19 +18862,19 @@ "visibility": "internal" } ], - "src": "6660:16:15" + "src": "6653:16:22" }, - "scope": 6118, - "src": "6564:265:15", + "scope": 7269, + "src": "6559:263:22", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 5901, + "id": 7052, "nodeType": "Block", - "src": "7056:831:15", + "src": "7047:835:22", "statements": [ { "expression": { @@ -18602,19 +18886,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5769, + "id": 6920, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5765, + "id": 6916, "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5757, - "src": "7074:11:15", + "referencedDeclaration": 6908, + "src": "7065:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18628,14 +18912,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5767, + "id": 6918, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7097:1:15", + "src": "7088:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18651,20 +18935,20 @@ "typeString": "int_const 0" } ], - "id": 5766, + "id": 6917, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7089:7:15", + "src": "7080:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5768, + "id": 6919, "isConstant": false, "isLValue": false, "isPure": true, @@ -18672,13 +18956,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7089:10:15", + "src": "7080:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7074:25:15", + "src": "7065:25:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18692,21 +18976,21 @@ "typeString": "bool" } ], - "id": 5764, + "id": 6915, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7066:7:15", + "referencedDeclaration": 13444, + "src": "7057:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5770, + "id": 6921, "isConstant": false, "isLValue": false, "isPure": false, @@ -18714,15 +18998,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7066:34:15", + "src": "7057:34:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5771, + "id": 6922, "nodeType": "ExpressionStatement", - "src": "7066:34:15" + "src": "7057:34:22" }, { "expression": { @@ -18734,19 +19018,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5777, + "id": 6928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5773, + "id": 6924, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5755, - "src": "7118:5:15", + "referencedDeclaration": 6906, + "src": "7109:5:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18760,14 +19044,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5775, + "id": 6926, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7135:1:15", + "src": "7126:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18783,20 +19067,20 @@ "typeString": "int_const 0" } ], - "id": 5774, + "id": 6925, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7127:7:15", + "src": "7118:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5776, + "id": 6927, "isConstant": false, "isLValue": false, "isPure": true, @@ -18804,13 +19088,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7127:10:15", + "src": "7118:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7118:19:15", + "src": "7109:19:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18824,21 +19108,21 @@ "typeString": "bool" } ], - "id": 5772, + "id": 6923, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7110:7:15", + "referencedDeclaration": 13444, + "src": "7101:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5778, + "id": 6929, "isConstant": false, "isLValue": false, "isPure": false, @@ -18846,15 +19130,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7110:28:15", + "src": "7101:28:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5779, + "id": 6930, "nodeType": "ExpressionStatement", - "src": "7110:28:15" + "src": "7101:28:22" }, { "expression": { @@ -18866,19 +19150,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5785, + "id": 6936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5781, + "id": 6932, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5759, - "src": "7156:9:15", + "referencedDeclaration": 6910, + "src": "7147:9:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18892,14 +19176,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5783, + "id": 6934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7177:1:15", + "src": "7168:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18915,20 +19199,20 @@ "typeString": "int_const 0" } ], - "id": 5782, + "id": 6933, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7169:7:15", + "src": "7160:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5784, + "id": 6935, "isConstant": false, "isLValue": false, "isPure": true, @@ -18936,13 +19220,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7169:10:15", + "src": "7160:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7156:23:15", + "src": "7147:23:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18956,21 +19240,21 @@ "typeString": "bool" } ], - "id": 5780, + "id": 6931, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7148:7:15", + "referencedDeclaration": 13444, + "src": "7139:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5786, + "id": 6937, "isConstant": false, "isLValue": false, "isPure": false, @@ -18978,15 +19262,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7148:32:15", + "src": "7139:32:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5787, + "id": 6938, "nodeType": "ExpressionStatement", - "src": "7148:32:15" + "src": "7139:32:22" }, { "expression": { @@ -18998,19 +19282,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5793, + "id": 6944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5789, + "id": 6940, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5761, - "src": "7198:13:15", + "referencedDeclaration": 6912, + "src": "7189:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19024,14 +19308,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5791, + "id": 6942, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7223:1:15", + "src": "7214:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -19047,20 +19331,20 @@ "typeString": "int_const 0" } ], - "id": 5790, + "id": 6941, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7215:7:15", + "src": "7206:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5792, + "id": 6943, "isConstant": false, "isLValue": false, "isPure": true, @@ -19068,13 +19352,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7215:10:15", + "src": "7206:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7198:27:15", + "src": "7189:27:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19088,21 +19372,21 @@ "typeString": "bool" } ], - "id": 5788, + "id": 6939, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7190:7:15", + "referencedDeclaration": 13444, + "src": "7181:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5794, + "id": 6945, "isConstant": false, "isLValue": false, "isPure": false, @@ -19110,15 +19394,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7190:36:15", + "src": "7181:36:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5795, + "id": 6946, "nodeType": "ExpressionStatement", - "src": "7190:36:15" + "src": "7181:36:22" }, { "condition": { @@ -19127,7 +19411,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 5805, + "id": 6956, "isConstant": false, "isLValue": false, "isPure": false, @@ -19138,7 +19422,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5800, + "id": 6951, "isConstant": false, "isLValue": false, "isPure": false, @@ -19147,29 +19431,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5796, + "id": 6947, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7241:4:15", + "referencedDeclaration": 6900, + "src": "7232:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5798, + "id": 6949, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5797, + "id": 6948, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7246:1:15", + "src": "7237:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -19182,7 +19466,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7241:7:15", + "src": "7232:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19193,14 +19477,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5799, + "id": 6950, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7251:1:15", + "src": "7242:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -19208,7 +19492,7 @@ }, "value": "0" }, - "src": "7241:11:15", + "src": "7232:11:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19222,19 +19506,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 5804, + "id": 6955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5801, + "id": 6952, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5751, - "src": "7256:6:15", + "referencedDeclaration": 6902, + "src": "7247:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19247,18 +19531,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5802, + "id": 6953, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5303, - "src": "7266:10:15", + "referencedDeclaration": 6454, + "src": "7257:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 5803, + "id": 6954, "isConstant": false, "isLValue": false, "isPure": false, @@ -19266,32 +19550,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7266:12:15", + "src": "7257:12:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7256:22:15", + "src": "7247:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "7241:37:15", + "src": "7232:37:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5815, + "id": 6966, "nodeType": "IfStatement", - "src": "7237:102:15", + "src": "7228:102:22", "trueBody": { - "id": 5814, + "id": 6965, "nodeType": "Block", - "src": "7280:59:15", + "src": "7271:59:22", "statements": [ { "expression": { @@ -19303,19 +19587,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5811, + "id": 6962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5807, + "id": 6958, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5753, - "src": "7302:11:15", + "referencedDeclaration": 6904, + "src": "7293:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19329,14 +19613,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5809, + "id": 6960, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7325:1:15", + "src": "7316:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -19352,20 +19636,20 @@ "typeString": "int_const 0" } ], - "id": 5808, + "id": 6959, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7317:7:15", + "src": "7308:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5810, + "id": 6961, "isConstant": false, "isLValue": false, "isPure": true, @@ -19373,13 +19657,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7317:10:15", + "src": "7308:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7302:25:15", + "src": "7293:25:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19393,21 +19677,21 @@ "typeString": "bool" } ], - "id": 5806, + "id": 6957, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7294:7:15", + "referencedDeclaration": 13444, + "src": "7285:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5812, + "id": 6963, "isConstant": false, "isLValue": false, "isPure": false, @@ -19415,15 +19699,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7294:34:15", + "src": "7285:34:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5813, + "id": 6964, "nodeType": "ExpressionStatement", - "src": "7294:34:15" + "src": "7285:34:22" } ] } @@ -19435,7 +19719,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5820, + "id": 6971, "isConstant": false, "isLValue": false, "isPure": false, @@ -19444,29 +19728,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5816, + "id": 6967, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7353:4:15", + "referencedDeclaration": 6900, + "src": "7344:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5818, + "id": 6969, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5817, + "id": 6968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7358:1:15", + "src": "7349:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -19479,7 +19763,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7353:7:15", + "src": "7344:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19490,14 +19774,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5819, + "id": 6970, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7363:1:15", + "src": "7354:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -19505,20 +19789,20 @@ }, "value": "0" }, - "src": "7353:11:15", + "src": "7344:11:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5847, + "id": 6998, "nodeType": "IfStatement", - "src": "7349:181:15", + "src": "7340:183:22", "trueBody": { - "id": 5846, + "id": 6997, "nodeType": "Block", - "src": "7366:164:15", + "src": "7357:166:22", "statements": [ { "expression": { @@ -19529,12 +19813,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5826, + "id": 6977, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5759, - "src": "7420:9:15", + "referencedDeclaration": 6910, + "src": "7412:9:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19542,12 +19826,12 @@ }, { "argumentTypes": null, - "id": 5827, + "id": 6978, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5761, - "src": "7431:13:15", + "referencedDeclaration": 6912, + "src": "7423:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19557,29 +19841,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5828, + "id": 6979, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7446:4:15", + "referencedDeclaration": 6900, + "src": "7438:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5830, + "id": 6981, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5829, + "id": 6980, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7451:1:15", + "src": "7443:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -19592,7 +19876,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7446:7:15", + "src": "7438:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19619,12 +19903,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5823, + "id": 6974, "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5757, - "src": "7394:11:15", + "referencedDeclaration": 6908, + "src": "7386:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19638,18 +19922,18 @@ "typeString": "address" } ], - "id": 5822, - "name": "ERC20", + "id": 6973, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "7388:5:15", + "referencedDeclaration": 13083, + "src": "7379:6:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 5824, + "id": 6975, "isConstant": false, "isLValue": false, "isPure": false, @@ -19657,27 +19941,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7388:18:15", + "src": "7379:19:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 5825, + "id": 6976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 10193, - "src": "7388:31:15", + "referencedDeclaration": 13066, + "src": "7379:32:22", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 5831, + "id": 6982, "isConstant": false, "isLValue": false, "isPure": false, @@ -19685,7 +19969,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7388:66:15", + "src": "7379:67:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19699,21 +19983,21 @@ "typeString": "bool" } ], - "id": 5821, + "id": 6972, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7380:7:15", + "referencedDeclaration": 13444, + "src": "7371:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5832, + "id": 6983, "isConstant": false, "isLValue": false, "isPure": false, @@ -19721,15 +20005,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7380:75:15", + "src": "7371:76:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5833, + "id": 6984, "nodeType": "ExpressionStatement", - "src": "7380:75:15" + "src": "7371:76:22" }, { "expression": { @@ -19740,12 +20024,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5839, + "id": 6990, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5759, - "src": "7499:9:15", + "referencedDeclaration": 6910, + "src": "7492:9:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19755,29 +20039,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5840, + "id": 6991, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7510:4:15", + "referencedDeclaration": 6900, + "src": "7503:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5842, + "id": 6993, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5841, + "id": 6992, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7515:1:15", + "src": "7508:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -19790,7 +20074,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7510:7:15", + "src": "7503:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19813,12 +20097,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5836, + "id": 6987, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5755, - "src": "7483:5:15", + "referencedDeclaration": 6906, + "src": "7476:5:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19832,18 +20116,18 @@ "typeString": "address" } ], - "id": 5835, - "name": "ERC20", + "id": 6986, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "7477:5:15", + "referencedDeclaration": 13083, + "src": "7469:6:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 5837, + "id": 6988, "isConstant": false, "isLValue": false, "isPure": false, @@ -19851,27 +20135,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7477:12:15", + "src": "7469:13:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 5838, + "id": 6989, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "7477:21:15", + "referencedDeclaration": 13046, + "src": "7469:22:22", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 5843, + "id": 6994, "isConstant": false, "isLValue": false, "isPure": false, @@ -19879,7 +20163,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7477:41:15", + "src": "7469:42:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19893,21 +20177,21 @@ "typeString": "bool" } ], - "id": 5834, + "id": 6985, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7469:7:15", + "referencedDeclaration": 13444, + "src": "7461:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5844, + "id": 6995, "isConstant": false, "isLValue": false, "isPure": false, @@ -19915,15 +20199,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7469:50:15", + "src": "7461:51:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5845, + "id": 6996, "nodeType": "ExpressionStatement", - "src": "7469:50:15" + "src": "7461:51:22" } ] } @@ -19935,7 +20219,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5852, + "id": 7003, "isConstant": false, "isLValue": false, "isPure": false, @@ -19944,29 +20228,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5848, + "id": 6999, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7544:4:15", + "referencedDeclaration": 6900, + "src": "7537:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5850, + "id": 7001, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5849, + "id": 7000, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7549:1:15", + "src": "7542:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -19979,7 +20263,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7544:7:15", + "src": "7537:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19990,14 +20274,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5851, + "id": 7002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7554:1:15", + "src": "7547:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -20005,20 +20289,20 @@ }, "value": "0" }, - "src": "7544:11:15", + "src": "7537:11:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5900, + "id": 7051, "nodeType": "IfStatement", - "src": "7540:341:15", + "src": "7533:343:22", "trueBody": { - "id": 5899, + "id": 7050, "nodeType": "Block", - "src": "7557:324:15", + "src": "7550:326:22", "statements": [ { "condition": { @@ -20027,19 +20311,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 5856, + "id": 7007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5853, + "id": 7004, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5751, - "src": "7575:6:15", + "referencedDeclaration": 6902, + "src": "7568:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20052,18 +20336,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5854, + "id": 7005, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5303, - "src": "7585:10:15", + "referencedDeclaration": 6454, + "src": "7578:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 5855, + "id": 7006, "isConstant": false, "isLValue": false, "isPure": false, @@ -20071,22 +20355,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7585:12:15", + "src": "7578:12:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7575:22:15", + "src": "7568:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 5897, + "id": 7048, "nodeType": "Block", - "src": "7669:202:15", + "src": "7662:204:22", "statements": [ { "expression": { @@ -20098,7 +20382,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5880, + "id": 7031, "isConstant": false, "isLValue": false, "isPure": false, @@ -20110,18 +20394,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5871, + "id": 7022, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7724:3:15", + "referencedDeclaration": 13441, + "src": "7718:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5872, + "id": 7023, "isConstant": false, "isLValue": false, "isPure": false, @@ -20129,7 +20413,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7724:10:15", + "src": "7718:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20140,14 +20424,14 @@ "arguments": [ { "argumentTypes": null, - "id": 5874, + "id": 7025, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10557, - "src": "7744:4:15", + "referencedDeclaration": 13522, + "src": "7738:4:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_PurchaseProcessing_$6118", + "typeIdentifier": "t_contract$_PurchaseProcessing_$7269", "typeString": "library PurchaseProcessing" } } @@ -20155,24 +20439,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_PurchaseProcessing_$6118", + "typeIdentifier": "t_contract$_PurchaseProcessing_$7269", "typeString": "library PurchaseProcessing" } ], - "id": 5873, + "id": 7024, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7736:7:15", + "src": "7730:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5875, + "id": 7026, "isConstant": false, "isLValue": false, "isPure": false, @@ -20180,7 +20464,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7736:13:15", + "src": "7730:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20203,12 +20487,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5868, + "id": 7019, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5753, - "src": "7701:11:15", + "referencedDeclaration": 6904, + "src": "7695:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20222,18 +20506,18 @@ "typeString": "address" } ], - "id": 5867, - "name": "ERC20", + "id": 7018, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "7695:5:15", + "referencedDeclaration": 13083, + "src": "7688:6:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 5869, + "id": 7020, "isConstant": false, "isLValue": false, "isPure": false, @@ -20241,27 +20525,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7695:18:15", + "src": "7688:19:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 5870, + "id": 7021, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 10182, - "src": "7695:28:15", + "referencedDeclaration": 13037, + "src": "7688:29:22", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 5876, + "id": 7027, "isConstant": false, "isLValue": false, "isPure": false, @@ -20269,7 +20553,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7695:55:15", + "src": "7688:56:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20281,29 +20565,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5877, + "id": 7028, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7754:4:15", + "referencedDeclaration": 6900, + "src": "7748:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5879, + "id": 7030, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5878, + "id": 7029, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7759:1:15", + "src": "7753:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -20316,13 +20600,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7754:7:15", + "src": "7748:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7695:66:15", + "src": "7688:67:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20336,21 +20620,21 @@ "typeString": "bool" } ], - "id": 5866, + "id": 7017, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7687:7:15", + "referencedDeclaration": 13444, + "src": "7680:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5881, + "id": 7032, "isConstant": false, "isLValue": false, "isPure": false, @@ -20358,15 +20642,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7687:75:15", + "src": "7680:76:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5882, + "id": 7033, "nodeType": "ExpressionStatement", - "src": "7687:75:15" + "src": "7680:76:22" }, { "expression": { @@ -20379,18 +20663,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5888, + "id": 7039, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7820:3:15", + "referencedDeclaration": 13441, + "src": "7815:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5889, + "id": 7040, "isConstant": false, "isLValue": false, "isPure": false, @@ -20398,7 +20682,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7820:10:15", + "src": "7815:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20406,12 +20690,12 @@ }, { "argumentTypes": null, - "id": 5890, + "id": 7041, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5761, - "src": "7832:13:15", + "referencedDeclaration": 6912, + "src": "7827:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20421,29 +20705,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5891, + "id": 7042, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7847:4:15", + "referencedDeclaration": 6900, + "src": "7842:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5893, + "id": 7044, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5892, + "id": 7043, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7852:1:15", + "src": "7847:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -20456,7 +20740,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7847:7:15", + "src": "7842:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20483,12 +20767,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5885, + "id": 7036, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5753, - "src": "7794:11:15", + "referencedDeclaration": 6904, + "src": "7789:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20502,18 +20786,18 @@ "typeString": "address" } ], - "id": 5884, - "name": "ERC20", + "id": 7035, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "7788:5:15", + "referencedDeclaration": 13083, + "src": "7782:6:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 5886, + "id": 7037, "isConstant": false, "isLValue": false, "isPure": false, @@ -20521,27 +20805,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7788:18:15", + "src": "7782:19:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 5887, + "id": 7038, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 10193, - "src": "7788:31:15", + "referencedDeclaration": 13066, + "src": "7782:32:22", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 5894, + "id": 7045, "isConstant": false, "isLValue": false, "isPure": false, @@ -20549,7 +20833,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7788:67:15", + "src": "7782:68:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20563,21 +20847,21 @@ "typeString": "bool" } ], - "id": 5883, + "id": 7034, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7780:7:15", + "referencedDeclaration": 13444, + "src": "7774:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5895, + "id": 7046, "isConstant": false, "isLValue": false, "isPure": false, @@ -20585,25 +20869,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7780:76:15", + "src": "7774:77:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5896, + "id": 7047, "nodeType": "ExpressionStatement", - "src": "7780:76:15" + "src": "7774:77:22" } ] }, - "id": 5898, + "id": 7049, "nodeType": "IfStatement", - "src": "7571:300:15", + "src": "7564:302:22", "trueBody": { - "id": 5865, + "id": 7016, "nodeType": "Block", - "src": "7599:64:15", + "src": "7592:64:22", "statements": [ { "expression": { @@ -20613,29 +20897,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5860, + "id": 7011, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5749, - "src": "7640:4:15", + "referencedDeclaration": 6900, + "src": "7633:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5862, + "id": 7013, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5861, + "id": 7012, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7645:1:15", + "src": "7638:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -20648,7 +20932,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7640:7:15", + "src": "7633:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20664,18 +20948,18 @@ ], "expression": { "argumentTypes": null, - "id": 5857, + "id": 7008, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5761, - "src": "7617:13:15", + "referencedDeclaration": 6912, + "src": "7610:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 5859, + "id": 7010, "isConstant": false, "isLValue": false, "isPure": false, @@ -20683,13 +20967,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7617:22:15", + "src": "7610:22:22", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 5863, + "id": 7014, "isConstant": false, "isLValue": false, "isPure": false, @@ -20697,15 +20981,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7617:31:15", + "src": "7610:31:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5864, + "id": 7015, "nodeType": "ExpressionStatement", - "src": "7617:31:15" + "src": "7610:31:22" } ] } @@ -20716,7 +21000,7 @@ ] }, "documentation": null, - "id": 5902, + "id": 7053, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -20724,16 +21008,16 @@ "name": "transferFee", "nodeType": "FunctionDefinition", "parameters": { - "id": 5762, + "id": 6913, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5749, + "id": 6900, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "6865:12:15", + "scope": 7053, + "src": "6858:12:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20742,27 +21026,27 @@ }, "typeName": { "baseType": { - "id": 5746, + "id": 6897, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6865:4:15", + "src": "6858:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5748, + "id": 6899, "length": { "argumentTypes": null, "hexValue": "32", - "id": 5747, + "id": 6898, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6870:1:15", + "src": "6863:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -20771,7 +21055,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "6865:7:15", + "src": "6858:7:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -20782,11 +21066,11 @@ }, { "constant": false, - "id": 5751, + "id": 6902, "name": "method", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "6887:14:15", + "scope": 7053, + "src": "6880:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20794,10 +21078,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5750, + "id": 6901, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6887:7:15", + "src": "6880:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20808,11 +21092,11 @@ }, { "constant": false, - "id": 5753, + "id": 6904, "name": "methodToken", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "6911:19:15", + "scope": 7053, + "src": "6904:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20820,10 +21104,10 @@ "typeString": "address" }, "typeName": { - "id": 5752, + "id": 6903, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6911:7:15", + "src": "6904:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20834,11 +21118,11 @@ }, { "constant": false, - "id": 5755, + "id": 6906, "name": "token", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "6940:13:15", + "scope": 7053, + "src": "6933:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20846,10 +21130,10 @@ "typeString": "address" }, "typeName": { - "id": 5754, + "id": 6905, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6940:7:15", + "src": "6933:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20860,11 +21144,11 @@ }, { "constant": false, - "id": 5757, + "id": 6908, "name": "originToken", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "6963:19:15", + "scope": 7053, + "src": "6956:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20872,10 +21156,10 @@ "typeString": "address" }, "typeName": { - "id": 5756, + "id": 6907, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6963:7:15", + "src": "6956:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20886,11 +21170,11 @@ }, { "constant": false, - "id": 5759, + "id": 6910, "name": "exchanger", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "6992:17:15", + "scope": 7053, + "src": "6985:17:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20898,10 +21182,10 @@ "typeString": "address" }, "typeName": { - "id": 5758, + "id": 6909, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6992:7:15", + "src": "6985:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20912,11 +21196,11 @@ }, { "constant": false, - "id": 5761, + "id": 6912, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 5902, - "src": "7019:21:15", + "scope": 7053, + "src": "7012:21:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20924,10 +21208,10 @@ "typeString": "address" }, "typeName": { - "id": 5760, + "id": 6911, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7019:7:15", + "src": "7012:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20937,26 +21221,26 @@ "visibility": "internal" } ], - "src": "6855:191:15" + "src": "6848:191:22" }, "payable": false, "returnParameters": { - "id": 5763, + "id": 6914, "nodeType": "ParameterList", "parameters": [], - "src": "7056:0:15" + "src": "7047:0:22" }, - "scope": 6118, - "src": "6835:1052:15", + "scope": 7269, + "src": "6828:1054:22", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 6074, + "id": 7225, "nodeType": "Block", - "src": "8082:833:15", + "src": "8075:835:22", "statements": [ { "expression": { @@ -20968,19 +21252,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5926, + "id": 7077, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5922, + "id": 7073, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5918, - "src": "8100:5:15", + "referencedDeclaration": 7069, + "src": "8093:5:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20994,14 +21278,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5924, + "id": 7075, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8117:1:15", + "src": "8110:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21017,20 +21301,20 @@ "typeString": "int_const 0" } ], - "id": 5923, + "id": 7074, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8109:7:15", + "src": "8102:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5925, + "id": 7076, "isConstant": false, "isLValue": false, "isPure": true, @@ -21038,13 +21322,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8109:10:15", + "src": "8102:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8100:19:15", + "src": "8093:19:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21058,21 +21342,21 @@ "typeString": "bool" } ], - "id": 5921, + "id": 7072, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8092:7:15", + "referencedDeclaration": 13444, + "src": "8085:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5927, + "id": 7078, "isConstant": false, "isLValue": false, "isPure": false, @@ -21080,15 +21364,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8092:28:15", + "src": "8085:28:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5928, + "id": 7079, "nodeType": "ExpressionStatement", - "src": "8092:28:15" + "src": "8085:28:22" }, { "expression": { @@ -21100,7 +21384,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5934, + "id": 7085, "isConstant": false, "isLValue": false, "isPure": false, @@ -21109,29 +21393,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5930, + "id": 7081, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8138:8:15", + "referencedDeclaration": 7057, + "src": "8131:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5932, + "id": 7083, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5931, + "id": 7082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8147:1:15", + "src": "8140:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21144,7 +21428,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8138:11:15", + "src": "8131:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21155,14 +21439,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5933, + "id": 7084, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8153:1:15", + "src": "8146:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21170,7 +21454,7 @@ }, "value": "0" }, - "src": "8138:16:15", + "src": "8131:16:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21184,21 +21468,21 @@ "typeString": "bool" } ], - "id": 5929, + "id": 7080, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8130:7:15", + "referencedDeclaration": 13444, + "src": "8123:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5935, + "id": 7086, "isConstant": false, "isLValue": false, "isPure": false, @@ -21206,15 +21490,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8130:25:15", + "src": "8123:25:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5936, + "id": 7087, "nodeType": "ExpressionStatement", - "src": "8130:25:15" + "src": "8123:25:22" }, { "expression": { @@ -21226,7 +21510,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5942, + "id": 7093, "isConstant": false, "isLValue": false, "isPure": false, @@ -21235,29 +21519,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5938, + "id": 7089, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8173:8:15", + "referencedDeclaration": 7057, + "src": "8166:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5940, + "id": 7091, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5939, + "id": 7090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8182:1:15", + "src": "8175:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -21270,7 +21554,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8173:11:15", + "src": "8166:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21281,14 +21565,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5941, + "id": 7092, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8188:1:15", + "src": "8181:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21296,7 +21580,7 @@ }, "value": "0" }, - "src": "8173:16:15", + "src": "8166:16:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21310,21 +21594,21 @@ "typeString": "bool" } ], - "id": 5937, + "id": 7088, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8165:7:15", + "referencedDeclaration": 13444, + "src": "8158:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5943, + "id": 7094, "isConstant": false, "isLValue": false, "isPure": false, @@ -21332,15 +21616,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8165:25:15", + "src": "8158:25:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5944, + "id": 7095, "nodeType": "ExpressionStatement", - "src": "8165:25:15" + "src": "8158:25:22" }, { "expression": { @@ -21352,7 +21636,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5952, + "id": 7103, "isConstant": false, "isLValue": false, "isPure": false, @@ -21361,29 +21645,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5946, + "id": 7097, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8208:8:15", + "referencedDeclaration": 7057, + "src": "8201:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5948, + "id": 7099, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5947, + "id": 7098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8217:1:15", + "src": "8210:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21396,7 +21680,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8208:11:15", + "src": "8201:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21408,29 +21692,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5949, + "id": 7100, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5910, - "src": "8222:4:15", + "referencedDeclaration": 7061, + "src": "8215:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5951, + "id": 7102, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5950, + "id": 7101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8227:1:15", + "src": "8220:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21443,13 +21727,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8222:7:15", + "src": "8215:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8208:21:15", + "src": "8201:21:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21463,21 +21747,21 @@ "typeString": "bool" } ], - "id": 5945, + "id": 7096, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8200:7:15", + "referencedDeclaration": 13444, + "src": "8193:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5953, + "id": 7104, "isConstant": false, "isLValue": false, "isPure": false, @@ -21485,15 +21769,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8200:30:15", + "src": "8193:30:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5954, + "id": 7105, "nodeType": "ExpressionStatement", - "src": "8200:30:15" + "src": "8193:30:22" }, { "expression": { @@ -21505,7 +21789,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5962, + "id": 7113, "isConstant": false, "isLValue": false, "isPure": false, @@ -21514,29 +21798,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5956, + "id": 7107, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8248:8:15", + "referencedDeclaration": 7057, + "src": "8241:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5958, + "id": 7109, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5957, + "id": 7108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8257:1:15", + "src": "8250:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -21549,7 +21833,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8248:11:15", + "src": "8241:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21561,29 +21845,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5959, + "id": 7110, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5910, - "src": "8262:4:15", + "referencedDeclaration": 7061, + "src": "8255:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 5961, + "id": 7112, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5960, + "id": 7111, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8267:1:15", + "src": "8260:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -21596,13 +21880,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8262:7:15", + "src": "8255:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8248:21:15", + "src": "8241:21:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21616,21 +21900,21 @@ "typeString": "bool" } ], - "id": 5955, + "id": 7106, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8240:7:15", + "referencedDeclaration": 13444, + "src": "8233:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5963, + "id": 7114, "isConstant": false, "isLValue": false, "isPure": false, @@ -21638,15 +21922,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8240:30:15", + "src": "8233:30:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5964, + "id": 7115, "nodeType": "ExpressionStatement", - "src": "8240:30:15" + "src": "8233:30:22" }, { "condition": { @@ -21655,19 +21939,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 5968, + "id": 7119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5965, + "id": 7116, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5914, - "src": "8285:6:15", + "referencedDeclaration": 7065, + "src": "8278:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21680,18 +21964,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5966, + "id": 7117, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5303, - "src": "8295:10:15", + "referencedDeclaration": 6454, + "src": "8288:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 5967, + "id": 7118, "isConstant": false, "isLValue": false, "isPure": false, @@ -21699,26 +21983,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8295:12:15", + "src": "8288:12:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8285:22:15", + "src": "8278:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5979, + "id": 7130, "nodeType": "IfStatement", - "src": "8281:86:15", + "src": "8274:86:22", "trueBody": { - "id": 5978, + "id": 7129, "nodeType": "Block", - "src": "8309:58:15", + "src": "8302:58:22", "statements": [ { "expression": { @@ -21730,7 +22014,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5975, + "id": 7126, "isConstant": false, "isLValue": false, "isPure": false, @@ -21739,18 +22023,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5970, + "id": 7121, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8331:3:15", + "referencedDeclaration": 13441, + "src": "8324:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5971, + "id": 7122, "isConstant": false, "isLValue": false, "isPure": false, @@ -21758,7 +22042,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8331:9:15", + "src": "8324:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21770,29 +22054,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5972, + "id": 7123, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8344:8:15", + "referencedDeclaration": 7057, + "src": "8337:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 5974, + "id": 7125, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 5973, + "id": 7124, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8353:1:15", + "src": "8346:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -21805,13 +22089,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8344:11:15", + "src": "8337:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8331:24:15", + "src": "8324:24:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21825,21 +22109,21 @@ "typeString": "bool" } ], - "id": 5969, + "id": 7120, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8323:7:15", + "referencedDeclaration": 13444, + "src": "8316:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5976, + "id": 7127, "isConstant": false, "isLValue": false, "isPure": false, @@ -21847,15 +22131,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8323:33:15", + "src": "8316:33:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5977, + "id": 7128, "nodeType": "ExpressionStatement", - "src": "8323:33:15" + "src": "8316:33:22" } ] } @@ -21867,19 +22151,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 5983, + "id": 7134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5980, + "id": 7131, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5914, - "src": "8381:6:15", + "referencedDeclaration": 7065, + "src": "8374:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21892,18 +22176,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 5981, + "id": 7132, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5303, - "src": "8391:10:15", + "referencedDeclaration": 6454, + "src": "8384:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 5982, + "id": 7133, "isConstant": false, "isLValue": false, "isPure": false, @@ -21911,26 +22195,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8391:12:15", + "src": "8384:12:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8381:22:15", + "src": "8374:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6036, + "id": 7187, "nodeType": "IfStatement", - "src": "8377:300:15", + "src": "8370:302:22", "trueBody": { - "id": 6035, + "id": 7186, "nodeType": "Block", - "src": "8405:272:15", + "src": "8398:274:22", "statements": [ { "expression": { @@ -21942,19 +22226,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5989, + "id": 7140, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5985, + "id": 7136, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5916, - "src": "8427:11:15", + "referencedDeclaration": 7067, + "src": "8420:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21968,14 +22252,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5987, + "id": 7138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8450:1:15", + "src": "8443:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21991,20 +22275,20 @@ "typeString": "int_const 0" } ], - "id": 5986, + "id": 7137, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8442:7:15", + "src": "8435:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5988, + "id": 7139, "isConstant": false, "isLValue": false, "isPure": true, @@ -22012,13 +22296,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8442:10:15", + "src": "8435:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8427:25:15", + "src": "8420:25:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22032,21 +22316,21 @@ "typeString": "bool" } ], - "id": 5984, + "id": 7135, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8419:7:15", + "referencedDeclaration": 13444, + "src": "8412:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5990, + "id": 7141, "isConstant": false, "isLValue": false, "isPure": false, @@ -22054,15 +22338,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8419:34:15", + "src": "8412:34:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5991, + "id": 7142, "nodeType": "ExpressionStatement", - "src": "8419:34:15" + "src": "8412:34:22" }, { "expression": { @@ -22074,7 +22358,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6011, + "id": 7162, "isConstant": false, "isLValue": false, "isPure": false, @@ -22086,18 +22370,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5997, + "id": 7148, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8504:3:15", + "referencedDeclaration": 13441, + "src": "8498:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5998, + "id": 7149, "isConstant": false, "isLValue": false, "isPure": false, @@ -22105,7 +22389,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8504:10:15", + "src": "8498:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22116,14 +22400,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6000, + "id": 7151, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10557, - "src": "8524:4:15", + "referencedDeclaration": 13522, + "src": "8518:4:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_PurchaseProcessing_$6118", + "typeIdentifier": "t_contract$_PurchaseProcessing_$7269", "typeString": "library PurchaseProcessing" } } @@ -22131,24 +22415,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_PurchaseProcessing_$6118", + "typeIdentifier": "t_contract$_PurchaseProcessing_$7269", "typeString": "library PurchaseProcessing" } ], - "id": 5999, + "id": 7150, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8516:7:15", + "src": "8510:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6001, + "id": 7152, "isConstant": false, "isLValue": false, "isPure": false, @@ -22156,7 +22440,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8516:13:15", + "src": "8510:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22179,12 +22463,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5994, + "id": 7145, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5916, - "src": "8481:11:15", + "referencedDeclaration": 7067, + "src": "8475:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22198,18 +22482,18 @@ "typeString": "address" } ], - "id": 5993, - "name": "ERC20", + "id": 7144, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "8475:5:15", + "referencedDeclaration": 13083, + "src": "8468:6:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 5995, + "id": 7146, "isConstant": false, "isLValue": false, "isPure": false, @@ -22217,27 +22501,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8475:18:15", + "src": "8468:19:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 5996, + "id": 7147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 10182, - "src": "8475:28:15", + "referencedDeclaration": 13037, + "src": "8468:29:22", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 6002, + "id": 7153, "isConstant": false, "isLValue": false, "isPure": false, @@ -22245,7 +22529,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8475:55:15", + "src": "8468:56:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22260,29 +22544,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6007, + "id": 7158, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5910, - "src": "8550:4:15", + "referencedDeclaration": 7061, + "src": "8544:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 6009, + "id": 7160, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 6008, + "id": 7159, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8555:1:15", + "src": "8549:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -22295,7 +22579,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8550:7:15", + "src": "8544:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22313,29 +22597,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6003, + "id": 7154, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8534:8:15", + "referencedDeclaration": 7057, + "src": "8528:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 6005, + "id": 7156, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 6004, + "id": 7155, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8543:1:15", + "src": "8537:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -22348,27 +22632,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8534:11:15", + "src": "8528:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6006, + "id": 7157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8534:15:15", + "referencedDeclaration": 12343, + "src": "8528:15:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6010, + "id": 7161, "isConstant": false, "isLValue": false, "isPure": false, @@ -22376,13 +22660,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8534:24:15", + "src": "8528:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8475:83:15", + "src": "8468:84:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22396,21 +22680,21 @@ "typeString": "bool" } ], - "id": 5992, + "id": 7143, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8467:7:15", + "referencedDeclaration": 13444, + "src": "8460:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6012, + "id": 7163, "isConstant": false, "isLValue": false, "isPure": false, @@ -22418,15 +22702,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8467:92:15", + "src": "8460:93:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6013, + "id": 7164, "nodeType": "ExpressionStatement", - "src": "8467:92:15" + "src": "8460:93:22" }, { "expression": { @@ -22439,18 +22723,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6019, + "id": 7170, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8613:3:15", + "referencedDeclaration": 13441, + "src": "8608:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6020, + "id": 7171, "isConstant": false, "isLValue": false, "isPure": false, @@ -22458,7 +22742,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8613:10:15", + "src": "8608:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22469,14 +22753,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6022, + "id": 7173, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10557, - "src": "8633:4:15", + "referencedDeclaration": 13522, + "src": "8628:4:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_PurchaseProcessing_$6118", + "typeIdentifier": "t_contract$_PurchaseProcessing_$7269", "typeString": "library PurchaseProcessing" } } @@ -22484,24 +22768,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_PurchaseProcessing_$6118", + "typeIdentifier": "t_contract$_PurchaseProcessing_$7269", "typeString": "library PurchaseProcessing" } ], - "id": 6021, + "id": 7172, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8625:7:15", + "src": "8620:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6023, + "id": 7174, "isConstant": false, "isLValue": false, "isPure": false, @@ -22509,7 +22793,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8625:13:15", + "src": "8620:13:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22522,29 +22806,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6028, + "id": 7179, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5910, - "src": "8656:4:15", + "referencedDeclaration": 7061, + "src": "8651:4:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 6030, + "id": 7181, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 6029, + "id": 7180, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8661:1:15", + "src": "8656:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -22557,7 +22841,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8656:7:15", + "src": "8651:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22575,29 +22859,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6024, + "id": 7175, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8640:8:15", + "referencedDeclaration": 7057, + "src": "8635:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 6026, + "id": 7177, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 6025, + "id": 7176, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8649:1:15", + "src": "8644:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -22610,27 +22894,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8640:11:15", + "src": "8635:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6027, + "id": 7178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8640:15:15", + "referencedDeclaration": 12343, + "src": "8635:15:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6031, + "id": 7182, "isConstant": false, "isLValue": false, "isPure": false, @@ -22638,7 +22922,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8640:24:15", + "src": "8635:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22665,12 +22949,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6016, + "id": 7167, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5916, - "src": "8587:11:15", + "referencedDeclaration": 7067, + "src": "8582:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22684,18 +22968,18 @@ "typeString": "address" } ], - "id": 6015, - "name": "ERC20", + "id": 7166, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "8581:5:15", + "referencedDeclaration": 13083, + "src": "8575:6:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 6017, + "id": 7168, "isConstant": false, "isLValue": false, "isPure": false, @@ -22703,27 +22987,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8581:18:15", + "src": "8575:19:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 6018, + "id": 7169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 10193, - "src": "8581:31:15", + "referencedDeclaration": 13066, + "src": "8575:32:22", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 6032, + "id": 7183, "isConstant": false, "isLValue": false, "isPure": false, @@ -22731,7 +23015,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8581:84:15", + "src": "8575:85:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22745,21 +23029,21 @@ "typeString": "bool" } ], - "id": 6014, + "id": 7165, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8573:7:15", + "referencedDeclaration": 13444, + "src": "8567:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6033, + "id": 7184, "isConstant": false, "isLValue": false, "isPure": false, @@ -22767,15 +23051,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8573:93:15", + "src": "8567:94:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6034, + "id": 7185, "nodeType": "ExpressionStatement", - "src": "8573:93:15" + "src": "8567:94:22" } ] } @@ -22791,18 +23075,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6042, + "id": 7193, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8726:3:15", + "referencedDeclaration": 13441, + "src": "8721:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6043, + "id": 7194, "isConstant": false, "isLValue": false, "isPure": false, @@ -22810,7 +23094,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8726:10:15", + "src": "8721:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22820,29 +23104,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6044, + "id": 7195, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8738:8:15", + "referencedDeclaration": 7057, + "src": "8733:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 6046, + "id": 7197, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6045, + "id": 7196, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8747:1:15", + "src": "8742:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -22855,7 +23139,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8738:11:15", + "src": "8733:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22863,12 +23147,12 @@ }, { "argumentTypes": null, - "id": 6047, + "id": 7198, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5912, - "src": "8751:7:15", + "referencedDeclaration": 7063, + "src": "8746:7:22", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22895,12 +23179,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6039, + "id": 7190, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5918, - "src": "8703:5:15", + "referencedDeclaration": 7069, + "src": "8698:5:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22914,18 +23198,18 @@ "typeString": "address" } ], - "id": 6038, + "id": 7189, "name": "IWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7894, - "src": "8695:7:15", + "referencedDeclaration": 10485, + "src": "8690:7:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWToken_$7894_$", + "typeIdentifier": "t_type$_t_contract$_IWToken_$10485_$", "typeString": "type(contract IWToken)" } }, - "id": 6040, + "id": 7191, "isConstant": false, "isLValue": false, "isPure": false, @@ -22933,27 +23217,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8695:14:15", + "src": "8690:14:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "id": 6041, + "id": 7192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "vestingTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 7835, - "src": "8695:30:15", + "referencedDeclaration": 10421, + "src": "8690:30:22", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 6048, + "id": 7199, "isConstant": false, "isLValue": false, "isPure": false, @@ -22961,7 +23245,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8695:64:15", + "src": "8690:64:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22975,21 +23259,21 @@ "typeString": "bool" } ], - "id": 6037, + "id": 7188, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8687:7:15", + "referencedDeclaration": 13444, + "src": "8682:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6049, + "id": 7200, "isConstant": false, "isLValue": false, "isPure": false, @@ -22997,15 +23281,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8687:73:15", + "src": "8682:73:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6050, + "id": 7201, "nodeType": "ExpressionStatement", - "src": "8687:73:15" + "src": "8682:73:22" }, { "condition": { @@ -23014,7 +23298,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6055, + "id": 7206, "isConstant": false, "isLValue": false, "isPure": false, @@ -23023,29 +23307,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6051, + "id": 7202, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8775:8:15", + "referencedDeclaration": 7057, + "src": "8770:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 6053, + "id": 7204, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 6052, + "id": 7203, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8784:1:15", + "src": "8779:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -23058,7 +23342,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8775:11:15", + "src": "8770:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23069,14 +23353,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6054, + "id": 7205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8789:1:15", + "src": "8784:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -23084,20 +23368,20 @@ }, "value": "0" }, - "src": "8775:15:15", + "src": "8770:15:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6073, + "id": 7224, "nodeType": "IfStatement", - "src": "8771:138:15", + "src": "8766:138:22", "trueBody": { - "id": 6072, + "id": 7223, "nodeType": "Block", - "src": "8792:117:15", + "src": "8787:117:22", "statements": [ { "condition": { @@ -23106,19 +23390,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 6059, + "id": 7210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6056, + "id": 7207, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5914, - "src": "8810:6:15", + "referencedDeclaration": 7065, + "src": "8805:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23131,18 +23415,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 6057, + "id": 7208, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5303, - "src": "8820:10:15", + "referencedDeclaration": 6454, + "src": "8815:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 6058, + "id": 7209, "isConstant": false, "isLValue": false, "isPure": false, @@ -23150,26 +23434,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8820:12:15", + "src": "8815:12:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8810:22:15", + "src": "8805:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6071, + "id": 7222, "nodeType": "IfStatement", - "src": "8806:93:15", + "src": "8801:93:22", "trueBody": { - "id": 6070, + "id": 7221, "nodeType": "Block", - "src": "8834:65:15", + "src": "8829:65:22", "statements": [ { "expression": { @@ -23179,29 +23463,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6065, + "id": 7216, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "8872:8:15", + "referencedDeclaration": 7057, + "src": "8867:8:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 6067, + "id": 7218, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 6066, + "id": 7217, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8881:1:15", + "src": "8876:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -23214,7 +23498,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8872:11:15", + "src": "8867:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23232,18 +23516,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6060, + "id": 7211, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8852:3:15", + "referencedDeclaration": 13441, + "src": "8847:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6063, + "id": 7214, "isConstant": false, "isLValue": false, "isPure": false, @@ -23251,13 +23535,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8852:10:15", + "src": "8847:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6064, + "id": 7215, "isConstant": false, "isLValue": false, "isPure": false, @@ -23265,13 +23549,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8852:19:15", + "src": "8847:19:22", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 6068, + "id": 7219, "isConstant": false, "isLValue": false, "isPure": false, @@ -23279,15 +23563,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8852:32:15", + "src": "8847:32:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6069, + "id": 7220, "nodeType": "ExpressionStatement", - "src": "8852:32:15" + "src": "8847:32:22" } ] } @@ -23298,7 +23582,7 @@ ] }, "documentation": null, - "id": 6075, + "id": 7226, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -23306,16 +23590,16 @@ "name": "transferPurchase", "nodeType": "FunctionDefinition", "parameters": { - "id": 5919, + "id": 7070, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5906, + "id": 7057, "name": "_invoice", "nodeType": "VariableDeclaration", - "scope": 6075, - "src": "7928:16:15", + "scope": 7226, + "src": "7923:16:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23324,27 +23608,27 @@ }, "typeName": { "baseType": { - "id": 5903, + "id": 7054, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7928:4:15", + "src": "7923:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5905, + "id": 7056, "length": { "argumentTypes": null, "hexValue": "35", - "id": 5904, + "id": 7055, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7933:1:15", + "src": "7928:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -23353,7 +23637,7 @@ "value": "5" }, "nodeType": "ArrayTypeName", - "src": "7928:7:15", + "src": "7923:7:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", "typeString": "uint256[5]" @@ -23364,11 +23648,11 @@ }, { "constant": false, - "id": 5910, + "id": 7061, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 6075, - "src": "7954:12:15", + "scope": 7226, + "src": "7949:12:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23377,27 +23661,27 @@ }, "typeName": { "baseType": { - "id": 5907, + "id": 7058, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7954:4:15", + "src": "7949:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5909, + "id": 7060, "length": { "argumentTypes": null, "hexValue": "32", - "id": 5908, + "id": 7059, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7959:1:15", + "src": "7954:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -23406,7 +23690,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "7954:7:15", + "src": "7949:7:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -23417,11 +23701,11 @@ }, { "constant": false, - "id": 5912, + "id": 7063, "name": "vesting", "nodeType": "VariableDeclaration", - "scope": 6075, - "src": "7976:14:15", + "scope": 7226, + "src": "7971:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23429,10 +23713,10 @@ "typeString": "uint32" }, "typeName": { - "id": 5911, + "id": 7062, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7976:6:15", + "src": "7971:6:22", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -23443,11 +23727,11 @@ }, { "constant": false, - "id": 5914, + "id": 7065, "name": "method", "nodeType": "VariableDeclaration", - "scope": 6075, - "src": "8000:14:15", + "scope": 7226, + "src": "7995:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23455,10 +23739,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 5913, + "id": 7064, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8000:7:15", + "src": "7995:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23469,11 +23753,11 @@ }, { "constant": false, - "id": 5916, + "id": 7067, "name": "methodToken", "nodeType": "VariableDeclaration", - "scope": 6075, - "src": "8024:19:15", + "scope": 7226, + "src": "8019:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23481,10 +23765,10 @@ "typeString": "address" }, "typeName": { - "id": 5915, + "id": 7066, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8024:7:15", + "src": "8019:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23495,11 +23779,11 @@ }, { "constant": false, - "id": 5918, + "id": 7069, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6075, - "src": "8053:13:15", + "scope": 7226, + "src": "8048:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23507,10 +23791,10 @@ "typeString": "address" }, "typeName": { - "id": 5917, + "id": 7068, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8053:7:15", + "src": "8048:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23520,32 +23804,32 @@ "visibility": "internal" } ], - "src": "7918:154:15" + "src": "7913:154:22" }, "payable": false, "returnParameters": { - "id": 5920, + "id": 7071, "nodeType": "ParameterList", "parameters": [], - "src": "8082:0:15" + "src": "8075:0:22" }, - "scope": 6118, - "src": "7893:1022:15", + "scope": 7269, + "src": "7888:1022:22", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 6116, + "id": 7267, "nodeType": "Block", - "src": "9032:226:15", + "src": "9025:226:22", "statements": [ { "body": { - "id": 6114, + "id": 7265, "nodeType": "Block", - "src": "9093:159:15", + "src": "9086:159:22", "statements": [ { "condition": { @@ -23554,19 +23838,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6103, + "id": 7254, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6099, + "id": 7250, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6077, - "src": "9111:5:15", + "referencedDeclaration": 7228, + "src": "9104:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23578,26 +23862,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6100, + "id": 7251, "name": "volumeBoundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6080, - "src": "9120:16:15", + "referencedDeclaration": 7231, + "src": "9113:16:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 6102, + "id": 7253, "indexExpression": { "argumentTypes": null, - "id": 6101, + "id": 7252, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6089, - "src": "9137:1:15", + "referencedDeclaration": 7240, + "src": "9130:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23608,54 +23892,54 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9120:19:15", + "src": "9113:19:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9111:28:15", + "src": "9104:28:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 6112, + "id": 7263, "nodeType": "Block", - "src": "9204:38:15", + "src": "9197:38:22", "statements": [ { - "id": 6111, + "id": 7262, "nodeType": "Break", - "src": "9222:5:15" + "src": "9215:5:22" } ] }, - "id": 6113, + "id": 7264, "nodeType": "IfStatement", - "src": "9107:135:15", + "src": "9100:135:22", "trueBody": { - "id": 6110, + "id": 7261, "nodeType": "Block", - "src": "9141:57:15", + "src": "9134:57:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 6108, + "id": 7259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6104, + "id": 7255, "name": "bonus", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6086, - "src": "9159:5:15", + "referencedDeclaration": 7237, + "src": "9152:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23667,26 +23951,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6105, + "id": 7256, "name": "volumeBonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6083, - "src": "9167:13:15", + "referencedDeclaration": 7234, + "src": "9160:13:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 6107, + "id": 7258, "indexExpression": { "argumentTypes": null, - "id": 6106, + "id": 7257, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6089, - "src": "9181:1:15", + "referencedDeclaration": 7240, + "src": "9174:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23697,21 +23981,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9167:16:15", + "src": "9160:16:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9159:24:15", + "src": "9152:24:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6109, + "id": 7260, "nodeType": "ExpressionStatement", - "src": "9159:24:15" + "src": "9152:24:22" } ] } @@ -23724,19 +24008,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6095, + "id": 7246, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6092, + "id": 7243, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6089, - "src": "9059:1:15", + "referencedDeclaration": 7240, + "src": "9052:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23748,18 +24032,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6093, + "id": 7244, "name": "volumeBoundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6080, - "src": "9063:16:15", + "referencedDeclaration": 7231, + "src": "9056:16:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 6094, + "id": 7245, "isConstant": false, "isLValue": false, "isPure": false, @@ -23767,31 +24051,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9063:23:15", + "src": "9056:23:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9059:27:15", + "src": "9052:27:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6115, + "id": 7266, "initializationExpression": { "assignments": [ - 6089 + 7240 ], "declarations": [ { "constant": false, - "id": 6089, + "id": 7240, "name": "i", "nodeType": "VariableDeclaration", - "scope": 6117, - "src": "9047:6:15", + "scope": 7268, + "src": "9040:6:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23799,10 +24083,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6088, + "id": 7239, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9047:4:15", + "src": "9040:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23812,18 +24096,18 @@ "visibility": "internal" } ], - "id": 6091, + "id": 7242, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 6090, + "id": 7241, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9056:1:15", + "src": "9049:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -23832,12 +24116,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9047:10:15" + "src": "9040:10:22" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 6097, + "id": 7248, "isConstant": false, "isLValue": false, "isPure": false, @@ -23845,15 +24129,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9088:3:15", + "src": "9081:3:22", "subExpression": { "argumentTypes": null, - "id": 6096, + "id": 7247, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6089, - "src": "9088:1:15", + "referencedDeclaration": 7240, + "src": "9081:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23864,17 +24148,17 @@ "typeString": "uint256" } }, - "id": 6098, + "id": 7249, "nodeType": "ExpressionStatement", - "src": "9088:3:15" + "src": "9081:3:22" }, "nodeType": "ForStatement", - "src": "9042:210:15" + "src": "9035:210:22" } ] }, "documentation": null, - "id": 6117, + "id": 7268, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -23882,16 +24166,16 @@ "name": "getBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 6084, + "id": 7235, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6077, + "id": 7228, "name": "value", "nodeType": "VariableDeclaration", - "scope": 6117, - "src": "8939:10:15", + "scope": 7268, + "src": "8934:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23899,10 +24183,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6076, + "id": 7227, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8939:4:15", + "src": "8934:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23913,11 +24197,11 @@ }, { "constant": false, - "id": 6080, + "id": 7231, "name": "volumeBoundaries", "nodeType": "VariableDeclaration", - "scope": 6117, - "src": "8951:23:15", + "scope": 7268, + "src": "8946:23:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23926,19 +24210,19 @@ }, "typeName": { "baseType": { - "id": 6078, + "id": 7229, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8951:4:15", + "src": "8946:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6079, + "id": 7230, "length": null, "nodeType": "ArrayTypeName", - "src": "8951:6:15", + "src": "8946:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -23949,11 +24233,11 @@ }, { "constant": false, - "id": 6083, + "id": 7234, "name": "volumeBonuses", "nodeType": "VariableDeclaration", - "scope": 6117, - "src": "8976:20:15", + "scope": 7268, + "src": "8971:20:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23962,19 +24246,19 @@ }, "typeName": { "baseType": { - "id": 6081, + "id": 7232, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8976:4:15", + "src": "8971:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6082, + "id": 7233, "length": null, "nodeType": "ArrayTypeName", - "src": "8976:6:15", + "src": "8971:6:22", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -23984,20 +24268,20 @@ "visibility": "internal" } ], - "src": "8938:59:15" + "src": "8933:59:22" }, "payable": false, "returnParameters": { - "id": 6087, + "id": 7238, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6086, + "id": 7237, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 6117, - "src": "9020:10:15", + "scope": 7268, + "src": "9013:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24005,10 +24289,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6085, + "id": 7236, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9020:4:15", + "src": "9013:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24018,26 +24302,36 @@ "visibility": "internal" } ], - "src": "9019:12:15" + "src": "9012:12:22" }, - "scope": 6118, - "src": "8921:337:15", + "scope": 7269, + "src": "8916:335:22", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" } ], - "scope": 6119, - "src": "228:9032:15" + "scope": 7270, + "src": "229:9024:22" } ], - "src": "0:9261:15" + "src": "0:9254:22" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, - "networks": {}, + "networks": { + "4": { + "events": {}, + "links": { + "Utils": "0x9666c128e3ab46e2e2480fa50e5294c54dad5621", + "Percent": "0x04596c9a67ad5870686616d58c2a8198f8b94b34" + }, + "address": "0xc188f0bc72e1a4f928fcf81132dc444bd0846871", + "transactionHash": "0x0bb5218bfeb66cbda33e7fa0b9753d20693923434ee4dc2c119d8fd55de473c7" + } + }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.300Z" + "updatedAt": "2018-12-06T13:18:18.769Z" } \ No newline at end of file diff --git a/build/contracts/PurchaseProcessingMock.json b/build/contracts/PurchaseProcessingMock.json index 5355769a..91212bc0 100644 --- a/build/contracts/PurchaseProcessingMock.json +++ b/build/contracts/PurchaseProcessingMock.json @@ -235,24 +235,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061121f806100206000396000f30060806040526004361061005e5763ffffffff60e060020a6000350416633676737c81146100605780634bb1e9ff146100c35780636cd5c0561461013f57806391bfca311461019b578063b8005df214610264578063d8e5c91414610309575b005b60408051808201825261005e913691600491604491908390600290839083908082843750939650508335945050600160a060020a036020840135811693604081013582169350606081013582169250608081013582169160a09091013516610347565b6040805160a081810190925261005e91369160049160a49190839060059083908390808284375050604080518082018252949796958181019594509250600291508390839080828437509396505050823563ffffffff16935050506020810135906040810135600160a060020a0390811691606001351661035f565b34801561014b57600080fd5b50610160600435602435604435606435610375565b6040518082600260200280838360005b83811015610188578181015183820152602001610170565b5050505090500191505060405180910390f35b3480156101a757600080fd5b50604080516064356004818101356020818102858101820190965281855261024f958335956024803596604435963696909560849592909301929091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050843595505050602083013592604081013592506060810135915060800135610394565b60405181518152808260a08083836020610170565b34801561027057600080fd5b506040805160206004602480358281013584810280870186019097528086526102f796843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506103bd9650505050505050565b60408051918252519081900360200190f35b34801561031557600080fd5b5061033360043560243560443560643560843560a43560c4356103ca565b604080519115158252519081900360200190f35b610356878787878787876103e9565b50505050505050565b61036d868686868686610778565b505050505050565b61037d6111b9565b61038985858585610a73565b90505b949350505050565b61039c6111d4565b6103ae8b8b8b8b8b8b8b8b8b8b610abd565b9b9a5050505050505050505050565b600061038c848484610ef8565b60006103db88888888888888610f57565b90505b979650505050505050565b600160a060020a03831615156103fe57600080fd5b600160a060020a038416151561041357600080fd5b600160a060020a038216151561042857600080fd5b600160a060020a038116151561043d57600080fd5b602087015160001080156104585750610454610faa565b8614155b1561047257600160a060020a038516151561047257600080fd5b8651600010156105d0578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b1580156104f357600080fd5b505af1158015610507573d6000803e3d6000fd5b505050506040513d602081101561051d57600080fd5b5051151561052a57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b15801561059957600080fd5b505af11580156105ad573d6000803e3d6000fd5b505050506040513d60208110156105c357600080fd5b505115156105d057600080fd5b602087015160001015610356576105e5610faa565b86141561062b576020870151604051600160a060020a0383169180156108fc02916000818181858888f19350505050158015610625573d6000803e3d6000fd5b50610356565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b505050506040513d60208110156106c157600080fd5b505110156106ce57600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561074157600080fd5b505af1158015610755573d6000803e3d6000fd5b505050506040513d602081101561076b57600080fd5b5051151561035657600080fd5b600160a060020a038116151561078d57600080fd5b8551151561079a57600080fd5b602086015115156107aa57600080fd5b84518651116107b857600080fd5b60208086015190870151116107cc57600080fd5b6107d4610faa565b8314156107ec5760208601513410156107ec57600080fd5b6107f4610faa565b831461097a57600160a060020a038216151561080f57600080fd5b602085015161082d908760015b60200201519063ffffffff610fce16565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b15801561089457600080fd5b505af11580156108a8573d6000803e3d6000fd5b505050506040513d60208110156108be57600080fd5b505110156108cb57600080fd5b600160a060020a0382166323b872dd33306108ef89600160200201518b600161081c565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561094357600080fd5b505af1158015610957573d6000803e3d6000fd5b505050506040513d602081101561096d57600080fd5b5051151561097a57600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b1580156109f057600080fd5b505af1158015610a04573d6000803e3d6000fd5b505050506040513d6020811015610a1a57600080fd5b50511515610a2757600080fd5b60608601516000101561036d57610a3c610faa565b83141561036d576060860151604051339180156108fc02916000818181858888f19350505050158015610356573d6000803e3d6000fd5b610a7b6111b9565b6000831115610a9757610a94858463ffffffff610fe516565b81525b600082111561038c57610ab0848363ffffffff610fe516565b6020820152949350505050565b610ac56111d4565b6000610ad68c8c8989878a8a610f57565b1515610ae157600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610b4357600080fd5b505af4158015610b57573d6000803e3d6000fd5b505050506040513d6020811015610b6d57600080fd5b505160408301819052861115610b8257600080fd5b6040820151610b92908a8a610ef8565b905060008a11610ba25785610c28565b610c288a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610bed57600080fd5b505af4158015610c01573d6000803e3d6000fd5b505050506040513d6020811015610c1757600080fd5b50518891900363ffffffff61100016565b82600460200201818152505073__Utils_________________________________63a5a55fcf610cdf610cd48473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610c9c57600080fd5b505af4158015610cb0573d6000803e3d6000fd5b505050506040513d6020811015610cc657600080fd5b50519063ffffffff61102916565b604086015190610fe5565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610d2d57600080fd5b505af4158015610d41573d6000803e3d6000fd5b505050506040513d6020811015610d5757600080fd5b5051808352831015610e16576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015610de157600080fd5b505af4158015610df5573d6000803e3d6000fd5b505050506040513d6020811015610e0b57600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610e7f57600080fd5b505af4158015610e93573d6000803e3d6000fd5b505050506040513d6020811015610ea957600080fd5b5051602083018190521580610ebd57508151155b15610ed45760008083526020830181905260408301525b6020820151610ee4908c90610fce565b6060830152509a9950505050505050505050565b6000805b8351811015610f4f578381815181101515610f1357fe5b602090810290910101518510610f42578281815181101515610f3157fe5b906020019060200201519150610f47565b610f4f565b600101610efc565b509392505050565b60008087118015610f685750600086115b8015610f745750600085115b8015610f83575082600a0a8410155b9050610f8d610faa565b8814156103de578080156103db5750506012149695505050505050565b7f455448000000000000000000000000000000000000000000000000000000000090565b600082821115610fda57fe5b508082035b92915050565b6000610ff98383610ff4611036565b611048565b9392505050565b6000610ff961100d611036565b61101d858563ffffffff61116416565b9063ffffffff61118d16565b81810182811015610fdf57fe5b60006110406111a2565b600a0a905090565b60008080808085151561105757fe5b871580611062575086155b1561106c57611159565b61107e6000198863ffffffff61118d16565b92508288116110a25761109b8661101d8a8a63ffffffff61116416565b9450611159565b858814156110b257869450611159565b858714156110c257879450611159565b8715611143578783116110d557826110d7565b875b91506110e9828863ffffffff61116416565b905061110b6110fe828863ffffffff61118d16565b869063ffffffff61102916565b945061112a868281151561111b57fe5b8691900663ffffffff61102916565b935061113c888363ffffffff610fce16565b97506110c2565b6111566110fe858863ffffffff61118d16565b94505b505050509392505050565b600082151561117557506000610fdf565b5081810281838281151561118557fe5b0414610fdf57fe5b6000818381151561119a57fe5b049392505050565b60006111ac6111b4565b600201905090565b600290565b60408051808201825290600290829080388339509192915050565b60a06040519081016040528060059060208202803883395091929150505600a165627a7a723058203377662a22b487ee5f79c82617337120780eac9ea129a234f529b40f90eda1e20029", - "deployedBytecode": "0x60806040526004361061005e5763ffffffff60e060020a6000350416633676737c81146100605780634bb1e9ff146100c35780636cd5c0561461013f57806391bfca311461019b578063b8005df214610264578063d8e5c91414610309575b005b60408051808201825261005e913691600491604491908390600290839083908082843750939650508335945050600160a060020a036020840135811693604081013582169350606081013582169250608081013582169160a09091013516610347565b6040805160a081810190925261005e91369160049160a49190839060059083908390808284375050604080518082018252949796958181019594509250600291508390839080828437509396505050823563ffffffff16935050506020810135906040810135600160a060020a0390811691606001351661035f565b34801561014b57600080fd5b50610160600435602435604435606435610375565b6040518082600260200280838360005b83811015610188578181015183820152602001610170565b5050505090500191505060405180910390f35b3480156101a757600080fd5b50604080516064356004818101356020818102858101820190965281855261024f958335956024803596604435963696909560849592909301929091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050843595505050602083013592604081013592506060810135915060800135610394565b60405181518152808260a08083836020610170565b34801561027057600080fd5b506040805160206004602480358281013584810280870186019097528086526102f796843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506103bd9650505050505050565b60408051918252519081900360200190f35b34801561031557600080fd5b5061033360043560243560443560643560843560a43560c4356103ca565b604080519115158252519081900360200190f35b610356878787878787876103e9565b50505050505050565b61036d868686868686610778565b505050505050565b61037d6111b9565b61038985858585610a73565b90505b949350505050565b61039c6111d4565b6103ae8b8b8b8b8b8b8b8b8b8b610abd565b9b9a5050505050505050505050565b600061038c848484610ef8565b60006103db88888888888888610f57565b90505b979650505050505050565b600160a060020a03831615156103fe57600080fd5b600160a060020a038416151561041357600080fd5b600160a060020a038216151561042857600080fd5b600160a060020a038116151561043d57600080fd5b602087015160001080156104585750610454610faa565b8614155b1561047257600160a060020a038516151561047257600080fd5b8651600010156105d0578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b1580156104f357600080fd5b505af1158015610507573d6000803e3d6000fd5b505050506040513d602081101561051d57600080fd5b5051151561052a57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b15801561059957600080fd5b505af11580156105ad573d6000803e3d6000fd5b505050506040513d60208110156105c357600080fd5b505115156105d057600080fd5b602087015160001015610356576105e5610faa565b86141561062b576020870151604051600160a060020a0383169180156108fc02916000818181858888f19350505050158015610625573d6000803e3d6000fd5b50610356565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b505050506040513d60208110156106c157600080fd5b505110156106ce57600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561074157600080fd5b505af1158015610755573d6000803e3d6000fd5b505050506040513d602081101561076b57600080fd5b5051151561035657600080fd5b600160a060020a038116151561078d57600080fd5b8551151561079a57600080fd5b602086015115156107aa57600080fd5b84518651116107b857600080fd5b60208086015190870151116107cc57600080fd5b6107d4610faa565b8314156107ec5760208601513410156107ec57600080fd5b6107f4610faa565b831461097a57600160a060020a038216151561080f57600080fd5b602085015161082d908760015b60200201519063ffffffff610fce16565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b15801561089457600080fd5b505af11580156108a8573d6000803e3d6000fd5b505050506040513d60208110156108be57600080fd5b505110156108cb57600080fd5b600160a060020a0382166323b872dd33306108ef89600160200201518b600161081c565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561094357600080fd5b505af1158015610957573d6000803e3d6000fd5b505050506040513d602081101561096d57600080fd5b5051151561097a57600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b1580156109f057600080fd5b505af1158015610a04573d6000803e3d6000fd5b505050506040513d6020811015610a1a57600080fd5b50511515610a2757600080fd5b60608601516000101561036d57610a3c610faa565b83141561036d576060860151604051339180156108fc02916000818181858888f19350505050158015610356573d6000803e3d6000fd5b610a7b6111b9565b6000831115610a9757610a94858463ffffffff610fe516565b81525b600082111561038c57610ab0848363ffffffff610fe516565b6020820152949350505050565b610ac56111d4565b6000610ad68c8c8989878a8a610f57565b1515610ae157600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610b4357600080fd5b505af4158015610b57573d6000803e3d6000fd5b505050506040513d6020811015610b6d57600080fd5b505160408301819052861115610b8257600080fd5b6040820151610b92908a8a610ef8565b905060008a11610ba25785610c28565b610c288a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610bed57600080fd5b505af4158015610c01573d6000803e3d6000fd5b505050506040513d6020811015610c1757600080fd5b50518891900363ffffffff61100016565b82600460200201818152505073__Utils_________________________________63a5a55fcf610cdf610cd48473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610c9c57600080fd5b505af4158015610cb0573d6000803e3d6000fd5b505050506040513d6020811015610cc657600080fd5b50519063ffffffff61102916565b604086015190610fe5565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610d2d57600080fd5b505af4158015610d41573d6000803e3d6000fd5b505050506040513d6020811015610d5757600080fd5b5051808352831015610e16576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015610de157600080fd5b505af4158015610df5573d6000803e3d6000fd5b505050506040513d6020811015610e0b57600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610e7f57600080fd5b505af4158015610e93573d6000803e3d6000fd5b505050506040513d6020811015610ea957600080fd5b5051602083018190521580610ebd57508151155b15610ed45760008083526020830181905260408301525b6020820151610ee4908c90610fce565b6060830152509a9950505050505050505050565b6000805b8351811015610f4f578381815181101515610f1357fe5b602090810290910101518510610f42578281815181101515610f3157fe5b906020019060200201519150610f47565b610f4f565b600101610efc565b509392505050565b60008087118015610f685750600086115b8015610f745750600085115b8015610f83575082600a0a8410155b9050610f8d610faa565b8814156103de578080156103db5750506012149695505050505050565b7f455448000000000000000000000000000000000000000000000000000000000090565b600082821115610fda57fe5b508082035b92915050565b6000610ff98383610ff4611036565b611048565b9392505050565b6000610ff961100d611036565b61101d858563ffffffff61116416565b9063ffffffff61118d16565b81810182811015610fdf57fe5b60006110406111a2565b600a0a905090565b60008080808085151561105757fe5b871580611062575086155b1561106c57611159565b61107e6000198863ffffffff61118d16565b92508288116110a25761109b8661101d8a8a63ffffffff61116416565b9450611159565b858814156110b257869450611159565b858714156110c257879450611159565b8715611143578783116110d557826110d7565b875b91506110e9828863ffffffff61116416565b905061110b6110fe828863ffffffff61118d16565b869063ffffffff61102916565b945061112a868281151561111b57fe5b8691900663ffffffff61102916565b935061113c888363ffffffff610fce16565b97506110c2565b6111566110fe858863ffffffff61118d16565b94505b505050509392505050565b600082151561117557506000610fdf565b5081810281838281151561118557fe5b0414610fdf57fe5b6000818381151561119a57fe5b049392505050565b60006111ac6111b4565b600201905090565b600290565b60408051808201825290600290829080388339509192915050565b60a06040519081016040528060059060208202803883395091929150505600a165627a7a723058203377662a22b487ee5f79c82617337120780eac9ea129a234f529b40f90eda1e20029", - "sourceMap": "71:2574:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;71:2574:21;;;;;;;", - "deployedSourceMap": "71:2574:21:-;;;;;;;;;-1:-1:-1;;;71:2574:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1580:442;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1580:442:21;;-1:-1:-1;;1580:442:21;;;-1:-1:-1;;;;;;;1580:442:21;;;;;;;;;;;;;;-1:-1:-1;1580:442:21;;;;;;;-1:-1:-1;1580:442:21;;;;;;;;;;;;;;;2028:328;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2028:328:21;;;;;;;;;;;;;;;;;-1:-1:-1;2028:328:21;-1:-1:-1;2028:328:21;;-1:-1:-1;2028:328:21;;;;;;;;-1:-1:-1;2028:328:21;;-1:-1:-1;;;2028:328:21;;;;;-1:-1:-1;;;2028:328:21;;;;;;;;;-1:-1:-1;;;;;2028:328:21;;;;;;;;;;1324:250;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1324:250:21;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1324:250:21;;;;;;;;;;;;;;;;637:681;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;637:681:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;637:681:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;637:681:21;;;;-1:-1:-1;637:681:21;-1:-1:-1;637:681:21;;-1:-1:-1;637:681:21;;;;;;;;;-1:-1:-1;637:681:21;;-1:-1:-1;;637:681:21;;;-1:-1:-1;;;637:681:21;;;;;;;;;;-1:-1:-1;637:681:21;;;;;-1:-1:-1;637:681:21;;;;;;;;84:18:-1;;64:39;;637:681:21;;;;;;52:2:-1;8:100;;2362:246:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2362:246:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2362:246:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2362:246:21;;;;-1:-1:-1;2362:246:21;-1:-1:-1;2362:246:21;;-1:-1:-1;2362:246:21;;;;;;;;;-1:-1:-1;2362:246:21;;-1:-1:-1;2362:246:21;;-1:-1:-1;;;;;;;2362:246:21;;;;;;;;;;;;;;;;;110:521;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;110:521:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1580:442;1818:197;1862:4;1880:6;1900:11;1925:5;1944:11;1969:9;1992:13;1818:30;:197::i;:::-;1580:442;;;;;;;:::o;2028:328::-;2179:170;2228:8;2250:4;2268:7;2289:6;2309:11;2334:5;2179:35;:170::i;:::-;2028:328;;;;;;:::o;1324:250::-;1419:7;;:::i;:::-;1445:122;1481:11;1506:4;1524:8;1546:11;1445:22;:122::i;:::-;1438:129;;1324:250;;;;;;;:::o;637:681::-;975:7;;:::i;:::-;1005:306;1045:6;1065:13;1092:8;1114:16;1144:13;1171;1198:12;1224:13;1251:14;1279:22;1005:26;:306::i;:::-;998:313;637:681;-1:-1:-1;;;;;;;;;;;637:681:21:o;2362:246::-;2459:10;2488:113;2529:5;2548:16;2578:13;2488:27;:113::i;110:521::-;364:4;387:237;437:6;457:13;484;511:12;537:22;573:13;600:14;387:36;:237::i;:::-;380:244;;110:521;;;;;;;;;;:::o;6835:1052:15:-;-1:-1:-1;;;;;7074:25:15;;;;7066:34;;;;;;-1:-1:-1;;;;;7118:19:15;;;;7110:28;;;;;;-1:-1:-1;;;;;7156:23:15;;;;7148:32;;;;;;-1:-1:-1;;;;;7198:27:15;;;;7190:36;;;;;;7241:7;;;;7251:1;-1:-1:-1;7241:37:15;;;;;7266:12;:10;:12::i;:::-;7256:22;;;7241:37;7237:102;;;-1:-1:-1;;;;;7302:25:15;;;;7294:34;;;;;;7353:7;;7363:1;-1:-1:-1;7349:181:15;;;7446:7;;7388:66;;;;;;-1:-1:-1;;;;;7388:66:15;;;;;;;;;;;;;;;;;;;;;;;:31;;;;;;:66;;;;;7446:7;;7388:66;;;;;;;;7451:1;7388:31;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;7388:66:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7388:66:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7388:66:15;7380:75;;;;;;;;7510:7;;7477:41;;;;;;-1:-1:-1;;;;;7477:41:15;;;;;;;;;;;;;;;;:21;;;;;;:41;;;;;7510:7;;7477:41;;;;;;;;7515:1;7477:21;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;7477:41:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7477:41:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7477:41:15;7469:50;;;;;;;;7544:7;;;;7554:1;-1:-1:-1;7540:341:15;;;7585:12;:10;:12::i;:::-;7575:22;;7571:300;;;7640:7;;;;7617:31;;-1:-1:-1;;;;;7617:22:15;;;:31;;;;;;;;;7640:7;7617:22;:31;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7617:31:15;7571:300;;;7754:7;;;;;7695:55;;;;;;7724:10;7695:55;;;;7744:4;7695:55;;;;;;7754:7;;-1:-1:-1;;;;;7695:28:15;;;;;:55;;;;;7754:7;7695:55;;;;;;-1:-1:-1;7695:28:15;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;7695:55:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7695:55:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7695:55:15;:66;;7687:75;;;;;;7847:7;;;;;7788:67;;;;;;7820:10;7788:67;;;;-1:-1:-1;;;;;7788:67:15;;;;;;;;;;;;;;;;:31;;;;;;:67;;;;;;;;;;-1:-1:-1;7788:31:15;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;7788:67:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7788:67:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7788:67:15;7780:76;;;;;;;7893:1022;-1:-1:-1;;;;;8100:19:15;;;;8092:28;;;;;;8138:11;;:16;;8130:25;;;;;;8173:11;;;;:16;;8165:25;;;;;;8222:7;;8208:11;;:21;8200:30;;;;;;8262:7;;;;;8248:11;;;;:21;8240:30;;;;;;8295:12;:10;:12::i;:::-;8285:22;;8281:86;;;8344:11;;;;8331:9;:24;;8323:33;;;;;;8391:12;:10;:12::i;:::-;8381:22;;8377:300;;-1:-1:-1;;;;;8427:25:15;;;;8419:34;;;;;;8550:7;;;;8534:24;;:8;8555:1;8534:11;;;;;;:24;:15;:24;:::i;:::-;8475:55;;;;;;8504:10;8475:55;;;;8524:4;8475:55;;;;;;-1:-1:-1;;;;;8475:28:15;;;;;:55;;;;;;;;;;;;;;-1:-1:-1;8475:28:15;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;8475:55:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8475:55:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8475:55:15;:83;;8467:92;;;;;;-1:-1:-1;;;;;8581:31:15;;;8613:10;8633:4;8640:24;8656:4;8661:1;8656:7;;;;8640:8;8649:1;8640:11;;:24;8581:84;;;-1:-1:-1;;;8581:84:15;;;;;;-1:-1:-1;;;;;8581:84:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8581:84:15;;;;5:2:-1;;;;30:1;27;20:12;5:2;8581:84:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8581:84:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8581:84:15;8573:93;;;;;;;;8738:11;;8695:64;;;;;;8726:10;8695:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:30:15;;;;;:64;;;;;8738:11;;8695:64;;;;;;;8747:1;8695:30;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;8695:64:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8695:64:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8695:64:15;8687:73;;;;;;;;8775:11;;;;8789:1;-1:-1:-1;8771:138:15;;;8820:12;:10;:12::i;:::-;8810:22;;8806:93;;;8872:11;;;;8852:32;;:10;;:32;;;;;;;;;8872:11;8852:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;6564:265:15;6661:14;;:::i;:::-;6702:1;6691:8;:12;6687:63;;;6717:33;:11;6741:8;6717:33;:23;:33;:::i;:::-;6705:45;;6687:63;6778:1;6764:11;:15;6760:62;;;6793:29;:4;6810:11;6793:29;:16;:29;:::i;:::-;6781:9;;;:41;:6;6564:265;-1:-1:-1;;;;6564:265:15:o;1975:1980::-;2315:14;;:::i;:::-;2826:10;2353:218;2384:6;2404:13;2431;2458:12;2484:22;2520:13;2547:14;2353:17;:218::i;:::-;2345:227;;;;;;;;2614:5;:26;2654:13;2681:14;2709:13;2614:118;;;;;-1:-1:-1;;;2614:118:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2614:118:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2614:118:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2614:118:15;2602:9;;;:130;;;2789:25;-1:-1:-1;2789:25:15;2781:34;;;;;;2848:9;;;;2839:52;;2859:16;2877:13;2839:8;:52::i;:::-;2826:65;;2945:1;2934:8;:12;:100;;3022:12;2934:100;;;2961:46;2998:8;2982:7;:11;:13;;;;;-1:-1:-1;;;2982:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2982:13:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2982:13:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2982:13:15;2961:12;;2982:24;;2961:46;:20;:46;:::i;:::-;2922:6;2929:1;2922:9;;;:112;;;;;3075:5;:33;3122:47;3144:24;3162:5;3144:7;:11;:13;;;;;-1:-1:-1;;;3144:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3144:13:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3144:13:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3144:13:15;;:24;:17;:24;:::i;:::-;3122:9;;;;;:21;:47::i;:::-;3183:13;3210:6;3217:1;3210:9;;;;3075:154;;;;;-1:-1:-1;;;3075:154:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3075:154:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3075:154:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3075:154:15;3063:166;;;3288:34;;3284:263;;;3465:9;;;;3350:138;;;;;;3472:1;3350:138;;;;;;;;;;;;;;;;;;;:5;;:26;;:138;;;;;3465:9;;3350:138;;;;;;;:5;:138;;;5:2:-1;;;;30:1;27;20:12;5:2;3350:138:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3350:138:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3350:138:15;3338:9;;;:150;3502:34;;;3284:263;3585:5;:33;3632:6;3639:1;3632:9;;;;3655:14;3683:13;3585:121;;;;;-1:-1:-1;;;3585:121:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3585:121:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3585:121:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3585:121:15;3573:9;;;:133;;;3754:14;;:32;;-1:-1:-1;3772:9:15;;:14;3754:32;3750:130;;;3814:1;3802:13;;;:9;3829;;:13;;;3856:9;;;:13;3750:130;3938:9;;;;3920:28;;:13;;:17;:28::i;:::-;3908:9;;;:40;-1:-1:-1;3908:6:15;1975:1980;-1:-1:-1;;;;;;;;;;1975:1980:15:o;8921:337::-;9020:10;;9042:210;9063:16;:23;9059:1;:27;9042:210;;;9120:16;9137:1;9120:19;;;;;;;;;;;;;;;;;;;9111:28;;9107:135;;9167:13;9181:1;9167:16;;;;;;;;;;;;;;;;;;9159:24;;9107:135;;;9222:5;;9107:135;9088:3;;9042:210;;;8921:337;;;;;;:::o;403:526::-;652:11;693:1;684:6;:10;:43;;;;;726:1;710:13;:17;684:43;:75;;;;;758:1;743:12;:16;684:75;:136;;;;;807:13;801:2;:19;775:22;:45;;684:136;675:145;;845:12;:10;:12::i;:::-;835:22;;831:92;;;882:6;:30;;;;-1:-1:-1;;910:2:15;892:20;;403:526;-1:-1:-1;;;;;;403:526:15:o;319:78::-;381:14;319:78;:::o;1060:116:44:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:44;;;1060:116;;;;;:::o;543:123:13:-;605:4;628:31;645:2;649;653:5;:3;:5::i;:::-;628:16;:31::i;:::-;621:38;543:123;-1:-1:-1;;;543:123:13:o;428:109::-;486:4;509:21;524:5;:3;:5::i;:::-;509:10;:2;516;509:10;:6;:10;:::i;:::-;:14;:21;:14;:21;:::i;1238:128:44:-;1319:7;;;1339;;;;1332:15;;;357:65:13;393:4;414:5;:3;:5::i;:::-;408:2;:11;401:18;;357:65;:::o;1131:658:16:-;1197:11;;;;;1255:6;;;1248:14;;;;1284:6;;;:16;;-1:-1:-1;1294:6:16;;1284:16;1281:28;;;1302:7;;1281:28;1331:15;-1:-1:-1;;1344:1:16;1331:15;:12;:15;:::i;:::-;1319:27;-1:-1:-1;1361:9:16;;;1357:37;;1379:15;1392:1;1379:8;:1;1385;1379:8;:5;:8;:::i;:15::-;1372:22;;;;1357:37;1413:1;1408;:6;1404:20;;;1423:1;1416:8;;;;1404:20;1443:1;1438;:6;1434:20;;;1453:1;1446:8;;;;1434:20;1472:6;;1465:267;;1514:1;1507:4;:8;:19;;1522:4;1507:19;;;1518:1;1507:19;1494:32;-1:-1:-1;1560:12:16;1494:32;1570:1;1560:12;:9;:12;:::i;:::-;1540:32;-1:-1:-1;1596:31:16;1607:19;1540:32;1624:1;1607:19;:16;:19;:::i;:::-;1596:6;;:31;:10;:31;:::i;:::-;1587:40;;1656:34;1688:1;1673:12;:16;;;;;;;1656:12;;1673:16;;1656:34;:16;:34;:::i;:::-;1641:49;-1:-1:-1;1709:12:16;:1;1715:5;1709:12;:5;:12;:::i;:::-;1705:16;;1465:267;;;1751:31;1762:19;:12;1779:1;1762:19;:16;:19;:::i;1751:31::-;1742:40;;1131:658;;;;;;;;;;:::o;203:380:44:-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:44;506:8;;485:36;-1:-1:-1;531:7:44;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;665:283;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;225:67:13:-;261:4;280:9;:7;:9::i;:::-;276:1;:13;269:20;;225:67;:::o;161:59::-;216:1;161:59;:::o;71:2574:21:-;;;;;;;;;;;;;;;105:10:-1;71:2574:21;88:34:-1;-1:-1;71:2574:21;;;-1:-1:-1;;71:2574:21:o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;71:2574:21;;;-1:-1:-1;;71:2574:21:o", + "bytecode": "0x608060405234801561001057600080fd5b506109d4806100206000396000f30060806040526004361061005e5763ffffffff60e060020a6000350416633676737c81146100605780634bb1e9ff146100d05780636cd5c0561461015957806391bfca31146101b5578063b8005df21461027e578063d8e5c91414610323575b005b60408051808201825261005e91369160049160449190839060029083908390808284375093965050833594505073ffffffffffffffffffffffffffffffffffffffff6020840135811693604081013582169350606081013582169250608081013582169160a09091013516610361565b6040805160a081810190925261005e91369160049160a49190839060059083908390808284375050604080518082018252949796958181019594509250600291508390839080828437509396505050823563ffffffff1693505050602081013590604081013573ffffffffffffffffffffffffffffffffffffffff908116916060013516610448565b34801561016557600080fd5b5061017a600435602435604435606435610553565b6040518082600260200280838360005b838110156101a257818101518382015260200161018a565b5050505090500191505060405180910390f35b3480156101c157600080fd5b506040805160643560048181013560208181028581018201909652818552610269958335956024803596604435963696909560849592909301929091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497505084359550505060208301359260408101359250606081013591506080013561061a565b60405181518152808260a0808383602061018a565b34801561028a57600080fd5b5060408051602060046024803582810135848102808701860190975280865261031196843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506107899650505050505050565b60408051918252519081900360200190f35b34801561032f57600080fd5b5061034d60043560243560443560643560843560a43560c43561089d565b604080519115158252519081900360200190f35b73__PurchaseProcessing____________________633676737c888888888888886040518863ffffffff1660e060020a0281526004018088600260200280838360005b838110156103bc5781810151838201526020016103a4565b5050505091909101978852505073ffffffffffffffffffffffffffffffffffffffff9485166020870152928416604080870191909152918416606086015283166080850152911660a08301525160c08083019350600092829003018186803b15801561042757600080fd5b505af415801561043b573d6000803e3d6000fd5b5050505050505050505050565b73__PurchaseProcessing____________________634bb1e9ff8787878787876040518763ffffffff1660e060020a0281526004018087600560200280838360005b838110156104a257818101518382015260200161048a565b5050505090500186600260200280838360005b838110156104cd5781810151838201526020016104b5565b50505063ffffffff90981692019182525060208101949094525073ffffffffffffffffffffffffffffffffffffffff9182166040808501919091529116606083015251608080830195506000945090925090829003018186803b15801561053357600080fd5b505af4158015610547573d6000803e3d6000fd5b50505050505050505050565b61055b61096e565b604080517f6cd5c05600000000000000000000000000000000000000000000000000000000815260048101879052602481018690526044810185905260648101849052815173__PurchaseProcessing____________________92636cd5c0569260848082019391829003018186803b1580156105d757600080fd5b505af41580156105eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250604081101561061057600080fd5b5095945050505050565b610622610989565b73__PurchaseProcessing____________________6391bfca318c8c8c8c8c8c8c8c8c8c6040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a818151815260200191508051906020019060200280838360005b838110156106d45781810151838201526020016106bc565b50505050905001838103825289818151815260200191508051906020019060200280838360005b838110156107135781810151838201526020016106fb565b505050509050019c5050505050505050505050505060a06040518083038186803b15801561074057600080fd5b505af4158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a081101561077957600080fd5b509b9a5050505050505050505050565b600073__PurchaseProcessing____________________63b8005df28585856040518463ffffffff1660e060020a028152600401808481526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156108045781810151838201526020016107ec565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561084357818101518382015260200161082b565b505050509050019550505050505060206040518083038186803b15801561086957600080fd5b505af415801561087d573d6000803e3d6000fd5b505050506040513d602081101561089357600080fd5b5051949350505050565b604080517fd8e5c914000000000000000000000000000000000000000000000000000000008152600481018990526024810188905260448101879052606481018690526084810185905260a4810184905260c48101839052905160009173__PurchaseProcessing____________________9163d8e5c9149160e480820192602092909190829003018186803b15801561093657600080fd5b505af415801561094a573d6000803e3d6000fd5b505050506040513d602081101561096057600080fd5b505198975050505050505050565b60408051808201825290600290829080388339509192915050565b60a06040519081016040528060059060208202803883395091929150505600a165627a7a723058209290f442d3a302e46f54273e64a93aed739e5887d78586e8a0c603f3b19625170029", + "deployedBytecode": "0x60806040526004361061005e5763ffffffff60e060020a6000350416633676737c81146100605780634bb1e9ff146100d05780636cd5c0561461015957806391bfca31146101b5578063b8005df21461027e578063d8e5c91414610323575b005b60408051808201825261005e91369160049160449190839060029083908390808284375093965050833594505073ffffffffffffffffffffffffffffffffffffffff6020840135811693604081013582169350606081013582169250608081013582169160a09091013516610361565b6040805160a081810190925261005e91369160049160a49190839060059083908390808284375050604080518082018252949796958181019594509250600291508390839080828437509396505050823563ffffffff1693505050602081013590604081013573ffffffffffffffffffffffffffffffffffffffff908116916060013516610448565b34801561016557600080fd5b5061017a600435602435604435606435610553565b6040518082600260200280838360005b838110156101a257818101518382015260200161018a565b5050505090500191505060405180910390f35b3480156101c157600080fd5b506040805160643560048181013560208181028581018201909652818552610269958335956024803596604435963696909560849592909301929091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497505084359550505060208301359260408101359250606081013591506080013561061a565b60405181518152808260a0808383602061018a565b34801561028a57600080fd5b5060408051602060046024803582810135848102808701860190975280865261031196843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506107899650505050505050565b60408051918252519081900360200190f35b34801561032f57600080fd5b5061034d60043560243560443560643560843560a43560c43561089d565b604080519115158252519081900360200190f35b73__PurchaseProcessing____________________633676737c888888888888886040518863ffffffff1660e060020a0281526004018088600260200280838360005b838110156103bc5781810151838201526020016103a4565b5050505091909101978852505073ffffffffffffffffffffffffffffffffffffffff9485166020870152928416604080870191909152918416606086015283166080850152911660a08301525160c08083019350600092829003018186803b15801561042757600080fd5b505af415801561043b573d6000803e3d6000fd5b5050505050505050505050565b73__PurchaseProcessing____________________634bb1e9ff8787878787876040518763ffffffff1660e060020a0281526004018087600560200280838360005b838110156104a257818101518382015260200161048a565b5050505090500186600260200280838360005b838110156104cd5781810151838201526020016104b5565b50505063ffffffff90981692019182525060208101949094525073ffffffffffffffffffffffffffffffffffffffff9182166040808501919091529116606083015251608080830195506000945090925090829003018186803b15801561053357600080fd5b505af4158015610547573d6000803e3d6000fd5b50505050505050505050565b61055b61096e565b604080517f6cd5c05600000000000000000000000000000000000000000000000000000000815260048101879052602481018690526044810185905260648101849052815173__PurchaseProcessing____________________92636cd5c0569260848082019391829003018186803b1580156105d757600080fd5b505af41580156105eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250604081101561061057600080fd5b5095945050505050565b610622610989565b73__PurchaseProcessing____________________6391bfca318c8c8c8c8c8c8c8c8c8c6040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a818151815260200191508051906020019060200280838360005b838110156106d45781810151838201526020016106bc565b50505050905001838103825289818151815260200191508051906020019060200280838360005b838110156107135781810151838201526020016106fb565b505050509050019c5050505050505050505050505060a06040518083038186803b15801561074057600080fd5b505af4158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a081101561077957600080fd5b509b9a5050505050505050505050565b600073__PurchaseProcessing____________________63b8005df28585856040518463ffffffff1660e060020a028152600401808481526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156108045781810151838201526020016107ec565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561084357818101518382015260200161082b565b505050509050019550505050505060206040518083038186803b15801561086957600080fd5b505af415801561087d573d6000803e3d6000fd5b505050506040513d602081101561089357600080fd5b5051949350505050565b604080517fd8e5c914000000000000000000000000000000000000000000000000000000008152600481018990526024810188905260448101879052606481018690526084810185905260a4810184905260c48101839052905160009173__PurchaseProcessing____________________9163d8e5c9149160e480820192602092909190829003018186803b15801561093657600080fd5b505af415801561094a573d6000803e3d6000fd5b505050506040513d602081101561096057600080fd5b505198975050505050505050565b60408051808201825290600290829080388339509192915050565b60a06040519081016040528060059060208202803883395091929150505600a165627a7a723058209290f442d3a302e46f54273e64a93aed739e5887d78586e8a0c603f3b19625170029", + "sourceMap": "71:2574:30:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;71:2574:30;;;;;;;", + "deployedSourceMap": "71:2574:30:-;;;;;;;;;-1:-1:-1;;;71:2574:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1580:442;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1580:442:30;;-1:-1:-1;;1580:442:30;;;-1:-1:-1;;1580:442:30;;;;;;;;;;;;;;;-1:-1:-1;1580:442:30;;;;;;;-1:-1:-1;1580:442:30;;;;;;;;;;;;;;;2028:328;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2028:328:30;;;;;;;;;;;;;;;;;-1:-1:-1;2028:328:30;-1:-1:-1;2028:328:30;;-1:-1:-1;2028:328:30;;;;;;;;-1:-1:-1;2028:328:30;;-1:-1:-1;;;2028:328:30;;;;;-1:-1:-1;;;2028:328:30;;;;;;;;;;;;;;;;;;;;1324:250;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1324:250:30;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1324:250:30;;;;;;;;;;;;;;;;637:681;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;637:681:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;637:681:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;637:681:30;;;;-1:-1:-1;637:681:30;-1:-1:-1;637:681:30;;-1:-1:-1;637:681:30;;;;;;;;;-1:-1:-1;637:681:30;;-1:-1:-1;;637:681:30;;;-1:-1:-1;;;637:681:30;;;;;;;;;;-1:-1:-1;637:681:30;;;;;-1:-1:-1;637:681:30;;;;;;;;84:18:-1;;64:39;;637:681:30;;;;;;52:2:-1;8:100;;2362:246:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2362:246:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2362:246:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2362:246:30;;;;-1:-1:-1;2362:246:30;-1:-1:-1;2362:246:30;;-1:-1:-1;2362:246:30;;;;;;;;;-1:-1:-1;2362:246:30;;-1:-1:-1;2362:246:30;;-1:-1:-1;;;;;;;2362:246:30;;;;;;;;;;;;;;;;;110:521;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;110:521:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1580:442;1818:18;:30;1862:4;1880:6;1900:11;1925:5;1944:11;1969:9;1992:13;1818:197;;;;;-1:-1:-1;;;1818:197:30;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;-1:-1;;;;1818:197:30;;;;;;;-1:-1:-1;;1818:197:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1818:197:30;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;1818:197:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1818:197:30;;;;1580:442;;;;;;;:::o;2028:328::-;2179:18;:35;2228:8;2250:4;2268:7;2289:6;2309:11;2334:5;2179:170;;;;;-1:-1:-1;;;2179:170:30;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2179:170:30;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;-1:-1;;;2179:170:30;;;;;;;;;-1:-1:-1;2179:170:30;;;;;;;-1:-1:-1;2179:170:30;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2179:170:30;;-1:-1:-1;2179:170:30;;-1:-1:-1;2179:170:30;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;2179:170:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2179:170:30;;;;2028:328;;;;;;:::o;1324:250::-;1419:7;;:::i;:::-;1445:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;;:22;;:122;;;;;;;;;;;:18;:122;;;5:2:-1;;;;30:1;27;20:12;5:2;1445:122:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1445:122:30;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1445:122:30;1324:250;-1:-1:-1;;;;;1324:250:30:o;637:681::-;975:7;;:::i;:::-;1005:18;:26;1045:6;1065:13;1092:8;1114:16;1144:13;1171;1198:12;1224:13;1251:14;1279:22;1005:306;;;;;-1:-1:-1;;;1005:306:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1005:306:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1005:306:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1005:306:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1005:306:30;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:3;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;1005:306:30;637:681;-1:-1:-1;;;;;;;;;;;637:681:30:o;2362:246::-;2459:10;2488:18;:27;2529:5;2548:16;2578:13;2488:113;;;;;-1:-1:-1;;;2488:113:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2488:113:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2488:113:30;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2488:113:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2488:113:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2488:113:30;;2362:246;-1:-1:-1;;;;2362:246:30:o;110:521::-;387:237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;364:4;;387:18;;:36;;:237;;;;;;;;;;;;;;;:18;:237;;;5:2:-1;;;;30:1;27;20:12;5:2;387:237:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;387:237:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;387:237:30;;110:521;-1:-1:-1;;;;;;;;110:521:30:o;71:2574::-;;;;;;;;;;;;;;;105:10:-1;71:2574:30;88:34:-1;-1:-1;71:2574:30;;;-1:-1:-1;;71:2574:30:o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;71:2574:30;;;-1:-1:-1;;71:2574:30:o", "source": "pragma solidity ^0.4.24;\n\nimport \"../../libs/PurchaseProcessing.sol\";\n\ncontract PurchaseProcessingMock {\n\n function checkInvoiceInput(\n bytes32 method,\n uint paymentAmount,\n uint methodUSDRate,\n uint tokenUSDRate,\n uint currentBalanceInTokens,\n uint tokenDecimals,\n uint methodDecimals\n ) public view returns(bool) {\n return PurchaseProcessing.checkInvoiceInput(\n method,\n paymentAmount,\n methodUSDRate,\n tokenUSDRate,\n currentBalanceInTokens,\n tokenDecimals,\n methodDecimals\n );\n }\n\n function invoice(\n bytes32 method,\n uint paymentAmount,\n uint discount,\n uint[] volumeBoundaries,\n uint[] volumeBonuses,\n uint methodUSDRate,\n uint tokenUSDRate,\n uint tokenDecimals,\n uint methodDecimals,\n uint currentBalanceInTokens\n )\n public view returns(uint[5])\n {\n return PurchaseProcessing.invoice(\n method,\n paymentAmount,\n discount,\n volumeBoundaries,\n volumeBonuses,\n methodUSDRate,\n tokenUSDRate,\n tokenDecimals,\n methodDecimals,\n currentBalanceInTokens\n );\n }\n\n function fee(uint tokenAmount, uint cost, uint tokenFee, uint purchaseFee) public view returns(uint[2]) {\n return PurchaseProcessing.fee(\n tokenAmount,\n cost,\n tokenFee,\n purchaseFee\n );\n }\n\n function transferFee(\n uint [2] _fee,\n bytes32 method,\n address methodToken,\n address token,\n address originToken,\n address exchanger,\n address serviceWallet\n ) public payable {\n PurchaseProcessing.transferFee(\n _fee,\n method,\n methodToken,\n token,\n originToken,\n exchanger,\n serviceWallet\n );\n }\n\n function transferPurchase(uint[5] _invoice, uint[2] _fee, uint32 vesting, bytes32 method, address methodToken, address token) public payable {\n PurchaseProcessing.transferPurchase(\n _invoice,\n _fee,\n vesting,\n method,\n methodToken,\n token\n );\n }\n\n function getBonus(uint value, uint[] volumeBoundaries, uint[] volumeBonuses) public view returns(uint bonus) {\n return PurchaseProcessing.getBonus(\n value,\n volumeBoundaries,\n volumeBonuses\n );\n }\n\n function () public payable {}\n}\n", "sourcePath": "/home/circleci/code/contracts/mocks/libs/PurchaseProcessing.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/mocks/libs/PurchaseProcessing.sol", "exportedSymbols": { "PurchaseProcessingMock": [ - 7157 + 9391 ] }, - "id": 7158, + "id": 9392, "nodeType": "SourceUnit", "nodes": [ { - "id": 6968, + "id": 9202, "literals": [ "solidity", "^", @@ -260,16 +260,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:21" + "src": "0:24:30" }, { "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", "file": "../../libs/PurchaseProcessing.sol", - "id": 6969, + "id": 9203, "nodeType": "ImportDirective", - "scope": 7158, - "sourceUnit": 6119, - "src": "26:43:21", + "scope": 9392, + "sourceUnit": 7270, + "src": "26:43:30", "symbolAliases": [], "unitAlias": "" }, @@ -279,18 +279,18 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 7157, + "id": 9391, "linearizedBaseContracts": [ - 7157 + 9391 ], "name": "PurchaseProcessingMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 6999, + "id": 9233, "nodeType": "Block", - "src": "370:261:21", + "src": "370:261:30", "statements": [ { "expression": { @@ -298,12 +298,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6990, + "id": 9224, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6971, - "src": "437:6:21", + "referencedDeclaration": 9205, + "src": "437:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -311,12 +311,12 @@ }, { "argumentTypes": null, - "id": 6991, + "id": 9225, "name": "paymentAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6973, - "src": "457:13:21", + "referencedDeclaration": 9207, + "src": "457:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -324,12 +324,12 @@ }, { "argumentTypes": null, - "id": 6992, + "id": 9226, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6975, - "src": "484:13:21", + "referencedDeclaration": 9209, + "src": "484:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -337,12 +337,12 @@ }, { "argumentTypes": null, - "id": 6993, + "id": 9227, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6977, - "src": "511:12:21", + "referencedDeclaration": 9211, + "src": "511:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -350,12 +350,12 @@ }, { "argumentTypes": null, - "id": 6994, + "id": 9228, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6979, - "src": "537:22:21", + "referencedDeclaration": 9213, + "src": "537:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -363,12 +363,12 @@ }, { "argumentTypes": null, - "id": 6995, + "id": 9229, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6981, - "src": "573:13:21", + "referencedDeclaration": 9215, + "src": "573:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -376,12 +376,12 @@ }, { "argumentTypes": null, - "id": 6996, + "id": 9230, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6983, - "src": "600:14:21", + "referencedDeclaration": 9217, + "src": "600:14:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -421,32 +421,32 @@ ], "expression": { "argumentTypes": null, - "id": 6988, + "id": 9222, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "387:18:21", + "referencedDeclaration": 7269, + "src": "387:18:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 6989, + "id": 9223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "checkInvoiceInput", "nodeType": "MemberAccess", - "referencedDeclaration": 5357, - "src": "387:36:21", + "referencedDeclaration": 6508, + "src": "387:36:30", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (bytes32,uint256,uint256,uint256,uint256,uint256,uint256) pure returns (bool)" } }, - "id": 6997, + "id": 9231, "isConstant": false, "isLValue": false, "isPure": false, @@ -454,21 +454,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "387:237:21", + "src": "387:237:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6987, - "id": 6998, + "functionReturnParameters": 9221, + "id": 9232, "nodeType": "Return", - "src": "380:244:21" + "src": "380:244:30" } ] }, "documentation": null, - "id": 7000, + "id": 9234, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -476,16 +476,16 @@ "name": "checkInvoiceInput", "nodeType": "FunctionDefinition", "parameters": { - "id": 6984, + "id": 9218, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6971, + "id": 9205, "name": "method", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "146:14:21", + "scope": 9234, + "src": "146:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -493,10 +493,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 6970, + "id": 9204, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "146:7:21", + "src": "146:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -507,11 +507,11 @@ }, { "constant": false, - "id": 6973, + "id": 9207, "name": "paymentAmount", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "170:18:21", + "scope": 9234, + "src": "170:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -519,10 +519,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6972, + "id": 9206, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "170:4:21", + "src": "170:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -533,11 +533,11 @@ }, { "constant": false, - "id": 6975, + "id": 9209, "name": "methodUSDRate", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "198:18:21", + "scope": 9234, + "src": "198:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -545,10 +545,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6974, + "id": 9208, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "198:4:21", + "src": "198:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -559,11 +559,11 @@ }, { "constant": false, - "id": 6977, + "id": 9211, "name": "tokenUSDRate", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "226:17:21", + "scope": 9234, + "src": "226:17:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -571,10 +571,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6976, + "id": 9210, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "226:4:21", + "src": "226:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -585,11 +585,11 @@ }, { "constant": false, - "id": 6979, + "id": 9213, "name": "currentBalanceInTokens", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "253:27:21", + "scope": 9234, + "src": "253:27:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -597,10 +597,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6978, + "id": 9212, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "253:4:21", + "src": "253:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -611,11 +611,11 @@ }, { "constant": false, - "id": 6981, + "id": 9215, "name": "tokenDecimals", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "290:18:21", + "scope": 9234, + "src": "290:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -623,10 +623,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6980, + "id": 9214, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "290:4:21", + "src": "290:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -637,11 +637,11 @@ }, { "constant": false, - "id": 6983, + "id": 9217, "name": "methodDecimals", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "318:19:21", + "scope": 9234, + "src": "318:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -649,10 +649,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6982, + "id": 9216, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "318:4:21", + "src": "318:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -662,20 +662,20 @@ "visibility": "internal" } ], - "src": "136:207:21" + "src": "136:207:30" }, "payable": false, "returnParameters": { - "id": 6987, + "id": 9221, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6986, + "id": 9220, "name": "", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "364:4:21", + "scope": 9234, + "src": "364:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -683,10 +683,10 @@ "typeString": "bool" }, "typeName": { - "id": 6985, + "id": 9219, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "364:4:21", + "src": "364:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -696,19 +696,19 @@ "visibility": "internal" } ], - "src": "363:6:21" + "src": "363:6:30" }, - "scope": 7157, - "src": "110:521:21", + "scope": 9391, + "src": "110:521:30", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7043, + "id": 9277, "nodeType": "Block", - "src": "988:330:21", + "src": "988:330:30", "statements": [ { "expression": { @@ -716,12 +716,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7031, + "id": 9265, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7002, - "src": "1045:6:21", + "referencedDeclaration": 9236, + "src": "1045:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -729,12 +729,12 @@ }, { "argumentTypes": null, - "id": 7032, + "id": 9266, "name": "paymentAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7004, - "src": "1065:13:21", + "referencedDeclaration": 9238, + "src": "1065:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -742,12 +742,12 @@ }, { "argumentTypes": null, - "id": 7033, + "id": 9267, "name": "discount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7006, - "src": "1092:8:21", + "referencedDeclaration": 9240, + "src": "1092:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -755,12 +755,12 @@ }, { "argumentTypes": null, - "id": 7034, + "id": 9268, "name": "volumeBoundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7009, - "src": "1114:16:21", + "referencedDeclaration": 9243, + "src": "1114:16:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -768,12 +768,12 @@ }, { "argumentTypes": null, - "id": 7035, + "id": 9269, "name": "volumeBonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7012, - "src": "1144:13:21", + "referencedDeclaration": 9246, + "src": "1144:13:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -781,12 +781,12 @@ }, { "argumentTypes": null, - "id": 7036, + "id": 9270, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7014, - "src": "1171:13:21", + "referencedDeclaration": 9248, + "src": "1171:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -794,12 +794,12 @@ }, { "argumentTypes": null, - "id": 7037, + "id": 9271, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7016, - "src": "1198:12:21", + "referencedDeclaration": 9250, + "src": "1198:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -807,12 +807,12 @@ }, { "argumentTypes": null, - "id": 7038, + "id": 9272, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7018, - "src": "1224:13:21", + "referencedDeclaration": 9252, + "src": "1224:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -820,12 +820,12 @@ }, { "argumentTypes": null, - "id": 7039, + "id": 9273, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7020, - "src": "1251:14:21", + "referencedDeclaration": 9254, + "src": "1251:14:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -833,12 +833,12 @@ }, { "argumentTypes": null, - "id": 7040, + "id": 9274, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7022, - "src": "1279:22:21", + "referencedDeclaration": 9256, + "src": "1279:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -890,32 +890,32 @@ ], "expression": { "argumentTypes": null, - "id": 7029, + "id": 9263, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "1005:18:21", + "referencedDeclaration": 7269, + "src": "1005:18:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 7030, + "id": 9264, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "invoice", "nodeType": "MemberAccess", - "referencedDeclaration": 5550, - "src": "1005:26:21", + "referencedDeclaration": 6701, + "src": "1005:26:30", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$5_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_view$_t_bytes32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$5_memory_ptr_$", "typeString": "function (bytes32,uint256,uint256,uint256[] memory,uint256[] memory,uint256,uint256,uint256,uint256,uint256) view returns (uint256[5] memory)" } }, - "id": 7041, + "id": 9275, "isConstant": false, "isLValue": false, "isPure": false, @@ -923,21 +923,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1005:306:21", + "src": "1005:306:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "functionReturnParameters": 7028, - "id": 7042, + "functionReturnParameters": 9262, + "id": 9276, "nodeType": "Return", - "src": "998:313:21" + "src": "998:313:30" } ] }, "documentation": null, - "id": 7044, + "id": 9278, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -945,16 +945,16 @@ "name": "invoice", "nodeType": "FunctionDefinition", "parameters": { - "id": 7023, + "id": 9257, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7002, + "id": 9236, "name": "method", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "663:14:21", + "scope": 9278, + "src": "663:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -962,10 +962,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7001, + "id": 9235, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "663:7:21", + "src": "663:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -976,11 +976,11 @@ }, { "constant": false, - "id": 7004, + "id": 9238, "name": "paymentAmount", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "687:18:21", + "scope": 9278, + "src": "687:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -988,10 +988,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7003, + "id": 9237, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "687:4:21", + "src": "687:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1002,11 +1002,11 @@ }, { "constant": false, - "id": 7006, + "id": 9240, "name": "discount", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "715:13:21", + "scope": 9278, + "src": "715:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1014,10 +1014,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7005, + "id": 9239, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "715:4:21", + "src": "715:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1028,11 +1028,11 @@ }, { "constant": false, - "id": 7009, + "id": 9243, "name": "volumeBoundaries", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "738:23:21", + "scope": 9278, + "src": "738:23:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1041,19 +1041,19 @@ }, "typeName": { "baseType": { - "id": 7007, + "id": 9241, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "738:4:21", + "src": "738:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7008, + "id": 9242, "length": null, "nodeType": "ArrayTypeName", - "src": "738:6:21", + "src": "738:6:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -1064,11 +1064,11 @@ }, { "constant": false, - "id": 7012, + "id": 9246, "name": "volumeBonuses", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "771:20:21", + "scope": 9278, + "src": "771:20:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1077,19 +1077,19 @@ }, "typeName": { "baseType": { - "id": 7010, + "id": 9244, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "771:4:21", + "src": "771:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7011, + "id": 9245, "length": null, "nodeType": "ArrayTypeName", - "src": "771:6:21", + "src": "771:6:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -1100,11 +1100,11 @@ }, { "constant": false, - "id": 7014, + "id": 9248, "name": "methodUSDRate", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "801:18:21", + "scope": 9278, + "src": "801:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1112,10 +1112,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7013, + "id": 9247, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "801:4:21", + "src": "801:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1126,11 +1126,11 @@ }, { "constant": false, - "id": 7016, + "id": 9250, "name": "tokenUSDRate", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "829:17:21", + "scope": 9278, + "src": "829:17:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1138,10 +1138,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7015, + "id": 9249, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "829:4:21", + "src": "829:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1152,11 +1152,11 @@ }, { "constant": false, - "id": 7018, + "id": 9252, "name": "tokenDecimals", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "856:18:21", + "scope": 9278, + "src": "856:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1164,10 +1164,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7017, + "id": 9251, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "856:4:21", + "src": "856:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1178,11 +1178,11 @@ }, { "constant": false, - "id": 7020, + "id": 9254, "name": "methodDecimals", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "884:19:21", + "scope": 9278, + "src": "884:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1190,10 +1190,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7019, + "id": 9253, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "884:4:21", + "src": "884:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1204,11 +1204,11 @@ }, { "constant": false, - "id": 7022, + "id": 9256, "name": "currentBalanceInTokens", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "913:27:21", + "scope": 9278, + "src": "913:27:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1216,10 +1216,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7021, + "id": 9255, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "913:4:21", + "src": "913:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1229,20 +1229,20 @@ "visibility": "internal" } ], - "src": "653:293:21" + "src": "653:293:30" }, "payable": false, "returnParameters": { - "id": 7028, + "id": 9262, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7027, + "id": 9261, "name": "", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "975:7:21", + "scope": 9278, + "src": "975:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1251,27 +1251,27 @@ }, "typeName": { "baseType": { - "id": 7024, + "id": 9258, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "975:4:21", + "src": "975:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7026, + "id": 9260, "length": { "argumentTypes": null, "hexValue": "35", - "id": 7025, + "id": 9259, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "980:1:21", + "src": "980:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -1280,7 +1280,7 @@ "value": "5" }, "nodeType": "ArrayTypeName", - "src": "975:7:21", + "src": "975:7:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", "typeString": "uint256[5]" @@ -1290,19 +1290,19 @@ "visibility": "internal" } ], - "src": "974:9:21" + "src": "974:9:30" }, - "scope": 7157, - "src": "637:681:21", + "scope": 9391, + "src": "637:681:30", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7067, + "id": 9301, "nodeType": "Block", - "src": "1428:146:21", + "src": "1428:146:30", "statements": [ { "expression": { @@ -1310,12 +1310,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7061, + "id": 9295, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7046, - "src": "1481:11:21", + "referencedDeclaration": 9280, + "src": "1481:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1323,12 +1323,12 @@ }, { "argumentTypes": null, - "id": 7062, + "id": 9296, "name": "cost", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7048, - "src": "1506:4:21", + "referencedDeclaration": 9282, + "src": "1506:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1336,12 +1336,12 @@ }, { "argumentTypes": null, - "id": 7063, + "id": 9297, "name": "tokenFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7050, - "src": "1524:8:21", + "referencedDeclaration": 9284, + "src": "1524:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1349,12 +1349,12 @@ }, { "argumentTypes": null, - "id": 7064, + "id": 9298, "name": "purchaseFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7052, - "src": "1546:11:21", + "referencedDeclaration": 9286, + "src": "1546:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1382,32 +1382,32 @@ ], "expression": { "argumentTypes": null, - "id": 7059, + "id": 9293, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "1445:18:21", + "referencedDeclaration": 7269, + "src": "1445:18:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 7060, + "id": 9294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fee", "nodeType": "MemberAccess", - "referencedDeclaration": 5745, - "src": "1445:22:21", + "referencedDeclaration": 6896, + "src": "1445:22:30", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256[2] memory)" } }, - "id": 7065, + "id": 9299, "isConstant": false, "isLValue": false, "isPure": false, @@ -1415,21 +1415,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1445:122:21", + "src": "1445:122:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "functionReturnParameters": 7058, - "id": 7066, + "functionReturnParameters": 9292, + "id": 9300, "nodeType": "Return", - "src": "1438:129:21" + "src": "1438:129:30" } ] }, "documentation": null, - "id": 7068, + "id": 9302, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1437,16 +1437,16 @@ "name": "fee", "nodeType": "FunctionDefinition", "parameters": { - "id": 7053, + "id": 9287, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7046, + "id": 9280, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 7068, - "src": "1337:16:21", + "scope": 9302, + "src": "1337:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1454,10 +1454,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7045, + "id": 9279, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1337:4:21", + "src": "1337:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1468,11 +1468,11 @@ }, { "constant": false, - "id": 7048, + "id": 9282, "name": "cost", "nodeType": "VariableDeclaration", - "scope": 7068, - "src": "1355:9:21", + "scope": 9302, + "src": "1355:9:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1480,10 +1480,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7047, + "id": 9281, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1355:4:21", + "src": "1355:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1494,11 +1494,11 @@ }, { "constant": false, - "id": 7050, + "id": 9284, "name": "tokenFee", "nodeType": "VariableDeclaration", - "scope": 7068, - "src": "1366:13:21", + "scope": 9302, + "src": "1366:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1506,10 +1506,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7049, + "id": 9283, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1366:4:21", + "src": "1366:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1520,11 +1520,11 @@ }, { "constant": false, - "id": 7052, + "id": 9286, "name": "purchaseFee", "nodeType": "VariableDeclaration", - "scope": 7068, - "src": "1381:16:21", + "scope": 9302, + "src": "1381:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1532,10 +1532,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7051, + "id": 9285, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1381:4:21", + "src": "1381:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1545,20 +1545,20 @@ "visibility": "internal" } ], - "src": "1336:62:21" + "src": "1336:62:30" }, "payable": false, "returnParameters": { - "id": 7058, + "id": 9292, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7057, + "id": 9291, "name": "", "nodeType": "VariableDeclaration", - "scope": 7068, - "src": "1419:7:21", + "scope": 9302, + "src": "1419:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1567,27 +1567,27 @@ }, "typeName": { "baseType": { - "id": 7054, + "id": 9288, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1419:4:21", + "src": "1419:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7056, + "id": 9290, "length": { "argumentTypes": null, "hexValue": "32", - "id": 7055, + "id": 9289, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1424:1:21", + "src": "1424:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -1596,7 +1596,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "1419:7:21", + "src": "1419:7:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -1606,19 +1606,19 @@ "visibility": "internal" } ], - "src": "1418:9:21" + "src": "1418:9:30" }, - "scope": 7157, - "src": "1324:250:21", + "scope": 9391, + "src": "1324:250:30", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7099, + "id": 9333, "nodeType": "Block", - "src": "1808:214:21", + "src": "1808:214:30", "statements": [ { "expression": { @@ -1626,12 +1626,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7090, + "id": 9324, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "1862:4:21", + "referencedDeclaration": 9306, + "src": "1862:4:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -1639,12 +1639,12 @@ }, { "argumentTypes": null, - "id": 7091, + "id": 9325, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7074, - "src": "1880:6:21", + "referencedDeclaration": 9308, + "src": "1880:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1652,12 +1652,12 @@ }, { "argumentTypes": null, - "id": 7092, + "id": 9326, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7076, - "src": "1900:11:21", + "referencedDeclaration": 9310, + "src": "1900:11:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1665,12 +1665,12 @@ }, { "argumentTypes": null, - "id": 7093, + "id": 9327, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7078, - "src": "1925:5:21", + "referencedDeclaration": 9312, + "src": "1925:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1678,12 +1678,12 @@ }, { "argumentTypes": null, - "id": 7094, + "id": 9328, "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7080, - "src": "1944:11:21", + "referencedDeclaration": 9314, + "src": "1944:11:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1691,12 +1691,12 @@ }, { "argumentTypes": null, - "id": 7095, + "id": 9329, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7082, - "src": "1969:9:21", + "referencedDeclaration": 9316, + "src": "1969:9:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1704,12 +1704,12 @@ }, { "argumentTypes": null, - "id": 7096, + "id": 9330, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7084, - "src": "1992:13:21", + "referencedDeclaration": 9318, + "src": "1992:13:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1749,32 +1749,32 @@ ], "expression": { "argumentTypes": null, - "id": 7087, + "id": 9321, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "1818:18:21", + "referencedDeclaration": 7269, + "src": "1818:18:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 7089, + "id": 9323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFee", "nodeType": "MemberAccess", - "referencedDeclaration": 5902, - "src": "1818:30:21", + "referencedDeclaration": 7053, + "src": "1818:30:30", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", "typeString": "function (uint256[2] memory,bytes32,address,address,address,address,address)" } }, - "id": 7097, + "id": 9331, "isConstant": false, "isLValue": false, "isPure": false, @@ -1782,20 +1782,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1818:197:21", + "src": "1818:197:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7098, + "id": 9332, "nodeType": "ExpressionStatement", - "src": "1818:197:21" + "src": "1818:197:30" } ] }, "documentation": null, - "id": 7100, + "id": 9334, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1803,16 +1803,16 @@ "name": "transferFee", "nodeType": "FunctionDefinition", "parameters": { - "id": 7085, + "id": 9319, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7072, + "id": 9306, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1610:13:21", + "scope": 9334, + "src": "1610:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1821,27 +1821,27 @@ }, "typeName": { "baseType": { - "id": 7069, + "id": 9303, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1610:4:21", + "src": "1610:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7071, + "id": 9305, "length": { "argumentTypes": null, "hexValue": "32", - "id": 7070, + "id": 9304, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1616:1:21", + "src": "1616:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -1850,7 +1850,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "1610:8:21", + "src": "1610:8:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -1861,11 +1861,11 @@ }, { "constant": false, - "id": 7074, + "id": 9308, "name": "method", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1633:14:21", + "scope": 9334, + "src": "1633:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1873,10 +1873,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7073, + "id": 9307, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1633:7:21", + "src": "1633:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1887,11 +1887,11 @@ }, { "constant": false, - "id": 7076, + "id": 9310, "name": "methodToken", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1657:19:21", + "scope": 9334, + "src": "1657:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1899,10 +1899,10 @@ "typeString": "address" }, "typeName": { - "id": 7075, + "id": 9309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1657:7:21", + "src": "1657:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1913,11 +1913,11 @@ }, { "constant": false, - "id": 7078, + "id": 9312, "name": "token", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1686:13:21", + "scope": 9334, + "src": "1686:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1925,10 +1925,10 @@ "typeString": "address" }, "typeName": { - "id": 7077, + "id": 9311, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1686:7:21", + "src": "1686:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1939,11 +1939,11 @@ }, { "constant": false, - "id": 7080, + "id": 9314, "name": "originToken", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1709:19:21", + "scope": 9334, + "src": "1709:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1951,10 +1951,10 @@ "typeString": "address" }, "typeName": { - "id": 7079, + "id": 9313, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1709:7:21", + "src": "1709:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1965,11 +1965,11 @@ }, { "constant": false, - "id": 7082, + "id": 9316, "name": "exchanger", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1738:17:21", + "scope": 9334, + "src": "1738:17:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1977,10 +1977,10 @@ "typeString": "address" }, "typeName": { - "id": 7081, + "id": 9315, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1738:7:21", + "src": "1738:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1991,11 +1991,11 @@ }, { "constant": false, - "id": 7084, + "id": 9318, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1765:21:21", + "scope": 9334, + "src": "1765:21:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2003,10 +2003,10 @@ "typeString": "address" }, "typeName": { - "id": 7083, + "id": 9317, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1765:7:21", + "src": "1765:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2016,26 +2016,26 @@ "visibility": "internal" } ], - "src": "1600:192:21" + "src": "1600:192:30" }, "payable": true, "returnParameters": { - "id": 7086, + "id": 9320, "nodeType": "ParameterList", "parameters": [], - "src": "1808:0:21" + "src": "1808:0:30" }, - "scope": 7157, - "src": "1580:442:21", + "scope": 9391, + "src": "1580:442:30", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7130, + "id": 9364, "nodeType": "Block", - "src": "2169:187:21", + "src": "2169:187:30", "statements": [ { "expression": { @@ -2043,12 +2043,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7122, + "id": 9356, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7104, - "src": "2228:8:21", + "referencedDeclaration": 9338, + "src": "2228:8:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" @@ -2056,12 +2056,12 @@ }, { "argumentTypes": null, - "id": 7123, + "id": 9357, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7108, - "src": "2250:4:21", + "referencedDeclaration": 9342, + "src": "2250:4:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -2069,12 +2069,12 @@ }, { "argumentTypes": null, - "id": 7124, + "id": 9358, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7110, - "src": "2268:7:21", + "referencedDeclaration": 9344, + "src": "2268:7:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2082,12 +2082,12 @@ }, { "argumentTypes": null, - "id": 7125, + "id": 9359, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7112, - "src": "2289:6:21", + "referencedDeclaration": 9346, + "src": "2289:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2095,12 +2095,12 @@ }, { "argumentTypes": null, - "id": 7126, + "id": 9360, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7114, - "src": "2309:11:21", + "referencedDeclaration": 9348, + "src": "2309:11:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2108,12 +2108,12 @@ }, { "argumentTypes": null, - "id": 7127, + "id": 9361, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7116, - "src": "2334:5:21", + "referencedDeclaration": 9350, + "src": "2334:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2149,32 +2149,32 @@ ], "expression": { "argumentTypes": null, - "id": 7119, + "id": 9353, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "2179:18:21", + "referencedDeclaration": 7269, + "src": "2179:18:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 7121, + "id": 9355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferPurchase", "nodeType": "MemberAccess", - "referencedDeclaration": 6075, - "src": "2179:35:21", + "referencedDeclaration": 7226, + "src": "2179:35:30", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_uint32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_uint32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (uint256[5] memory,uint256[2] memory,uint32,bytes32,address,address)" } }, - "id": 7128, + "id": 9362, "isConstant": false, "isLValue": false, "isPure": false, @@ -2182,20 +2182,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2179:170:21", + "src": "2179:170:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7129, + "id": 9363, "nodeType": "ExpressionStatement", - "src": "2179:170:21" + "src": "2179:170:30" } ] }, "documentation": null, - "id": 7131, + "id": 9365, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2203,16 +2203,16 @@ "name": "transferPurchase", "nodeType": "FunctionDefinition", "parameters": { - "id": 7117, + "id": 9351, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7104, + "id": 9338, "name": "_invoice", "nodeType": "VariableDeclaration", - "scope": 7131, - "src": "2054:16:21", + "scope": 9365, + "src": "2054:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2221,27 +2221,27 @@ }, "typeName": { "baseType": { - "id": 7101, + "id": 9335, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2054:4:21", + "src": "2054:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7103, + "id": 9337, "length": { "argumentTypes": null, "hexValue": "35", - "id": 7102, + "id": 9336, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2059:1:21", + "src": "2059:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -2250,7 +2250,7 @@ "value": "5" }, "nodeType": "ArrayTypeName", - "src": "2054:7:21", + "src": "2054:7:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", "typeString": "uint256[5]" @@ -2261,11 +2261,11 @@ }, { "constant": false, - "id": 7108, + "id": 9342, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 7131, - "src": "2072:12:21", + "scope": 9365, + "src": "2072:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2274,27 +2274,27 @@ }, "typeName": { "baseType": { - "id": 7105, + "id": 9339, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2072:4:21", + "src": "2072:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7107, + "id": 9341, "length": { "argumentTypes": null, "hexValue": "32", - "id": 7106, + "id": 9340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2077:1:21", + "src": "2077:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -2303,7 +2303,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "2072:7:21", + "src": "2072:7:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -2314,11 +2314,11 @@ }, { "constant": false, - "id": 7110, + "id": 9344, "name": "vesting", "nodeType": "VariableDeclaration", - "scope": 7131, - "src": "2086:14:21", + "scope": 9365, + "src": "2086:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2326,10 +2326,10 @@ "typeString": "uint32" }, "typeName": { - "id": 7109, + "id": 9343, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2086:6:21", + "src": "2086:6:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2340,11 +2340,11 @@ }, { "constant": false, - "id": 7112, + "id": 9346, "name": "method", "nodeType": "VariableDeclaration", - "scope": 7131, - "src": "2102:14:21", + "scope": 9365, + "src": "2102:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2352,10 +2352,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7111, + "id": 9345, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2102:7:21", + "src": "2102:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2366,11 +2366,11 @@ }, { "constant": false, - "id": 7114, + "id": 9348, "name": "methodToken", "nodeType": "VariableDeclaration", - "scope": 7131, - "src": "2118:19:21", + "scope": 9365, + "src": "2118:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2378,10 +2378,10 @@ "typeString": "address" }, "typeName": { - "id": 7113, + "id": 9347, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2118:7:21", + "src": "2118:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2392,11 +2392,11 @@ }, { "constant": false, - "id": 7116, + "id": 9350, "name": "token", "nodeType": "VariableDeclaration", - "scope": 7131, - "src": "2139:13:21", + "scope": 9365, + "src": "2139:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2404,10 +2404,10 @@ "typeString": "address" }, "typeName": { - "id": 7115, + "id": 9349, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2139:7:21", + "src": "2139:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2417,26 +2417,26 @@ "visibility": "internal" } ], - "src": "2053:100:21" + "src": "2053:100:30" }, "payable": true, "returnParameters": { - "id": 7118, + "id": 9352, "nodeType": "ParameterList", "parameters": [], - "src": "2169:0:21" + "src": "2169:0:30" }, - "scope": 7157, - "src": "2028:328:21", + "scope": 9391, + "src": "2028:328:30", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7151, + "id": 9385, "nodeType": "Block", - "src": "2471:137:21", + "src": "2471:137:30", "statements": [ { "expression": { @@ -2444,12 +2444,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7146, + "id": 9380, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7133, - "src": "2529:5:21", + "referencedDeclaration": 9367, + "src": "2529:5:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2457,12 +2457,12 @@ }, { "argumentTypes": null, - "id": 7147, + "id": 9381, "name": "volumeBoundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7136, - "src": "2548:16:21", + "referencedDeclaration": 9370, + "src": "2548:16:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -2470,12 +2470,12 @@ }, { "argumentTypes": null, - "id": 7148, + "id": 9382, "name": "volumeBonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "2578:13:21", + "referencedDeclaration": 9373, + "src": "2578:13:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -2499,32 +2499,32 @@ ], "expression": { "argumentTypes": null, - "id": 7144, + "id": 9378, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "2488:18:21", + "referencedDeclaration": 7269, + "src": "2488:18:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 7145, + "id": 9379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getBonus", "nodeType": "MemberAccess", - "referencedDeclaration": 6117, - "src": "2488:27:21", + "referencedDeclaration": 7268, + "src": "2488:27:30", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,uint256[] memory,uint256[] memory) view returns (uint256)" } }, - "id": 7149, + "id": 9383, "isConstant": false, "isLValue": false, "isPure": false, @@ -2532,21 +2532,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2488:113:21", + "src": "2488:113:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 7143, - "id": 7150, + "functionReturnParameters": 9377, + "id": 9384, "nodeType": "Return", - "src": "2481:120:21" + "src": "2481:120:30" } ] }, "documentation": null, - "id": 7152, + "id": 9386, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2554,16 +2554,16 @@ "name": "getBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 7140, + "id": 9374, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7133, + "id": 9367, "name": "value", "nodeType": "VariableDeclaration", - "scope": 7152, - "src": "2380:10:21", + "scope": 9386, + "src": "2380:10:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2571,10 +2571,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7132, + "id": 9366, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2380:4:21", + "src": "2380:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2585,11 +2585,11 @@ }, { "constant": false, - "id": 7136, + "id": 9370, "name": "volumeBoundaries", "nodeType": "VariableDeclaration", - "scope": 7152, - "src": "2392:23:21", + "scope": 9386, + "src": "2392:23:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2598,19 +2598,19 @@ }, "typeName": { "baseType": { - "id": 7134, + "id": 9368, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2392:4:21", + "src": "2392:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7135, + "id": 9369, "length": null, "nodeType": "ArrayTypeName", - "src": "2392:6:21", + "src": "2392:6:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2621,11 +2621,11 @@ }, { "constant": false, - "id": 7139, + "id": 9373, "name": "volumeBonuses", "nodeType": "VariableDeclaration", - "scope": 7152, - "src": "2417:20:21", + "scope": 9386, + "src": "2417:20:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2634,19 +2634,19 @@ }, "typeName": { "baseType": { - "id": 7137, + "id": 9371, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2417:4:21", + "src": "2417:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7138, + "id": 9372, "length": null, "nodeType": "ArrayTypeName", - "src": "2417:6:21", + "src": "2417:6:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2656,20 +2656,20 @@ "visibility": "internal" } ], - "src": "2379:59:21" + "src": "2379:59:30" }, "payable": false, "returnParameters": { - "id": 7143, + "id": 9377, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7142, + "id": 9376, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 7152, - "src": "2459:10:21", + "scope": 9386, + "src": "2459:10:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2677,10 +2677,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7141, + "id": 9375, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2459:4:21", + "src": "2459:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2690,23 +2690,23 @@ "visibility": "internal" } ], - "src": "2458:12:21" + "src": "2458:12:30" }, - "scope": 7157, - "src": "2362:246:21", + "scope": 9391, + "src": "2362:246:30", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7155, + "id": 9389, "nodeType": "Block", - "src": "2641:2:21", + "src": "2641:2:30", "statements": [] }, "documentation": null, - "id": 7156, + "id": 9390, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2714,43 +2714,43 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 7153, + "id": 9387, "nodeType": "ParameterList", "parameters": [], - "src": "2623:2:21" + "src": "2623:2:30" }, "payable": true, "returnParameters": { - "id": 7154, + "id": 9388, "nodeType": "ParameterList", "parameters": [], - "src": "2641:0:21" + "src": "2641:0:30" }, - "scope": 7157, - "src": "2614:29:21", + "scope": 9391, + "src": "2614:29:30", "stateMutability": "payable", "superFunction": null, "visibility": "public" } ], - "scope": 7158, - "src": "71:2574:21" + "scope": 9392, + "src": "71:2574:30" } ], - "src": "0:2646:21" + "src": "0:2646:30" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/mocks/libs/PurchaseProcessing.sol", "exportedSymbols": { "PurchaseProcessingMock": [ - 7157 + 9391 ] }, - "id": 7158, + "id": 9392, "nodeType": "SourceUnit", "nodes": [ { - "id": 6968, + "id": 9202, "literals": [ "solidity", "^", @@ -2758,16 +2758,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:21" + "src": "0:24:30" }, { "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", "file": "../../libs/PurchaseProcessing.sol", - "id": 6969, + "id": 9203, "nodeType": "ImportDirective", - "scope": 7158, - "sourceUnit": 6119, - "src": "26:43:21", + "scope": 9392, + "sourceUnit": 7270, + "src": "26:43:30", "symbolAliases": [], "unitAlias": "" }, @@ -2777,18 +2777,18 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 7157, + "id": 9391, "linearizedBaseContracts": [ - 7157 + 9391 ], "name": "PurchaseProcessingMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 6999, + "id": 9233, "nodeType": "Block", - "src": "370:261:21", + "src": "370:261:30", "statements": [ { "expression": { @@ -2796,12 +2796,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6990, + "id": 9224, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6971, - "src": "437:6:21", + "referencedDeclaration": 9205, + "src": "437:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2809,12 +2809,12 @@ }, { "argumentTypes": null, - "id": 6991, + "id": 9225, "name": "paymentAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6973, - "src": "457:13:21", + "referencedDeclaration": 9207, + "src": "457:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2822,12 +2822,12 @@ }, { "argumentTypes": null, - "id": 6992, + "id": 9226, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6975, - "src": "484:13:21", + "referencedDeclaration": 9209, + "src": "484:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2835,12 +2835,12 @@ }, { "argumentTypes": null, - "id": 6993, + "id": 9227, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6977, - "src": "511:12:21", + "referencedDeclaration": 9211, + "src": "511:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2848,12 +2848,12 @@ }, { "argumentTypes": null, - "id": 6994, + "id": 9228, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6979, - "src": "537:22:21", + "referencedDeclaration": 9213, + "src": "537:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2861,12 +2861,12 @@ }, { "argumentTypes": null, - "id": 6995, + "id": 9229, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6981, - "src": "573:13:21", + "referencedDeclaration": 9215, + "src": "573:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2874,12 +2874,12 @@ }, { "argumentTypes": null, - "id": 6996, + "id": 9230, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6983, - "src": "600:14:21", + "referencedDeclaration": 9217, + "src": "600:14:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2919,32 +2919,32 @@ ], "expression": { "argumentTypes": null, - "id": 6988, + "id": 9222, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "387:18:21", + "referencedDeclaration": 7269, + "src": "387:18:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 6989, + "id": 9223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "checkInvoiceInput", "nodeType": "MemberAccess", - "referencedDeclaration": 5357, - "src": "387:36:21", + "referencedDeclaration": 6508, + "src": "387:36:30", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (bytes32,uint256,uint256,uint256,uint256,uint256,uint256) pure returns (bool)" } }, - "id": 6997, + "id": 9231, "isConstant": false, "isLValue": false, "isPure": false, @@ -2952,21 +2952,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "387:237:21", + "src": "387:237:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6987, - "id": 6998, + "functionReturnParameters": 9221, + "id": 9232, "nodeType": "Return", - "src": "380:244:21" + "src": "380:244:30" } ] }, "documentation": null, - "id": 7000, + "id": 9234, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2974,16 +2974,16 @@ "name": "checkInvoiceInput", "nodeType": "FunctionDefinition", "parameters": { - "id": 6984, + "id": 9218, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6971, + "id": 9205, "name": "method", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "146:14:21", + "scope": 9234, + "src": "146:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2991,10 +2991,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 6970, + "id": 9204, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "146:7:21", + "src": "146:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3005,11 +3005,11 @@ }, { "constant": false, - "id": 6973, + "id": 9207, "name": "paymentAmount", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "170:18:21", + "scope": 9234, + "src": "170:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3017,10 +3017,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6972, + "id": 9206, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "170:4:21", + "src": "170:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3031,11 +3031,11 @@ }, { "constant": false, - "id": 6975, + "id": 9209, "name": "methodUSDRate", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "198:18:21", + "scope": 9234, + "src": "198:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3043,10 +3043,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6974, + "id": 9208, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "198:4:21", + "src": "198:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3057,11 +3057,11 @@ }, { "constant": false, - "id": 6977, + "id": 9211, "name": "tokenUSDRate", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "226:17:21", + "scope": 9234, + "src": "226:17:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3069,10 +3069,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6976, + "id": 9210, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "226:4:21", + "src": "226:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3083,11 +3083,11 @@ }, { "constant": false, - "id": 6979, + "id": 9213, "name": "currentBalanceInTokens", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "253:27:21", + "scope": 9234, + "src": "253:27:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3095,10 +3095,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6978, + "id": 9212, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "253:4:21", + "src": "253:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3109,11 +3109,11 @@ }, { "constant": false, - "id": 6981, + "id": 9215, "name": "tokenDecimals", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "290:18:21", + "scope": 9234, + "src": "290:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3121,10 +3121,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6980, + "id": 9214, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "290:4:21", + "src": "290:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3135,11 +3135,11 @@ }, { "constant": false, - "id": 6983, + "id": 9217, "name": "methodDecimals", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "318:19:21", + "scope": 9234, + "src": "318:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3147,10 +3147,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6982, + "id": 9216, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "318:4:21", + "src": "318:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3160,20 +3160,20 @@ "visibility": "internal" } ], - "src": "136:207:21" + "src": "136:207:30" }, "payable": false, "returnParameters": { - "id": 6987, + "id": 9221, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6986, + "id": 9220, "name": "", "nodeType": "VariableDeclaration", - "scope": 7000, - "src": "364:4:21", + "scope": 9234, + "src": "364:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3181,10 +3181,10 @@ "typeString": "bool" }, "typeName": { - "id": 6985, + "id": 9219, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "364:4:21", + "src": "364:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3194,19 +3194,19 @@ "visibility": "internal" } ], - "src": "363:6:21" + "src": "363:6:30" }, - "scope": 7157, - "src": "110:521:21", + "scope": 9391, + "src": "110:521:30", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7043, + "id": 9277, "nodeType": "Block", - "src": "988:330:21", + "src": "988:330:30", "statements": [ { "expression": { @@ -3214,12 +3214,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7031, + "id": 9265, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7002, - "src": "1045:6:21", + "referencedDeclaration": 9236, + "src": "1045:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3227,12 +3227,12 @@ }, { "argumentTypes": null, - "id": 7032, + "id": 9266, "name": "paymentAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7004, - "src": "1065:13:21", + "referencedDeclaration": 9238, + "src": "1065:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3240,12 +3240,12 @@ }, { "argumentTypes": null, - "id": 7033, + "id": 9267, "name": "discount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7006, - "src": "1092:8:21", + "referencedDeclaration": 9240, + "src": "1092:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3253,12 +3253,12 @@ }, { "argumentTypes": null, - "id": 7034, + "id": 9268, "name": "volumeBoundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7009, - "src": "1114:16:21", + "referencedDeclaration": 9243, + "src": "1114:16:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -3266,12 +3266,12 @@ }, { "argumentTypes": null, - "id": 7035, + "id": 9269, "name": "volumeBonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7012, - "src": "1144:13:21", + "referencedDeclaration": 9246, + "src": "1144:13:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -3279,12 +3279,12 @@ }, { "argumentTypes": null, - "id": 7036, + "id": 9270, "name": "methodUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7014, - "src": "1171:13:21", + "referencedDeclaration": 9248, + "src": "1171:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3292,12 +3292,12 @@ }, { "argumentTypes": null, - "id": 7037, + "id": 9271, "name": "tokenUSDRate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7016, - "src": "1198:12:21", + "referencedDeclaration": 9250, + "src": "1198:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3305,12 +3305,12 @@ }, { "argumentTypes": null, - "id": 7038, + "id": 9272, "name": "tokenDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7018, - "src": "1224:13:21", + "referencedDeclaration": 9252, + "src": "1224:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3318,12 +3318,12 @@ }, { "argumentTypes": null, - "id": 7039, + "id": 9273, "name": "methodDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7020, - "src": "1251:14:21", + "referencedDeclaration": 9254, + "src": "1251:14:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3331,12 +3331,12 @@ }, { "argumentTypes": null, - "id": 7040, + "id": 9274, "name": "currentBalanceInTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7022, - "src": "1279:22:21", + "referencedDeclaration": 9256, + "src": "1279:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3388,32 +3388,32 @@ ], "expression": { "argumentTypes": null, - "id": 7029, + "id": 9263, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "1005:18:21", + "referencedDeclaration": 7269, + "src": "1005:18:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 7030, + "id": 9264, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "invoice", "nodeType": "MemberAccess", - "referencedDeclaration": 5550, - "src": "1005:26:21", + "referencedDeclaration": 6701, + "src": "1005:26:30", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$5_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_view$_t_bytes32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$5_memory_ptr_$", "typeString": "function (bytes32,uint256,uint256,uint256[] memory,uint256[] memory,uint256,uint256,uint256,uint256,uint256) view returns (uint256[5] memory)" } }, - "id": 7041, + "id": 9275, "isConstant": false, "isLValue": false, "isPure": false, @@ -3421,21 +3421,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1005:306:21", + "src": "1005:306:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "functionReturnParameters": 7028, - "id": 7042, + "functionReturnParameters": 9262, + "id": 9276, "nodeType": "Return", - "src": "998:313:21" + "src": "998:313:30" } ] }, "documentation": null, - "id": 7044, + "id": 9278, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3443,16 +3443,16 @@ "name": "invoice", "nodeType": "FunctionDefinition", "parameters": { - "id": 7023, + "id": 9257, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7002, + "id": 9236, "name": "method", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "663:14:21", + "scope": 9278, + "src": "663:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3460,10 +3460,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7001, + "id": 9235, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "663:7:21", + "src": "663:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3474,11 +3474,11 @@ }, { "constant": false, - "id": 7004, + "id": 9238, "name": "paymentAmount", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "687:18:21", + "scope": 9278, + "src": "687:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3486,10 +3486,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7003, + "id": 9237, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "687:4:21", + "src": "687:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3500,11 +3500,11 @@ }, { "constant": false, - "id": 7006, + "id": 9240, "name": "discount", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "715:13:21", + "scope": 9278, + "src": "715:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3512,10 +3512,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7005, + "id": 9239, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "715:4:21", + "src": "715:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3526,11 +3526,11 @@ }, { "constant": false, - "id": 7009, + "id": 9243, "name": "volumeBoundaries", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "738:23:21", + "scope": 9278, + "src": "738:23:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3539,19 +3539,19 @@ }, "typeName": { "baseType": { - "id": 7007, + "id": 9241, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "738:4:21", + "src": "738:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7008, + "id": 9242, "length": null, "nodeType": "ArrayTypeName", - "src": "738:6:21", + "src": "738:6:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -3562,11 +3562,11 @@ }, { "constant": false, - "id": 7012, + "id": 9246, "name": "volumeBonuses", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "771:20:21", + "scope": 9278, + "src": "771:20:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3575,19 +3575,19 @@ }, "typeName": { "baseType": { - "id": 7010, + "id": 9244, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "771:4:21", + "src": "771:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7011, + "id": 9245, "length": null, "nodeType": "ArrayTypeName", - "src": "771:6:21", + "src": "771:6:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -3598,11 +3598,11 @@ }, { "constant": false, - "id": 7014, + "id": 9248, "name": "methodUSDRate", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "801:18:21", + "scope": 9278, + "src": "801:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3610,10 +3610,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7013, + "id": 9247, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "801:4:21", + "src": "801:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3624,11 +3624,11 @@ }, { "constant": false, - "id": 7016, + "id": 9250, "name": "tokenUSDRate", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "829:17:21", + "scope": 9278, + "src": "829:17:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3636,10 +3636,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7015, + "id": 9249, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "829:4:21", + "src": "829:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3650,11 +3650,11 @@ }, { "constant": false, - "id": 7018, + "id": 9252, "name": "tokenDecimals", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "856:18:21", + "scope": 9278, + "src": "856:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3662,10 +3662,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7017, + "id": 9251, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "856:4:21", + "src": "856:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3676,11 +3676,11 @@ }, { "constant": false, - "id": 7020, + "id": 9254, "name": "methodDecimals", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "884:19:21", + "scope": 9278, + "src": "884:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3688,10 +3688,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7019, + "id": 9253, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "884:4:21", + "src": "884:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3702,11 +3702,11 @@ }, { "constant": false, - "id": 7022, + "id": 9256, "name": "currentBalanceInTokens", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "913:27:21", + "scope": 9278, + "src": "913:27:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3714,10 +3714,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7021, + "id": 9255, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "913:4:21", + "src": "913:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3727,20 +3727,20 @@ "visibility": "internal" } ], - "src": "653:293:21" + "src": "653:293:30" }, "payable": false, "returnParameters": { - "id": 7028, + "id": 9262, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7027, + "id": 9261, "name": "", "nodeType": "VariableDeclaration", - "scope": 7044, - "src": "975:7:21", + "scope": 9278, + "src": "975:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3749,27 +3749,27 @@ }, "typeName": { "baseType": { - "id": 7024, + "id": 9258, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "975:4:21", + "src": "975:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7026, + "id": 9260, "length": { "argumentTypes": null, "hexValue": "35", - "id": 7025, + "id": 9259, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "980:1:21", + "src": "980:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -3778,7 +3778,7 @@ "value": "5" }, "nodeType": "ArrayTypeName", - "src": "975:7:21", + "src": "975:7:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", "typeString": "uint256[5]" @@ -3788,19 +3788,19 @@ "visibility": "internal" } ], - "src": "974:9:21" + "src": "974:9:30" }, - "scope": 7157, - "src": "637:681:21", + "scope": 9391, + "src": "637:681:30", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7067, + "id": 9301, "nodeType": "Block", - "src": "1428:146:21", + "src": "1428:146:30", "statements": [ { "expression": { @@ -3808,12 +3808,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7061, + "id": 9295, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7046, - "src": "1481:11:21", + "referencedDeclaration": 9280, + "src": "1481:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3821,12 +3821,12 @@ }, { "argumentTypes": null, - "id": 7062, + "id": 9296, "name": "cost", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7048, - "src": "1506:4:21", + "referencedDeclaration": 9282, + "src": "1506:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3834,12 +3834,12 @@ }, { "argumentTypes": null, - "id": 7063, + "id": 9297, "name": "tokenFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7050, - "src": "1524:8:21", + "referencedDeclaration": 9284, + "src": "1524:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3847,12 +3847,12 @@ }, { "argumentTypes": null, - "id": 7064, + "id": 9298, "name": "purchaseFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7052, - "src": "1546:11:21", + "referencedDeclaration": 9286, + "src": "1546:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3880,32 +3880,32 @@ ], "expression": { "argumentTypes": null, - "id": 7059, + "id": 9293, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "1445:18:21", + "referencedDeclaration": 7269, + "src": "1445:18:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 7060, + "id": 9294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fee", "nodeType": "MemberAccess", - "referencedDeclaration": 5745, - "src": "1445:22:21", + "referencedDeclaration": 6896, + "src": "1445:22:30", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256[2] memory)" } }, - "id": 7065, + "id": 9299, "isConstant": false, "isLValue": false, "isPure": false, @@ -3913,21 +3913,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1445:122:21", + "src": "1445:122:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "functionReturnParameters": 7058, - "id": 7066, + "functionReturnParameters": 9292, + "id": 9300, "nodeType": "Return", - "src": "1438:129:21" + "src": "1438:129:30" } ] }, "documentation": null, - "id": 7068, + "id": 9302, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3935,16 +3935,16 @@ "name": "fee", "nodeType": "FunctionDefinition", "parameters": { - "id": 7053, + "id": 9287, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7046, + "id": 9280, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 7068, - "src": "1337:16:21", + "scope": 9302, + "src": "1337:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3952,10 +3952,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7045, + "id": 9279, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1337:4:21", + "src": "1337:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3966,11 +3966,11 @@ }, { "constant": false, - "id": 7048, + "id": 9282, "name": "cost", "nodeType": "VariableDeclaration", - "scope": 7068, - "src": "1355:9:21", + "scope": 9302, + "src": "1355:9:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3978,10 +3978,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7047, + "id": 9281, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1355:4:21", + "src": "1355:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3992,11 +3992,11 @@ }, { "constant": false, - "id": 7050, + "id": 9284, "name": "tokenFee", "nodeType": "VariableDeclaration", - "scope": 7068, - "src": "1366:13:21", + "scope": 9302, + "src": "1366:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4004,10 +4004,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7049, + "id": 9283, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1366:4:21", + "src": "1366:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4018,11 +4018,11 @@ }, { "constant": false, - "id": 7052, + "id": 9286, "name": "purchaseFee", "nodeType": "VariableDeclaration", - "scope": 7068, - "src": "1381:16:21", + "scope": 9302, + "src": "1381:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4030,10 +4030,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7051, + "id": 9285, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1381:4:21", + "src": "1381:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4043,20 +4043,20 @@ "visibility": "internal" } ], - "src": "1336:62:21" + "src": "1336:62:30" }, "payable": false, "returnParameters": { - "id": 7058, + "id": 9292, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7057, + "id": 9291, "name": "", "nodeType": "VariableDeclaration", - "scope": 7068, - "src": "1419:7:21", + "scope": 9302, + "src": "1419:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4065,27 +4065,27 @@ }, "typeName": { "baseType": { - "id": 7054, + "id": 9288, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1419:4:21", + "src": "1419:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7056, + "id": 9290, "length": { "argumentTypes": null, "hexValue": "32", - "id": 7055, + "id": 9289, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1424:1:21", + "src": "1424:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -4094,7 +4094,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "1419:7:21", + "src": "1419:7:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -4104,19 +4104,19 @@ "visibility": "internal" } ], - "src": "1418:9:21" + "src": "1418:9:30" }, - "scope": 7157, - "src": "1324:250:21", + "scope": 9391, + "src": "1324:250:30", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7099, + "id": 9333, "nodeType": "Block", - "src": "1808:214:21", + "src": "1808:214:30", "statements": [ { "expression": { @@ -4124,12 +4124,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7090, + "id": 9324, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "1862:4:21", + "referencedDeclaration": 9306, + "src": "1862:4:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -4137,12 +4137,12 @@ }, { "argumentTypes": null, - "id": 7091, + "id": 9325, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7074, - "src": "1880:6:21", + "referencedDeclaration": 9308, + "src": "1880:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4150,12 +4150,12 @@ }, { "argumentTypes": null, - "id": 7092, + "id": 9326, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7076, - "src": "1900:11:21", + "referencedDeclaration": 9310, + "src": "1900:11:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4163,12 +4163,12 @@ }, { "argumentTypes": null, - "id": 7093, + "id": 9327, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7078, - "src": "1925:5:21", + "referencedDeclaration": 9312, + "src": "1925:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4176,12 +4176,12 @@ }, { "argumentTypes": null, - "id": 7094, + "id": 9328, "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7080, - "src": "1944:11:21", + "referencedDeclaration": 9314, + "src": "1944:11:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4189,12 +4189,12 @@ }, { "argumentTypes": null, - "id": 7095, + "id": 9329, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7082, - "src": "1969:9:21", + "referencedDeclaration": 9316, + "src": "1969:9:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4202,12 +4202,12 @@ }, { "argumentTypes": null, - "id": 7096, + "id": 9330, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7084, - "src": "1992:13:21", + "referencedDeclaration": 9318, + "src": "1992:13:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4247,32 +4247,32 @@ ], "expression": { "argumentTypes": null, - "id": 7087, + "id": 9321, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "1818:18:21", + "referencedDeclaration": 7269, + "src": "1818:18:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 7089, + "id": 9323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFee", "nodeType": "MemberAccess", - "referencedDeclaration": 5902, - "src": "1818:30:21", + "referencedDeclaration": 7053, + "src": "1818:30:30", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", "typeString": "function (uint256[2] memory,bytes32,address,address,address,address,address)" } }, - "id": 7097, + "id": 9331, "isConstant": false, "isLValue": false, "isPure": false, @@ -4280,20 +4280,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1818:197:21", + "src": "1818:197:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7098, + "id": 9332, "nodeType": "ExpressionStatement", - "src": "1818:197:21" + "src": "1818:197:30" } ] }, "documentation": null, - "id": 7100, + "id": 9334, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4301,16 +4301,16 @@ "name": "transferFee", "nodeType": "FunctionDefinition", "parameters": { - "id": 7085, + "id": 9319, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7072, + "id": 9306, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1610:13:21", + "scope": 9334, + "src": "1610:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4319,27 +4319,27 @@ }, "typeName": { "baseType": { - "id": 7069, + "id": 9303, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1610:4:21", + "src": "1610:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7071, + "id": 9305, "length": { "argumentTypes": null, "hexValue": "32", - "id": 7070, + "id": 9304, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1616:1:21", + "src": "1616:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -4348,7 +4348,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "1610:8:21", + "src": "1610:8:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -4359,11 +4359,11 @@ }, { "constant": false, - "id": 7074, + "id": 9308, "name": "method", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1633:14:21", + "scope": 9334, + "src": "1633:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4371,10 +4371,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7073, + "id": 9307, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1633:7:21", + "src": "1633:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4385,11 +4385,11 @@ }, { "constant": false, - "id": 7076, + "id": 9310, "name": "methodToken", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1657:19:21", + "scope": 9334, + "src": "1657:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4397,10 +4397,10 @@ "typeString": "address" }, "typeName": { - "id": 7075, + "id": 9309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1657:7:21", + "src": "1657:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4411,11 +4411,11 @@ }, { "constant": false, - "id": 7078, + "id": 9312, "name": "token", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1686:13:21", + "scope": 9334, + "src": "1686:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4423,10 +4423,10 @@ "typeString": "address" }, "typeName": { - "id": 7077, + "id": 9311, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1686:7:21", + "src": "1686:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4437,11 +4437,11 @@ }, { "constant": false, - "id": 7080, + "id": 9314, "name": "originToken", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1709:19:21", + "scope": 9334, + "src": "1709:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4449,10 +4449,10 @@ "typeString": "address" }, "typeName": { - "id": 7079, + "id": 9313, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1709:7:21", + "src": "1709:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4463,11 +4463,11 @@ }, { "constant": false, - "id": 7082, + "id": 9316, "name": "exchanger", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1738:17:21", + "scope": 9334, + "src": "1738:17:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4475,10 +4475,10 @@ "typeString": "address" }, "typeName": { - "id": 7081, + "id": 9315, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1738:7:21", + "src": "1738:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4489,11 +4489,11 @@ }, { "constant": false, - "id": 7084, + "id": 9318, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 7100, - "src": "1765:21:21", + "scope": 9334, + "src": "1765:21:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4501,10 +4501,10 @@ "typeString": "address" }, "typeName": { - "id": 7083, + "id": 9317, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1765:7:21", + "src": "1765:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4514,26 +4514,26 @@ "visibility": "internal" } ], - "src": "1600:192:21" + "src": "1600:192:30" }, "payable": true, "returnParameters": { - "id": 7086, + "id": 9320, "nodeType": "ParameterList", "parameters": [], - "src": "1808:0:21" + "src": "1808:0:30" }, - "scope": 7157, - "src": "1580:442:21", + "scope": 9391, + "src": "1580:442:30", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7130, + "id": 9364, "nodeType": "Block", - "src": "2169:187:21", + "src": "2169:187:30", "statements": [ { "expression": { @@ -4541,12 +4541,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7122, + "id": 9356, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7104, - "src": "2228:8:21", + "referencedDeclaration": 9338, + "src": "2228:8:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" @@ -4554,12 +4554,12 @@ }, { "argumentTypes": null, - "id": 7123, + "id": 9357, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7108, - "src": "2250:4:21", + "referencedDeclaration": 9342, + "src": "2250:4:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -4567,12 +4567,12 @@ }, { "argumentTypes": null, - "id": 7124, + "id": 9358, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7110, - "src": "2268:7:21", + "referencedDeclaration": 9344, + "src": "2268:7:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4580,12 +4580,12 @@ }, { "argumentTypes": null, - "id": 7125, + "id": 9359, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7112, - "src": "2289:6:21", + "referencedDeclaration": 9346, + "src": "2289:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4593,12 +4593,12 @@ }, { "argumentTypes": null, - "id": 7126, + "id": 9360, "name": "methodToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7114, - "src": "2309:11:21", + "referencedDeclaration": 9348, + "src": "2309:11:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4606,12 +4606,12 @@ }, { "argumentTypes": null, - "id": 7127, + "id": 9361, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7116, - "src": "2334:5:21", + "referencedDeclaration": 9350, + "src": "2334:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4647,32 +4647,32 @@ ], "expression": { "argumentTypes": null, - "id": 7119, + "id": 9353, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "2179:18:21", + "referencedDeclaration": 7269, + "src": "2179:18:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 7121, + "id": 9355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferPurchase", "nodeType": "MemberAccess", - "referencedDeclaration": 6075, - "src": "2179:35:21", + "referencedDeclaration": 7226, + "src": "2179:35:30", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_uint32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_uint32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (uint256[5] memory,uint256[2] memory,uint32,bytes32,address,address)" } }, - "id": 7128, + "id": 9362, "isConstant": false, "isLValue": false, "isPure": false, @@ -4680,20 +4680,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2179:170:21", + "src": "2179:170:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7129, + "id": 9363, "nodeType": "ExpressionStatement", - "src": "2179:170:21" + "src": "2179:170:30" } ] }, "documentation": null, - "id": 7131, + "id": 9365, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4701,16 +4701,16 @@ "name": "transferPurchase", "nodeType": "FunctionDefinition", "parameters": { - "id": 7117, + "id": 9351, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7104, + "id": 9338, "name": "_invoice", "nodeType": "VariableDeclaration", - "scope": 7131, - "src": "2054:16:21", + "scope": 9365, + "src": "2054:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4719,27 +4719,27 @@ }, "typeName": { "baseType": { - "id": 7101, + "id": 9335, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2054:4:21", + "src": "2054:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7103, + "id": 9337, "length": { "argumentTypes": null, "hexValue": "35", - "id": 7102, + "id": 9336, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2059:1:21", + "src": "2059:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -4748,7 +4748,7 @@ "value": "5" }, "nodeType": "ArrayTypeName", - "src": "2054:7:21", + "src": "2054:7:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", "typeString": "uint256[5]" @@ -4759,11 +4759,11 @@ }, { "constant": false, - "id": 7108, + "id": 9342, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 7131, - "src": "2072:12:21", + "scope": 9365, + "src": "2072:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4772,27 +4772,27 @@ }, "typeName": { "baseType": { - "id": 7105, + "id": 9339, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2072:4:21", + "src": "2072:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7107, + "id": 9341, "length": { "argumentTypes": null, "hexValue": "32", - "id": 7106, + "id": 9340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2077:1:21", + "src": "2077:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -4801,7 +4801,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "2072:7:21", + "src": "2072:7:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -4812,11 +4812,11 @@ }, { "constant": false, - "id": 7110, + "id": 9344, "name": "vesting", "nodeType": "VariableDeclaration", - "scope": 7131, - "src": "2086:14:21", + "scope": 9365, + "src": "2086:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4824,10 +4824,10 @@ "typeString": "uint32" }, "typeName": { - "id": 7109, + "id": 9343, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2086:6:21", + "src": "2086:6:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4838,11 +4838,11 @@ }, { "constant": false, - "id": 7112, + "id": 9346, "name": "method", "nodeType": "VariableDeclaration", - "scope": 7131, - "src": "2102:14:21", + "scope": 9365, + "src": "2102:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4850,10 +4850,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7111, + "id": 9345, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2102:7:21", + "src": "2102:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4864,11 +4864,11 @@ }, { "constant": false, - "id": 7114, + "id": 9348, "name": "methodToken", "nodeType": "VariableDeclaration", - "scope": 7131, - "src": "2118:19:21", + "scope": 9365, + "src": "2118:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4876,10 +4876,10 @@ "typeString": "address" }, "typeName": { - "id": 7113, + "id": 9347, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2118:7:21", + "src": "2118:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4890,11 +4890,11 @@ }, { "constant": false, - "id": 7116, + "id": 9350, "name": "token", "nodeType": "VariableDeclaration", - "scope": 7131, - "src": "2139:13:21", + "scope": 9365, + "src": "2139:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4902,10 +4902,10 @@ "typeString": "address" }, "typeName": { - "id": 7115, + "id": 9349, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2139:7:21", + "src": "2139:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4915,26 +4915,26 @@ "visibility": "internal" } ], - "src": "2053:100:21" + "src": "2053:100:30" }, "payable": true, "returnParameters": { - "id": 7118, + "id": 9352, "nodeType": "ParameterList", "parameters": [], - "src": "2169:0:21" + "src": "2169:0:30" }, - "scope": 7157, - "src": "2028:328:21", + "scope": 9391, + "src": "2028:328:30", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7151, + "id": 9385, "nodeType": "Block", - "src": "2471:137:21", + "src": "2471:137:30", "statements": [ { "expression": { @@ -4942,12 +4942,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7146, + "id": 9380, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7133, - "src": "2529:5:21", + "referencedDeclaration": 9367, + "src": "2529:5:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4955,12 +4955,12 @@ }, { "argumentTypes": null, - "id": 7147, + "id": 9381, "name": "volumeBoundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7136, - "src": "2548:16:21", + "referencedDeclaration": 9370, + "src": "2548:16:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -4968,12 +4968,12 @@ }, { "argumentTypes": null, - "id": 7148, + "id": 9382, "name": "volumeBonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "2578:13:21", + "referencedDeclaration": 9373, + "src": "2578:13:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -4997,32 +4997,32 @@ ], "expression": { "argumentTypes": null, - "id": 7144, + "id": 9378, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "2488:18:21", + "referencedDeclaration": 7269, + "src": "2488:18:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 7145, + "id": 9379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getBonus", "nodeType": "MemberAccess", - "referencedDeclaration": 6117, - "src": "2488:27:21", + "referencedDeclaration": 7268, + "src": "2488:27:30", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,uint256[] memory,uint256[] memory) view returns (uint256)" } }, - "id": 7149, + "id": 9383, "isConstant": false, "isLValue": false, "isPure": false, @@ -5030,21 +5030,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2488:113:21", + "src": "2488:113:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 7143, - "id": 7150, + "functionReturnParameters": 9377, + "id": 9384, "nodeType": "Return", - "src": "2481:120:21" + "src": "2481:120:30" } ] }, "documentation": null, - "id": 7152, + "id": 9386, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5052,16 +5052,16 @@ "name": "getBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 7140, + "id": 9374, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7133, + "id": 9367, "name": "value", "nodeType": "VariableDeclaration", - "scope": 7152, - "src": "2380:10:21", + "scope": 9386, + "src": "2380:10:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5069,10 +5069,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7132, + "id": 9366, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2380:4:21", + "src": "2380:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5083,11 +5083,11 @@ }, { "constant": false, - "id": 7136, + "id": 9370, "name": "volumeBoundaries", "nodeType": "VariableDeclaration", - "scope": 7152, - "src": "2392:23:21", + "scope": 9386, + "src": "2392:23:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5096,19 +5096,19 @@ }, "typeName": { "baseType": { - "id": 7134, + "id": 9368, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2392:4:21", + "src": "2392:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7135, + "id": 9369, "length": null, "nodeType": "ArrayTypeName", - "src": "2392:6:21", + "src": "2392:6:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -5119,11 +5119,11 @@ }, { "constant": false, - "id": 7139, + "id": 9373, "name": "volumeBonuses", "nodeType": "VariableDeclaration", - "scope": 7152, - "src": "2417:20:21", + "scope": 9386, + "src": "2417:20:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5132,19 +5132,19 @@ }, "typeName": { "baseType": { - "id": 7137, + "id": 9371, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2417:4:21", + "src": "2417:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7138, + "id": 9372, "length": null, "nodeType": "ArrayTypeName", - "src": "2417:6:21", + "src": "2417:6:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -5154,20 +5154,20 @@ "visibility": "internal" } ], - "src": "2379:59:21" + "src": "2379:59:30" }, "payable": false, "returnParameters": { - "id": 7143, + "id": 9377, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7142, + "id": 9376, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 7152, - "src": "2459:10:21", + "scope": 9386, + "src": "2459:10:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5175,10 +5175,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7141, + "id": 9375, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2459:4:21", + "src": "2459:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5188,23 +5188,23 @@ "visibility": "internal" } ], - "src": "2458:12:21" + "src": "2458:12:30" }, - "scope": 7157, - "src": "2362:246:21", + "scope": 9391, + "src": "2362:246:30", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7155, + "id": 9389, "nodeType": "Block", - "src": "2641:2:21", + "src": "2641:2:30", "statements": [] }, "documentation": null, - "id": 7156, + "id": 9390, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5212,30 +5212,30 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 7153, + "id": 9387, "nodeType": "ParameterList", "parameters": [], - "src": "2623:2:21" + "src": "2623:2:30" }, "payable": true, "returnParameters": { - "id": 7154, + "id": 9388, "nodeType": "ParameterList", "parameters": [], - "src": "2641:0:21" + "src": "2641:0:30" }, - "scope": 7157, - "src": "2614:29:21", + "scope": 9391, + "src": "2614:29:30", "stateMutability": "payable", "superFunction": null, "visibility": "public" } ], - "scope": 7158, - "src": "71:2574:21" + "scope": 9392, + "src": "71:2574:30" } ], - "src": "0:2646:21" + "src": "0:2646:30" }, "compiler": { "name": "solc", @@ -5243,5 +5243,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:55:06.470Z" + "updatedAt": "2018-12-06T13:18:18.804Z" } \ No newline at end of file diff --git a/build/contracts/Rates.json b/build/contracts/Rates.json index bf8554ee..24b101ec 100644 --- a/build/contracts/Rates.json +++ b/build/contracts/Rates.json @@ -1,6 +1,20 @@ { "contractName": "Rates", "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [ @@ -20,15 +34,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [ @@ -48,10 +53,19 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [], + "name": "renouncePricer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], - "name": "owner", + "name": "primary", "outputs": [ { "name": "", @@ -95,47 +109,16 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - } - ], - "name": "OwnershipRenounced", - "type": "event" - }, { "anonymous": false, "inputs": [ { - "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", + "indexed": false, + "name": "recipient", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "PrimaryTransferred", "type": "event" }, { @@ -330,24 +313,24 @@ "type": "function" } ], - "bytecode": "0x60806040526100163364010000000061002d810204565b60068054600160a060020a031916331790556100b6565b600160a060020a038116151561004257600080fd5b61005a60058264010000000061094c61009182021704565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b610a06806100c56000396000f3006080604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b71a9db81146100f5578063273f49401461010f578063289e029b1461012a578063451a5e651461014257806350b49f2d146101635780636b8431d41461018d578063715018a6146101b157806379d44573146101c65780637d20abf8146101e75780638da5cb5b146102135780638eaa6ac014610244578063b12e44101461025c578063cfec719f14610274578063e5da831f1461028c578063e9217944146102f1578063e97aed3c14610312578063f2fde38b14610336575b600080fd5b34801561010157600080fd5b5061010d600435610357565b005b34801561011b57600080fd5b5061010d600435602435610390565b34801561013657600080fd5b5061010d6004356103ca565b34801561014e57600080fd5b5061010d600160a060020a03600435166103ea565b34801561016f57600080fd5b5061017b60043561040a565b60408051918252519081900360200190f35b34801561019957600080fd5b5061010d600435600160a060020a0360243516610429565b3480156101bd57600080fd5b5061010d610463565b3480156101d257600080fd5b5061010d600160a060020a03600435166104d1565b3480156101f357600080fd5b506101ff6004356104f1565b604080519115158252519081900360200190f35b34801561021f57600080fd5b50610228610506565b60408051600160a060020a039092168252519081900360200190f35b34801561025057600080fd5b5061017b600435610515565b34801561026857600080fd5b5061022860043561053e565b34801561028057600080fd5b506101ff600435610570565b34801561029857600080fd5b506102a16105a4565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102dd5781810151838201526020016102c5565b505050509050019250505060405180910390f35b3480156102fd57600080fd5b506101ff600160a060020a03600435166105fe565b34801561031e57600080fd5b5061010d600435600160a060020a0360243516610617565b34801561034257600080fd5b5061010d600160a060020a036004351661067a565b610360336105fe565b151561036b57600080fd5b610376816000610617565b61037f8161069a565b600090815260076020526040812055565b610399336105fe565b15156103a457600080fd5b6103ad826104f1565b15156103b857600080fd5b60009182526007602052604090912055565b6103d3336105fe565b15156103de57600080fd5b6103e7816106f2565b50565b600654600160a060020a0316331461040157600080fd5b6103e781610768565b600280548290811061041857fe5b600091825260209091200154905081565b610432336105fe565b151561043d57600080fd5b610446826106f2565b600160a060020a0381161561045f5761045f8282610617565b5050565b600654600160a060020a0316331461047a57600080fd5b600654604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26006805473ffffffffffffffffffffffffffffffffffffffff19169055565b600654600160a060020a031633146104e857600080fd5b6103e781610785565b60009081526004602052604090205460ff1690565b600654600160a060020a031681565b6000610520826104f1565b151561052b57600080fd5b5060009081526007602052604090205490565b600061054982610570565b151561055457600080fd5b50600090815260086020526040902054600160a060020a031690565b600061057b826104f1565b151561058657600080fd5b50600090815260086020526040902054600160a060020a0316151590565b606060028054806020026020016040519081016040528092919081815260200182805480156105f357602002820191906000526020600020905b815481526001909101906020018083116105de575b505050505090505b90565b600061061160058363ffffffff61078e16565b92915050565b610620336105fe565b151561062b57600080fd5b610634826104f1565b151561063f57600080fd5b600091825260086020526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600654600160a060020a0316331461069157600080fd5b6103e7816107ad565b60008181526004602052604090205460ff1615156106b757600080fd5b6000818152600460209081526040808320805460ff1916905560039091529020546106e19061082b565b600090815260036020526040812055565b60008181526004602052604090205460ff161561070e57600080fd5b6000818152600460209081526040808320805460ff19166001908117909155600280546003909452918420839055820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0155565b610771336105fe565b151561077c57600080fd5b6103e781610892565b6103e7816108ef565b600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a03811615156107c257600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600254811061083957600080fd5b60025460001901811461087f5760028054600019810190811061085857fe5b906000526020600020015460028281548110151561087257fe5b6000918252602090912001555b600280549061045f906000198301610993565b600160a060020a03811615156108a757600080fd5b6108b860058263ffffffff61094c16565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a038116151561090457600080fd5b61091560058263ffffffff61097116565b604051600160a060020a038216907fdbde5a1472d701cfaea5fcee6419072f226c14cc6c5478fbe8552044053a316a90600090a250565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0316600090815260209190915260409020805460ff19169055565b8154818355818111156109b7576000838152602090206109b79181019083016109bc565b505050565b6105fb91905b808211156109d657600081556001016109c2565b50905600a165627a7a723058203efa246b7f68b222021768b77644e5ae080a2f7f09cd77be35eb3e52689a18b80029", - "deployedBytecode": "0x6080604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b71a9db81146100f5578063273f49401461010f578063289e029b1461012a578063451a5e651461014257806350b49f2d146101635780636b8431d41461018d578063715018a6146101b157806379d44573146101c65780637d20abf8146101e75780638da5cb5b146102135780638eaa6ac014610244578063b12e44101461025c578063cfec719f14610274578063e5da831f1461028c578063e9217944146102f1578063e97aed3c14610312578063f2fde38b14610336575b600080fd5b34801561010157600080fd5b5061010d600435610357565b005b34801561011b57600080fd5b5061010d600435602435610390565b34801561013657600080fd5b5061010d6004356103ca565b34801561014e57600080fd5b5061010d600160a060020a03600435166103ea565b34801561016f57600080fd5b5061017b60043561040a565b60408051918252519081900360200190f35b34801561019957600080fd5b5061010d600435600160a060020a0360243516610429565b3480156101bd57600080fd5b5061010d610463565b3480156101d257600080fd5b5061010d600160a060020a03600435166104d1565b3480156101f357600080fd5b506101ff6004356104f1565b604080519115158252519081900360200190f35b34801561021f57600080fd5b50610228610506565b60408051600160a060020a039092168252519081900360200190f35b34801561025057600080fd5b5061017b600435610515565b34801561026857600080fd5b5061022860043561053e565b34801561028057600080fd5b506101ff600435610570565b34801561029857600080fd5b506102a16105a4565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102dd5781810151838201526020016102c5565b505050509050019250505060405180910390f35b3480156102fd57600080fd5b506101ff600160a060020a03600435166105fe565b34801561031e57600080fd5b5061010d600435600160a060020a0360243516610617565b34801561034257600080fd5b5061010d600160a060020a036004351661067a565b610360336105fe565b151561036b57600080fd5b610376816000610617565b61037f8161069a565b600090815260076020526040812055565b610399336105fe565b15156103a457600080fd5b6103ad826104f1565b15156103b857600080fd5b60009182526007602052604090912055565b6103d3336105fe565b15156103de57600080fd5b6103e7816106f2565b50565b600654600160a060020a0316331461040157600080fd5b6103e781610768565b600280548290811061041857fe5b600091825260209091200154905081565b610432336105fe565b151561043d57600080fd5b610446826106f2565b600160a060020a0381161561045f5761045f8282610617565b5050565b600654600160a060020a0316331461047a57600080fd5b600654604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26006805473ffffffffffffffffffffffffffffffffffffffff19169055565b600654600160a060020a031633146104e857600080fd5b6103e781610785565b60009081526004602052604090205460ff1690565b600654600160a060020a031681565b6000610520826104f1565b151561052b57600080fd5b5060009081526007602052604090205490565b600061054982610570565b151561055457600080fd5b50600090815260086020526040902054600160a060020a031690565b600061057b826104f1565b151561058657600080fd5b50600090815260086020526040902054600160a060020a0316151590565b606060028054806020026020016040519081016040528092919081815260200182805480156105f357602002820191906000526020600020905b815481526001909101906020018083116105de575b505050505090505b90565b600061061160058363ffffffff61078e16565b92915050565b610620336105fe565b151561062b57600080fd5b610634826104f1565b151561063f57600080fd5b600091825260086020526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600654600160a060020a0316331461069157600080fd5b6103e7816107ad565b60008181526004602052604090205460ff1615156106b757600080fd5b6000818152600460209081526040808320805460ff1916905560039091529020546106e19061082b565b600090815260036020526040812055565b60008181526004602052604090205460ff161561070e57600080fd5b6000818152600460209081526040808320805460ff19166001908117909155600280546003909452918420839055820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0155565b610771336105fe565b151561077c57600080fd5b6103e781610892565b6103e7816108ef565b600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a03811615156107c257600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600254811061083957600080fd5b60025460001901811461087f5760028054600019810190811061085857fe5b906000526020600020015460028281548110151561087257fe5b6000918252602090912001555b600280549061045f906000198301610993565b600160a060020a03811615156108a757600080fd5b6108b860058263ffffffff61094c16565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a038116151561090457600080fd5b61091560058263ffffffff61097116565b604051600160a060020a038216907fdbde5a1472d701cfaea5fcee6419072f226c14cc6c5478fbe8552044053a316a90600090a250565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0316600090815260209190915260409020805460ff19169055565b8154818355818111156109b7576000838152602090206109b79181019083016109bc565b505050565b6105fb91905b808211156109d657600081556001016109c2565b50905600a165627a7a723058203efa246b7f68b222021768b77644e5ae080a2f7f09cd77be35eb3e52689a18b80029", - "sourceMap": "167:1602:25:-;;;352:22:28;363:10;352;;;;:22;:::i;:::-;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;167:1602:25;;771:159:28;-1:-1:-1;;;;;835:21:28;;;;827:30;;;;;;868:20;:7;880;868:11;;;;;;:20;:::i;:::-;903;;-1:-1:-1;;;;;903:20:28;;;;;;;;771:159;:::o;321:100:43:-;-1:-1:-1;;;;;390:19:43;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:43;412:4;390:26;;;321:100::o;167:1602:25:-;;;;;;;", - "deployedSourceMap": "167:1602:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;621:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;621:173:25;;;;;;;1635:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1635:132:25;;;;;;;520:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;520:95:25;;;;;1284:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1284:99:25;-1:-1:-1;;;;;1284:99:25;;;;;87:28:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;87:28:26;;;;;;;;;;;;;;;;;;;;;313:201:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;313:201:25;;;-1:-1:-1;;;;;313:201:25;;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;1389:105:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1389:105:25;-1:-1:-1;;;;;1389:105:25;;;;;621:100:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;621:100:26;;;;;;;;;;;;;;;;;;;;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;;;;;-1:-1:-1;;;;;238:20:45;;;;;;;;;;;;;;1500:129:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1500:129:25;;;;;968:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;968:149:25;;;;;1123:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1123:155:25;;;;;727:92:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;727:92:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;727:92:26;;;;;;;;;;;;;;;;;472:106:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;472:106:28;-1:-1:-1;;;;;472:106:28;;;;;800:162:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;800:162:25;;;-1:-1:-1;;;;;800:162:25;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;-1:-1:-1;;;;;1274:103:45;;;;;621:173:25;427:20:28;436:10;427:8;:20::i;:::-;419:29;;;;;;;;687:35:25;703:6;719:1;687:15;:35::i;:::-;732:28;753:6;732:20;:28::i;:::-;786:1;770:13;;;:5;:13;;;;;:17;621:173::o;1635:132::-;427:20:28;436:10;427:8;:20::i;:::-;419:29;;;;;;;;1711:17:25;1721:6;1711:9;:17::i;:::-;1703:26;;;;;;;;1740:13;;;;:5;:13;;;;;;:20;1635:132::o;520:95::-;427:20:28;436:10;427:8;:20::i;:::-;419:29;;;;;;;;583:25:25;601:6;583:17;:25::i;:::-;520:95;:::o;1284:99::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1347:29:25;1368:7;1347:20;:29::i;87:28:26:-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;87:28:26;:::o;313:201:25:-;427:20:28;436:10;427:8;:20::i;:::-;419:29;;;;;;;;410:25:25;428:6;410:17;:25::i;:::-;-1:-1:-1;;;;;450:22:25;;;446:61;;474:33;490:6;498:8;474:15;:33::i;:::-;313:201;;:::o;1001:111:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;1389:105:25:-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1455:32:25;1479:7;1455:23;:32::i;621:100:26:-;676:4;699:15;;;:7;:15;;;;;;;;;621:100::o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;1500:129:25:-;1549:4;1573:17;1583:6;1573:9;:17::i;:::-;1565:26;;;;;;;;-1:-1:-1;1609:13:25;;;;:5;:13;;;;;;;1500:129::o;968:149::-;1029:7;1056:15;1064:6;1056:7;:15::i;:::-;1048:24;;;;;;;;-1:-1:-1;1090:20:25;;;;:12;:20;;;;;;-1:-1:-1;;;;;1090:20:25;;968:149::o;1123:155::-;1177:4;1201:17;1211:6;1201:9;:17::i;:::-;1193:26;;;;;;;;-1:-1:-1;1269:1:25;1237:20;;;:12;:20;;;;;;-1:-1:-1;;;;;1237:20:25;:34;;;1123:155::o;727:92:26:-;773:9;801:11;794:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;727:92;;:::o;472:106:28:-;528:4;551:20;:7;563;551:20;:11;:20;:::i;:::-;544:27;472:106;-1:-1:-1;;472:106:28:o;800:162:25:-;427:20:28;436:10;427:8;:20::i;:::-;419:29;;;;;;;;895:17:25;905:6;895:9;:17::i;:::-;887:26;;;;;;;;924:20;;;;:12;:20;;;;;;:31;;-1:-1:-1;;924:31:25;-1:-1:-1;;;;;924:31:25;;;;;;;;;800:162::o;1274:103:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;411:204:26:-;474:15;;;;:7;:15;;;;;;;;466:24;;;;;;;;519:5;501:15;;;:7;:15;;;;;;;;:23;;-1:-1:-1;;501:23:26;;;555:11;:19;;;;;;534:41;;:20;:41::i;:::-;607:1;585:19;;;:11;:19;;;;;:23;411:204::o;204:201::-;265:15;;;;:7;:15;;;;;;;;264:16;256:25;;;;;;292:15;;;;:7;:15;;;;;;;;:22;;-1:-1:-1;;292:22:26;310:4;292:22;;;;;;346:11;:18;;324:11;:19;;;;;;:40;;;23:18:-1;;45:23;;374:24:26;;;;;;204:201::o;584:90:28:-;427:20;436:10;427:8;:20::i;:::-;419:29;;;;;;;;648:19;659:7;648:10;:19::i;680:85::-;736:22;750:7;736:13;:22::i;855:128:43:-;-1:-1:-1;;;;;959:19:43;938:4;959:19;;;;;;;;;;;;;;;855:128::o;1512:171:45:-;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o;825:262:26:-;902:11;:18;894:26;;886:35;;;;;;945:11;:18;-1:-1:-1;;945:22:26;936:31;;932:118;;1004:11;1016:18;;-1:-1:-1;;1016:22:26;;;1004:35;;;;;;;;;;;;;;983:11;995:5;983:18;;;;;;;;;;;;;;;;;;;:56;932:118;1060:11;:20;;;;;-1:-1:-1;;1060:20:26;;;:::i;771:159:28:-;-1:-1:-1;;;;;835:21:28;;;;827:30;;;;;;868:20;:7;880;868:20;:11;:20;:::i;:::-;903;;-1:-1:-1;;;;;903:20:28;;;;;;;;771:159;:::o;936:167::-;-1:-1:-1;;;;;1003:21:28;;;;995:30;;;;;;1036:23;:7;1051;1036:23;:14;:23;:::i;:::-;1074:22;;-1:-1:-1;;;;;1074:22:28;;;;;;;;936:167;:::o;321:100:43:-;-1:-1:-1;;;;;390:19:43;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:43;412:4;390:26;;;321:100::o;486:104::-;-1:-1:-1;;;;;558:19:43;580:5;558:19;;;;;;;;;;;:27;;-1:-1:-1;;558:27:43;;;486:104::o;167:1602:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./IRates.sol\";\nimport \"./roles/Pricer.sol\";\nimport \"./Symbols.sol\";\n\ncontract Rates is IRates, Symbols, PricerRole, Ownable {\n mapping (bytes32 => uint) rates;\n mapping (bytes32 => address) tokenAddress;\n\n function addSymbolWithTokenAddress(bytes32 symbol, address _address) public onlyPricer {\n Symbols.addSymbol(symbol);\n\n if (_address != address(0)) setTokenAddress(symbol, _address);\n }\n\n function addSymbol(bytes32 symbol) public onlyPricer {\n Symbols.addSymbol(symbol);\n }\n\n function removeSymbol(bytes32 symbol) public onlyPricer {\n setTokenAddress(symbol, address(0));\n Symbols.removeSymbol(symbol);\n rates[symbol] = 0;\n }\n\n function setTokenAddress(bytes32 symbol, address _address) public onlyPricer {\n require(hasSymbol(symbol));\n\n tokenAddress[symbol] = _address;\n }\n\n function getTokenAddress(bytes32 symbol) public view returns(address) {\n require(isToken(symbol));\n\n return tokenAddress[symbol];\n }\n\n function isToken(bytes32 symbol) public view returns (bool) {\n require(hasSymbol(symbol));\n\n return tokenAddress[symbol] != address(0);\n }\n\n function addPricer(address account) public onlyOwner {\n PricerRole.addPricer(account);\n }\n\n function removePricer(address account) public onlyOwner {\n PricerRole.removePricer(account);\n }\n\n function get(bytes32 symbol) public view returns(uint) {\n require(hasSymbol(symbol));\n\n return rates[symbol];\n }\n\n function set(bytes32 symbol, uint rate) public onlyPricer {\n require(hasSymbol(symbol));\n\n rates[symbol] = rate;\n }\n}\n", + "bytecode": "0x60806040526100163364010000000061006c810204565b60058054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a161015e565b600160a060020a038116151561008157600080fd5b6100996004826401000000006108e76100d082021704565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a03811615156100e557600080fd5b6100f88282640100000000610127810204565b1561010257600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a038216151561013e57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6109ea8061016d6000396000f3006080604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b71a9db81146100f55780632348238c1461010f578063273f494014610130578063289e029b1461014b578063451a5e651461016357806350b49f2d146101845780636b8431d4146101ae57806379d44573146101d25780637d20abf8146101f35780638eaa6ac01461021f57806396fd23a514610237578063b12e44101461024c578063c6dbdf6114610280578063cfec719f14610295578063e5da831f146102ad578063e921794414610312578063e97aed3c14610333575b600080fd5b34801561010157600080fd5b5061010d600435610357565b005b34801561011b57600080fd5b5061010d600160a060020a0360043516610390565b34801561013c57600080fd5b5061010d600435602435610423565b34801561015757600080fd5b5061010d60043561045d565b34801561016f57600080fd5b5061010d600160a060020a036004351661047d565b34801561019057600080fd5b5061019c60043561049d565b60408051918252519081900360200190f35b3480156101ba57600080fd5b5061010d600435600160a060020a03602435166104bc565b3480156101de57600080fd5b5061010d600160a060020a03600435166104f6565b3480156101ff57600080fd5b5061020b600435610516565b604080519115158252519081900360200190f35b34801561022b57600080fd5b5061019c60043561052b565b34801561024357600080fd5b5061010d610554565b34801561025857600080fd5b5061026460043561055f565b60408051600160a060020a039092168252519081900360200190f35b34801561028c57600080fd5b50610264610591565b3480156102a157600080fd5b5061020b6004356105a1565b3480156102b957600080fd5b506102c26105d5565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102fe5781810151838201526020016102e6565b505050509050019250505060405180910390f35b34801561031e57600080fd5b5061020b600160a060020a036004351661062e565b34801561033f57600080fd5b5061010d600435600160a060020a0360243516610647565b6103603361062e565b151561036b57600080fd5b610376816000610647565b61037f816106aa565b600090815260066020526040812055565b600554600160a060020a031633146103a757600080fd5b600160a060020a03811615156103bc57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b61042c3361062e565b151561043757600080fd5b61044082610516565b151561044b57600080fd5b60009182526006602052604090912055565b6104663361062e565b151561047157600080fd5b61047a81610781565b50565b600554600160a060020a0316331461049457600080fd5b61047a816107f6565b60018054829081106104ab57fe5b600091825260209091200154905081565b6104c53361062e565b15156104d057600080fd5b6104d982610781565b600160a060020a038116156104f2576104f28282610647565b5050565b600554600160a060020a0316331461050d57600080fd5b61047a81610853565b60009081526003602052604090205460ff1690565b600061053682610516565b151561054157600080fd5b5060009081526006602052604090205490565b61055d33610853565b565b600061056a826105a1565b151561057557600080fd5b50600090815260076020526040902054600160a060020a031690565b600554600160a060020a03165b90565b60006105ac82610516565b15156105b757600080fd5b50600090815260076020526040902054600160a060020a0316151590565b6060600180548060200260200160405190810160405280929190818152602001828054801561062457602002820191906000526020600020905b8154815260019091019060200180831161060f575b5050505050905090565b600061064160048363ffffffff6108b016565b92915050565b6106503361062e565b151561065b57600080fd5b61066482610516565b151561066f57600080fd5b600091825260076020526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008181526003602052604081205460ff1615156106c757600080fd5b506000818152600360209081526040808320805460ff191690556002909152812080549190556001546000190181146107695760018054600019810190811061070c57fe5b906000526020600020015460018281548110151561072657fe5b906000526020600020018160001916905550806002600060018481548110151561074c57fe5b600091825260208083209091015483528201929092526040019020555b600180549061077c906000198301610981565b505050565b60008181526003602052604090205460ff161561079d57600080fd5b6000818152600360209081526040808320805460ff191660019081179091558054600290935290832082905581810181559091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b600160a060020a038116151561080b57600080fd5b61081c60048263ffffffff6108e716565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a038116151561086857600080fd5b61087960048263ffffffff61093516565b604051600160a060020a038216907fdbde5a1472d701cfaea5fcee6419072f226c14cc6c5478fbe8552044053a316a90600090a250565b6000600160a060020a03821615156108c757600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a03811615156108fc57600080fd5b61090682826108b0565b1561091057600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561094a57600080fd5b61095482826108b0565b151561095f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b81548183558181111561077c5760008381526020902061077c91810190830161059e91905b808211156109ba57600081556001016109a6565b50905600a165627a7a723058205d6147f22a26fb6cc4f5b366828e1875001b8ad672257eb6bb1c264b8282bc350029", + "deployedBytecode": "0x6080604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b71a9db81146100f55780632348238c1461010f578063273f494014610130578063289e029b1461014b578063451a5e651461016357806350b49f2d146101845780636b8431d4146101ae57806379d44573146101d25780637d20abf8146101f35780638eaa6ac01461021f57806396fd23a514610237578063b12e44101461024c578063c6dbdf6114610280578063cfec719f14610295578063e5da831f146102ad578063e921794414610312578063e97aed3c14610333575b600080fd5b34801561010157600080fd5b5061010d600435610357565b005b34801561011b57600080fd5b5061010d600160a060020a0360043516610390565b34801561013c57600080fd5b5061010d600435602435610423565b34801561015757600080fd5b5061010d60043561045d565b34801561016f57600080fd5b5061010d600160a060020a036004351661047d565b34801561019057600080fd5b5061019c60043561049d565b60408051918252519081900360200190f35b3480156101ba57600080fd5b5061010d600435600160a060020a03602435166104bc565b3480156101de57600080fd5b5061010d600160a060020a03600435166104f6565b3480156101ff57600080fd5b5061020b600435610516565b604080519115158252519081900360200190f35b34801561022b57600080fd5b5061019c60043561052b565b34801561024357600080fd5b5061010d610554565b34801561025857600080fd5b5061026460043561055f565b60408051600160a060020a039092168252519081900360200190f35b34801561028c57600080fd5b50610264610591565b3480156102a157600080fd5b5061020b6004356105a1565b3480156102b957600080fd5b506102c26105d5565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102fe5781810151838201526020016102e6565b505050509050019250505060405180910390f35b34801561031e57600080fd5b5061020b600160a060020a036004351661062e565b34801561033f57600080fd5b5061010d600435600160a060020a0360243516610647565b6103603361062e565b151561036b57600080fd5b610376816000610647565b61037f816106aa565b600090815260066020526040812055565b600554600160a060020a031633146103a757600080fd5b600160a060020a03811615156103bc57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b61042c3361062e565b151561043757600080fd5b61044082610516565b151561044b57600080fd5b60009182526006602052604090912055565b6104663361062e565b151561047157600080fd5b61047a81610781565b50565b600554600160a060020a0316331461049457600080fd5b61047a816107f6565b60018054829081106104ab57fe5b600091825260209091200154905081565b6104c53361062e565b15156104d057600080fd5b6104d982610781565b600160a060020a038116156104f2576104f28282610647565b5050565b600554600160a060020a0316331461050d57600080fd5b61047a81610853565b60009081526003602052604090205460ff1690565b600061053682610516565b151561054157600080fd5b5060009081526006602052604090205490565b61055d33610853565b565b600061056a826105a1565b151561057557600080fd5b50600090815260076020526040902054600160a060020a031690565b600554600160a060020a03165b90565b60006105ac82610516565b15156105b757600080fd5b50600090815260076020526040902054600160a060020a0316151590565b6060600180548060200260200160405190810160405280929190818152602001828054801561062457602002820191906000526020600020905b8154815260019091019060200180831161060f575b5050505050905090565b600061064160048363ffffffff6108b016565b92915050565b6106503361062e565b151561065b57600080fd5b61066482610516565b151561066f57600080fd5b600091825260076020526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008181526003602052604081205460ff1615156106c757600080fd5b506000818152600360209081526040808320805460ff191690556002909152812080549190556001546000190181146107695760018054600019810190811061070c57fe5b906000526020600020015460018281548110151561072657fe5b906000526020600020018160001916905550806002600060018481548110151561074c57fe5b600091825260208083209091015483528201929092526040019020555b600180549061077c906000198301610981565b505050565b60008181526003602052604090205460ff161561079d57600080fd5b6000818152600360209081526040808320805460ff191660019081179091558054600290935290832082905581810181559091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b600160a060020a038116151561080b57600080fd5b61081c60048263ffffffff6108e716565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a038116151561086857600080fd5b61087960048263ffffffff61093516565b604051600160a060020a038216907fdbde5a1472d701cfaea5fcee6419072f226c14cc6c5478fbe8552044053a316a90600090a250565b6000600160a060020a03821615156108c757600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a03811615156108fc57600080fd5b61090682826108b0565b1561091057600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561094a57600080fd5b61095482826108b0565b151561095f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b81548183558181111561077c5760008381526020902061077c91810190830161059e91905b808211156109ba57600081556001016109a6565b50905600a165627a7a723058205d6147f22a26fb6cc4f5b366828e1875001b8ad672257eb6bb1c264b8282bc350029", + "sourceMap": "223:1588:38:-;;;310:22:7;321:10;310;;;;:22;:::i;:::-;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;417:28;;;-1:-1:-1;;;;;436:8:55;;;;417:28;;;;;;;;;;;;223:1588:38;;623:159:7;-1:-1:-1;;;;;687:21:7;;;;679:30;;;;;;720:20;:7;732;720:11;;;;;;:20;:::i;:::-;755;;-1:-1:-1;;;;;755:20:7;;;;;;;;623:159;:::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;223:1588:38:-;;;;;;;", + "deployedSourceMap": "223:1588:38:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;679:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;679:173:38;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;-1:-1:-1;;;;;855:171:55;;;;;1677:132:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1677:132:38;;;;;;;578:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;578:95:38;;;;;1342:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1342:91:38;-1:-1:-1;;;;;1342:91:38;;;;;87:28:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;87:28:39;;;;;;;;;;;;;;;;;;;;;371:201:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;371:201:38;;;-1:-1:-1;;;;;371:201:38;;;;;1439:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1439:97:38;-1:-1:-1;;;;;1439:97:38;;;;;826:100:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;826:100:39;;;;;;;;;;;;;;;;;;;;;;;1542:129:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1542:129:38;;;;;542:75:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;542:75:7;;;;1026:149:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1026:149:38;;;;;;;;;-1:-1:-1;;;;;1026:149:38;;;;;;;;;;;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;1181:155:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1181:155:38;;;;;932:92:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;932:92:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;932:92:39;;;;;;;;;;;;;;;;;430:106:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;430:106:7;-1:-1:-1;;;;;430:106:7;;;;;858:162:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;858:162:38;;;-1:-1:-1;;;;;858:162:38;;;;;679:173;385:20:7;394:10;385:8;:20::i;:::-;377:29;;;;;;;;745:35:38;761:6;777:1;745:15;:35::i;:::-;790:28;811:6;790:20;:28::i;:::-;844:1;828:13;;;:5;:13;;;;;:17;679:173::o;855:171:55:-;586:8;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;1677:132:38:-;385:20:7;394:10;385:8;:20::i;:::-;377:29;;;;;;;;1753:17:38;1763:6;1753:9;:17::i;:::-;1745:26;;;;;;;;1782:13;;;;:5;:13;;;;;;:20;1677:132::o;578:95::-;385:20:7;394:10;385:8;:20::i;:::-;377:29;;;;;;;;641:25:38;659:6;641:17;:25::i;:::-;578:95;:::o;1342:91::-;586:8:55;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;1407:19:38;1418:7;1407:10;:19::i;87:28:39:-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;87:28:39;:::o;371:201:38:-;385:20:7;394:10;385:8;:20::i;:::-;377:29;;;;;;;;468:25:38;486:6;468:17;:25::i;:::-;-1:-1:-1;;;;;508:22:38;;;504:61;;532:33;548:6;556:8;532:15;:33::i;:::-;371:201;;:::o;1439:97::-;586:8:55;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;1507:22:38;1521:7;1507:13;:22::i;826:100:39:-;881:4;904:15;;;:7;:15;;;;;;;;;826:100::o;1542:129:38:-;1591:4;1615:17;1625:6;1615:9;:17::i;:::-;1607:26;;;;;;;;-1:-1:-1;1651:13:38;;;;:5;:13;;;;;;;1542:129::o;542:75:7:-;585:25;599:10;585:13;:25::i;:::-;542:75::o;1026:149:38:-;1087:7;1114:15;1122:6;1114:7;:15::i;:::-;1106:24;;;;;;;;-1:-1:-1;1148:20:38;;;;:12;:20;;;;;;-1:-1:-1;;;;;1148:20:38;;1026:149::o;664:75:55:-;726:8;;-1:-1:-1;;;;;726:8:55;664:75;;:::o;1181:155:38:-;1235:4;1259:17;1269:6;1259:9;:17::i;:::-;1251:26;;;;;;;;-1:-1:-1;1327:1:38;1295:20;;;:12;:20;;;;;;-1:-1:-1;;;;;1295:20:38;:34;;;1181:155::o;932:92:39:-;978:9;1006:11;999:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;932:92;:::o;430:106:7:-;486:4;509:20;:7;521;509:20;:11;:20;:::i;:::-;502:27;430:106;-1:-1:-1;;430:106:7:o;858:162:38:-;385:20:7;394:10;385:8;:20::i;:::-;377:29;;;;;;;;953:17:38;963:6;953:9;:17::i;:::-;945:26;;;;;;;;982:20;;;;:12;:20;;;;;;:31;;-1:-1:-1;;982:31:38;-1:-1:-1;;;;;982:31:38;;;;;;;;;858:162::o;411:409:39:-;535:10;474:15;;;:7;:15;;;;;;;;466:24;;;;;;;;-1:-1:-1;519:5:39;501:15;;;:7;:15;;;;;;;;:23;;-1:-1:-1;;501:23:39;;;548:11;:19;;;;;;;578:23;;;501;625:18;-1:-1:-1;;625:22:39;616:31;;612:171;;684:11;696:18;;-1:-1:-1;;696:22:39;;;684:35;;;;;;;;;;;;;;663:11;675:5;663:18;;;;;;;;;;;;;;;;;:56;;;;;;;767:5;733:11;:31;745:11;757:5;745:18;;;;;;;;;;;;;;;;;;;;;;733:31;;;;;;;;;;;;:39;612:171;793:11;:20;;;;;-1:-1:-1;;793:20:39;;;:::i;:::-;;411:409;;:::o;204:201::-;265:15;;;;:7;:15;;;;;;;;264:16;256:25;;;;;;292:15;;;;:7;:15;;;;;;;;:22;;-1:-1:-1;;292:22:39;310:4;292:22;;;;;;346:18;;324:11;:19;;;;;;:40;;;23:18:-1;;;45:23;;374:24:39;;;;;;204:201::o;623:159:7:-;-1:-1:-1;;;;;687:21:7;;;;679:30;;;;;;720:20;:7;732;720:20;:11;:20;:::i;:::-;755;;-1:-1:-1;;;;;755:20:7;;;;;;;;623:159;:::o;788:167::-;-1:-1:-1;;;;;855:21:7;;;;847:30;;;;;;888:23;:7;903;888:23;:14;:23;:::i;:::-;926:22;;-1:-1:-1;;;;;926:22:7;;;;;;;;788:167;:::o;725:166:52:-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;244:167::-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;:18::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;477:170::-;-1:-1:-1;;;;;552:21:52;;;;544:30;;;;;;588:18;592:4;598:7;588:3;:18::i;:::-;580:27;;;;;;;;-1:-1:-1;;;;;614:20:52;637:5;614:20;;;;;;;;;;;:28;;-1:-1:-1;;614:28:52;;;477:170::o;223:1588:38:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Secondary.sol\";\nimport \"./IRates.sol\";\nimport \"../access/roles/IPricerRole.sol\";\nimport \"../access/roles/PricerRole.sol\";\nimport \"./Symbols.sol\";\n\ncontract Rates is IRates, Symbols, PricerRole, Secondary {\n mapping (bytes32 => uint) rates;\n mapping (bytes32 => address) tokenAddress;\n\n function addSymbolWithTokenAddress(bytes32 symbol, address _address) public onlyPricer {\n Symbols.addSymbol(symbol);\n\n if (_address != address(0)) setTokenAddress(symbol, _address);\n }\n\n function addSymbol(bytes32 symbol) public onlyPricer {\n Symbols.addSymbol(symbol);\n }\n\n function removeSymbol(bytes32 symbol) public onlyPricer {\n setTokenAddress(symbol, address(0));\n Symbols.removeSymbol(symbol);\n rates[symbol] = 0;\n }\n\n function setTokenAddress(bytes32 symbol, address _address) public onlyPricer {\n require(hasSymbol(symbol));\n\n tokenAddress[symbol] = _address;\n }\n\n function getTokenAddress(bytes32 symbol) public view returns(address) {\n require(isToken(symbol));\n\n return tokenAddress[symbol];\n }\n\n function isToken(bytes32 symbol) public view returns (bool) {\n require(hasSymbol(symbol));\n\n return tokenAddress[symbol] != address(0);\n }\n\n function addPricer(address account) public onlyPrimary {\n _addPricer(account);\n }\n\n function removePricer(address account) public onlyPrimary {\n _removePricer(account);\n }\n\n function get(bytes32 symbol) public view returns(uint) {\n require(hasSymbol(symbol));\n\n return rates[symbol];\n }\n\n function set(bytes32 symbol, uint rate) public onlyPricer {\n require(hasSymbol(symbol));\n\n rates[symbol] = rate;\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/rates/Rates.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/rates/Rates.sol", "exportedSymbols": { "Rates": [ - 7529 + 10261 ] }, - "id": 7530, + "id": 10262, "nodeType": "SourceUnit", "nodes": [ { - "id": 7310, + "id": 10045, "literals": [ "solidity", "^", @@ -355,49 +338,60 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:38" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 7311, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 10046, "nodeType": "ImportDirective", - "scope": 7530, - "sourceUnit": 10135, - "src": "26:63:25", + "scope": 10262, + "sourceUnit": 12454, + "src": "26:65:38", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "file": "./IRates.sol", - "id": 7312, + "id": 10047, "nodeType": "ImportDirective", - "scope": 7530, - "sourceUnit": 7280, - "src": "90:22:25", + "scope": 10262, + "sourceUnit": 10015, + "src": "92:22:38", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/rates/roles/Pricer.sol", - "file": "./roles/Pricer.sol", - "id": 7313, + "absolutePath": "/home/circleci/code/contracts/access/roles/IPricerRole.sol", + "file": "../access/roles/IPricerRole.sol", + "id": 10048, "nodeType": "ImportDirective", - "scope": 7530, - "sourceUnit": 7810, - "src": "113:28:25", + "scope": 10262, + "sourceUnit": 1399, + "src": "115:41:38", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/PricerRole.sol", + "file": "../access/roles/PricerRole.sol", + "id": 10049, + "nodeType": "ImportDirective", + "scope": 10262, + "sourceUnit": 1529, + "src": "157:40:38", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/rates/Symbols.sol", "file": "./Symbols.sol", - "id": 7314, + "id": 10050, "nodeType": "ImportDirective", - "scope": 7530, - "sourceUnit": 7667, - "src": "142:23:25", + "scope": 10262, + "sourceUnit": 10394, + "src": "198:23:38", "symbolAliases": [], "unitAlias": "" }, @@ -407,106 +401,106 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 7315, + "id": 10051, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "185:6:25", + "referencedDeclaration": 10014, + "src": "241:6:38", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 7316, + "id": 10052, "nodeType": "InheritanceSpecifier", - "src": "185:6:25" + "src": "241:6:38" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 7317, + "id": 10053, "name": "Symbols", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7666, - "src": "193:7:25", + "referencedDeclaration": 10393, + "src": "249:7:38", "typeDescriptions": { - "typeIdentifier": "t_contract$_Symbols_$7666", + "typeIdentifier": "t_contract$_Symbols_$10393", "typeString": "contract Symbols" } }, - "id": 7318, + "id": 10054, "nodeType": "InheritanceSpecifier", - "src": "193:7:25" + "src": "249:7:38" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 7319, + "id": 10055, "name": "PricerRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7809, - "src": "202:10:25", + "referencedDeclaration": 1528, + "src": "258:10:38", "typeDescriptions": { - "typeIdentifier": "t_contract$_PricerRole_$7809", + "typeIdentifier": "t_contract$_PricerRole_$1528", "typeString": "contract PricerRole" } }, - "id": 7320, + "id": 10056, "nodeType": "InheritanceSpecifier", - "src": "202:10:25" + "src": "258:10:38" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 7321, - "name": "Ownable", + "id": 10057, + "name": "Secondary", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "214:7:25", + "referencedDeclaration": 12453, + "src": "270:9:38", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" } }, - "id": 7322, + "id": 10058, "nodeType": "InheritanceSpecifier", - "src": "214:7:25" + "src": "270:9:38" } ], "contractDependencies": [ - 7279, - 7308, - 7666, - 7686, - 7809, - 10134 + 1398, + 1528, + 10014, + 10043, + 10393, + 12453 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 7529, + "id": 10261, "linearizedBaseContracts": [ - 7529, - 10134, - 7809, - 7666, - 7279, - 7686, - 7308 + 10261, + 12453, + 1528, + 10393, + 10014, + 1398, + 10043 ], "name": "Rates", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 7326, + "id": 10062, "name": "rates", "nodeType": "VariableDeclaration", - "scope": 7529, - "src": "228:31:25", + "scope": 10261, + "src": "286:31:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -514,28 +508,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 7325, + "id": 10061, "keyType": { - "id": 7323, + "id": 10059, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "237:7:25", + "src": "295:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "228:25:25", + "src": "286:25:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 7324, + "id": 10060, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "248:4:25", + "src": "306:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -547,11 +541,11 @@ }, { "constant": false, - "id": 7330, + "id": 10066, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 7529, - "src": "265:41:25", + "scope": 10261, + "src": "323:41:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -559,28 +553,28 @@ "typeString": "mapping(bytes32 => address)" }, "typeName": { - "id": 7329, + "id": 10065, "keyType": { - "id": 7327, + "id": 10063, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "274:7:25", + "src": "332:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "265:28:25", + "src": "323:28:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { - "id": 7328, + "id": 10064, "name": "address", "nodeType": "ElementaryTypeName", - "src": "285:7:25", + "src": "343:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -592,9 +586,9 @@ }, { "body": { - "id": 7356, + "id": 10092, "nodeType": "Block", - "src": "400:114:25", + "src": "458:114:38", "statements": [ { "expression": { @@ -602,12 +596,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7342, + "id": 10078, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7332, - "src": "428:6:25", + "referencedDeclaration": 10068, + "src": "486:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -623,32 +617,32 @@ ], "expression": { "argumentTypes": null, - "id": 7339, + "id": 10075, "name": "Symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7666, - "src": "410:7:25", + "referencedDeclaration": 10393, + "src": "468:7:38", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Symbols_$7666_$", + "typeIdentifier": "t_type$_t_contract$_Symbols_$10393_$", "typeString": "type(contract Symbols)" } }, - "id": 7341, + "id": 10077, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 7577, - "src": "410:17:25", + "referencedDeclaration": 10309, + "src": "468:17:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 7343, + "id": 10079, "isConstant": false, "isLValue": false, "isPure": false, @@ -656,15 +650,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "410:25:25", + "src": "468:25:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7344, + "id": 10080, "nodeType": "ExpressionStatement", - "src": "410:25:25" + "src": "468:25:38" }, { "condition": { @@ -673,19 +667,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 7349, + "id": 10085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7345, + "id": 10081, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7334, - "src": "450:8:25", + "referencedDeclaration": 10070, + "src": "508:8:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -699,14 +693,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 7347, + "id": 10083, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "470:1:25", + "src": "528:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -722,20 +716,20 @@ "typeString": "int_const 0" } ], - "id": 7346, + "id": 10082, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "462:7:25", + "src": "520:7:38", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 7348, + "id": 10084, "isConstant": false, "isLValue": false, "isPure": true, @@ -743,34 +737,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "462:10:25", + "src": "520:10:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "450:22:25", + "src": "508:22:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 7355, + "id": 10091, "nodeType": "IfStatement", - "src": "446:61:25", + "src": "504:61:38", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 7351, + "id": 10087, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7332, - "src": "490:6:25", + "referencedDeclaration": 10068, + "src": "548:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -778,12 +772,12 @@ }, { "argumentTypes": null, - "id": 7352, + "id": 10088, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7334, - "src": "498:8:25", + "referencedDeclaration": 10070, + "src": "556:8:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -801,20 +795,20 @@ "typeString": "address" } ], - "id": 7350, + "id": 10086, "name": "setTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [ - 7420 + 10156 ], - "referencedDeclaration": 7420, - "src": "474:15:25", + "referencedDeclaration": 10156, + "src": "532:15:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 7353, + "id": 10089, "isConstant": false, "isLValue": false, "isPure": false, @@ -822,58 +816,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "474:33:25", + "src": "532:33:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7354, + "id": 10090, "nodeType": "ExpressionStatement", - "src": "474:33:25" + "src": "532:33:38" } } ] }, "documentation": null, - "id": 7357, + "id": 10093, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7337, + "id": 10073, "modifierName": { "argumentTypes": null, - "id": 7336, + "id": 10072, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7725, - "src": "389:10:25", + "referencedDeclaration": 1457, + "src": "447:10:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "389:10:25" + "src": "447:10:38" } ], "name": "addSymbolWithTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7335, + "id": 10071, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7332, + "id": 10068, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7357, - "src": "348:14:25", + "scope": 10093, + "src": "406:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -881,10 +875,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7331, + "id": 10067, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "348:7:25", + "src": "406:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -895,11 +889,11 @@ }, { "constant": false, - "id": 7334, + "id": 10070, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 7357, - "src": "364:16:25", + "scope": 10093, + "src": "422:16:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -907,10 +901,10 @@ "typeString": "address" }, "typeName": { - "id": 7333, + "id": 10069, "name": "address", "nodeType": "ElementaryTypeName", - "src": "364:7:25", + "src": "422:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -920,26 +914,26 @@ "visibility": "internal" } ], - "src": "347:34:25" + "src": "405:34:38" }, "payable": false, "returnParameters": { - "id": 7338, + "id": 10074, "nodeType": "ParameterList", "parameters": [], - "src": "400:0:25" + "src": "458:0:38" }, - "scope": 7529, - "src": "313:201:25", + "scope": 10261, + "src": "371:201:38", "stateMutability": "nonpayable", - "superFunction": 7235, + "superFunction": 9978, "visibility": "public" }, { "body": { - "id": 7370, + "id": 10106, "nodeType": "Block", - "src": "573:42:25", + "src": "631:42:38", "statements": [ { "expression": { @@ -947,12 +941,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7367, + "id": 10103, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7359, - "src": "601:6:25", + "referencedDeclaration": 10095, + "src": "659:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -968,32 +962,32 @@ ], "expression": { "argumentTypes": null, - "id": 7364, + "id": 10100, "name": "Symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7666, - "src": "583:7:25", + "referencedDeclaration": 10393, + "src": "641:7:38", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Symbols_$7666_$", + "typeIdentifier": "t_type$_t_contract$_Symbols_$10393_$", "typeString": "type(contract Symbols)" } }, - "id": 7366, + "id": 10102, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 7577, - "src": "583:17:25", + "referencedDeclaration": 10309, + "src": "641:17:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 7368, + "id": 10104, "isConstant": false, "isLValue": false, "isPure": false, @@ -1001,57 +995,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "583:25:25", + "src": "641:25:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7369, + "id": 10105, "nodeType": "ExpressionStatement", - "src": "583:25:25" + "src": "641:25:38" } ] }, "documentation": null, - "id": 7371, + "id": 10107, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7362, + "id": 10098, "modifierName": { "argumentTypes": null, - "id": 7361, + "id": 10097, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7725, - "src": "562:10:25", + "referencedDeclaration": 1457, + "src": "620:10:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "562:10:25" + "src": "620:10:38" } ], "name": "addSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7360, + "id": 10096, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7359, + "id": 10095, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7371, - "src": "539:14:25", + "scope": 10107, + "src": "597:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1059,10 +1053,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7358, + "id": 10094, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "539:7:25", + "src": "597:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1072,26 +1066,26 @@ "visibility": "internal" } ], - "src": "538:16:25" + "src": "596:16:38" }, "payable": false, "returnParameters": { - "id": 7363, + "id": 10099, "nodeType": "ParameterList", "parameters": [], - "src": "573:0:25" + "src": "631:0:38" }, - "scope": 7529, - "src": "520:95:25", + "scope": 10261, + "src": "578:95:38", "stateMutability": "nonpayable", - "superFunction": 7577, + "superFunction": 10309, "visibility": "public" }, { "body": { - "id": 7397, + "id": 10133, "nodeType": "Block", - "src": "677:117:25", + "src": "735:117:38", "statements": [ { "expression": { @@ -1099,12 +1093,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7379, + "id": 10115, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7373, - "src": "703:6:25", + "referencedDeclaration": 10109, + "src": "761:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1116,14 +1110,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 7381, + "id": 10117, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "719:1:25", + "src": "777:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1139,20 +1133,20 @@ "typeString": "int_const 0" } ], - "id": 7380, + "id": 10116, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "711:7:25", + "src": "769:7:38", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 7382, + "id": 10118, "isConstant": false, "isLValue": false, "isPure": true, @@ -1160,7 +1154,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "711:10:25", + "src": "769:10:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1178,20 +1172,20 @@ "typeString": "address" } ], - "id": 7378, + "id": 10114, "name": "setTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [ - 7420 + 10156 ], - "referencedDeclaration": 7420, - "src": "687:15:25", + "referencedDeclaration": 10156, + "src": "745:15:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 7383, + "id": 10119, "isConstant": false, "isLValue": false, "isPure": false, @@ -1199,15 +1193,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "687:35:25", + "src": "745:35:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7384, + "id": 10120, "nodeType": "ExpressionStatement", - "src": "687:35:25" + "src": "745:35:38" }, { "expression": { @@ -1215,12 +1209,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7388, + "id": 10124, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7373, - "src": "753:6:25", + "referencedDeclaration": 10109, + "src": "811:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1236,32 +1230,32 @@ ], "expression": { "argumentTypes": null, - "id": 7385, + "id": 10121, "name": "Symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7666, - "src": "732:7:25", + "referencedDeclaration": 10393, + "src": "790:7:38", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Symbols_$7666_$", + "typeIdentifier": "t_type$_t_contract$_Symbols_$10393_$", "typeString": "type(contract Symbols)" } }, - "id": 7387, + "id": 10123, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "removeSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 7607, - "src": "732:20:25", + "referencedDeclaration": 10371, + "src": "790:20:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 7389, + "id": 10125, "isConstant": false, "isLValue": false, "isPure": false, @@ -1269,20 +1263,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "732:28:25", + "src": "790:28:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7390, + "id": 10126, "nodeType": "ExpressionStatement", - "src": "732:28:25" + "src": "790:28:38" }, { "expression": { "argumentTypes": null, - "id": 7395, + "id": 10131, "isConstant": false, "isLValue": false, "isPure": false, @@ -1291,26 +1285,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7391, + "id": 10127, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7326, - "src": "770:5:25", + "referencedDeclaration": 10062, + "src": "828:5:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 7393, + "id": 10129, "indexExpression": { "argumentTypes": null, - "id": 7392, + "id": 10128, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7373, - "src": "776:6:25", + "referencedDeclaration": 10109, + "src": "834:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1321,7 +1315,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "770:13:25", + "src": "828:13:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1332,14 +1326,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 7394, + "id": 10130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "786:1:25", + "src": "844:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1347,57 +1341,57 @@ }, "value": "0" }, - "src": "770:17:25", + "src": "828:17:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7396, + "id": 10132, "nodeType": "ExpressionStatement", - "src": "770:17:25" + "src": "828:17:38" } ] }, "documentation": null, - "id": 7398, + "id": 10134, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7376, + "id": 10112, "modifierName": { "argumentTypes": null, - "id": 7375, + "id": 10111, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7725, - "src": "666:10:25", + "referencedDeclaration": 1457, + "src": "724:10:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "666:10:25" + "src": "724:10:38" } ], "name": "removeSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7374, + "id": 10110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7373, + "id": 10109, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7398, - "src": "643:14:25", + "scope": 10134, + "src": "701:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1405,10 +1399,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7372, + "id": 10108, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "643:7:25", + "src": "701:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1418,26 +1412,26 @@ "visibility": "internal" } ], - "src": "642:16:25" + "src": "700:16:38" }, "payable": false, "returnParameters": { - "id": 7377, + "id": 10113, "nodeType": "ParameterList", "parameters": [], - "src": "677:0:25" + "src": "735:0:38" }, - "scope": 7529, - "src": "621:173:25", + "scope": 10261, + "src": "679:173:38", "stateMutability": "nonpayable", - "superFunction": 7607, + "superFunction": 10371, "visibility": "public" }, { "body": { - "id": 7419, + "id": 10155, "nodeType": "Block", - "src": "877:85:25", + "src": "935:85:38", "statements": [ { "expression": { @@ -1448,12 +1442,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7409, + "id": 10145, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7400, - "src": "905:6:25", + "referencedDeclaration": 10136, + "src": "963:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1467,20 +1461,20 @@ "typeString": "bytes32" } ], - "id": 7408, + "id": 10144, "name": "hasSymbol", "nodeType": "Identifier", "overloadedDeclarations": [ - 7619 + 10383 ], - "referencedDeclaration": 7619, - "src": "895:9:25", + "referencedDeclaration": 10383, + "src": "953:9:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 7410, + "id": 10146, "isConstant": false, "isLValue": false, "isPure": false, @@ -1488,7 +1482,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "895:17:25", + "src": "953:17:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1502,21 +1496,21 @@ "typeString": "bool" } ], - "id": 7407, + "id": 10143, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "887:7:25", + "referencedDeclaration": 13444, + "src": "945:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7411, + "id": 10147, "isConstant": false, "isLValue": false, "isPure": false, @@ -1524,20 +1518,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "887:26:25", + "src": "945:26:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7412, + "id": 10148, "nodeType": "ExpressionStatement", - "src": "887:26:25" + "src": "945:26:38" }, { "expression": { "argumentTypes": null, - "id": 7417, + "id": 10153, "isConstant": false, "isLValue": false, "isPure": false, @@ -1546,26 +1540,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7413, + "id": 10149, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7330, - "src": "924:12:25", + "referencedDeclaration": 10066, + "src": "982:12:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 7415, + "id": 10151, "indexExpression": { "argumentTypes": null, - "id": 7414, + "id": 10150, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7400, - "src": "937:6:25", + "referencedDeclaration": 10136, + "src": "995:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1576,7 +1570,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "924:20:25", + "src": "982:20:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1586,68 +1580,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 7416, + "id": 10152, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7402, - "src": "947:8:25", + "referencedDeclaration": 10138, + "src": "1005:8:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "924:31:25", + "src": "982:31:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 7418, + "id": 10154, "nodeType": "ExpressionStatement", - "src": "924:31:25" + "src": "982:31:38" } ] }, "documentation": null, - "id": 7420, + "id": 10156, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7405, + "id": 10141, "modifierName": { "argumentTypes": null, - "id": 7404, + "id": 10140, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7725, - "src": "866:10:25", + "referencedDeclaration": 1457, + "src": "924:10:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "866:10:25" + "src": "924:10:38" } ], "name": "setTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7403, + "id": 10139, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7400, + "id": 10136, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7420, - "src": "825:14:25", + "scope": 10156, + "src": "883:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1655,10 +1649,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7399, + "id": 10135, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "825:7:25", + "src": "883:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1669,11 +1663,11 @@ }, { "constant": false, - "id": 7402, + "id": 10138, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 7420, - "src": "841:16:25", + "scope": 10156, + "src": "899:16:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1681,10 +1675,10 @@ "typeString": "address" }, "typeName": { - "id": 7401, + "id": 10137, "name": "address", "nodeType": "ElementaryTypeName", - "src": "841:7:25", + "src": "899:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1694,26 +1688,26 @@ "visibility": "internal" } ], - "src": "824:34:25" + "src": "882:34:38" }, "payable": false, "returnParameters": { - "id": 7406, + "id": 10142, "nodeType": "ParameterList", "parameters": [], - "src": "877:0:25" + "src": "935:0:38" }, - "scope": 7529, - "src": "800:162:25", + "scope": 10261, + "src": "858:162:38", "stateMutability": "nonpayable", - "superFunction": 7242, + "superFunction": 9985, "visibility": "public" }, { "body": { - "id": 7437, + "id": 10173, "nodeType": "Block", - "src": "1038:79:25", + "src": "1096:79:38", "statements": [ { "expression": { @@ -1724,12 +1718,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7429, + "id": 10165, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7422, - "src": "1064:6:25", + "referencedDeclaration": 10158, + "src": "1122:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1743,20 +1737,20 @@ "typeString": "bytes32" } ], - "id": 7428, + "id": 10164, "name": "isToken", "nodeType": "Identifier", "overloadedDeclarations": [ - 7460 + 10196 ], - "referencedDeclaration": 7460, - "src": "1056:7:25", + "referencedDeclaration": 10196, + "src": "1114:7:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 7430, + "id": 10166, "isConstant": false, "isLValue": false, "isPure": false, @@ -1764,7 +1758,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1056:15:25", + "src": "1114:15:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1778,21 +1772,21 @@ "typeString": "bool" } ], - "id": 7427, + "id": 10163, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1048:7:25", + "referencedDeclaration": 13444, + "src": "1106:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7431, + "id": 10167, "isConstant": false, "isLValue": false, "isPure": false, @@ -1800,41 +1794,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1048:24:25", + "src": "1106:24:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7432, + "id": 10168, "nodeType": "ExpressionStatement", - "src": "1048:24:25" + "src": "1106:24:38" }, { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7433, + "id": 10169, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7330, - "src": "1090:12:25", + "referencedDeclaration": 10066, + "src": "1148:12:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 7435, + "id": 10171, "indexExpression": { "argumentTypes": null, - "id": 7434, + "id": 10170, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7422, - "src": "1103:6:25", + "referencedDeclaration": 10158, + "src": "1161:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1845,21 +1839,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1090:20:25", + "src": "1148:20:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 7426, - "id": 7436, + "functionReturnParameters": 10162, + "id": 10172, "nodeType": "Return", - "src": "1083:27:25" + "src": "1141:27:38" } ] }, "documentation": null, - "id": 7438, + "id": 10174, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1867,16 +1861,16 @@ "name": "getTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7423, + "id": 10159, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7422, + "id": 10158, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7438, - "src": "993:14:25", + "scope": 10174, + "src": "1051:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1884,10 +1878,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7421, + "id": 10157, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "993:7:25", + "src": "1051:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1897,20 +1891,20 @@ "visibility": "internal" } ], - "src": "992:16:25" + "src": "1050:16:38" }, "payable": false, "returnParameters": { - "id": 7426, + "id": 10162, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7425, + "id": 10161, "name": "", "nodeType": "VariableDeclaration", - "scope": 7438, - "src": "1029:7:25", + "scope": 10174, + "src": "1087:7:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1918,10 +1912,10 @@ "typeString": "address" }, "typeName": { - "id": 7424, + "id": 10160, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1029:7:25", + "src": "1087:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1931,19 +1925,19 @@ "visibility": "internal" } ], - "src": "1028:9:25" + "src": "1086:9:38" }, - "scope": 7529, - "src": "968:149:25", + "scope": 10261, + "src": "1026:149:38", "stateMutability": "view", - "superFunction": 7249, + "superFunction": 9992, "visibility": "public" }, { "body": { - "id": 7459, + "id": 10195, "nodeType": "Block", - "src": "1183:95:25", + "src": "1241:95:38", "statements": [ { "expression": { @@ -1954,12 +1948,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7447, + "id": 10183, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7440, - "src": "1211:6:25", + "referencedDeclaration": 10176, + "src": "1269:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1973,20 +1967,20 @@ "typeString": "bytes32" } ], - "id": 7446, + "id": 10182, "name": "hasSymbol", "nodeType": "Identifier", "overloadedDeclarations": [ - 7619 + 10383 ], - "referencedDeclaration": 7619, - "src": "1201:9:25", + "referencedDeclaration": 10383, + "src": "1259:9:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 7448, + "id": 10184, "isConstant": false, "isLValue": false, "isPure": false, @@ -1994,7 +1988,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1201:17:25", + "src": "1259:17:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2008,21 +2002,21 @@ "typeString": "bool" } ], - "id": 7445, + "id": 10181, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1193:7:25", + "referencedDeclaration": 13444, + "src": "1251:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7449, + "id": 10185, "isConstant": false, "isLValue": false, "isPure": false, @@ -2030,15 +2024,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1193:26:25", + "src": "1251:26:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7450, + "id": 10186, "nodeType": "ExpressionStatement", - "src": "1193:26:25" + "src": "1251:26:38" }, { "expression": { @@ -2047,7 +2041,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 7457, + "id": 10193, "isConstant": false, "isLValue": false, "isPure": false, @@ -2056,26 +2050,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7451, + "id": 10187, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7330, - "src": "1237:12:25", + "referencedDeclaration": 10066, + "src": "1295:12:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 7453, + "id": 10189, "indexExpression": { "argumentTypes": null, - "id": 7452, + "id": 10188, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7440, - "src": "1250:6:25", + "referencedDeclaration": 10176, + "src": "1308:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2086,7 +2080,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1237:20:25", + "src": "1295:20:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2100,14 +2094,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 7455, + "id": 10191, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1269:1:25", + "src": "1327:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2123,20 +2117,20 @@ "typeString": "int_const 0" } ], - "id": 7454, + "id": 10190, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1261:7:25", + "src": "1319:7:38", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 7456, + "id": 10192, "isConstant": false, "isLValue": false, "isPure": true, @@ -2144,27 +2138,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1261:10:25", + "src": "1319:10:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1237:34:25", + "src": "1295:34:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 7444, - "id": 7458, + "functionReturnParameters": 10180, + "id": 10194, "nodeType": "Return", - "src": "1230:41:25" + "src": "1288:41:38" } ] }, "documentation": null, - "id": 7460, + "id": 10196, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2172,16 +2166,16 @@ "name": "isToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 7441, + "id": 10177, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7440, + "id": 10176, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7460, - "src": "1140:14:25", + "scope": 10196, + "src": "1198:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2189,10 +2183,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7439, + "id": 10175, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1140:7:25", + "src": "1198:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2202,20 +2196,20 @@ "visibility": "internal" } ], - "src": "1139:16:25" + "src": "1197:16:38" }, "payable": false, "returnParameters": { - "id": 7444, + "id": 10180, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7443, + "id": 10179, "name": "", "nodeType": "VariableDeclaration", - "scope": 7460, - "src": "1177:4:25", + "scope": 10196, + "src": "1235:4:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2223,10 +2217,10 @@ "typeString": "bool" }, "typeName": { - "id": 7442, + "id": 10178, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1177:4:25", + "src": "1235:4:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2236,19 +2230,19 @@ "visibility": "internal" } ], - "src": "1176:6:25" + "src": "1234:6:38" }, - "scope": 7529, - "src": "1123:155:25", + "scope": 10261, + "src": "1181:155:38", "stateMutability": "view", - "superFunction": 7256, + "superFunction": 9999, "visibility": "public" }, { "body": { - "id": 7473, + "id": 10207, "nodeType": "Block", - "src": "1337:46:25", + "src": "1397:36:38", "statements": [ { "expression": { @@ -2256,12 +2250,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7470, + "id": 10204, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7462, - "src": "1368:7:25", + "referencedDeclaration": 10198, + "src": "1418:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2275,34 +2269,18 @@ "typeString": "address" } ], - "expression": { - "argumentTypes": null, - "id": 7467, - "name": "PricerRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7809, - "src": "1347:10:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PricerRole_$7809_$", - "typeString": "type(contract PricerRole)" - } - }, - "id": 7469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addPricer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7750, - "src": "1347:20:25", + "id": 10203, + "name": "_addPricer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1503, + "src": "1407:10:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7471, + "id": 10205, "isConstant": false, "isLValue": false, "isPure": false, @@ -2310,57 +2288,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1347:29:25", + "src": "1407:19:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7472, + "id": 10206, "nodeType": "ExpressionStatement", - "src": "1347:29:25" + "src": "1407:19:38" } ] }, "documentation": null, - "id": 7474, + "id": 10208, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7465, + "id": 10201, "modifierName": { "argumentTypes": null, - "id": 7464, - "name": "onlyOwner", + "id": 10200, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "1327:9:25", + "referencedDeclaration": 12420, + "src": "1385:11:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1327:9:25" + "src": "1385:11:38" } ], "name": "addPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7463, + "id": 10199, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7462, + "id": 10198, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7474, - "src": "1303:15:25", + "scope": 10208, + "src": "1361:15:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2368,10 +2346,10 @@ "typeString": "address" }, "typeName": { - "id": 7461, + "id": 10197, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1303:7:25", + "src": "1361:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2381,26 +2359,26 @@ "visibility": "internal" } ], - "src": "1302:17:25" + "src": "1360:17:38" }, "payable": false, "returnParameters": { - "id": 7466, + "id": 10202, "nodeType": "ParameterList", "parameters": [], - "src": "1337:0:25" + "src": "1397:0:38" }, - "scope": 7529, - "src": "1284:99:25", + "scope": 10261, + "src": "1342:91:38", "stateMutability": "nonpayable", - "superFunction": 7750, + "superFunction": 1389, "visibility": "public" }, { "body": { - "id": 7487, + "id": 10219, "nodeType": "Block", - "src": "1445:49:25", + "src": "1497:39:38", "statements": [ { "expression": { @@ -2408,12 +2386,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7484, + "id": 10216, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7476, - "src": "1479:7:25", + "referencedDeclaration": 10210, + "src": "1521:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2427,34 +2405,18 @@ "typeString": "address" } ], - "expression": { - "argumentTypes": null, - "id": 7481, - "name": "PricerRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7809, - "src": "1455:10:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PricerRole_$7809_$", - "typeString": "type(contract PricerRole)" - } - }, - "id": 7483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removePricer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7760, - "src": "1455:23:25", + "id": 10215, + "name": "_removePricer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1527, + "src": "1507:13:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7485, + "id": 10217, "isConstant": false, "isLValue": false, "isPure": false, @@ -2462,57 +2424,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1455:32:25", + "src": "1507:22:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7486, + "id": 10218, "nodeType": "ExpressionStatement", - "src": "1455:32:25" + "src": "1507:22:38" } ] }, "documentation": null, - "id": 7488, + "id": 10220, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7479, + "id": 10213, "modifierName": { "argumentTypes": null, - "id": 7478, - "name": "onlyOwner", + "id": 10212, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "1435:9:25", + "referencedDeclaration": 12420, + "src": "1485:11:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1435:9:25" + "src": "1485:11:38" } ], "name": "removePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7477, + "id": 10211, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7476, + "id": 10210, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7488, - "src": "1411:15:25", + "scope": 10220, + "src": "1461:15:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2520,10 +2482,10 @@ "typeString": "address" }, "typeName": { - "id": 7475, + "id": 10209, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1411:7:25", + "src": "1461:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2533,26 +2495,26 @@ "visibility": "internal" } ], - "src": "1410:17:25" + "src": "1460:17:38" }, "payable": false, "returnParameters": { - "id": 7480, + "id": 10214, "nodeType": "ParameterList", "parameters": [], - "src": "1445:0:25" + "src": "1497:0:38" }, - "scope": 7529, - "src": "1389:105:25", + "scope": 10261, + "src": "1439:97:38", "stateMutability": "nonpayable", - "superFunction": 7760, + "superFunction": 1394, "visibility": "public" }, { "body": { - "id": 7505, + "id": 10237, "nodeType": "Block", - "src": "1555:74:25", + "src": "1597:74:38", "statements": [ { "expression": { @@ -2563,12 +2525,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7497, + "id": 10229, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7490, - "src": "1583:6:25", + "referencedDeclaration": 10222, + "src": "1625:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2582,20 +2544,20 @@ "typeString": "bytes32" } ], - "id": 7496, + "id": 10228, "name": "hasSymbol", "nodeType": "Identifier", "overloadedDeclarations": [ - 7619 + 10383 ], - "referencedDeclaration": 7619, - "src": "1573:9:25", + "referencedDeclaration": 10383, + "src": "1615:9:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 7498, + "id": 10230, "isConstant": false, "isLValue": false, "isPure": false, @@ -2603,7 +2565,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1573:17:25", + "src": "1615:17:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2617,21 +2579,21 @@ "typeString": "bool" } ], - "id": 7495, + "id": 10227, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1565:7:25", + "referencedDeclaration": 13444, + "src": "1607:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7499, + "id": 10231, "isConstant": false, "isLValue": false, "isPure": false, @@ -2639,41 +2601,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1565:26:25", + "src": "1607:26:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7500, + "id": 10232, "nodeType": "ExpressionStatement", - "src": "1565:26:25" + "src": "1607:26:38" }, { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7501, + "id": 10233, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7326, - "src": "1609:5:25", + "referencedDeclaration": 10062, + "src": "1651:5:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 7503, + "id": 10235, "indexExpression": { "argumentTypes": null, - "id": 7502, + "id": 10234, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7490, - "src": "1615:6:25", + "referencedDeclaration": 10222, + "src": "1657:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2684,21 +2646,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1609:13:25", + "src": "1651:13:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 7494, - "id": 7504, + "functionReturnParameters": 10226, + "id": 10236, "nodeType": "Return", - "src": "1602:20:25" + "src": "1644:20:38" } ] }, "documentation": null, - "id": 7506, + "id": 10238, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2706,16 +2668,16 @@ "name": "get", "nodeType": "FunctionDefinition", "parameters": { - "id": 7491, + "id": 10223, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7490, + "id": 10222, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7506, - "src": "1513:14:25", + "scope": 10238, + "src": "1555:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2723,10 +2685,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7489, + "id": 10221, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1513:7:25", + "src": "1555:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2736,20 +2698,20 @@ "visibility": "internal" } ], - "src": "1512:16:25" + "src": "1554:16:38" }, "payable": false, "returnParameters": { - "id": 7494, + "id": 10226, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7493, + "id": 10225, "name": "", "nodeType": "VariableDeclaration", - "scope": 7506, - "src": "1549:4:25", + "scope": 10238, + "src": "1591:4:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2757,10 +2719,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7492, + "id": 10224, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1549:4:25", + "src": "1591:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2770,19 +2732,19 @@ "visibility": "internal" } ], - "src": "1548:6:25" + "src": "1590:6:38" }, - "scope": 7529, - "src": "1500:129:25", + "scope": 10261, + "src": "1542:129:38", "stateMutability": "view", - "superFunction": 7263, + "superFunction": 10006, "visibility": "public" }, { "body": { - "id": 7527, + "id": 10259, "nodeType": "Block", - "src": "1693:74:25", + "src": "1735:74:38", "statements": [ { "expression": { @@ -2793,12 +2755,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7517, + "id": 10249, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7508, - "src": "1721:6:25", + "referencedDeclaration": 10240, + "src": "1763:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2812,20 +2774,20 @@ "typeString": "bytes32" } ], - "id": 7516, + "id": 10248, "name": "hasSymbol", "nodeType": "Identifier", "overloadedDeclarations": [ - 7619 + 10383 ], - "referencedDeclaration": 7619, - "src": "1711:9:25", + "referencedDeclaration": 10383, + "src": "1753:9:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 7518, + "id": 10250, "isConstant": false, "isLValue": false, "isPure": false, @@ -2833,7 +2795,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1711:17:25", + "src": "1753:17:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2847,21 +2809,21 @@ "typeString": "bool" } ], - "id": 7515, + "id": 10247, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1703:7:25", + "referencedDeclaration": 13444, + "src": "1745:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7519, + "id": 10251, "isConstant": false, "isLValue": false, "isPure": false, @@ -2869,20 +2831,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1703:26:25", + "src": "1745:26:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7520, + "id": 10252, "nodeType": "ExpressionStatement", - "src": "1703:26:25" + "src": "1745:26:38" }, { "expression": { "argumentTypes": null, - "id": 7525, + "id": 10257, "isConstant": false, "isLValue": false, "isPure": false, @@ -2891,26 +2853,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7521, + "id": 10253, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7326, - "src": "1740:5:25", + "referencedDeclaration": 10062, + "src": "1782:5:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 7523, + "id": 10255, "indexExpression": { "argumentTypes": null, - "id": 7522, + "id": 10254, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7508, - "src": "1746:6:25", + "referencedDeclaration": 10240, + "src": "1788:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2921,7 +2883,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1740:13:25", + "src": "1782:13:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2931,68 +2893,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 7524, + "id": 10256, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "1756:4:25", + "referencedDeclaration": 10242, + "src": "1798:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1740:20:25", + "src": "1782:20:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7526, + "id": 10258, "nodeType": "ExpressionStatement", - "src": "1740:20:25" + "src": "1782:20:38" } ] }, "documentation": null, - "id": 7528, + "id": 10260, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7513, + "id": 10245, "modifierName": { "argumentTypes": null, - "id": 7512, + "id": 10244, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7725, - "src": "1682:10:25", + "referencedDeclaration": 1457, + "src": "1724:10:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1682:10:25" + "src": "1724:10:38" } ], "name": "set", "nodeType": "FunctionDefinition", "parameters": { - "id": 7511, + "id": 10243, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7508, + "id": 10240, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7528, - "src": "1648:14:25", + "scope": 10260, + "src": "1690:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3000,10 +2962,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7507, + "id": 10239, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1648:7:25", + "src": "1690:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3014,11 +2976,11 @@ }, { "constant": false, - "id": 7510, + "id": 10242, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 7528, - "src": "1664:9:25", + "scope": 10260, + "src": "1706:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3026,10 +2988,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7509, + "id": 10241, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1664:4:25", + "src": "1706:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3039,40 +3001,40 @@ "visibility": "internal" } ], - "src": "1647:27:25" + "src": "1689:27:38" }, "payable": false, "returnParameters": { - "id": 7514, + "id": 10246, "nodeType": "ParameterList", "parameters": [], - "src": "1693:0:25" + "src": "1735:0:38" }, - "scope": 7529, - "src": "1635:132:25", + "scope": 10261, + "src": "1677:132:38", "stateMutability": "nonpayable", - "superFunction": 7270, + "superFunction": 10013, "visibility": "public" } ], - "scope": 7530, - "src": "167:1602:25" + "scope": 10262, + "src": "223:1588:38" } ], - "src": "0:1770:25" + "src": "0:1812:38" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/rates/Rates.sol", "exportedSymbols": { "Rates": [ - 7529 + 10261 ] }, - "id": 7530, + "id": 10262, "nodeType": "SourceUnit", "nodes": [ { - "id": 7310, + "id": 10045, "literals": [ "solidity", "^", @@ -3080,49 +3042,60 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:38" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 7311, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 10046, "nodeType": "ImportDirective", - "scope": 7530, - "sourceUnit": 10135, - "src": "26:63:25", + "scope": 10262, + "sourceUnit": 12454, + "src": "26:65:38", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "file": "./IRates.sol", - "id": 7312, + "id": 10047, + "nodeType": "ImportDirective", + "scope": 10262, + "sourceUnit": 10015, + "src": "92:22:38", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/IPricerRole.sol", + "file": "../access/roles/IPricerRole.sol", + "id": 10048, "nodeType": "ImportDirective", - "scope": 7530, - "sourceUnit": 7280, - "src": "90:22:25", + "scope": 10262, + "sourceUnit": 1399, + "src": "115:41:38", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/rates/roles/Pricer.sol", - "file": "./roles/Pricer.sol", - "id": 7313, + "absolutePath": "/home/circleci/code/contracts/access/roles/PricerRole.sol", + "file": "../access/roles/PricerRole.sol", + "id": 10049, "nodeType": "ImportDirective", - "scope": 7530, - "sourceUnit": 7810, - "src": "113:28:25", + "scope": 10262, + "sourceUnit": 1529, + "src": "157:40:38", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/rates/Symbols.sol", "file": "./Symbols.sol", - "id": 7314, + "id": 10050, "nodeType": "ImportDirective", - "scope": 7530, - "sourceUnit": 7667, - "src": "142:23:25", + "scope": 10262, + "sourceUnit": 10394, + "src": "198:23:38", "symbolAliases": [], "unitAlias": "" }, @@ -3132,106 +3105,106 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 7315, + "id": 10051, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "185:6:25", + "referencedDeclaration": 10014, + "src": "241:6:38", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 7316, + "id": 10052, "nodeType": "InheritanceSpecifier", - "src": "185:6:25" + "src": "241:6:38" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 7317, + "id": 10053, "name": "Symbols", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7666, - "src": "193:7:25", + "referencedDeclaration": 10393, + "src": "249:7:38", "typeDescriptions": { - "typeIdentifier": "t_contract$_Symbols_$7666", + "typeIdentifier": "t_contract$_Symbols_$10393", "typeString": "contract Symbols" } }, - "id": 7318, + "id": 10054, "nodeType": "InheritanceSpecifier", - "src": "193:7:25" + "src": "249:7:38" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 7319, + "id": 10055, "name": "PricerRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7809, - "src": "202:10:25", + "referencedDeclaration": 1528, + "src": "258:10:38", "typeDescriptions": { - "typeIdentifier": "t_contract$_PricerRole_$7809", + "typeIdentifier": "t_contract$_PricerRole_$1528", "typeString": "contract PricerRole" } }, - "id": 7320, + "id": 10056, "nodeType": "InheritanceSpecifier", - "src": "202:10:25" + "src": "258:10:38" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 7321, - "name": "Ownable", + "id": 10057, + "name": "Secondary", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "214:7:25", + "referencedDeclaration": 12453, + "src": "270:9:38", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" } }, - "id": 7322, + "id": 10058, "nodeType": "InheritanceSpecifier", - "src": "214:7:25" + "src": "270:9:38" } ], "contractDependencies": [ - 7279, - 7308, - 7666, - 7686, - 7809, - 10134 + 1398, + 1528, + 10014, + 10043, + 10393, + 12453 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 7529, + "id": 10261, "linearizedBaseContracts": [ - 7529, - 10134, - 7809, - 7666, - 7279, - 7686, - 7308 + 10261, + 12453, + 1528, + 10393, + 10014, + 1398, + 10043 ], "name": "Rates", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 7326, + "id": 10062, "name": "rates", "nodeType": "VariableDeclaration", - "scope": 7529, - "src": "228:31:25", + "scope": 10261, + "src": "286:31:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3239,28 +3212,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 7325, + "id": 10061, "keyType": { - "id": 7323, + "id": 10059, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "237:7:25", + "src": "295:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "228:25:25", + "src": "286:25:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 7324, + "id": 10060, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "248:4:25", + "src": "306:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3272,11 +3245,11 @@ }, { "constant": false, - "id": 7330, + "id": 10066, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 7529, - "src": "265:41:25", + "scope": 10261, + "src": "323:41:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3284,28 +3257,28 @@ "typeString": "mapping(bytes32 => address)" }, "typeName": { - "id": 7329, + "id": 10065, "keyType": { - "id": 7327, + "id": 10063, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "274:7:25", + "src": "332:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "265:28:25", + "src": "323:28:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { - "id": 7328, + "id": 10064, "name": "address", "nodeType": "ElementaryTypeName", - "src": "285:7:25", + "src": "343:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3317,9 +3290,9 @@ }, { "body": { - "id": 7356, + "id": 10092, "nodeType": "Block", - "src": "400:114:25", + "src": "458:114:38", "statements": [ { "expression": { @@ -3327,12 +3300,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7342, + "id": 10078, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7332, - "src": "428:6:25", + "referencedDeclaration": 10068, + "src": "486:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3348,32 +3321,32 @@ ], "expression": { "argumentTypes": null, - "id": 7339, + "id": 10075, "name": "Symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7666, - "src": "410:7:25", + "referencedDeclaration": 10393, + "src": "468:7:38", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Symbols_$7666_$", + "typeIdentifier": "t_type$_t_contract$_Symbols_$10393_$", "typeString": "type(contract Symbols)" } }, - "id": 7341, + "id": 10077, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 7577, - "src": "410:17:25", + "referencedDeclaration": 10309, + "src": "468:17:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 7343, + "id": 10079, "isConstant": false, "isLValue": false, "isPure": false, @@ -3381,15 +3354,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "410:25:25", + "src": "468:25:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7344, + "id": 10080, "nodeType": "ExpressionStatement", - "src": "410:25:25" + "src": "468:25:38" }, { "condition": { @@ -3398,19 +3371,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 7349, + "id": 10085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7345, + "id": 10081, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7334, - "src": "450:8:25", + "referencedDeclaration": 10070, + "src": "508:8:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3424,14 +3397,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 7347, + "id": 10083, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "470:1:25", + "src": "528:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3447,20 +3420,20 @@ "typeString": "int_const 0" } ], - "id": 7346, + "id": 10082, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "462:7:25", + "src": "520:7:38", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 7348, + "id": 10084, "isConstant": false, "isLValue": false, "isPure": true, @@ -3468,34 +3441,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "462:10:25", + "src": "520:10:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "450:22:25", + "src": "508:22:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 7355, + "id": 10091, "nodeType": "IfStatement", - "src": "446:61:25", + "src": "504:61:38", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 7351, + "id": 10087, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7332, - "src": "490:6:25", + "referencedDeclaration": 10068, + "src": "548:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3503,12 +3476,12 @@ }, { "argumentTypes": null, - "id": 7352, + "id": 10088, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7334, - "src": "498:8:25", + "referencedDeclaration": 10070, + "src": "556:8:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3526,20 +3499,20 @@ "typeString": "address" } ], - "id": 7350, + "id": 10086, "name": "setTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [ - 7420 + 10156 ], - "referencedDeclaration": 7420, - "src": "474:15:25", + "referencedDeclaration": 10156, + "src": "532:15:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 7353, + "id": 10089, "isConstant": false, "isLValue": false, "isPure": false, @@ -3547,58 +3520,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "474:33:25", + "src": "532:33:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7354, + "id": 10090, "nodeType": "ExpressionStatement", - "src": "474:33:25" + "src": "532:33:38" } } ] }, "documentation": null, - "id": 7357, + "id": 10093, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7337, + "id": 10073, "modifierName": { "argumentTypes": null, - "id": 7336, + "id": 10072, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7725, - "src": "389:10:25", + "referencedDeclaration": 1457, + "src": "447:10:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "389:10:25" + "src": "447:10:38" } ], "name": "addSymbolWithTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7335, + "id": 10071, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7332, + "id": 10068, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7357, - "src": "348:14:25", + "scope": 10093, + "src": "406:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3606,10 +3579,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7331, + "id": 10067, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "348:7:25", + "src": "406:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3620,11 +3593,11 @@ }, { "constant": false, - "id": 7334, + "id": 10070, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 7357, - "src": "364:16:25", + "scope": 10093, + "src": "422:16:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3632,10 +3605,10 @@ "typeString": "address" }, "typeName": { - "id": 7333, + "id": 10069, "name": "address", "nodeType": "ElementaryTypeName", - "src": "364:7:25", + "src": "422:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3645,26 +3618,26 @@ "visibility": "internal" } ], - "src": "347:34:25" + "src": "405:34:38" }, "payable": false, "returnParameters": { - "id": 7338, + "id": 10074, "nodeType": "ParameterList", "parameters": [], - "src": "400:0:25" + "src": "458:0:38" }, - "scope": 7529, - "src": "313:201:25", + "scope": 10261, + "src": "371:201:38", "stateMutability": "nonpayable", - "superFunction": 7235, + "superFunction": 9978, "visibility": "public" }, { "body": { - "id": 7370, + "id": 10106, "nodeType": "Block", - "src": "573:42:25", + "src": "631:42:38", "statements": [ { "expression": { @@ -3672,12 +3645,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7367, + "id": 10103, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7359, - "src": "601:6:25", + "referencedDeclaration": 10095, + "src": "659:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3693,32 +3666,32 @@ ], "expression": { "argumentTypes": null, - "id": 7364, + "id": 10100, "name": "Symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7666, - "src": "583:7:25", + "referencedDeclaration": 10393, + "src": "641:7:38", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Symbols_$7666_$", + "typeIdentifier": "t_type$_t_contract$_Symbols_$10393_$", "typeString": "type(contract Symbols)" } }, - "id": 7366, + "id": 10102, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 7577, - "src": "583:17:25", + "referencedDeclaration": 10309, + "src": "641:17:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 7368, + "id": 10104, "isConstant": false, "isLValue": false, "isPure": false, @@ -3726,57 +3699,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "583:25:25", + "src": "641:25:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7369, + "id": 10105, "nodeType": "ExpressionStatement", - "src": "583:25:25" + "src": "641:25:38" } ] }, "documentation": null, - "id": 7371, + "id": 10107, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7362, + "id": 10098, "modifierName": { "argumentTypes": null, - "id": 7361, + "id": 10097, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7725, - "src": "562:10:25", + "referencedDeclaration": 1457, + "src": "620:10:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "562:10:25" + "src": "620:10:38" } ], "name": "addSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7360, + "id": 10096, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7359, + "id": 10095, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7371, - "src": "539:14:25", + "scope": 10107, + "src": "597:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3784,10 +3757,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7358, + "id": 10094, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "539:7:25", + "src": "597:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3797,26 +3770,26 @@ "visibility": "internal" } ], - "src": "538:16:25" + "src": "596:16:38" }, "payable": false, "returnParameters": { - "id": 7363, + "id": 10099, "nodeType": "ParameterList", "parameters": [], - "src": "573:0:25" + "src": "631:0:38" }, - "scope": 7529, - "src": "520:95:25", + "scope": 10261, + "src": "578:95:38", "stateMutability": "nonpayable", - "superFunction": 7577, + "superFunction": 10309, "visibility": "public" }, { "body": { - "id": 7397, + "id": 10133, "nodeType": "Block", - "src": "677:117:25", + "src": "735:117:38", "statements": [ { "expression": { @@ -3824,12 +3797,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7379, + "id": 10115, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7373, - "src": "703:6:25", + "referencedDeclaration": 10109, + "src": "761:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3841,14 +3814,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 7381, + "id": 10117, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "719:1:25", + "src": "777:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3864,20 +3837,20 @@ "typeString": "int_const 0" } ], - "id": 7380, + "id": 10116, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "711:7:25", + "src": "769:7:38", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 7382, + "id": 10118, "isConstant": false, "isLValue": false, "isPure": true, @@ -3885,7 +3858,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "711:10:25", + "src": "769:10:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3903,20 +3876,20 @@ "typeString": "address" } ], - "id": 7378, + "id": 10114, "name": "setTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [ - 7420 + 10156 ], - "referencedDeclaration": 7420, - "src": "687:15:25", + "referencedDeclaration": 10156, + "src": "745:15:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 7383, + "id": 10119, "isConstant": false, "isLValue": false, "isPure": false, @@ -3924,15 +3897,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "687:35:25", + "src": "745:35:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7384, + "id": 10120, "nodeType": "ExpressionStatement", - "src": "687:35:25" + "src": "745:35:38" }, { "expression": { @@ -3940,12 +3913,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7388, + "id": 10124, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7373, - "src": "753:6:25", + "referencedDeclaration": 10109, + "src": "811:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3961,32 +3934,32 @@ ], "expression": { "argumentTypes": null, - "id": 7385, + "id": 10121, "name": "Symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7666, - "src": "732:7:25", + "referencedDeclaration": 10393, + "src": "790:7:38", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Symbols_$7666_$", + "typeIdentifier": "t_type$_t_contract$_Symbols_$10393_$", "typeString": "type(contract Symbols)" } }, - "id": 7387, + "id": 10123, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "removeSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 7607, - "src": "732:20:25", + "referencedDeclaration": 10371, + "src": "790:20:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 7389, + "id": 10125, "isConstant": false, "isLValue": false, "isPure": false, @@ -3994,20 +3967,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "732:28:25", + "src": "790:28:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7390, + "id": 10126, "nodeType": "ExpressionStatement", - "src": "732:28:25" + "src": "790:28:38" }, { "expression": { "argumentTypes": null, - "id": 7395, + "id": 10131, "isConstant": false, "isLValue": false, "isPure": false, @@ -4016,26 +3989,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7391, + "id": 10127, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7326, - "src": "770:5:25", + "referencedDeclaration": 10062, + "src": "828:5:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 7393, + "id": 10129, "indexExpression": { "argumentTypes": null, - "id": 7392, + "id": 10128, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7373, - "src": "776:6:25", + "referencedDeclaration": 10109, + "src": "834:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4046,7 +4019,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "770:13:25", + "src": "828:13:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4057,14 +4030,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 7394, + "id": 10130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "786:1:25", + "src": "844:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4072,57 +4045,57 @@ }, "value": "0" }, - "src": "770:17:25", + "src": "828:17:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7396, + "id": 10132, "nodeType": "ExpressionStatement", - "src": "770:17:25" + "src": "828:17:38" } ] }, "documentation": null, - "id": 7398, + "id": 10134, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7376, + "id": 10112, "modifierName": { "argumentTypes": null, - "id": 7375, + "id": 10111, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7725, - "src": "666:10:25", + "referencedDeclaration": 1457, + "src": "724:10:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "666:10:25" + "src": "724:10:38" } ], "name": "removeSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7374, + "id": 10110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7373, + "id": 10109, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7398, - "src": "643:14:25", + "scope": 10134, + "src": "701:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4130,10 +4103,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7372, + "id": 10108, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "643:7:25", + "src": "701:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4143,26 +4116,26 @@ "visibility": "internal" } ], - "src": "642:16:25" + "src": "700:16:38" }, "payable": false, "returnParameters": { - "id": 7377, + "id": 10113, "nodeType": "ParameterList", "parameters": [], - "src": "677:0:25" + "src": "735:0:38" }, - "scope": 7529, - "src": "621:173:25", + "scope": 10261, + "src": "679:173:38", "stateMutability": "nonpayable", - "superFunction": 7607, + "superFunction": 10371, "visibility": "public" }, { "body": { - "id": 7419, + "id": 10155, "nodeType": "Block", - "src": "877:85:25", + "src": "935:85:38", "statements": [ { "expression": { @@ -4173,12 +4146,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7409, + "id": 10145, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7400, - "src": "905:6:25", + "referencedDeclaration": 10136, + "src": "963:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4192,20 +4165,20 @@ "typeString": "bytes32" } ], - "id": 7408, + "id": 10144, "name": "hasSymbol", "nodeType": "Identifier", "overloadedDeclarations": [ - 7619 + 10383 ], - "referencedDeclaration": 7619, - "src": "895:9:25", + "referencedDeclaration": 10383, + "src": "953:9:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 7410, + "id": 10146, "isConstant": false, "isLValue": false, "isPure": false, @@ -4213,7 +4186,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "895:17:25", + "src": "953:17:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4227,21 +4200,21 @@ "typeString": "bool" } ], - "id": 7407, + "id": 10143, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "887:7:25", + "referencedDeclaration": 13444, + "src": "945:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7411, + "id": 10147, "isConstant": false, "isLValue": false, "isPure": false, @@ -4249,20 +4222,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "887:26:25", + "src": "945:26:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7412, + "id": 10148, "nodeType": "ExpressionStatement", - "src": "887:26:25" + "src": "945:26:38" }, { "expression": { "argumentTypes": null, - "id": 7417, + "id": 10153, "isConstant": false, "isLValue": false, "isPure": false, @@ -4271,26 +4244,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7413, + "id": 10149, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7330, - "src": "924:12:25", + "referencedDeclaration": 10066, + "src": "982:12:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 7415, + "id": 10151, "indexExpression": { "argumentTypes": null, - "id": 7414, + "id": 10150, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7400, - "src": "937:6:25", + "referencedDeclaration": 10136, + "src": "995:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4301,7 +4274,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "924:20:25", + "src": "982:20:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4311,68 +4284,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 7416, + "id": 10152, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7402, - "src": "947:8:25", + "referencedDeclaration": 10138, + "src": "1005:8:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "924:31:25", + "src": "982:31:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 7418, + "id": 10154, "nodeType": "ExpressionStatement", - "src": "924:31:25" + "src": "982:31:38" } ] }, "documentation": null, - "id": 7420, + "id": 10156, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7405, + "id": 10141, "modifierName": { "argumentTypes": null, - "id": 7404, + "id": 10140, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7725, - "src": "866:10:25", + "referencedDeclaration": 1457, + "src": "924:10:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "866:10:25" + "src": "924:10:38" } ], "name": "setTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7403, + "id": 10139, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7400, + "id": 10136, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7420, - "src": "825:14:25", + "scope": 10156, + "src": "883:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4380,10 +4353,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7399, + "id": 10135, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "825:7:25", + "src": "883:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4394,11 +4367,11 @@ }, { "constant": false, - "id": 7402, + "id": 10138, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 7420, - "src": "841:16:25", + "scope": 10156, + "src": "899:16:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4406,10 +4379,10 @@ "typeString": "address" }, "typeName": { - "id": 7401, + "id": 10137, "name": "address", "nodeType": "ElementaryTypeName", - "src": "841:7:25", + "src": "899:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4419,26 +4392,26 @@ "visibility": "internal" } ], - "src": "824:34:25" + "src": "882:34:38" }, "payable": false, "returnParameters": { - "id": 7406, + "id": 10142, "nodeType": "ParameterList", "parameters": [], - "src": "877:0:25" + "src": "935:0:38" }, - "scope": 7529, - "src": "800:162:25", + "scope": 10261, + "src": "858:162:38", "stateMutability": "nonpayable", - "superFunction": 7242, + "superFunction": 9985, "visibility": "public" }, { "body": { - "id": 7437, + "id": 10173, "nodeType": "Block", - "src": "1038:79:25", + "src": "1096:79:38", "statements": [ { "expression": { @@ -4449,12 +4422,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7429, + "id": 10165, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7422, - "src": "1064:6:25", + "referencedDeclaration": 10158, + "src": "1122:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4468,20 +4441,20 @@ "typeString": "bytes32" } ], - "id": 7428, + "id": 10164, "name": "isToken", "nodeType": "Identifier", "overloadedDeclarations": [ - 7460 + 10196 ], - "referencedDeclaration": 7460, - "src": "1056:7:25", + "referencedDeclaration": 10196, + "src": "1114:7:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 7430, + "id": 10166, "isConstant": false, "isLValue": false, "isPure": false, @@ -4489,7 +4462,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1056:15:25", + "src": "1114:15:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4503,21 +4476,21 @@ "typeString": "bool" } ], - "id": 7427, + "id": 10163, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1048:7:25", + "referencedDeclaration": 13444, + "src": "1106:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7431, + "id": 10167, "isConstant": false, "isLValue": false, "isPure": false, @@ -4525,41 +4498,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1048:24:25", + "src": "1106:24:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7432, + "id": 10168, "nodeType": "ExpressionStatement", - "src": "1048:24:25" + "src": "1106:24:38" }, { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7433, + "id": 10169, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7330, - "src": "1090:12:25", + "referencedDeclaration": 10066, + "src": "1148:12:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 7435, + "id": 10171, "indexExpression": { "argumentTypes": null, - "id": 7434, + "id": 10170, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7422, - "src": "1103:6:25", + "referencedDeclaration": 10158, + "src": "1161:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4570,21 +4543,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1090:20:25", + "src": "1148:20:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 7426, - "id": 7436, + "functionReturnParameters": 10162, + "id": 10172, "nodeType": "Return", - "src": "1083:27:25" + "src": "1141:27:38" } ] }, "documentation": null, - "id": 7438, + "id": 10174, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4592,16 +4565,16 @@ "name": "getTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7423, + "id": 10159, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7422, + "id": 10158, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7438, - "src": "993:14:25", + "scope": 10174, + "src": "1051:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4609,10 +4582,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7421, + "id": 10157, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "993:7:25", + "src": "1051:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4622,20 +4595,20 @@ "visibility": "internal" } ], - "src": "992:16:25" + "src": "1050:16:38" }, "payable": false, "returnParameters": { - "id": 7426, + "id": 10162, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7425, + "id": 10161, "name": "", "nodeType": "VariableDeclaration", - "scope": 7438, - "src": "1029:7:25", + "scope": 10174, + "src": "1087:7:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4643,10 +4616,10 @@ "typeString": "address" }, "typeName": { - "id": 7424, + "id": 10160, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1029:7:25", + "src": "1087:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4656,19 +4629,19 @@ "visibility": "internal" } ], - "src": "1028:9:25" + "src": "1086:9:38" }, - "scope": 7529, - "src": "968:149:25", + "scope": 10261, + "src": "1026:149:38", "stateMutability": "view", - "superFunction": 7249, + "superFunction": 9992, "visibility": "public" }, { "body": { - "id": 7459, + "id": 10195, "nodeType": "Block", - "src": "1183:95:25", + "src": "1241:95:38", "statements": [ { "expression": { @@ -4679,12 +4652,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7447, + "id": 10183, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7440, - "src": "1211:6:25", + "referencedDeclaration": 10176, + "src": "1269:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4698,20 +4671,20 @@ "typeString": "bytes32" } ], - "id": 7446, + "id": 10182, "name": "hasSymbol", "nodeType": "Identifier", "overloadedDeclarations": [ - 7619 + 10383 ], - "referencedDeclaration": 7619, - "src": "1201:9:25", + "referencedDeclaration": 10383, + "src": "1259:9:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 7448, + "id": 10184, "isConstant": false, "isLValue": false, "isPure": false, @@ -4719,7 +4692,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1201:17:25", + "src": "1259:17:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4733,21 +4706,21 @@ "typeString": "bool" } ], - "id": 7445, + "id": 10181, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1193:7:25", + "referencedDeclaration": 13444, + "src": "1251:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7449, + "id": 10185, "isConstant": false, "isLValue": false, "isPure": false, @@ -4755,15 +4728,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1193:26:25", + "src": "1251:26:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7450, + "id": 10186, "nodeType": "ExpressionStatement", - "src": "1193:26:25" + "src": "1251:26:38" }, { "expression": { @@ -4772,7 +4745,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 7457, + "id": 10193, "isConstant": false, "isLValue": false, "isPure": false, @@ -4781,26 +4754,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7451, + "id": 10187, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7330, - "src": "1237:12:25", + "referencedDeclaration": 10066, + "src": "1295:12:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 7453, + "id": 10189, "indexExpression": { "argumentTypes": null, - "id": 7452, + "id": 10188, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7440, - "src": "1250:6:25", + "referencedDeclaration": 10176, + "src": "1308:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4811,7 +4784,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1237:20:25", + "src": "1295:20:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4825,14 +4798,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 7455, + "id": 10191, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1269:1:25", + "src": "1327:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4848,20 +4821,20 @@ "typeString": "int_const 0" } ], - "id": 7454, + "id": 10190, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1261:7:25", + "src": "1319:7:38", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 7456, + "id": 10192, "isConstant": false, "isLValue": false, "isPure": true, @@ -4869,27 +4842,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1261:10:25", + "src": "1319:10:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1237:34:25", + "src": "1295:34:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 7444, - "id": 7458, + "functionReturnParameters": 10180, + "id": 10194, "nodeType": "Return", - "src": "1230:41:25" + "src": "1288:41:38" } ] }, "documentation": null, - "id": 7460, + "id": 10196, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4897,16 +4870,16 @@ "name": "isToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 7441, + "id": 10177, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7440, + "id": 10176, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7460, - "src": "1140:14:25", + "scope": 10196, + "src": "1198:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4914,10 +4887,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7439, + "id": 10175, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1140:7:25", + "src": "1198:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4927,20 +4900,20 @@ "visibility": "internal" } ], - "src": "1139:16:25" + "src": "1197:16:38" }, "payable": false, "returnParameters": { - "id": 7444, + "id": 10180, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7443, + "id": 10179, "name": "", "nodeType": "VariableDeclaration", - "scope": 7460, - "src": "1177:4:25", + "scope": 10196, + "src": "1235:4:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4948,10 +4921,10 @@ "typeString": "bool" }, "typeName": { - "id": 7442, + "id": 10178, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1177:4:25", + "src": "1235:4:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4961,19 +4934,19 @@ "visibility": "internal" } ], - "src": "1176:6:25" + "src": "1234:6:38" }, - "scope": 7529, - "src": "1123:155:25", + "scope": 10261, + "src": "1181:155:38", "stateMutability": "view", - "superFunction": 7256, + "superFunction": 9999, "visibility": "public" }, { "body": { - "id": 7473, + "id": 10207, "nodeType": "Block", - "src": "1337:46:25", + "src": "1397:36:38", "statements": [ { "expression": { @@ -4981,12 +4954,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7470, + "id": 10204, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7462, - "src": "1368:7:25", + "referencedDeclaration": 10198, + "src": "1418:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5000,34 +4973,18 @@ "typeString": "address" } ], - "expression": { - "argumentTypes": null, - "id": 7467, - "name": "PricerRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7809, - "src": "1347:10:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PricerRole_$7809_$", - "typeString": "type(contract PricerRole)" - } - }, - "id": 7469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addPricer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7750, - "src": "1347:20:25", + "id": 10203, + "name": "_addPricer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1503, + "src": "1407:10:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7471, + "id": 10205, "isConstant": false, "isLValue": false, "isPure": false, @@ -5035,57 +4992,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1347:29:25", + "src": "1407:19:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7472, + "id": 10206, "nodeType": "ExpressionStatement", - "src": "1347:29:25" + "src": "1407:19:38" } ] }, "documentation": null, - "id": 7474, + "id": 10208, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7465, + "id": 10201, "modifierName": { "argumentTypes": null, - "id": 7464, - "name": "onlyOwner", + "id": 10200, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "1327:9:25", + "referencedDeclaration": 12420, + "src": "1385:11:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1327:9:25" + "src": "1385:11:38" } ], "name": "addPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7463, + "id": 10199, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7462, + "id": 10198, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7474, - "src": "1303:15:25", + "scope": 10208, + "src": "1361:15:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5093,10 +5050,10 @@ "typeString": "address" }, "typeName": { - "id": 7461, + "id": 10197, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1303:7:25", + "src": "1361:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5106,26 +5063,26 @@ "visibility": "internal" } ], - "src": "1302:17:25" + "src": "1360:17:38" }, "payable": false, "returnParameters": { - "id": 7466, + "id": 10202, "nodeType": "ParameterList", "parameters": [], - "src": "1337:0:25" + "src": "1397:0:38" }, - "scope": 7529, - "src": "1284:99:25", + "scope": 10261, + "src": "1342:91:38", "stateMutability": "nonpayable", - "superFunction": 7750, + "superFunction": 1389, "visibility": "public" }, { "body": { - "id": 7487, + "id": 10219, "nodeType": "Block", - "src": "1445:49:25", + "src": "1497:39:38", "statements": [ { "expression": { @@ -5133,12 +5090,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7484, + "id": 10216, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7476, - "src": "1479:7:25", + "referencedDeclaration": 10210, + "src": "1521:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5152,34 +5109,18 @@ "typeString": "address" } ], - "expression": { - "argumentTypes": null, - "id": 7481, - "name": "PricerRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7809, - "src": "1455:10:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PricerRole_$7809_$", - "typeString": "type(contract PricerRole)" - } - }, - "id": 7483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removePricer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7760, - "src": "1455:23:25", + "id": 10215, + "name": "_removePricer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1527, + "src": "1507:13:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7485, + "id": 10217, "isConstant": false, "isLValue": false, "isPure": false, @@ -5187,57 +5128,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1455:32:25", + "src": "1507:22:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7486, + "id": 10218, "nodeType": "ExpressionStatement", - "src": "1455:32:25" + "src": "1507:22:38" } ] }, "documentation": null, - "id": 7488, + "id": 10220, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7479, + "id": 10213, "modifierName": { "argumentTypes": null, - "id": 7478, - "name": "onlyOwner", + "id": 10212, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "1435:9:25", + "referencedDeclaration": 12420, + "src": "1485:11:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1435:9:25" + "src": "1485:11:38" } ], "name": "removePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7477, + "id": 10211, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7476, + "id": 10210, "name": "account", "nodeType": "VariableDeclaration", - "scope": 7488, - "src": "1411:15:25", + "scope": 10220, + "src": "1461:15:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5245,10 +5186,10 @@ "typeString": "address" }, "typeName": { - "id": 7475, + "id": 10209, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1411:7:25", + "src": "1461:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5258,26 +5199,26 @@ "visibility": "internal" } ], - "src": "1410:17:25" + "src": "1460:17:38" }, "payable": false, "returnParameters": { - "id": 7480, + "id": 10214, "nodeType": "ParameterList", "parameters": [], - "src": "1445:0:25" + "src": "1497:0:38" }, - "scope": 7529, - "src": "1389:105:25", + "scope": 10261, + "src": "1439:97:38", "stateMutability": "nonpayable", - "superFunction": 7760, + "superFunction": 1394, "visibility": "public" }, { "body": { - "id": 7505, + "id": 10237, "nodeType": "Block", - "src": "1555:74:25", + "src": "1597:74:38", "statements": [ { "expression": { @@ -5288,12 +5229,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7497, + "id": 10229, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7490, - "src": "1583:6:25", + "referencedDeclaration": 10222, + "src": "1625:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5307,20 +5248,20 @@ "typeString": "bytes32" } ], - "id": 7496, + "id": 10228, "name": "hasSymbol", "nodeType": "Identifier", "overloadedDeclarations": [ - 7619 + 10383 ], - "referencedDeclaration": 7619, - "src": "1573:9:25", + "referencedDeclaration": 10383, + "src": "1615:9:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 7498, + "id": 10230, "isConstant": false, "isLValue": false, "isPure": false, @@ -5328,7 +5269,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1573:17:25", + "src": "1615:17:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5342,21 +5283,21 @@ "typeString": "bool" } ], - "id": 7495, + "id": 10227, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1565:7:25", + "referencedDeclaration": 13444, + "src": "1607:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7499, + "id": 10231, "isConstant": false, "isLValue": false, "isPure": false, @@ -5364,41 +5305,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1565:26:25", + "src": "1607:26:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7500, + "id": 10232, "nodeType": "ExpressionStatement", - "src": "1565:26:25" + "src": "1607:26:38" }, { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7501, + "id": 10233, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7326, - "src": "1609:5:25", + "referencedDeclaration": 10062, + "src": "1651:5:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 7503, + "id": 10235, "indexExpression": { "argumentTypes": null, - "id": 7502, + "id": 10234, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7490, - "src": "1615:6:25", + "referencedDeclaration": 10222, + "src": "1657:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5409,21 +5350,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1609:13:25", + "src": "1651:13:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 7494, - "id": 7504, + "functionReturnParameters": 10226, + "id": 10236, "nodeType": "Return", - "src": "1602:20:25" + "src": "1644:20:38" } ] }, "documentation": null, - "id": 7506, + "id": 10238, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5431,16 +5372,16 @@ "name": "get", "nodeType": "FunctionDefinition", "parameters": { - "id": 7491, + "id": 10223, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7490, + "id": 10222, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7506, - "src": "1513:14:25", + "scope": 10238, + "src": "1555:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5448,10 +5389,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7489, + "id": 10221, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1513:7:25", + "src": "1555:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5461,20 +5402,20 @@ "visibility": "internal" } ], - "src": "1512:16:25" + "src": "1554:16:38" }, "payable": false, "returnParameters": { - "id": 7494, + "id": 10226, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7493, + "id": 10225, "name": "", "nodeType": "VariableDeclaration", - "scope": 7506, - "src": "1549:4:25", + "scope": 10238, + "src": "1591:4:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5482,10 +5423,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7492, + "id": 10224, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1549:4:25", + "src": "1591:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5495,19 +5436,19 @@ "visibility": "internal" } ], - "src": "1548:6:25" + "src": "1590:6:38" }, - "scope": 7529, - "src": "1500:129:25", + "scope": 10261, + "src": "1542:129:38", "stateMutability": "view", - "superFunction": 7263, + "superFunction": 10006, "visibility": "public" }, { "body": { - "id": 7527, + "id": 10259, "nodeType": "Block", - "src": "1693:74:25", + "src": "1735:74:38", "statements": [ { "expression": { @@ -5518,12 +5459,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7517, + "id": 10249, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7508, - "src": "1721:6:25", + "referencedDeclaration": 10240, + "src": "1763:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5537,20 +5478,20 @@ "typeString": "bytes32" } ], - "id": 7516, + "id": 10248, "name": "hasSymbol", "nodeType": "Identifier", "overloadedDeclarations": [ - 7619 + 10383 ], - "referencedDeclaration": 7619, - "src": "1711:9:25", + "referencedDeclaration": 10383, + "src": "1753:9:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 7518, + "id": 10250, "isConstant": false, "isLValue": false, "isPure": false, @@ -5558,7 +5499,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1711:17:25", + "src": "1753:17:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5572,21 +5513,21 @@ "typeString": "bool" } ], - "id": 7515, + "id": 10247, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1703:7:25", + "referencedDeclaration": 13444, + "src": "1745:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7519, + "id": 10251, "isConstant": false, "isLValue": false, "isPure": false, @@ -5594,20 +5535,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1703:26:25", + "src": "1745:26:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7520, + "id": 10252, "nodeType": "ExpressionStatement", - "src": "1703:26:25" + "src": "1745:26:38" }, { "expression": { "argumentTypes": null, - "id": 7525, + "id": 10257, "isConstant": false, "isLValue": false, "isPure": false, @@ -5616,26 +5557,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7521, + "id": 10253, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7326, - "src": "1740:5:25", + "referencedDeclaration": 10062, + "src": "1782:5:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 7523, + "id": 10255, "indexExpression": { "argumentTypes": null, - "id": 7522, + "id": 10254, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7508, - "src": "1746:6:25", + "referencedDeclaration": 10240, + "src": "1788:6:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5646,7 +5587,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1740:13:25", + "src": "1782:13:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5656,68 +5597,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 7524, + "id": 10256, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "1756:4:25", + "referencedDeclaration": 10242, + "src": "1798:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1740:20:25", + "src": "1782:20:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7526, + "id": 10258, "nodeType": "ExpressionStatement", - "src": "1740:20:25" + "src": "1782:20:38" } ] }, "documentation": null, - "id": 7528, + "id": 10260, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 7513, + "id": 10245, "modifierName": { "argumentTypes": null, - "id": 7512, + "id": 10244, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7725, - "src": "1682:10:25", + "referencedDeclaration": 1457, + "src": "1724:10:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1682:10:25" + "src": "1724:10:38" } ], "name": "set", "nodeType": "FunctionDefinition", "parameters": { - "id": 7511, + "id": 10243, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7508, + "id": 10240, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7528, - "src": "1648:14:25", + "scope": 10260, + "src": "1690:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5725,10 +5666,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7507, + "id": 10239, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1648:7:25", + "src": "1690:7:38", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5739,11 +5680,11 @@ }, { "constant": false, - "id": 7510, + "id": 10242, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 7528, - "src": "1664:9:25", + "scope": 10260, + "src": "1706:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5751,10 +5692,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7509, + "id": 10241, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1664:4:25", + "src": "1706:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5764,27 +5705,27 @@ "visibility": "internal" } ], - "src": "1647:27:25" + "src": "1689:27:38" }, "payable": false, "returnParameters": { - "id": 7514, + "id": 10246, "nodeType": "ParameterList", "parameters": [], - "src": "1693:0:25" + "src": "1735:0:38" }, - "scope": 7529, - "src": "1635:132:25", + "scope": 10261, + "src": "1677:132:38", "stateMutability": "nonpayable", - "superFunction": 7270, + "superFunction": 10013, "visibility": "public" } ], - "scope": 7530, - "src": "167:1602:25" + "scope": 10262, + "src": "223:1588:38" } ], - "src": "0:1770:25" + "src": "0:1812:38" }, "compiler": { "name": "solc", @@ -5794,10 +5735,10 @@ "4": { "events": {}, "links": {}, - "address": "0x8c7aee0da71e31241e537c8d68a878a65d27e386", - "transactionHash": "0x98db79c97d80475faa4d1b963277c8c64d3657e63b9fbf822bce06884569fdf8" + "address": "0x3955ea944203d6259098c255f7fb779c79ba4094", + "transactionHash": "0x4db31b1be2845ff7631a00668fb43dca297fde48c1ce7b653faf35296e7783a6" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:55:06.474Z" + "updatedAt": "2018-12-06T13:19:18.245Z" } \ No newline at end of file diff --git a/build/contracts/ReentrancyGuard.json b/build/contracts/ReentrancyGuard.json index 1abe6cbf..af631d8f 100644 --- a/build/contracts/ReentrancyGuard.json +++ b/build/contracts/ReentrancyGuard.json @@ -1,24 +1,31 @@ { "contractName": "ReentrancyGuard", - "abi": [], - "bytecode": "0x60806040526001600055348015601457600080fd5b5060358060226000396000f3006080604052600080fd00a165627a7a72305820325272b34f75d7848357c888480a72689e39f5d2c8a70e0723f192a79d6c4d690029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820325272b34f75d7848357c888480a72689e39f5d2c8a70e0723f192a79d6c4d690029", - "sourceMap": "250:1023:41:-;;;487:1;657:51;;250:1023;8:9:-1;5:2;;;30:1;27;20:12;5:2;250:1023:41;;;;;;;", - "deployedSourceMap": "250:1023:41:-;;;;;", - "source": "pragma solidity ^0.4.24;\n\n\n/**\n * @title Helps contracts guard against reentrancy attacks.\n * @author Remco Bloemen , Eenae \n * @dev If you mark a function `nonReentrant`, you should also\n * mark it `external`.\n */\ncontract ReentrancyGuard {\n\n /// @dev Constant for unlocked guard state - non-zero to prevent extra gas costs.\n /// See: https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1056\n uint private constant REENTRANCY_GUARD_FREE = 1;\n\n /// @dev Constant for locked guard state\n uint private constant REENTRANCY_GUARD_LOCKED = 2;\n\n /**\n * @dev We use a single lock for the whole contract.\n */\n uint private reentrancyLock = REENTRANCY_GUARD_FREE;\n\n /**\n * @dev Prevents a contract from calling itself, directly or indirectly.\n * If you mark a function `nonReentrant`, you should also\n * mark it `external`. Calling one `nonReentrant` function from\n * another is not supported. Instead, you can implement a\n * `private` function doing the actual work, and an `external`\n * wrapper marked as `nonReentrant`.\n */\n modifier nonReentrant() {\n require(reentrancyLock == REENTRANCY_GUARD_FREE);\n reentrancyLock = REENTRANCY_GUARD_LOCKED;\n _;\n reentrancyLock = REENTRANCY_GUARD_FREE;\n }\n\n}\n", - "sourcePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.24;\n\n/**\n * @title Helps contracts guard against reentrancy attacks.\n * @author Remco Bloemen , Eenae \n * @dev If you mark a function `nonReentrant`, you should also\n * mark it `external`.\n */\ncontract ReentrancyGuard {\n\n /// @dev counter to allow mutex lock with only one SSTORE operation\n uint256 private _guardCounter;\n\n constructor() internal {\n // The counter starts at one to prevent changing it from zero to a non-zero\n // value, which is a more expensive operation.\n _guardCounter = 1;\n }\n\n /**\n * @dev Prevents a contract from calling itself, directly or indirectly.\n * Calling a `nonReentrant` function from another `nonReentrant`\n * function is not supported. It is possible to prevent this from happening\n * by making the `nonReentrant` function external, and make it call a\n * `private` function that does the actual work.\n */\n modifier nonReentrant() {\n _guardCounter += 1;\n uint256 localCounter = _guardCounter;\n _;\n require(localCounter == _guardCounter);\n }\n\n}\n", + "sourcePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", "ast": { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", + "absolutePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", "exportedSymbols": { "ReentrancyGuard": [ - 9777 + 13258 ] }, - "id": 9778, + "id": 13259, "nodeType": "SourceUnit", "nodes": [ { - "id": 9749, + "id": 13229, "literals": [ "solidity", "^", @@ -26,7 +33,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:41" + "src": "0:24:62" }, { "baseContracts": [], @@ -34,63 +41,20 @@ "contractKind": "contract", "documentation": "@title Helps contracts guard against reentrancy attacks.\n@author Remco Bloemen , Eenae \n@dev If you mark a function `nonReentrant`, you should also\nmark it `external`.", "fullyImplemented": true, - "id": 9777, + "id": 13258, "linearizedBaseContracts": [ - 9777 + 13258 ], "name": "ReentrancyGuard", "nodeType": "ContractDefinition", "nodes": [ { - "constant": true, - "id": 9752, - "name": "REENTRANCY_GUARD_FREE", - "nodeType": "VariableDeclaration", - "scope": 9777, - "src": "441:47:41", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9750, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "441:4:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 9751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "487:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 9755, - "name": "REENTRANCY_GUARD_LOCKED", + "constant": false, + "id": 13231, + "name": "_guardCounter", "nodeType": "VariableDeclaration", - "scope": 9777, - "src": "536:49:41", + "scope": 13258, + "src": "349:29:62", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -98,79 +62,215 @@ "typeString": "uint256" }, "typeName": { - "id": 9753, - "name": "uint", + "id": 13230, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "536:4:41", + "src": "349:7:62", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 9754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "584:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, + "value": null, "visibility": "private" }, { - "constant": false, - "id": 9758, - "name": "reentrancyLock", - "nodeType": "VariableDeclaration", - "scope": 9777, - "src": "657:51:41", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "body": { + "id": 13238, + "nodeType": "Block", + "src": "406:159:62", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13234, + "name": "_guardCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13231, + "src": "543:13:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 13235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "559:1:62", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "543:17:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13237, + "nodeType": "ExpressionStatement", + "src": "543:17:62" + } + ] }, - "typeName": { - "id": 9756, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "657:4:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "documentation": null, + "id": 13239, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13232, + "nodeType": "ParameterList", + "parameters": [], + "src": "394:2:62" }, - "value": { - "argumentTypes": null, - "id": 9757, - "name": "REENTRANCY_GUARD_FREE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9752, - "src": "687:21:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "payable": false, + "returnParameters": { + "id": 13233, + "nodeType": "ParameterList", + "parameters": [], + "src": "406:0:62" }, - "visibility": "private" + "scope": 13258, + "src": "383:182:62", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" }, { "body": { - "id": 9775, + "id": 13256, "nodeType": "Block", - "src": "1114:156:41", + "src": "948:122:62", "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13241, + "name": "_guardCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13231, + "src": "954:13:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 13242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "971:1:62", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "954:18:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13244, + "nodeType": "ExpressionStatement", + "src": "954:18:62" + }, + { + "assignments": [ + 13246 + ], + "declarations": [ + { + "constant": false, + "id": 13246, + "name": "localCounter", + "nodeType": "VariableDeclaration", + "scope": 13257, + "src": "978:20:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "978:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13248, + "initialValue": { + "argumentTypes": null, + "id": 13247, + "name": "_guardCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13231, + "src": "1001:13:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "978:36:62" + }, + { + "id": 13249, + "nodeType": "PlaceholderStatement", + "src": "1020:1:62" + }, { "expression": { "argumentTypes": null, @@ -181,19 +281,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9763, + "id": 13253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9761, - "name": "reentrancyLock", + "id": 13251, + "name": "localCounter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9758, - "src": "1128:14:41", + "referencedDeclaration": 13246, + "src": "1035:12:62", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -203,18 +303,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 9762, - "name": "REENTRANCY_GUARD_FREE", + "id": 13252, + "name": "_guardCounter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9752, - "src": "1146:21:41", + "referencedDeclaration": 13231, + "src": "1051:13:62", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1128:39:41", + "src": "1035:29:62", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -228,21 +328,21 @@ "typeString": "bool" } ], - "id": 9760, + "id": 13250, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1120:7:41", + "referencedDeclaration": 13444, + "src": "1027:7:62", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9764, + "id": 13254, "isConstant": false, "isLValue": false, "isPure": false, @@ -250,147 +350,50 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1120:48:41", + "src": "1027:38:62", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9765, - "nodeType": "ExpressionStatement", - "src": "1120:48:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 9768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9766, - "name": "reentrancyLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9758, - "src": "1174:14:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9767, - "name": "REENTRANCY_GUARD_LOCKED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9755, - "src": "1191:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1174:40:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9769, - "nodeType": "ExpressionStatement", - "src": "1174:40:41" - }, - { - "id": 9770, - "nodeType": "PlaceholderStatement", - "src": "1220:1:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 9773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9771, - "name": "reentrancyLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9758, - "src": "1227:14:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9772, - "name": "REENTRANCY_GUARD_FREE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9752, - "src": "1244:21:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1227:38:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9774, + "id": 13255, "nodeType": "ExpressionStatement", - "src": "1227:38:41" + "src": "1027:38:62" } ] }, - "documentation": "@dev Prevents a contract from calling itself, directly or indirectly.\nIf you mark a function `nonReentrant`, you should also\nmark it `external`. Calling one `nonReentrant` function from\nanother is not supported. Instead, you can implement a\n`private` function doing the actual work, and an `external`\nwrapper marked as `nonReentrant`.", - "id": 9776, + "documentation": "@dev Prevents a contract from calling itself, directly or indirectly.\nCalling a `nonReentrant` function from another `nonReentrant`\nfunction is not supported. It is possible to prevent this from happening\nby making the `nonReentrant` function external, and make it call a\n`private` function that does the actual work.", + "id": 13257, "name": "nonReentrant", "nodeType": "ModifierDefinition", "parameters": { - "id": 9759, + "id": 13240, "nodeType": "ParameterList", "parameters": [], - "src": "1111:2:41" + "src": "945:2:62" }, - "src": "1090:180:41", + "src": "924:146:62", "visibility": "internal" } ], - "scope": 9778, - "src": "250:1023:41" + "scope": 13259, + "src": "249:824:62" } ], - "src": "0:1274:41" + "src": "0:1074:62" }, "legacyAST": { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", + "absolutePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", "exportedSymbols": { "ReentrancyGuard": [ - 9777 + 13258 ] }, - "id": 9778, + "id": 13259, "nodeType": "SourceUnit", "nodes": [ { - "id": 9749, + "id": 13229, "literals": [ "solidity", "^", @@ -398,7 +401,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:41" + "src": "0:24:62" }, { "baseContracts": [], @@ -406,63 +409,20 @@ "contractKind": "contract", "documentation": "@title Helps contracts guard against reentrancy attacks.\n@author Remco Bloemen , Eenae \n@dev If you mark a function `nonReentrant`, you should also\nmark it `external`.", "fullyImplemented": true, - "id": 9777, + "id": 13258, "linearizedBaseContracts": [ - 9777 + 13258 ], "name": "ReentrancyGuard", "nodeType": "ContractDefinition", "nodes": [ { - "constant": true, - "id": 9752, - "name": "REENTRANCY_GUARD_FREE", - "nodeType": "VariableDeclaration", - "scope": 9777, - "src": "441:47:41", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9750, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "441:4:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 9751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "487:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 9755, - "name": "REENTRANCY_GUARD_LOCKED", + "constant": false, + "id": 13231, + "name": "_guardCounter", "nodeType": "VariableDeclaration", - "scope": 9777, - "src": "536:49:41", + "scope": 13258, + "src": "349:29:62", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -470,79 +430,215 @@ "typeString": "uint256" }, "typeName": { - "id": 9753, - "name": "uint", + "id": 13230, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "536:4:41", + "src": "349:7:62", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 9754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "584:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, + "value": null, "visibility": "private" }, { - "constant": false, - "id": 9758, - "name": "reentrancyLock", - "nodeType": "VariableDeclaration", - "scope": 9777, - "src": "657:51:41", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "body": { + "id": 13238, + "nodeType": "Block", + "src": "406:159:62", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13234, + "name": "_guardCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13231, + "src": "543:13:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 13235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "559:1:62", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "543:17:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13237, + "nodeType": "ExpressionStatement", + "src": "543:17:62" + } + ] }, - "typeName": { - "id": 9756, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "657:4:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "documentation": null, + "id": 13239, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13232, + "nodeType": "ParameterList", + "parameters": [], + "src": "394:2:62" }, - "value": { - "argumentTypes": null, - "id": 9757, - "name": "REENTRANCY_GUARD_FREE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9752, - "src": "687:21:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "payable": false, + "returnParameters": { + "id": 13233, + "nodeType": "ParameterList", + "parameters": [], + "src": "406:0:62" }, - "visibility": "private" + "scope": 13258, + "src": "383:182:62", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" }, { "body": { - "id": 9775, + "id": 13256, "nodeType": "Block", - "src": "1114:156:41", + "src": "948:122:62", "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13241, + "name": "_guardCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13231, + "src": "954:13:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 13242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "971:1:62", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "954:18:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13244, + "nodeType": "ExpressionStatement", + "src": "954:18:62" + }, + { + "assignments": [ + 13246 + ], + "declarations": [ + { + "constant": false, + "id": 13246, + "name": "localCounter", + "nodeType": "VariableDeclaration", + "scope": 13257, + "src": "978:20:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "978:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13248, + "initialValue": { + "argumentTypes": null, + "id": 13247, + "name": "_guardCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13231, + "src": "1001:13:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "978:36:62" + }, + { + "id": 13249, + "nodeType": "PlaceholderStatement", + "src": "1020:1:62" + }, { "expression": { "argumentTypes": null, @@ -553,19 +649,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9763, + "id": 13253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9761, - "name": "reentrancyLock", + "id": 13251, + "name": "localCounter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9758, - "src": "1128:14:41", + "referencedDeclaration": 13246, + "src": "1035:12:62", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -575,18 +671,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 9762, - "name": "REENTRANCY_GUARD_FREE", + "id": 13252, + "name": "_guardCounter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9752, - "src": "1146:21:41", + "referencedDeclaration": 13231, + "src": "1051:13:62", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1128:39:41", + "src": "1035:29:62", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -600,21 +696,21 @@ "typeString": "bool" } ], - "id": 9760, + "id": 13250, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1120:7:41", + "referencedDeclaration": 13444, + "src": "1027:7:62", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9764, + "id": 13254, "isConstant": false, "isLValue": false, "isPure": false, @@ -622,134 +718,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1120:48:41", + "src": "1027:38:62", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9765, - "nodeType": "ExpressionStatement", - "src": "1120:48:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 9768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9766, - "name": "reentrancyLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9758, - "src": "1174:14:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9767, - "name": "REENTRANCY_GUARD_LOCKED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9755, - "src": "1191:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1174:40:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9769, - "nodeType": "ExpressionStatement", - "src": "1174:40:41" - }, - { - "id": 9770, - "nodeType": "PlaceholderStatement", - "src": "1220:1:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 9773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9771, - "name": "reentrancyLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9758, - "src": "1227:14:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9772, - "name": "REENTRANCY_GUARD_FREE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9752, - "src": "1244:21:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1227:38:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9774, + "id": 13255, "nodeType": "ExpressionStatement", - "src": "1227:38:41" + "src": "1027:38:62" } ] }, - "documentation": "@dev Prevents a contract from calling itself, directly or indirectly.\nIf you mark a function `nonReentrant`, you should also\nmark it `external`. Calling one `nonReentrant` function from\nanother is not supported. Instead, you can implement a\n`private` function doing the actual work, and an `external`\nwrapper marked as `nonReentrant`.", - "id": 9776, + "documentation": "@dev Prevents a contract from calling itself, directly or indirectly.\nCalling a `nonReentrant` function from another `nonReentrant`\nfunction is not supported. It is possible to prevent this from happening\nby making the `nonReentrant` function external, and make it call a\n`private` function that does the actual work.", + "id": 13257, "name": "nonReentrant", "nodeType": "ModifierDefinition", "parameters": { - "id": 9759, + "id": 13240, "nodeType": "ParameterList", "parameters": [], - "src": "1111:2:41" + "src": "945:2:62" }, - "src": "1090:180:41", + "src": "924:146:62", "visibility": "internal" } ], - "scope": 9778, - "src": "250:1023:41" + "scope": 13259, + "src": "249:824:62" } ], - "src": "0:1274:41" + "src": "0:1074:62" }, "compiler": { "name": "solc", @@ -757,5 +756,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.349Z" + "updatedAt": "2018-12-06T13:14:33.246Z" } \ No newline at end of file diff --git a/build/contracts/Roles.json b/build/contracts/Roles.json index 30a0f48d..63d220d2 100644 --- a/build/contracts/Roles.json +++ b/build/contracts/Roles.json @@ -1,24 +1,24 @@ { "contractName": "Roles", "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820cf135ce162a4bda9784b02edf8e48748df8df194083290ba7b19c005ece2b57d0029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820cf135ce162a4bda9784b02edf8e48748df8df194083290ba7b19c005ece2b57d0029", - "sourceMap": "186:799:43:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "186:799:43:-;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\n\n/**\n * @title Roles\n * @author Francisco Giordano (@frangio)\n * @dev Library for managing addresses assigned to a Role.\n * See RBAC.sol for example usage.\n */\nlibrary Roles {\n struct Role {\n mapping (address => bool) bearer;\n }\n\n /**\n * @dev give an address access to this role\n */\n function add(Role storage _role, address _addr)\n internal\n {\n _role.bearer[_addr] = true;\n }\n\n /**\n * @dev remove an address' access to this role\n */\n function remove(Role storage _role, address _addr)\n internal\n {\n _role.bearer[_addr] = false;\n }\n\n /**\n * @dev check if an address has this role\n * // reverts\n */\n function check(Role storage _role, address _addr)\n internal\n view\n {\n require(has(_role, _addr));\n }\n\n /**\n * @dev check if an address has this role\n * @return bool\n */\n function has(Role storage _role, address _addr)\n internal\n view\n returns (bool)\n {\n return _role.bearer[_addr];\n }\n}\n", - "sourcePath": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820a87e4fe3cb095300899b2fc0d5b754ecb05c3e7dce9ab4d44e7ad321ae25b1ac0029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820a87e4fe3cb095300899b2fc0d5b754ecb05c3e7dce9ab4d44e7ad321ae25b1ac0029", + "sourceMap": "109:784:52:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "109:784:52:-;;;;;;;;", + "source": "pragma solidity ^0.4.24;\n\n/**\n * @title Roles\n * @dev Library for managing addresses assigned to a Role.\n */\nlibrary Roles {\n struct Role {\n mapping (address => bool) bearer;\n }\n\n /**\n * @dev give an account access to this role\n */\n function add(Role storage role, address account) internal {\n require(account != address(0));\n require(!has(role, account));\n\n role.bearer[account] = true;\n }\n\n /**\n * @dev remove an account's access to this role\n */\n function remove(Role storage role, address account) internal {\n require(account != address(0));\n require(has(role, account));\n\n role.bearer[account] = false;\n }\n\n /**\n * @dev check if an account has this role\n * @return bool\n */\n function has(Role storage role, address account)\n internal\n view\n returns (bool)\n {\n require(account != address(0));\n return role.bearer[account];\n }\n}\n", + "sourcePath": "openzeppelin-solidity/contracts/access/Roles.sol", "ast": { - "absolutePath": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", + "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", "exportedSymbols": { "Roles": [ - 9954 + 12157 ] }, - "id": 9955, + "id": 12158, "nodeType": "SourceUnit", "nodes": [ { - "id": 9886, + "id": 12065, "literals": [ "solidity", "^", @@ -26,32 +26,32 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:43" + "src": "0:24:52" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", - "documentation": "@title Roles\n@author Francisco Giordano (@frangio)\n@dev Library for managing addresses assigned to a Role.\nSee RBAC.sol for example usage.", + "documentation": "@title Roles\n@dev Library for managing addresses assigned to a Role.", "fullyImplemented": true, - "id": 9954, + "id": 12157, "linearizedBaseContracts": [ - 9954 + 12157 ], "name": "Roles", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Roles.Role", - "id": 9891, + "id": 12070, "members": [ { "constant": false, - "id": 9890, + "id": 12069, "name": "bearer", "nodeType": "VariableDeclaration", - "scope": 9891, - "src": "222:32:43", + "scope": 12070, + "src": "145:32:52", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -59,28 +59,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 9889, + "id": 12068, "keyType": { - "id": 9887, + "id": 12066, "name": "address", "nodeType": "ElementaryTypeName", - "src": "231:7:43", + "src": "154:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "222:25:43", + "src": "145:25:52", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 9888, + "id": 12067, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "242:4:43", + "src": "165:4:52", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -93,204 +93,278 @@ ], "name": "Role", "nodeType": "StructDefinition", - "scope": 9954, - "src": "204:55:43", + "scope": 12157, + "src": "127:55:52", "visibility": "public" }, { "body": { - "id": 9906, + "id": 12101, "nodeType": "Block", - "src": "384:37:43", + "src": "302:109:52", "statements": [ { "expression": { "argumentTypes": null, - "id": 9904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "expression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 9898, - "name": "_role", + "id": 12078, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9893, - "src": "390:5:43", + "referencedDeclaration": 12074, + "src": "316:7:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", - "typeString": "struct Roles.Role storage pointer" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 9901, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bearer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9890, - "src": "390:12:43", + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "335:1:52", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "327:7:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "327:10:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "316:21:52", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 9902, - "indexExpression": { - "argumentTypes": null, - "id": 9900, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9895, - "src": "403:5:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "390:19:43", + ], + "id": 12077, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "308:7:52", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9903, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "412:4:43", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "390:26:43", + "id": 12083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "308:30:52", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 9905, + "id": 12084, "nodeType": "ExpressionStatement", - "src": "390:26:43" - } - ] - }, - "documentation": "@dev give an address access to this role", - "id": 9907, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9896, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9893, - "name": "_role", - "nodeType": "VariableDeclaration", - "scope": 9907, - "src": "334:18:43", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", - "typeString": "struct Roles.Role" - }, - "typeName": { - "contractScope": null, - "id": 9892, - "name": "Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9891, - "src": "334:4:43", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", - "typeString": "struct Roles.Role" - } - }, - "value": null, - "visibility": "internal" + "src": "308:30:52" }, { - "constant": false, - "id": 9895, - "name": "_addr", - "nodeType": "VariableDeclaration", - "scope": 9907, - "src": "354:13:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9894, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "354:7:43", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "352:19:52", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12087, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12072, + "src": "357:4:52", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + { + "argumentTypes": null, + "id": 12088, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12074, + "src": "363:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12086, + "name": "has", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12156, + "src": "353:3:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 12089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "353:18:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12085, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "344:7:52", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "344:28:52", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "333:35:43" - }, - "payable": false, - "returnParameters": { - "id": 9897, - "nodeType": "ParameterList", - "parameters": [], - "src": "384:0:43" - }, - "scope": 9954, - "src": "321:100:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9922, - "nodeType": "Block", - "src": "552:38:43", - "statements": [ + "id": 12092, + "nodeType": "ExpressionStatement", + "src": "344:28:52" + }, { "expression": { "argumentTypes": null, - "id": 9920, + "id": 12099, "isConstant": false, "isLValue": false, "isPure": false, @@ -301,40 +375,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9914, - "name": "_role", + "id": 12093, + "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9909, - "src": "558:5:43", + "referencedDeclaration": 12072, + "src": "379:4:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 9917, + "id": 12096, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 9890, - "src": "558:12:43", + "referencedDeclaration": 12069, + "src": "379:11:52", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 9918, + "id": 12097, "indexExpression": { "argumentTypes": null, - "id": 9916, - "name": "_addr", + "id": 12095, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9911, - "src": "571:5:43", + "referencedDeclaration": 12074, + "src": "391:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -345,7 +419,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "558:19:43", + "src": "379:20:52", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -355,68 +429,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "hexValue": "66616c7365", - "id": 9919, + "hexValue": "74727565", + "id": 12098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "580:5:43", + "src": "402:4:52", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "value": "false" + "value": "true" }, - "src": "558:27:43", + "src": "379:27:52", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 9921, + "id": 12100, "nodeType": "ExpressionStatement", - "src": "558:27:43" + "src": "379:27:52" } ] }, - "documentation": "@dev remove an address' access to this role", - "id": 9923, + "documentation": "@dev give an account access to this role", + "id": 12102, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "remove", + "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 9912, + "id": 12075, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9909, - "name": "_role", + "id": 12072, + "name": "role", "nodeType": "VariableDeclaration", - "scope": 9923, - "src": "502:18:43", + "scope": 12102, + "src": "257:17:52", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 9908, + "id": 12071, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9891, - "src": "502:4:43", + "referencedDeclaration": 12070, + "src": "257:4:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -425,11 +499,11 @@ }, { "constant": false, - "id": 9911, - "name": "_addr", + "id": 12074, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 9923, - "src": "522:13:43", + "scope": 12102, + "src": "276:15:52", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -437,10 +511,10 @@ "typeString": "address" }, "typeName": { - "id": 9910, + "id": 12073, "name": "address", "nodeType": "ElementaryTypeName", - "src": "522:7:43", + "src": "276:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -450,27 +524,159 @@ "visibility": "internal" } ], - "src": "501:35:43" + "src": "256:36:52" }, "payable": false, "returnParameters": { - "id": 9913, + "id": 12076, "nodeType": "ParameterList", "parameters": [], - "src": "552:0:43" + "src": "302:0:52" }, - "scope": 9954, - "src": "486:104:43", + "scope": 12157, + "src": "244:167:52", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 9937, + "id": 12132, "nodeType": "Block", - "src": "740:37:43", + "src": "538:109:52", "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12110, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12106, + "src": "552:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "571:1:52", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "563:7:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12113, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "563:10:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "552:21:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12109, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "544:7:52", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "544:30:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12116, + "nodeType": "ExpressionStatement", + "src": "544:30:52" + }, { "expression": { "argumentTypes": null, @@ -480,25 +686,25 @@ "arguments": [ { "argumentTypes": null, - "id": 9932, - "name": "_role", + "id": 12119, + "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9925, - "src": "758:5:43", + "referencedDeclaration": 12104, + "src": "592:4:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, { "argumentTypes": null, - "id": 9933, - "name": "_addr", + "id": 12120, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9927, - "src": "765:5:43", + "referencedDeclaration": 12106, + "src": "598:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -508,7 +714,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role storage pointer" }, { @@ -516,18 +722,18 @@ "typeString": "address" } ], - "id": 9931, + "id": 12118, "name": "has", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9953, - "src": "754:3:43", + "referencedDeclaration": 12156, + "src": "588:3:52", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$9891_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 9934, + "id": 12121, "isConstant": false, "isLValue": false, "isPure": false, @@ -535,7 +741,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "754:17:43", + "src": "588:18:52", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -549,74 +755,168 @@ "typeString": "bool" } ], - "id": 9930, + "id": 12117, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "746:7:43", + "referencedDeclaration": 13444, + "src": "580:7:52", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "746:26:43", + "id": 12122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "580:27:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12123, + "nodeType": "ExpressionStatement", + "src": "580:27:52" + }, + { + "expression": { + "argumentTypes": null, + "id": 12130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12124, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12104, + "src": "614:4:52", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + "id": 12127, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bearer", + "nodeType": "MemberAccess", + "referencedDeclaration": 12069, + "src": "614:11:52", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 12128, + "indexExpression": { + "argumentTypes": null, + "id": 12126, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12106, + "src": "626:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "614:20:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 12129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "637:5:52", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "614:28:52", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 9936, + "id": 12131, "nodeType": "ExpressionStatement", - "src": "746:26:43" + "src": "614:28:52" } ] }, - "documentation": "@dev check if an address has this role\n// reverts", - "id": 9938, + "documentation": "@dev remove an account's access to this role", + "id": 12133, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "check", + "name": "remove", "nodeType": "FunctionDefinition", "parameters": { - "id": 9928, + "id": 12107, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9925, - "name": "_role", + "id": 12104, + "name": "role", "nodeType": "VariableDeclaration", - "scope": 9938, - "src": "681:18:43", + "scope": 12133, + "src": "493:17:52", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 9924, + "id": 12103, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9891, - "src": "681:4:43", + "referencedDeclaration": 12070, + "src": "493:4:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -625,11 +925,11 @@ }, { "constant": false, - "id": 9927, - "name": "_addr", + "id": 12106, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 9938, - "src": "701:13:43", + "scope": 12133, + "src": "512:15:52", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -637,10 +937,10 @@ "typeString": "address" }, "typeName": { - "id": 9926, + "id": 12105, "name": "address", "nodeType": "ElementaryTypeName", - "src": "701:7:43", + "src": "512:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -650,27 +950,159 @@ "visibility": "internal" } ], - "src": "680:35:43" + "src": "492:36:52" }, "payable": false, "returnParameters": { - "id": 9929, + "id": 12108, "nodeType": "ParameterList", "parameters": [], - "src": "740:0:43" + "src": "538:0:52" }, - "scope": 9954, - "src": "666:111:43", - "stateMutability": "view", + "scope": 12157, + "src": "477:170:52", + "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 9952, + "id": 12155, "nodeType": "Block", - "src": "946:37:43", + "src": "817:74:52", "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12143, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12137, + "src": "831:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "850:1:52", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "842:7:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "842:10:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "831:21:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12142, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "823:7:52", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "823:30:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12149, + "nodeType": "ExpressionStatement", + "src": "823:30:52" + }, { "expression": { "argumentTypes": null, @@ -678,40 +1110,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9947, - "name": "_role", + "id": 12150, + "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9940, - "src": "959:5:43", + "referencedDeclaration": 12135, + "src": "866:4:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 9948, + "id": 12151, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 9890, - "src": "959:12:43", + "referencedDeclaration": 12069, + "src": "866:11:52", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 9950, + "id": 12153, "indexExpression": { "argumentTypes": null, - "id": 9949, - "name": "_addr", + "id": 12152, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9942, - "src": "972:5:43", + "referencedDeclaration": 12137, + "src": "878:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -722,21 +1154,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "959:19:43", + "src": "866:20:52", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 9946, - "id": 9951, + "functionReturnParameters": 12141, + "id": 12154, "nodeType": "Return", - "src": "952:26:43" + "src": "859:27:52" } ] }, - "documentation": "@dev check if an address has this role\n@return bool", - "id": 9953, + "documentation": "@dev check if an account has this role\n@return bool", + "id": 12156, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -744,31 +1176,31 @@ "name": "has", "nodeType": "FunctionDefinition", "parameters": { - "id": 9943, + "id": 12138, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9940, - "name": "_role", + "id": 12135, + "name": "role", "nodeType": "VariableDeclaration", - "scope": 9953, - "src": "868:18:43", + "scope": 12156, + "src": "738:17:52", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 9939, + "id": 12134, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9891, - "src": "868:4:43", + "referencedDeclaration": 12070, + "src": "738:4:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -777,11 +1209,11 @@ }, { "constant": false, - "id": 9942, - "name": "_addr", + "id": 12137, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 9953, - "src": "888:13:43", + "scope": 12156, + "src": "757:15:52", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -789,10 +1221,10 @@ "typeString": "address" }, "typeName": { - "id": 9941, + "id": 12136, "name": "address", "nodeType": "ElementaryTypeName", - "src": "888:7:43", + "src": "757:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -802,20 +1234,20 @@ "visibility": "internal" } ], - "src": "867:35:43" + "src": "737:36:52" }, "payable": false, "returnParameters": { - "id": 9946, + "id": 12141, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9945, + "id": 12140, "name": "", "nodeType": "VariableDeclaration", - "scope": 9953, - "src": "938:4:43", + "scope": 12156, + "src": "809:4:52", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -823,10 +1255,10 @@ "typeString": "bool" }, "typeName": { - "id": 9944, + "id": 12139, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "938:4:43", + "src": "809:4:52", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -836,33 +1268,33 @@ "visibility": "internal" } ], - "src": "937:6:43" + "src": "808:6:52" }, - "scope": 9954, - "src": "855:128:43", + "scope": 12157, + "src": "725:166:52", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 9955, - "src": "186:799:43" + "scope": 12158, + "src": "109:784:52" } ], - "src": "0:986:43" + "src": "0:894:52" }, "legacyAST": { - "absolutePath": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", + "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", "exportedSymbols": { "Roles": [ - 9954 + 12157 ] }, - "id": 9955, + "id": 12158, "nodeType": "SourceUnit", "nodes": [ { - "id": 9886, + "id": 12065, "literals": [ "solidity", "^", @@ -870,32 +1302,32 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:43" + "src": "0:24:52" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", - "documentation": "@title Roles\n@author Francisco Giordano (@frangio)\n@dev Library for managing addresses assigned to a Role.\nSee RBAC.sol for example usage.", + "documentation": "@title Roles\n@dev Library for managing addresses assigned to a Role.", "fullyImplemented": true, - "id": 9954, + "id": 12157, "linearizedBaseContracts": [ - 9954 + 12157 ], "name": "Roles", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Roles.Role", - "id": 9891, + "id": 12070, "members": [ { "constant": false, - "id": 9890, + "id": 12069, "name": "bearer", "nodeType": "VariableDeclaration", - "scope": 9891, - "src": "222:32:43", + "scope": 12070, + "src": "145:32:52", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -903,28 +1335,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 9889, + "id": 12068, "keyType": { - "id": 9887, + "id": 12066, "name": "address", "nodeType": "ElementaryTypeName", - "src": "231:7:43", + "src": "154:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "222:25:43", + "src": "145:25:52", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 9888, + "id": 12067, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "242:4:43", + "src": "165:4:52", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -937,204 +1369,278 @@ ], "name": "Role", "nodeType": "StructDefinition", - "scope": 9954, - "src": "204:55:43", + "scope": 12157, + "src": "127:55:52", "visibility": "public" }, { "body": { - "id": 9906, + "id": 12101, "nodeType": "Block", - "src": "384:37:43", + "src": "302:109:52", "statements": [ { "expression": { "argumentTypes": null, - "id": 9904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "expression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 9898, - "name": "_role", + "id": 12078, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9893, - "src": "390:5:43", + "referencedDeclaration": 12074, + "src": "316:7:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", - "typeString": "struct Roles.Role storage pointer" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 9901, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bearer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9890, - "src": "390:12:43", + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "335:1:52", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "327:7:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "327:10:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "316:21:52", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 9902, - "indexExpression": { - "argumentTypes": null, - "id": 9900, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9895, - "src": "403:5:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "390:19:43", + ], + "id": 12077, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "308:7:52", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9903, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "412:4:43", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "390:26:43", + "id": 12083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "308:30:52", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 9905, + "id": 12084, "nodeType": "ExpressionStatement", - "src": "390:26:43" - } - ] - }, - "documentation": "@dev give an address access to this role", - "id": 9907, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9896, - "nodeType": "ParameterList", - "parameters": [ + "src": "308:30:52" + }, { - "constant": false, - "id": 9893, - "name": "_role", - "nodeType": "VariableDeclaration", - "scope": 9907, - "src": "334:18:43", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", - "typeString": "struct Roles.Role" - }, - "typeName": { - "contractScope": null, - "id": 9892, - "name": "Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9891, - "src": "334:4:43", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "352:19:52", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12087, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12072, + "src": "357:4:52", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + { + "argumentTypes": null, + "id": 12088, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12074, + "src": "363:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12086, + "name": "has", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12156, + "src": "353:3:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 12089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "353:18:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12085, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "344:7:52", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "344:28:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", - "typeString": "struct Roles.Role" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 12092, + "nodeType": "ExpressionStatement", + "src": "344:28:52" }, - { - "constant": false, - "id": 9895, - "name": "_addr", - "nodeType": "VariableDeclaration", - "scope": 9907, - "src": "354:13:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9894, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "354:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "333:35:43" - }, - "payable": false, - "returnParameters": { - "id": 9897, - "nodeType": "ParameterList", - "parameters": [], - "src": "384:0:43" - }, - "scope": 9954, - "src": "321:100:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9922, - "nodeType": "Block", - "src": "552:38:43", - "statements": [ { "expression": { "argumentTypes": null, - "id": 9920, + "id": 12099, "isConstant": false, "isLValue": false, "isPure": false, @@ -1145,40 +1651,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9914, - "name": "_role", + "id": 12093, + "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9909, - "src": "558:5:43", + "referencedDeclaration": 12072, + "src": "379:4:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 9917, + "id": 12096, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 9890, - "src": "558:12:43", + "referencedDeclaration": 12069, + "src": "379:11:52", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 9918, + "id": 12097, "indexExpression": { "argumentTypes": null, - "id": 9916, - "name": "_addr", + "id": 12095, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9911, - "src": "571:5:43", + "referencedDeclaration": 12074, + "src": "391:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1189,7 +1695,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "558:19:43", + "src": "379:20:52", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1199,68 +1705,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "hexValue": "66616c7365", - "id": 9919, + "hexValue": "74727565", + "id": 12098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "580:5:43", + "src": "402:4:52", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "value": "false" + "value": "true" }, - "src": "558:27:43", + "src": "379:27:52", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 9921, + "id": 12100, "nodeType": "ExpressionStatement", - "src": "558:27:43" + "src": "379:27:52" } ] }, - "documentation": "@dev remove an address' access to this role", - "id": 9923, + "documentation": "@dev give an account access to this role", + "id": 12102, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "remove", + "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 9912, + "id": 12075, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9909, - "name": "_role", + "id": 12072, + "name": "role", "nodeType": "VariableDeclaration", - "scope": 9923, - "src": "502:18:43", + "scope": 12102, + "src": "257:17:52", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 9908, + "id": 12071, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9891, - "src": "502:4:43", + "referencedDeclaration": 12070, + "src": "257:4:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -1269,11 +1775,11 @@ }, { "constant": false, - "id": 9911, - "name": "_addr", + "id": 12074, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 9923, - "src": "522:13:43", + "scope": 12102, + "src": "276:15:52", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1281,10 +1787,10 @@ "typeString": "address" }, "typeName": { - "id": 9910, + "id": 12073, "name": "address", "nodeType": "ElementaryTypeName", - "src": "522:7:43", + "src": "276:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1294,27 +1800,159 @@ "visibility": "internal" } ], - "src": "501:35:43" + "src": "256:36:52" }, "payable": false, "returnParameters": { - "id": 9913, + "id": 12076, "nodeType": "ParameterList", "parameters": [], - "src": "552:0:43" + "src": "302:0:52" }, - "scope": 9954, - "src": "486:104:43", + "scope": 12157, + "src": "244:167:52", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 9937, + "id": 12132, "nodeType": "Block", - "src": "740:37:43", + "src": "538:109:52", "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12110, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12106, + "src": "552:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "571:1:52", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "563:7:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12113, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "563:10:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "552:21:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12109, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "544:7:52", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "544:30:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12116, + "nodeType": "ExpressionStatement", + "src": "544:30:52" + }, { "expression": { "argumentTypes": null, @@ -1324,25 +1962,25 @@ "arguments": [ { "argumentTypes": null, - "id": 9932, - "name": "_role", + "id": 12119, + "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9925, - "src": "758:5:43", + "referencedDeclaration": 12104, + "src": "592:4:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, { "argumentTypes": null, - "id": 9933, - "name": "_addr", + "id": 12120, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9927, - "src": "765:5:43", + "referencedDeclaration": 12106, + "src": "598:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1352,7 +1990,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role storage pointer" }, { @@ -1360,18 +1998,18 @@ "typeString": "address" } ], - "id": 9931, + "id": 12118, "name": "has", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9953, - "src": "754:3:43", + "referencedDeclaration": 12156, + "src": "588:3:52", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$9891_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$12070_storage_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 9934, + "id": 12121, "isConstant": false, "isLValue": false, "isPure": false, @@ -1379,7 +2017,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "754:17:43", + "src": "588:18:52", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1393,21 +2031,21 @@ "typeString": "bool" } ], - "id": 9930, + "id": 12117, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "746:7:43", + "referencedDeclaration": 13444, + "src": "580:7:52", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9935, + "id": 12122, "isConstant": false, "isLValue": false, "isPure": false, @@ -1415,52 +2053,146 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "746:26:43", + "src": "580:27:52", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9936, + "id": 12123, + "nodeType": "ExpressionStatement", + "src": "580:27:52" + }, + { + "expression": { + "argumentTypes": null, + "id": 12130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12124, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12104, + "src": "614:4:52", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + "id": 12127, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bearer", + "nodeType": "MemberAccess", + "referencedDeclaration": 12069, + "src": "614:11:52", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 12128, + "indexExpression": { + "argumentTypes": null, + "id": 12126, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12106, + "src": "626:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "614:20:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 12129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "637:5:52", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "614:28:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12131, "nodeType": "ExpressionStatement", - "src": "746:26:43" + "src": "614:28:52" } ] }, - "documentation": "@dev check if an address has this role\n// reverts", - "id": 9938, + "documentation": "@dev remove an account's access to this role", + "id": 12133, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "check", + "name": "remove", "nodeType": "FunctionDefinition", "parameters": { - "id": 9928, + "id": 12107, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9925, - "name": "_role", + "id": 12104, + "name": "role", "nodeType": "VariableDeclaration", - "scope": 9938, - "src": "681:18:43", + "scope": 12133, + "src": "493:17:52", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 9924, + "id": 12103, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9891, - "src": "681:4:43", + "referencedDeclaration": 12070, + "src": "493:4:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -1469,11 +2201,11 @@ }, { "constant": false, - "id": 9927, - "name": "_addr", + "id": 12106, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 9938, - "src": "701:13:43", + "scope": 12133, + "src": "512:15:52", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1481,10 +2213,10 @@ "typeString": "address" }, "typeName": { - "id": 9926, + "id": 12105, "name": "address", "nodeType": "ElementaryTypeName", - "src": "701:7:43", + "src": "512:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1494,27 +2226,159 @@ "visibility": "internal" } ], - "src": "680:35:43" + "src": "492:36:52" }, "payable": false, "returnParameters": { - "id": 9929, + "id": 12108, "nodeType": "ParameterList", "parameters": [], - "src": "740:0:43" + "src": "538:0:52" }, - "scope": 9954, - "src": "666:111:43", - "stateMutability": "view", + "scope": 12157, + "src": "477:170:52", + "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 9952, + "id": 12155, "nodeType": "Block", - "src": "946:37:43", + "src": "817:74:52", "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12143, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12137, + "src": "831:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "850:1:52", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "842:7:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "842:10:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "831:21:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12142, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "823:7:52", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "823:30:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12149, + "nodeType": "ExpressionStatement", + "src": "823:30:52" + }, { "expression": { "argumentTypes": null, @@ -1522,40 +2386,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9947, - "name": "_role", + "id": 12150, + "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9940, - "src": "959:5:43", + "referencedDeclaration": 12135, + "src": "866:4:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 9948, + "id": 12151, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 9890, - "src": "959:12:43", + "referencedDeclaration": 12069, + "src": "866:11:52", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 9950, + "id": 12153, "indexExpression": { "argumentTypes": null, - "id": 9949, - "name": "_addr", + "id": 12152, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9942, - "src": "972:5:43", + "referencedDeclaration": 12137, + "src": "878:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1566,21 +2430,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "959:19:43", + "src": "866:20:52", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 9946, - "id": 9951, + "functionReturnParameters": 12141, + "id": 12154, "nodeType": "Return", - "src": "952:26:43" + "src": "859:27:52" } ] }, - "documentation": "@dev check if an address has this role\n@return bool", - "id": 9953, + "documentation": "@dev check if an account has this role\n@return bool", + "id": 12156, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1588,31 +2452,31 @@ "name": "has", "nodeType": "FunctionDefinition", "parameters": { - "id": 9943, + "id": 12138, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9940, - "name": "_role", + "id": 12135, + "name": "role", "nodeType": "VariableDeclaration", - "scope": 9953, - "src": "868:18:43", + "scope": 12156, + "src": "738:17:52", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 9939, + "id": 12134, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9891, - "src": "868:4:43", + "referencedDeclaration": 12070, + "src": "738:4:52", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$9891_storage_ptr", + "typeIdentifier": "t_struct$_Role_$12070_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -1621,11 +2485,11 @@ }, { "constant": false, - "id": 9942, - "name": "_addr", + "id": 12137, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 9953, - "src": "888:13:43", + "scope": 12156, + "src": "757:15:52", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1633,10 +2497,10 @@ "typeString": "address" }, "typeName": { - "id": 9941, + "id": 12136, "name": "address", "nodeType": "ElementaryTypeName", - "src": "888:7:43", + "src": "757:7:52", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1646,20 +2510,20 @@ "visibility": "internal" } ], - "src": "867:35:43" + "src": "737:36:52" }, "payable": false, "returnParameters": { - "id": 9946, + "id": 12141, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9945, + "id": 12140, "name": "", "nodeType": "VariableDeclaration", - "scope": 9953, - "src": "938:4:43", + "scope": 12156, + "src": "809:4:52", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1667,10 +2531,10 @@ "typeString": "bool" }, "typeName": { - "id": 9944, + "id": 12139, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "938:4:43", + "src": "809:4:52", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1680,20 +2544,20 @@ "visibility": "internal" } ], - "src": "937:6:43" + "src": "808:6:52" }, - "scope": 9954, - "src": "855:128:43", + "scope": 12157, + "src": "725:166:52", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 9955, - "src": "186:799:43" + "scope": 12158, + "src": "109:784:52" } ], - "src": "0:986:43" + "src": "0:894:52" }, "compiler": { "name": "solc", @@ -1701,5 +2565,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.351Z" + "updatedAt": "2018-12-06T13:14:33.235Z" } \ No newline at end of file diff --git a/build/contracts/SafeERC20.json b/build/contracts/SafeERC20.json index db5abc20..fd601128 100644 --- a/build/contracts/SafeERC20.json +++ b/build/contracts/SafeERC20.json @@ -1,24 +1,24 @@ { "contractName": "SafeERC20", "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820bb7049b3ccae63dd84bcf2c3e191f963397daa8ef155efd786dd7c31ab5cab3c0029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820bb7049b3ccae63dd84bcf2c3e191f963397daa8ef155efd786dd7c31ab5cab3c0029", - "sourceMap": "346:511:49:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "346:511:49:-;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\nimport \"./ERC20Basic.sol\";\nimport \"./ERC20.sol\";\n\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure.\n * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n function safeTransfer(\n ERC20Basic _token,\n address _to,\n uint256 _value\n )\n internal\n {\n require(_token.transfer(_to, _value));\n }\n\n function safeTransferFrom(\n ERC20 _token,\n address _from,\n address _to,\n uint256 _value\n )\n internal\n {\n require(_token.transferFrom(_from, _to, _value));\n }\n\n function safeApprove(\n ERC20 _token,\n address _spender,\n uint256 _value\n )\n internal\n {\n require(_token.approve(_spender, _value));\n }\n}\n", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058200858c6d348b1cd882fcfd019ed28c4c64549a0a1bd4079e1b0347edd9121fd620029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058200858c6d348b1cd882fcfd019ed28c4c64549a0a1bd4079e1b0347edd9121fd620029", + "sourceMap": "353:1296:61:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "353:1296:61:-;;;;;;;;", + "source": "pragma solidity ^0.4.24;\n\nimport \"./IERC20.sol\";\nimport \"../../math/SafeMath.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure.\n * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n\n using SafeMath for uint256;\n\n function safeTransfer(\n IERC20 token,\n address to,\n uint256 value\n )\n internal\n {\n require(token.transfer(to, value));\n }\n\n function safeTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n )\n internal\n {\n require(token.transferFrom(from, to, value));\n }\n\n function safeApprove(\n IERC20 token,\n address spender,\n uint256 value\n )\n internal\n {\n // safeApprove should only be called when setting an initial allowance, \n // or when resetting it to zero. To increase and decrease it, use \n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n require((value == 0) || (token.allowance(msg.sender, spender) == 0));\n require(token.approve(spender, value));\n }\n\n function safeIncreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n )\n internal\n {\n uint256 newAllowance = token.allowance(address(this), spender).add(value);\n require(token.approve(spender, newAllowance));\n }\n\n function safeDecreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n )\n internal\n {\n uint256 newAllowance = token.allowance(address(this), spender).sub(value);\n require(token.approve(spender, newAllowance));\n }\n}\n", "sourcePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "ast": { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "exportedSymbols": { "SafeERC20": [ - 10305 + 13227 ] }, - "id": 10306, + "id": 13228, "nodeType": "SourceUnit", "nodes": [ { - "id": 10245, + "id": 13085, "literals": [ "solidity", "^", @@ -26,27 +26,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:49" + "src": "0:24:61" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", - "file": "./ERC20Basic.sol", - "id": 10246, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 13086, "nodeType": "ImportDirective", - "scope": 10306, - "sourceUnit": 10244, - "src": "26:26:49", + "scope": 13228, + "sourceUnit": 13084, + "src": "26:22:61", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "./ERC20.sol", - "id": 10247, + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "../../math/SafeMath.sol", + "id": 13087, "nodeType": "ImportDirective", - "scope": 10306, - "sourceUnit": 10212, - "src": "53:21:49", + "scope": 13228, + "sourceUnit": 12389, + "src": "49:33:61", "symbolAliases": [], "unitAlias": "" }, @@ -56,18 +56,45 @@ "contractKind": "library", "documentation": "@title SafeERC20\n@dev Wrappers around ERC20 operations that throw on failure.\nTo use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\nwhich allows you to call the safe operations as `token.safeTransfer(...)`, etc.", "fullyImplemented": true, - "id": 10305, + "id": 13227, "linearizedBaseContracts": [ - 10305 + 13227 ], "name": "SafeERC20", "nodeType": "ContractDefinition", "nodes": [ + { + "id": 13090, + "libraryName": { + "contractScope": null, + "id": 13088, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "382:8:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "376:27:61", + "typeName": { + "id": 13089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "395:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, { "body": { - "id": 10264, + "id": 13107, "nodeType": "Block", - "src": "469:48:49", + "src": "501:45:61", "statements": [ { "expression": { @@ -78,12 +105,12 @@ "arguments": [ { "argumentTypes": null, - "id": 10259, - "name": "_to", + "id": 13102, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10251, - "src": "499:3:49", + "referencedDeclaration": 13094, + "src": "530:2:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -91,12 +118,12 @@ }, { "argumentTypes": null, - "id": 10260, - "name": "_value", + "id": 13103, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10253, - "src": "504:6:49", + "referencedDeclaration": 13096, + "src": "534:5:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -116,32 +143,32 @@ ], "expression": { "argumentTypes": null, - "id": 10257, - "name": "_token", + "id": 13100, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10249, - "src": "483:6:49", + "referencedDeclaration": 13092, + "src": "515:5:61", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$10243", - "typeString": "contract ERC20Basic" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 10258, + "id": 13101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "483:15:49", + "referencedDeclaration": 13046, + "src": "515:14:61", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 10261, + "id": 13104, "isConstant": false, "isLValue": false, "isPure": false, @@ -149,7 +176,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "483:28:49", + "src": "515:25:61", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -163,21 +190,21 @@ "typeString": "bool" } ], - "id": 10256, + "id": 13099, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "475:7:49", + "referencedDeclaration": 13444, + "src": "507:7:61", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10262, + "id": 13105, "isConstant": false, "isLValue": false, "isPure": false, @@ -185,20 +212,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "475:37:49", + "src": "507:34:61", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10263, + "id": 13106, "nodeType": "ExpressionStatement", - "src": "475:37:49" + "src": "507:34:61" } ] }, "documentation": null, - "id": 10265, + "id": 13108, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -206,32 +233,32 @@ "name": "safeTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 10254, + "id": 13097, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10249, - "name": "_token", + "id": 13092, + "name": "token", "nodeType": "VariableDeclaration", - "scope": 10265, - "src": "395:17:49", + "scope": 13108, + "src": "434:12:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$10243", - "typeString": "contract ERC20Basic" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 10248, - "name": "ERC20Basic", + "id": 13091, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10243, - "src": "395:10:49", + "referencedDeclaration": 13083, + "src": "434:6:61", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$10243", - "typeString": "contract ERC20Basic" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -239,11 +266,11 @@ }, { "constant": false, - "id": 10251, - "name": "_to", + "id": 13094, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 10265, - "src": "418:11:49", + "scope": 13108, + "src": "452:10:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -251,10 +278,10 @@ "typeString": "address" }, "typeName": { - "id": 10250, + "id": 13093, "name": "address", "nodeType": "ElementaryTypeName", - "src": "418:7:49", + "src": "452:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -265,11 +292,11 @@ }, { "constant": false, - "id": 10253, - "name": "_value", + "id": 13096, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 10265, - "src": "435:14:49", + "scope": 13108, + "src": "468:13:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -277,10 +304,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10252, + "id": 13095, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "435:7:49", + "src": "468:7:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -290,26 +317,26 @@ "visibility": "internal" } ], - "src": "389:64:49" + "src": "428:57:61" }, "payable": false, "returnParameters": { - "id": 10255, + "id": 13098, "nodeType": "ParameterList", "parameters": [], - "src": "469:0:49" + "src": "501:0:61" }, - "scope": 10305, - "src": "368:149:49", + "scope": 13227, + "src": "407:139:61", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10285, + "id": 13128, "nodeType": "Block", - "src": "640:59:49", + "src": "666:55:61", "statements": [ { "expression": { @@ -320,12 +347,12 @@ "arguments": [ { "argumentTypes": null, - "id": 10279, - "name": "_from", + "id": 13122, + "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10269, - "src": "674:5:49", + "referencedDeclaration": 13112, + "src": "699:4:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -333,12 +360,12 @@ }, { "argumentTypes": null, - "id": 10280, - "name": "_to", + "id": 13123, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10271, - "src": "681:3:49", + "referencedDeclaration": 13114, + "src": "705:2:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -346,12 +373,12 @@ }, { "argumentTypes": null, - "id": 10281, - "name": "_value", + "id": 13124, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10273, - "src": "686:6:49", + "referencedDeclaration": 13116, + "src": "709:5:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -375,32 +402,32 @@ ], "expression": { "argumentTypes": null, - "id": 10277, - "name": "_token", + "id": 13120, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10267, - "src": "654:6:49", + "referencedDeclaration": 13110, + "src": "680:5:61", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 10278, + "id": 13121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 10193, - "src": "654:19:49", + "referencedDeclaration": 13066, + "src": "680:18:61", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 10282, + "id": 13125, "isConstant": false, "isLValue": false, "isPure": false, @@ -408,7 +435,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "654:39:49", + "src": "680:35:61", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -422,21 +449,21 @@ "typeString": "bool" } ], - "id": 10276, + "id": 13119, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "646:7:49", + "referencedDeclaration": 13444, + "src": "672:7:61", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10283, + "id": 13126, "isConstant": false, "isLValue": false, "isPure": false, @@ -444,20 +471,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "646:48:49", + "src": "672:44:61", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10284, + "id": 13127, "nodeType": "ExpressionStatement", - "src": "646:48:49" + "src": "672:44:61" } ] }, "documentation": null, - "id": 10286, + "id": 13129, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -465,32 +492,32 @@ "name": "safeTransferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 10274, + "id": 13117, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10267, - "name": "_token", + "id": 13110, + "name": "token", "nodeType": "VariableDeclaration", - "scope": 10286, - "src": "552:12:49", + "scope": 13129, + "src": "581:12:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 10266, - "name": "ERC20", + "id": 13109, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "552:5:49", + "referencedDeclaration": 13083, + "src": "581:6:61", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -498,11 +525,11 @@ }, { "constant": false, - "id": 10269, - "name": "_from", + "id": 13112, + "name": "from", "nodeType": "VariableDeclaration", - "scope": 10286, - "src": "570:13:49", + "scope": 13129, + "src": "599:12:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -510,10 +537,10 @@ "typeString": "address" }, "typeName": { - "id": 10268, + "id": 13111, "name": "address", "nodeType": "ElementaryTypeName", - "src": "570:7:49", + "src": "599:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -524,11 +551,11 @@ }, { "constant": false, - "id": 10271, - "name": "_to", + "id": 13114, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 10286, - "src": "589:11:49", + "scope": 13129, + "src": "617:10:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -536,10 +563,10 @@ "typeString": "address" }, "typeName": { - "id": 10270, + "id": 13113, "name": "address", "nodeType": "ElementaryTypeName", - "src": "589:7:49", + "src": "617:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -550,11 +577,11 @@ }, { "constant": false, - "id": 10273, - "name": "_value", + "id": 13116, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 10286, - "src": "606:14:49", + "scope": 13129, + "src": "633:13:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -562,10 +589,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10272, + "id": 13115, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "606:7:49", + "src": "633:7:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -575,27 +602,309 @@ "visibility": "internal" } ], - "src": "546:78:49" + "src": "575:75:61" }, "payable": false, "returnParameters": { - "id": 10275, + "id": 13118, "nodeType": "ParameterList", "parameters": [], - "src": "640:0:49" + "src": "666:0:61" }, - "scope": 10305, - "src": "521:178:49", + "scope": 13227, + "src": "550:171:61", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10303, + "id": 13163, "nodeType": "Block", - "src": "803:52:49", + "src": "823:330:61", "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13139, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13135, + "src": "1045:5:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1054:1:61", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1045:10:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 13142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1044:12:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13145, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "1077:3:61", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1077:10:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13147, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13133, + "src": "1089:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 13143, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13131, + "src": "1061:5:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 13144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 13037, + "src": "1061:15:61", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 13148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1061:36:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1101:1:61", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1061:41:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 13151, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1060:43:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1044:59:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13138, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1036:7:61", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1036:68:61", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13154, + "nodeType": "ExpressionStatement", + "src": "1036:68:61" + }, { "expression": { "argumentTypes": null, @@ -605,12 +914,12 @@ "arguments": [ { "argumentTypes": null, - "id": 10298, - "name": "_spender", + "id": 13158, + "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10290, - "src": "832:8:49", + "referencedDeclaration": 13133, + "src": "1132:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -618,12 +927,12 @@ }, { "argumentTypes": null, - "id": 10299, - "name": "_value", + "id": 13159, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10292, - "src": "842:6:49", + "referencedDeclaration": 13135, + "src": "1141:5:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -643,32 +952,32 @@ ], "expression": { "argumentTypes": null, - "id": 10296, - "name": "_token", + "id": 13156, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10288, - "src": "817:6:49", + "referencedDeclaration": 13131, + "src": "1118:5:61", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 10297, + "id": 13157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 10202, - "src": "817:14:49", + "referencedDeclaration": 13055, + "src": "1118:13:61", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 10300, + "id": 13160, "isConstant": false, "isLValue": false, "isPure": false, @@ -676,7 +985,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "817:32:49", + "src": "1118:29:61", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -690,21 +999,21 @@ "typeString": "bool" } ], - "id": 10295, + "id": 13155, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "809:7:49", + "referencedDeclaration": 13444, + "src": "1110:7:61", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10301, + "id": 13161, "isConstant": false, "isLValue": false, "isPure": false, @@ -712,20 +1021,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "809:41:49", + "src": "1110:38:61", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10302, + "id": 13162, "nodeType": "ExpressionStatement", - "src": "809:41:49" + "src": "1110:38:61" } ] }, "documentation": null, - "id": 10304, + "id": 13164, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -733,32 +1042,32 @@ "name": "safeApprove", "nodeType": "FunctionDefinition", "parameters": { - "id": 10293, + "id": 13136, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10288, - "name": "_token", + "id": 13131, + "name": "token", "nodeType": "VariableDeclaration", - "scope": 10304, - "src": "729:12:49", + "scope": 13164, + "src": "751:12:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 10287, - "name": "ERC20", + "id": 13130, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "729:5:49", + "referencedDeclaration": 13083, + "src": "751:6:61", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -766,11 +1075,11 @@ }, { "constant": false, - "id": 10290, - "name": "_spender", + "id": 13133, + "name": "spender", "nodeType": "VariableDeclaration", - "scope": 10304, - "src": "747:16:49", + "scope": 13164, + "src": "769:15:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -778,10 +1087,10 @@ "typeString": "address" }, "typeName": { - "id": 10289, + "id": 13132, "name": "address", "nodeType": "ElementaryTypeName", - "src": "747:7:49", + "src": "769:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -792,11 +1101,11 @@ }, { "constant": false, - "id": 10292, - "name": "_value", + "id": 13135, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 10304, - "src": "769:14:49", + "scope": 13164, + "src": "790:13:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -804,10 +1113,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10291, + "id": 13134, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "769:7:49", + "src": "790:7:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -817,90 +1126,235 @@ "visibility": "internal" } ], - "src": "723:64:49" + "src": "745:62:61" }, "payable": false, "returnParameters": { - "id": 10294, + "id": 13137, "nodeType": "ParameterList", "parameters": [], - "src": "803:0:49" + "src": "823:0:61" }, - "scope": 10305, - "src": "703:152:49", + "scope": 13227, + "src": "725:428:61", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" - } - ], - "scope": 10306, - "src": "346:511:49" - } - ], - "src": "0:858:49" - }, - "legacyAST": { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", - "exportedSymbols": { - "SafeERC20": [ - 10305 - ] - }, - "id": 10306, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 10245, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:49" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", - "file": "./ERC20Basic.sol", - "id": 10246, - "nodeType": "ImportDirective", - "scope": 10306, - "sourceUnit": 10244, - "src": "26:26:49", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "./ERC20.sol", - "id": 10247, - "nodeType": "ImportDirective", - "scope": 10306, - "sourceUnit": 10212, - "src": "53:21:49", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title SafeERC20\n@dev Wrappers around ERC20 operations that throw on failure.\nTo use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\nwhich allows you to call the safe operations as `token.safeTransfer(...)`, etc.", - "fullyImplemented": true, - "id": 10305, - "linearizedBaseContracts": [ - 10305 - ], - "name": "SafeERC20", - "nodeType": "ContractDefinition", - "nodes": [ + }, { "body": { - "id": 10264, + "id": 13194, "nodeType": "Block", - "src": "469:48:49", + "src": "1265:135:61", "statements": [ + { + "assignments": [ + 13174 + ], + "declarations": [ + { + "constant": false, + "id": 13174, + "name": "newAllowance", + "nodeType": "VariableDeclaration", + "scope": 13195, + "src": "1271:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1271:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13185, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13183, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13170, + "src": "1338:5:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13178, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "1318:4:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$13227", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$13227", + "typeString": "library SafeERC20" + } + ], + "id": 13177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1310:7:61", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 13179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1310:13:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13180, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13168, + "src": "1325:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 13175, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13166, + "src": "1294:5:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 13176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 13037, + "src": "1294:15:61", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 13181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1294:39:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "1294:43:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1294:50:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1271:73:61" + }, { "expression": { "argumentTypes": null, @@ -910,12 +1364,12 @@ "arguments": [ { "argumentTypes": null, - "id": 10259, - "name": "_to", + "id": 13189, + "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10251, - "src": "499:3:49", + "referencedDeclaration": 13168, + "src": "1372:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -923,12 +1377,12 @@ }, { "argumentTypes": null, - "id": 10260, - "name": "_value", + "id": 13190, + "name": "newAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10253, - "src": "504:6:49", + "referencedDeclaration": 13174, + "src": "1381:12:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -948,32 +1402,32 @@ ], "expression": { "argumentTypes": null, - "id": 10257, - "name": "_token", + "id": 13187, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10249, - "src": "483:6:49", + "referencedDeclaration": 13166, + "src": "1358:5:61", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$10243", - "typeString": "contract ERC20Basic" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 10258, + "id": 13188, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transfer", + "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "483:15:49", + "referencedDeclaration": 13055, + "src": "1358:13:61", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 10261, + "id": 13191, "isConstant": false, "isLValue": false, "isPure": false, @@ -981,7 +1435,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "483:28:49", + "src": "1358:36:61", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -995,21 +1449,21 @@ "typeString": "bool" } ], - "id": 10256, + "id": 13186, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "475:7:49", + "referencedDeclaration": 13444, + "src": "1350:7:61", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10262, + "id": 13192, "isConstant": false, "isLValue": false, "isPure": false, @@ -1017,53 +1471,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "475:37:49", + "src": "1350:45:61", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10263, + "id": 13193, "nodeType": "ExpressionStatement", - "src": "475:37:49" + "src": "1350:45:61" } ] }, "documentation": null, - "id": 10265, + "id": 13195, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "safeTransfer", + "name": "safeIncreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 10254, + "id": 13171, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10249, - "name": "_token", + "id": 13166, + "name": "token", "nodeType": "VariableDeclaration", - "scope": 10265, - "src": "395:17:49", + "scope": 13195, + "src": "1193:12:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$10243", - "typeString": "contract ERC20Basic" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 10248, - "name": "ERC20Basic", + "id": 13165, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10243, - "src": "395:10:49", + "referencedDeclaration": 13083, + "src": "1193:6:61", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$10243", - "typeString": "contract ERC20Basic" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -1071,11 +1525,11 @@ }, { "constant": false, - "id": 10251, - "name": "_to", + "id": 13168, + "name": "spender", "nodeType": "VariableDeclaration", - "scope": 10265, - "src": "418:11:49", + "scope": 13195, + "src": "1211:15:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1083,10 +1537,10 @@ "typeString": "address" }, "typeName": { - "id": 10250, + "id": 13167, "name": "address", "nodeType": "ElementaryTypeName", - "src": "418:7:49", + "src": "1211:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1097,11 +1551,11 @@ }, { "constant": false, - "id": 10253, - "name": "_value", + "id": 13170, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 10265, - "src": "435:14:49", + "scope": 13195, + "src": "1232:13:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1109,10 +1563,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10252, + "id": 13169, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "435:7:49", + "src": "1232:7:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1122,42 +1576,133 @@ "visibility": "internal" } ], - "src": "389:64:49" + "src": "1187:62:61" }, "payable": false, "returnParameters": { - "id": 10255, + "id": 13172, "nodeType": "ParameterList", "parameters": [], - "src": "469:0:49" + "src": "1265:0:61" }, - "scope": 10305, - "src": "368:149:49", + "scope": 13227, + "src": "1157:243:61", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10285, + "id": 13225, "nodeType": "Block", - "src": "640:59:49", + "src": "1512:135:61", "statements": [ { - "expression": { + "assignments": [ + 13205 + ], + "declarations": [ + { + "constant": false, + "id": 13205, + "name": "newAllowance", + "nodeType": "VariableDeclaration", + "scope": 13226, + "src": "1518:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13204, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1518:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13216, + "initialValue": { "argumentTypes": null, "arguments": [ { + "argumentTypes": null, + "id": 13214, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13201, + "src": "1585:5:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 10279, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10269, - "src": "674:5:49", + "arguments": [ + { + "argumentTypes": null, + "id": 13209, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "1565:4:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$13227", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$13227", + "typeString": "library SafeERC20" + } + ], + "id": 13208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1557:7:61", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 13210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1557:13:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1165,29 +1710,16 @@ }, { "argumentTypes": null, - "id": 10280, - "name": "_to", + "id": 13211, + "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10271, - "src": "681:3:49", + "referencedDeclaration": 13199, + "src": "1572:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 10281, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10273, - "src": "686:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } } ], "expression": { @@ -1199,40 +1731,36 @@ { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 10277, - "name": "_token", + "id": 13206, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10267, - "src": "654:6:49", + "referencedDeclaration": 13197, + "src": "1541:5:61", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 10278, + "id": 13207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transferFrom", + "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 10193, - "src": "654:19:49", + "referencedDeclaration": 13037, + "src": "1541:15:61", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 10282, + "id": 13212, "isConstant": false, "isLValue": false, "isPure": false, @@ -1240,35 +1768,1743 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "654:39:49", + "src": "1541:39:61", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } + }, + "id": 13213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "1541:43:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 10276, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 + }, + "id": 13215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1541:50:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1518:73:61" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13220, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13199, + "src": "1619:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13221, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13205, + "src": "1628:12:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13218, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13197, + "src": "1605:5:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 13219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 13055, + "src": "1605:13:61", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 13222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1605:36:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13217, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1597:7:61", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1597:45:61", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13224, + "nodeType": "ExpressionStatement", + "src": "1597:45:61" + } + ] + }, + "documentation": null, + "id": 13226, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "safeDecreaseAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13197, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 13226, + "src": "1440:12:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 13196, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13083, + "src": "1440:6:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13199, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 13226, + "src": "1458:15:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1458:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13201, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13226, + "src": "1479:13:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1479:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1434:62:61" + }, + "payable": false, + "returnParameters": { + "id": 13203, + "nodeType": "ParameterList", + "parameters": [], + "src": "1512:0:61" + }, + "scope": 13227, + "src": "1404:243:61", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 13228, + "src": "353:1296:61" + } + ], + "src": "0:1650:61" + }, + "legacyAST": { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", + "exportedSymbols": { + "SafeERC20": [ + 13227 + ] + }, + "id": 13228, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 13085, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:61" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 13086, + "nodeType": "ImportDirective", + "scope": 13228, + "sourceUnit": 13084, + "src": "26:22:61", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "../../math/SafeMath.sol", + "id": 13087, + "nodeType": "ImportDirective", + "scope": 13228, + "sourceUnit": 12389, + "src": "49:33:61", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title SafeERC20\n@dev Wrappers around ERC20 operations that throw on failure.\nTo use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\nwhich allows you to call the safe operations as `token.safeTransfer(...)`, etc.", + "fullyImplemented": true, + "id": 13227, + "linearizedBaseContracts": [ + 13227 + ], + "name": "SafeERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 13090, + "libraryName": { + "contractScope": null, + "id": 13088, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "382:8:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "376:27:61", + "typeName": { + "id": 13089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "395:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 13107, + "nodeType": "Block", + "src": "501:45:61", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13102, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13094, + "src": "530:2:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13103, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13096, + "src": "534:5:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13100, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13092, + "src": "515:5:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 13101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 13046, + "src": "515:14:61", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 13104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "515:25:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13099, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "507:7:61", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "507:34:61", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13106, + "nodeType": "ExpressionStatement", + "src": "507:34:61" + } + ] + }, + "documentation": null, + "id": 13108, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13092, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 13108, + "src": "434:12:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 13091, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13083, + "src": "434:6:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13094, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 13108, + "src": "452:10:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "452:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13096, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13108, + "src": "468:13:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "468:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "428:57:61" + }, + "payable": false, + "returnParameters": { + "id": 13098, + "nodeType": "ParameterList", + "parameters": [], + "src": "501:0:61" + }, + "scope": 13227, + "src": "407:139:61", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 13128, + "nodeType": "Block", + "src": "666:55:61", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13122, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13112, + "src": "699:4:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13123, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13114, + "src": "705:2:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13124, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13116, + "src": "709:5:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13120, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13110, + "src": "680:5:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 13121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 13066, + "src": "680:18:61", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 13125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "680:35:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13119, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "672:7:61", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "672:44:61", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13127, + "nodeType": "ExpressionStatement", + "src": "672:44:61" + } + ] + }, + "documentation": null, + "id": 13129, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13110, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 13129, + "src": "581:12:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 13109, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13083, + "src": "581:6:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13112, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 13129, + "src": "599:12:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "599:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13114, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 13129, + "src": "617:10:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "617:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13116, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13129, + "src": "633:13:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "633:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "575:75:61" + }, + "payable": false, + "returnParameters": { + "id": 13118, + "nodeType": "ParameterList", + "parameters": [], + "src": "666:0:61" + }, + "scope": 13227, + "src": "550:171:61", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 13163, + "nodeType": "Block", + "src": "823:330:61", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13139, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13135, + "src": "1045:5:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1054:1:61", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1045:10:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 13142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1044:12:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13145, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "1077:3:61", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1077:10:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13147, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13133, + "src": "1089:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 13143, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13131, + "src": "1061:5:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 13144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 13037, + "src": "1061:15:61", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 13148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1061:36:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1101:1:61", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1061:41:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 13151, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1060:43:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1044:59:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13138, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1036:7:61", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1036:68:61", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13154, + "nodeType": "ExpressionStatement", + "src": "1036:68:61" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13158, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13133, + "src": "1132:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13159, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13135, + "src": "1141:5:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13156, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13131, + "src": "1118:5:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 13157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 13055, + "src": "1118:13:61", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 13160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1118:29:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13155, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1110:7:61", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1110:38:61", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13162, + "nodeType": "ExpressionStatement", + "src": "1110:38:61" + } + ] + }, + "documentation": null, + "id": 13164, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "safeApprove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13131, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 13164, + "src": "751:12:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 13130, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13083, + "src": "751:6:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13133, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 13164, + "src": "769:15:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "769:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13135, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 13164, + "src": "790:13:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "790:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "745:62:61" + }, + "payable": false, + "returnParameters": { + "id": 13137, + "nodeType": "ParameterList", + "parameters": [], + "src": "823:0:61" + }, + "scope": 13227, + "src": "725:428:61", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 13194, + "nodeType": "Block", + "src": "1265:135:61", + "statements": [ + { + "assignments": [ + 13174 + ], + "declarations": [ + { + "constant": false, + "id": 13174, + "name": "newAllowance", + "nodeType": "VariableDeclaration", + "scope": 13195, + "src": "1271:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1271:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13185, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13183, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13170, + "src": "1338:5:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13178, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "1318:4:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$13227", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$13227", + "typeString": "library SafeERC20" + } + ], + "id": 13177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1310:7:61", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 13179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1310:13:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13180, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13168, + "src": "1325:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 13175, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13166, + "src": "1294:5:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 13176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 13037, + "src": "1294:15:61", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 13181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1294:39:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "1294:43:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1294:50:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1271:73:61" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13189, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13168, + "src": "1372:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13190, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13174, + "src": "1381:12:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13187, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13166, + "src": "1358:5:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 13188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 13055, + "src": "1358:13:61", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 13191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1358:36:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13186, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "646:7:49", + "referencedDeclaration": 13444, + "src": "1350:7:61", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10283, + "id": 13192, "isConstant": false, "isLValue": false, "isPure": false, @@ -1276,79 +3512,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "646:48:49", + "src": "1350:45:61", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10284, + "id": 13193, "nodeType": "ExpressionStatement", - "src": "646:48:49" + "src": "1350:45:61" } ] }, "documentation": null, - "id": 10286, + "id": 13195, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "safeTransferFrom", + "name": "safeIncreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 10274, + "id": 13171, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10267, - "name": "_token", + "id": 13166, + "name": "token", "nodeType": "VariableDeclaration", - "scope": 10286, - "src": "552:12:49", + "scope": 13195, + "src": "1193:12:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 10266, - "name": "ERC20", + "id": 13165, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "552:5:49", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10269, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 10286, - "src": "570:13:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "570:7:49", + "referencedDeclaration": 13083, + "src": "1193:6:61", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -1356,11 +3566,11 @@ }, { "constant": false, - "id": 10271, - "name": "_to", + "id": 13168, + "name": "spender", "nodeType": "VariableDeclaration", - "scope": 10286, - "src": "589:11:49", + "scope": 13195, + "src": "1211:15:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1368,10 +3578,10 @@ "typeString": "address" }, "typeName": { - "id": 10270, + "id": 13167, "name": "address", "nodeType": "ElementaryTypeName", - "src": "589:7:49", + "src": "1211:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1382,11 +3592,11 @@ }, { "constant": false, - "id": 10273, - "name": "_value", + "id": 13170, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 10286, - "src": "606:14:49", + "scope": 13195, + "src": "1232:13:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1394,10 +3604,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10272, + "id": 13169, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "606:7:49", + "src": "1232:7:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1407,27 +3617,235 @@ "visibility": "internal" } ], - "src": "546:78:49" + "src": "1187:62:61" }, "payable": false, "returnParameters": { - "id": 10275, + "id": 13172, "nodeType": "ParameterList", "parameters": [], - "src": "640:0:49" + "src": "1265:0:61" }, - "scope": 10305, - "src": "521:178:49", + "scope": 13227, + "src": "1157:243:61", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10303, + "id": 13225, "nodeType": "Block", - "src": "803:52:49", + "src": "1512:135:61", "statements": [ + { + "assignments": [ + 13205 + ], + "declarations": [ + { + "constant": false, + "id": 13205, + "name": "newAllowance", + "nodeType": "VariableDeclaration", + "scope": 13226, + "src": "1518:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13204, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1518:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13216, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13214, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13201, + "src": "1585:5:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13209, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "1565:4:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$13227", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$13227", + "typeString": "library SafeERC20" + } + ], + "id": 13208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1557:7:61", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 13210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1557:13:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13211, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13199, + "src": "1572:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 13206, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13197, + "src": "1541:5:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 13207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 13037, + "src": "1541:15:61", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 13212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1541:39:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "1541:43:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1541:50:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1518:73:61" + }, { "expression": { "argumentTypes": null, @@ -1437,12 +3855,12 @@ "arguments": [ { "argumentTypes": null, - "id": 10298, - "name": "_spender", + "id": 13220, + "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10290, - "src": "832:8:49", + "referencedDeclaration": 13199, + "src": "1619:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1450,12 +3868,12 @@ }, { "argumentTypes": null, - "id": 10299, - "name": "_value", + "id": 13221, + "name": "newAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10292, - "src": "842:6:49", + "referencedDeclaration": 13205, + "src": "1628:12:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1475,32 +3893,32 @@ ], "expression": { "argumentTypes": null, - "id": 10296, - "name": "_token", + "id": 13218, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10288, - "src": "817:6:49", + "referencedDeclaration": 13197, + "src": "1605:5:61", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 10297, + "id": 13219, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 10202, - "src": "817:14:49", + "referencedDeclaration": 13055, + "src": "1605:13:61", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 10300, + "id": 13222, "isConstant": false, "isLValue": false, "isPure": false, @@ -1508,7 +3926,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "817:32:49", + "src": "1605:36:61", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1522,21 +3940,21 @@ "typeString": "bool" } ], - "id": 10295, + "id": 13217, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "809:7:49", + "referencedDeclaration": 13444, + "src": "1597:7:61", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10301, + "id": 13223, "isConstant": false, "isLValue": false, "isPure": false, @@ -1544,53 +3962,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "809:41:49", + "src": "1597:45:61", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10302, + "id": 13224, "nodeType": "ExpressionStatement", - "src": "809:41:49" + "src": "1597:45:61" } ] }, "documentation": null, - "id": 10304, + "id": 13226, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "safeApprove", + "name": "safeDecreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 10293, + "id": 13202, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10288, - "name": "_token", + "id": 13197, + "name": "token", "nodeType": "VariableDeclaration", - "scope": 10304, - "src": "729:12:49", + "scope": 13226, + "src": "1440:12:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 10287, - "name": "ERC20", + "id": 13196, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "729:5:49", + "referencedDeclaration": 13083, + "src": "1440:6:61", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -1598,11 +4016,11 @@ }, { "constant": false, - "id": 10290, - "name": "_spender", + "id": 13199, + "name": "spender", "nodeType": "VariableDeclaration", - "scope": 10304, - "src": "747:16:49", + "scope": 13226, + "src": "1458:15:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1610,10 +4028,10 @@ "typeString": "address" }, "typeName": { - "id": 10289, + "id": 13198, "name": "address", "nodeType": "ElementaryTypeName", - "src": "747:7:49", + "src": "1458:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1624,11 +4042,11 @@ }, { "constant": false, - "id": 10292, - "name": "_value", + "id": 13201, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 10304, - "src": "769:14:49", + "scope": 13226, + "src": "1479:13:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1636,10 +4054,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10291, + "id": 13200, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "769:7:49", + "src": "1479:7:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1649,27 +4067,27 @@ "visibility": "internal" } ], - "src": "723:64:49" + "src": "1434:62:61" }, "payable": false, "returnParameters": { - "id": 10294, + "id": 13203, "nodeType": "ParameterList", "parameters": [], - "src": "803:0:49" + "src": "1512:0:61" }, - "scope": 10305, - "src": "703:152:49", + "scope": 13227, + "src": "1404:243:61", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 10306, - "src": "346:511:49" + "scope": 13228, + "src": "353:1296:61" } ], - "src": "0:858:49" + "src": "0:1650:61" }, "compiler": { "name": "solc", @@ -1677,5 +4095,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.355Z" + "updatedAt": "2018-12-06T13:14:33.254Z" } \ No newline at end of file diff --git a/build/contracts/SafeMath.json b/build/contracts/SafeMath.json index e43fda52..d24652d5 100644 --- a/build/contracts/SafeMath.json +++ b/build/contracts/SafeMath.json @@ -1,24 +1,24 @@ { "contractName": "SafeMath", "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820bd385704a7cdeeee49ba5e7c584a3197d8d330e17874d1f7883d1a03624e51460029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820bd385704a7cdeeee49ba5e7c584a3197d8d330e17874d1f7883d1a03624e51460029", - "sourceMap": "117:1251:44:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "117:1251:44:-;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks that throw on error\n */\nlibrary SafeMath {\n\n /**\n * @dev Multiplies two numbers, throws on overflow.\n */\n function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) {\n // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\n if (_a == 0) {\n return 0;\n }\n\n c = _a * _b;\n assert(c / _a == _b);\n return c;\n }\n\n /**\n * @dev Integer division of two numbers, truncating the quotient.\n */\n function div(uint256 _a, uint256 _b) internal pure returns (uint256) {\n // assert(_b > 0); // Solidity automatically throws when dividing by 0\n // uint256 c = _a / _b;\n // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold\n return _a / _b;\n }\n\n /**\n * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\n */\n function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {\n assert(_b <= _a);\n return _a - _b;\n }\n\n /**\n * @dev Adds two numbers, throws on overflow.\n */\n function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) {\n c = _a + _b;\n assert(c >= _a);\n return c;\n }\n}\n", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582064d99d1cdb4b481decbb52e4d196521112e29781c9ec68ef1cbb7a409e39d59f0029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582064d99d1cdb4b481decbb52e4d196521112e29781c9ec68ef1cbb7a409e39d59f0029", + "sourceMap": "117:1531:54:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "117:1531:54:-;;;;;;;;", + "source": "pragma solidity ^0.4.24;\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks that revert on error\n */\nlibrary SafeMath {\n\n /**\n * @dev Multiplies two numbers, reverts on overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b);\n\n return c;\n }\n\n /**\n * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0); // Solidity only automatically asserts when dividing by 0\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Adds two numbers, reverts on overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a);\n\n return c;\n }\n\n /**\n * @dev Divides two numbers and returns the remainder (unsigned integer modulo),\n * reverts when dividing by zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b != 0);\n return a % b;\n }\n}\n", "sourcePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "ast": { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 10048 + 12388 ] }, - "id": 10049, + "id": 12389, "nodeType": "SourceUnit", "nodes": [ { - "id": 9956, + "id": 12262, "literals": [ "solidity", "^", @@ -26,26 +26,26 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:44" + "src": "0:24:54" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", - "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error", + "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", "fullyImplemented": true, - "id": 10048, + "id": 12388, "linearizedBaseContracts": [ - 10048 + 12388 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 9988, + "id": 12294, "nodeType": "Block", - "src": "274:309:44", + "src": "271:314:54", "statements": [ { "condition": { @@ -54,19 +54,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9967, + "id": 12273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9965, - "name": "_a", + "id": 12271, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9958, - "src": "489:2:44", + "referencedDeclaration": 12264, + "src": "486:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -77,14 +77,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9966, + "id": 12272, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "495:1:44", + "src": "491:1:54", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -92,33 +92,33 @@ }, "value": "0" }, - "src": "489:7:44", + "src": "486:6:54", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9971, + "id": 12277, "nodeType": "IfStatement", - "src": "485:36:44", + "src": "482:35:54", "trueBody": { - "id": 9970, + "id": 12276, "nodeType": "Block", - "src": "498:23:44", + "src": "494:23:54", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 9968, + "id": 12274, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "513:1:44", + "src": "509:1:54", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -126,91 +126,94 @@ }, "value": "0" }, - "functionReturnParameters": 9964, - "id": 9969, + "functionReturnParameters": 12270, + "id": 12275, "nodeType": "Return", - "src": "506:8:44" + "src": "502:8:54" } ] } }, { - "expression": { + "assignments": [ + 12279 + ], + "declarations": [ + { + "constant": false, + "id": 12279, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 12295, + "src": "523:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "523:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12283, + "initialValue": { "argumentTypes": null, - "id": 9976, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "id": 9972, - "name": "c", + "id": 12280, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9963, - "src": "527:1:44", + "referencedDeclaration": 12264, + "src": "535:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9973, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9958, - "src": "531:2:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9974, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9960, - "src": "536:2:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "531:7:44", + "id": 12281, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12266, + "src": "539:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "527:11:44", + "src": "535:5:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9977, - "nodeType": "ExpressionStatement", - "src": "527:11:44" + "nodeType": "VariableDeclarationStatement", + "src": "523:17:54" }, { "expression": { @@ -222,7 +225,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9983, + "id": 12289, "isConstant": false, "isLValue": false, "isPure": false, @@ -233,19 +236,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9981, + "id": 12287, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9979, + "id": 12285, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9963, - "src": "551:1:44", + "referencedDeclaration": 12279, + "src": "554:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -255,18 +258,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 9980, - "name": "_a", + "id": 12286, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9958, - "src": "555:2:44", + "referencedDeclaration": 12264, + "src": "558:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "551:6:44", + "src": "554:5:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -276,18 +279,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 9982, - "name": "_b", + "id": 12288, + "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9960, - "src": "561:2:44", + "referencedDeclaration": 12266, + "src": "563:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "551:12:44", + "src": "554:10:54", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -301,18 +304,21 @@ "typeString": "bool" } ], - "id": 9978, - "name": "assert", + "id": 12284, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10477, - "src": "544:6:44", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "546:7:54", "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9984, + "id": 12290, "isConstant": false, "isLValue": false, "isPure": false, @@ -320,39 +326,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "544:20:44", + "src": "546:19:54", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9985, + "id": 12291, "nodeType": "ExpressionStatement", - "src": "544:20:44" + "src": "546:19:54" }, { "expression": { "argumentTypes": null, - "id": 9986, + "id": 12292, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9963, - "src": "577:1:44", + "referencedDeclaration": 12279, + "src": "579:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 9964, - "id": 9987, + "functionReturnParameters": 12270, + "id": 12293, "nodeType": "Return", - "src": "570:8:44" + "src": "572:8:54" } ] }, - "documentation": "@dev Multiplies two numbers, throws on overflow.", - "id": 9989, + "documentation": "@dev Multiplies two numbers, reverts on overflow.", + "id": 12295, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -360,16 +366,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 9961, + "id": 12267, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9958, - "name": "_a", + "id": 12264, + "name": "a", "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "216:10:44", + "scope": 12295, + "src": "217:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -377,10 +383,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9957, + "id": 12263, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "216:7:44", + "src": "217:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -391,11 +397,11 @@ }, { "constant": false, - "id": 9960, - "name": "_b", + "id": 12266, + "name": "b", "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "228:10:44", + "scope": 12295, + "src": "228:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -403,10 +409,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9959, + "id": 12265, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "228:7:44", + "src": "228:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -416,20 +422,20 @@ "visibility": "internal" } ], - "src": "215:24:44" + "src": "216:22:54" }, "payable": false, "returnParameters": { - "id": 9964, + "id": 12270, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9963, - "name": "c", + "id": 12269, + "name": "", "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "263:9:44", + "scope": 12295, + "src": "262:7:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -437,10 +443,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9962, + "id": 12268, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "263:7:44", + "src": "262:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -450,40 +456,166 @@ "visibility": "internal" } ], - "src": "262:11:44" + "src": "261:9:54" }, - "scope": 10048, - "src": "203:380:44", + "scope": 12388, + "src": "204:381:54", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10002, + "id": 12318, "nodeType": "Block", - "src": "734:214:44", + "src": "762:203:54", "statements": [ { "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12305, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12299, + "src": "776:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "780:1:54", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "776:5:54", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12304, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "768:7:54", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "768:14:54", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12309, + "nodeType": "ExpressionStatement", + "src": "768:14:54" + }, + { + "assignments": [ + 12311 + ], + "declarations": [ + { + "constant": false, + "id": 12311, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 12319, + "src": "846:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "846:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12315, + "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10000, + "id": 12314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9998, - "name": "_a", + "id": 12312, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9991, - "src": "936:2:44", + "referencedDeclaration": 12297, + "src": "858:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -493,32 +625,49 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 9999, - "name": "_b", + "id": 12313, + "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9993, - "src": "941:2:44", + "referencedDeclaration": 12299, + "src": "862:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "936:7:44", + "src": "858:5:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "846:17:54" + }, + { + "expression": { + "argumentTypes": null, + "id": 12316, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12311, + "src": "959:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 9997, - "id": 10001, + "functionReturnParameters": 12303, + "id": 12317, "nodeType": "Return", - "src": "929:14:44" + "src": "952:8:54" } ] }, - "documentation": "@dev Integer division of two numbers, truncating the quotient.", - "id": 10003, + "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", + "id": 12319, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -526,16 +675,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 9994, + "id": 12300, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9991, - "name": "_a", + "id": 12297, + "name": "a", "nodeType": "VariableDeclaration", - "scope": 10003, - "src": "678:10:44", + "scope": 12319, + "src": "708:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -543,10 +692,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9990, + "id": 12296, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "678:7:44", + "src": "708:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -557,11 +706,11 @@ }, { "constant": false, - "id": 9993, - "name": "_b", + "id": 12299, + "name": "b", "nodeType": "VariableDeclaration", - "scope": 10003, - "src": "690:10:44", + "scope": 12319, + "src": "719:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -569,10 +718,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9992, + "id": 12298, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "690:7:44", + "src": "719:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -582,20 +731,20 @@ "visibility": "internal" } ], - "src": "677:24:44" + "src": "707:22:54" }, "payable": false, "returnParameters": { - "id": 9997, + "id": 12303, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9996, + "id": 12302, "name": "", "nodeType": "VariableDeclaration", - "scope": 10003, - "src": "725:7:44", + "scope": 12319, + "src": "753:7:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -603,10 +752,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9995, + "id": 12301, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "725:7:44", + "src": "753:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -616,19 +765,19 @@ "visibility": "internal" } ], - "src": "724:9:44" + "src": "752:9:54" }, - "scope": 10048, - "src": "665:283:44", + "scope": 12388, + "src": "695:270:54", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10022, + "id": 12342, "nodeType": "Block", - "src": "1129:47:44", + "src": "1145:64:54", "statements": [ { "expression": { @@ -640,19 +789,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10015, + "id": 12331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10013, - "name": "_b", + "id": 12329, + "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10007, - "src": "1142:2:44", + "referencedDeclaration": 12323, + "src": "1159:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -662,18 +811,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 10014, - "name": "_a", + "id": 12330, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10005, - "src": "1148:2:44", + "referencedDeclaration": 12321, + "src": "1164:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1142:8:44", + "src": "1159:6:54", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -687,18 +836,21 @@ "typeString": "bool" } ], - "id": 10012, - "name": "assert", + "id": 12328, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10477, - "src": "1135:6:44", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1151:7:54", "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10016, + "id": 12332, "isConstant": false, "isLValue": false, "isPure": false, @@ -706,36 +858,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1135:16:44", + "src": "1151:15:54", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10017, + "id": 12333, "nodeType": "ExpressionStatement", - "src": "1135:16:44" + "src": "1151:15:54" }, { - "expression": { + "assignments": [ + 12335 + ], + "declarations": [ + { + "constant": false, + "id": 12335, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 12343, + "src": "1172:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1172:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12339, + "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10020, + "id": 12338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10018, - "name": "_a", + "id": 12336, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10005, - "src": "1164:2:44", + "referencedDeclaration": 12321, + "src": "1184:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -745,32 +929,49 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 10019, - "name": "_b", + "id": 12337, + "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10007, - "src": "1169:2:44", + "referencedDeclaration": 12323, + "src": "1188:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1164:7:44", + "src": "1184:5:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1172:17:54" + }, + { + "expression": { + "argumentTypes": null, + "id": 12340, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12335, + "src": "1203:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 10011, - "id": 10021, + "functionReturnParameters": 12327, + "id": 12341, "nodeType": "Return", - "src": "1157:14:44" + "src": "1196:8:54" } ] }, - "documentation": "@dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).", - "id": 10023, + "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", + "id": 12343, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -778,16 +979,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 10008, + "id": 12324, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10005, - "name": "_a", + "id": 12321, + "name": "a", "nodeType": "VariableDeclaration", - "scope": 10023, - "src": "1073:10:44", + "scope": 12343, + "src": "1091:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -795,10 +996,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10004, + "id": 12320, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1073:7:44", + "src": "1091:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -809,11 +1010,11 @@ }, { "constant": false, - "id": 10007, - "name": "_b", + "id": 12323, + "name": "b", "nodeType": "VariableDeclaration", - "scope": 10023, - "src": "1085:10:44", + "scope": 12343, + "src": "1102:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -821,10 +1022,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10006, + "id": 12322, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1085:7:44", + "src": "1102:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -834,20 +1035,20 @@ "visibility": "internal" } ], - "src": "1072:24:44" + "src": "1090:22:54" }, "payable": false, "returnParameters": { - "id": 10011, + "id": 12327, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10010, + "id": 12326, "name": "", "nodeType": "VariableDeclaration", - "scope": 10023, - "src": "1120:7:44", + "scope": 12343, + "src": "1136:7:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -855,10 +1056,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10009, + "id": 12325, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1120:7:44", + "src": "1136:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -868,97 +1069,100 @@ "visibility": "internal" } ], - "src": "1119:9:44" + "src": "1135:9:54" }, - "scope": 10048, - "src": "1060:116:44", + "scope": 12388, + "src": "1078:131:54", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10046, + "id": 12366, "nodeType": "Block", - "src": "1309:57:44", + "src": "1339:64:54", "statements": [ { - "expression": { + "assignments": [ + 12353 + ], + "declarations": [ + { + "constant": false, + "id": 12353, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 12367, + "src": "1345:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12352, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1345:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12357, + "initialValue": { "argumentTypes": null, - "id": 10036, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "id": 10032, - "name": "c", + "id": 12354, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10030, - "src": "1315:1:44", + "referencedDeclaration": 12345, + "src": "1357:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10033, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "1319:2:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 10034, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10027, - "src": "1324:2:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1319:7:44", + "id": 12355, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12347, + "src": "1361:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1315:11:44", + "src": "1357:5:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 10037, - "nodeType": "ExpressionStatement", - "src": "1315:11:44" + "nodeType": "VariableDeclarationStatement", + "src": "1345:17:54" }, { "expression": { @@ -970,19 +1174,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10041, + "id": 12361, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10039, + "id": 12359, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10030, - "src": "1339:1:44", + "referencedDeclaration": 12353, + "src": "1376:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -992,18 +1196,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 10040, - "name": "_a", + "id": 12360, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "1344:2:44", + "referencedDeclaration": 12345, + "src": "1381:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1339:7:44", + "src": "1376:6:54", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1017,18 +1221,21 @@ "typeString": "bool" } ], - "id": 10038, - "name": "assert", + "id": 12358, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10477, - "src": "1332:6:44", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1368:7:54", "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10042, + "id": 12362, "isConstant": false, "isLValue": false, "isPure": false, @@ -1036,39 +1243,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1332:15:44", + "src": "1368:15:54", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10043, + "id": 12363, "nodeType": "ExpressionStatement", - "src": "1332:15:44" + "src": "1368:15:54" }, { "expression": { "argumentTypes": null, - "id": 10044, + "id": 12364, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10030, - "src": "1360:1:44", + "referencedDeclaration": 12353, + "src": "1397:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 10031, - "id": 10045, + "functionReturnParameters": 12351, + "id": 12365, "nodeType": "Return", - "src": "1353:8:44" + "src": "1390:8:54" } ] }, - "documentation": "@dev Adds two numbers, throws on overflow.", - "id": 10047, + "documentation": "@dev Adds two numbers, reverts on overflow.", + "id": 12367, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1076,16 +1283,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 10028, + "id": 12348, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10025, - "name": "_a", + "id": 12345, + "name": "a", "nodeType": "VariableDeclaration", - "scope": 10047, - "src": "1251:10:44", + "scope": 12367, + "src": "1285:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1093,10 +1300,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10024, + "id": 12344, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1251:7:44", + "src": "1285:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1107,11 +1314,11 @@ }, { "constant": false, - "id": 10027, - "name": "_b", + "id": 12347, + "name": "b", "nodeType": "VariableDeclaration", - "scope": 10047, - "src": "1263:10:44", + "scope": 12367, + "src": "1296:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1119,10 +1326,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10026, + "id": 12346, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1263:7:44", + "src": "1296:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1132,20 +1339,20 @@ "visibility": "internal" } ], - "src": "1250:24:44" + "src": "1284:22:54" }, "payable": false, "returnParameters": { - "id": 10031, + "id": 12351, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10030, - "name": "c", + "id": 12350, + "name": "", "nodeType": "VariableDeclaration", - "scope": 10047, - "src": "1298:9:44", + "scope": 12367, + "src": "1330:7:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1153,10 +1360,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10029, + "id": 12349, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1298:7:44", + "src": "1330:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1166,81 +1373,341 @@ "visibility": "internal" } ], - "src": "1297:11:44" + "src": "1329:9:54" }, - "scope": 10048, - "src": "1238:128:44", + "scope": 12388, + "src": "1272:131:54", "stateMutability": "pure", "superFunction": null, "visibility": "internal" - } - ], - "scope": 10049, - "src": "117:1251:44" - } - ], - "src": "0:1369:44" - }, - "legacyAST": { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "exportedSymbols": { - "SafeMath": [ - 10048 - ] - }, - "id": 10049, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9956, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:44" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error", - "fullyImplemented": true, - "id": 10048, - "linearizedBaseContracts": [ - 10048 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ + }, { "body": { - "id": 9988, + "id": 12386, "nodeType": "Block", - "src": "274:309:44", + "src": "1602:44:54", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9965, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9958, - "src": "489:2:44", + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12377, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12371, + "src": "1616:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12378, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1621:1:54", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1616:6:54", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1608:7:54", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1608:15:54", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12381, + "nodeType": "ExpressionStatement", + "src": "1608:15:54" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12382, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12369, + "src": "1636:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 12383, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12371, + "src": "1640:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1636:5:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12375, + "id": 12385, + "nodeType": "Return", + "src": "1629:12:54" + } + ] + }, + "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", + "id": 12387, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12369, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 12387, + "src": "1548:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1548:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12371, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 12387, + "src": "1559:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1559:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1547:22:54" + }, + "payable": false, + "returnParameters": { + "id": 12375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12374, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12387, + "src": "1593:7:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1593:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1592:9:54" + }, + "scope": 12388, + "src": "1535:111:54", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 12389, + "src": "117:1531:54" + } + ], + "src": "0:1649:54" + }, + "legacyAST": { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 12388 + ] + }, + "id": 12389, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12262, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:54" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", + "fullyImplemented": true, + "id": 12388, + "linearizedBaseContracts": [ + 12388 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 12294, + "nodeType": "Block", + "src": "271:314:54", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12271, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12264, + "src": "486:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1251,14 +1718,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9966, + "id": 12272, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "495:1:44", + "src": "491:1:54", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1266,33 +1733,33 @@ }, "value": "0" }, - "src": "489:7:44", + "src": "486:6:54", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9971, + "id": 12277, "nodeType": "IfStatement", - "src": "485:36:44", + "src": "482:35:54", "trueBody": { - "id": 9970, + "id": 12276, "nodeType": "Block", - "src": "498:23:44", + "src": "494:23:54", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 9968, + "id": 12274, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "513:1:44", + "src": "509:1:54", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1300,92 +1767,659 @@ }, "value": "0" }, - "functionReturnParameters": 9964, - "id": 9969, + "functionReturnParameters": 12270, + "id": 12275, "nodeType": "Return", - "src": "506:8:44" + "src": "502:8:54" + } + ] + } + }, + { + "assignments": [ + 12279 + ], + "declarations": [ + { + "constant": false, + "id": 12279, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 12295, + "src": "523:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "523:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12283, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12280, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12264, + "src": "535:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 12281, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12266, + "src": "539:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "535:5:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "523:17:54" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12285, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12279, + "src": "554:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 12286, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12264, + "src": "558:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:5:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 12288, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12266, + "src": "563:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:10:54", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12284, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "546:7:54", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "546:19:54", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12291, + "nodeType": "ExpressionStatement", + "src": "546:19:54" + }, + { + "expression": { + "argumentTypes": null, + "id": 12292, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12279, + "src": "579:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12270, + "id": 12293, + "nodeType": "Return", + "src": "572:8:54" + } + ] + }, + "documentation": "@dev Multiplies two numbers, reverts on overflow.", + "id": 12295, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12264, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 12295, + "src": "217:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12263, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "217:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12266, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 12295, + "src": "228:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "228:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "216:22:54" + }, + "payable": false, + "returnParameters": { + "id": 12270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12269, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12295, + "src": "262:7:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "262:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "261:9:54" + }, + "scope": 12388, + "src": "204:381:54", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12318, + "nodeType": "Block", + "src": "762:203:54", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12305, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12299, + "src": "776:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "780:1:54", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "776:5:54", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12304, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "768:7:54", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } - ] - } + }, + "id": 12308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "768:14:54", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12309, + "nodeType": "ExpressionStatement", + "src": "768:14:54" }, { - "expression": { + "assignments": [ + 12311 + ], + "declarations": [ + { + "constant": false, + "id": 12311, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 12319, + "src": "846:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "846:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12315, + "initialValue": { "argumentTypes": null, - "id": 9976, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "id": 9972, - "name": "c", + "id": 12312, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9963, - "src": "527:1:44", + "referencedDeclaration": 12297, + "src": "858:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9973, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9958, - "src": "531:2:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9974, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9960, - "src": "536:2:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "531:7:44", + "id": 12313, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12299, + "src": "862:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "527:11:44", + "src": "858:5:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9977, - "nodeType": "ExpressionStatement", - "src": "527:11:44" + "nodeType": "VariableDeclarationStatement", + "src": "846:17:54" + }, + { + "expression": { + "argumentTypes": null, + "id": 12316, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12311, + "src": "959:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12303, + "id": 12317, + "nodeType": "Return", + "src": "952:8:54" + } + ] + }, + "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", + "id": 12319, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12297, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 12319, + "src": "708:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12296, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "708:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 12299, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 12319, + "src": "719:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12298, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "719:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "707:22:54" + }, + "payable": false, + "returnParameters": { + "id": 12303, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12302, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12319, + "src": "753:7:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12301, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "753:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:9:54" + }, + "scope": 12388, + "src": "695:270:54", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12342, + "nodeType": "Block", + "src": "1145:64:54", + "statements": [ { "expression": { "argumentTypes": null, @@ -1396,72 +2430,40 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9983, + "id": 12331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9979, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9963, - "src": "551:1:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9980, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9958, - "src": "555:2:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "551:6:44", + "id": 12329, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12323, + "src": "1159:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "==", + "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 9982, - "name": "_b", + "id": 12330, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9960, - "src": "561:2:44", + "referencedDeclaration": 12321, + "src": "1164:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "551:12:44", + "src": "1159:6:54", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1475,75 +2477,159 @@ "typeString": "bool" } ], - "id": 9978, - "name": "assert", + "id": 12328, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10477, - "src": "544:6:44", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1151:7:54", "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "544:20:44", + "id": 12332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1151:15:54", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12333, + "nodeType": "ExpressionStatement", + "src": "1151:15:54" + }, + { + "assignments": [ + 12335 + ], + "declarations": [ + { + "constant": false, + "id": 12335, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 12343, + "src": "1172:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1172:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12339, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12336, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12321, + "src": "1184:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 12337, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12323, + "src": "1188:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1184:5:54", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 9985, - "nodeType": "ExpressionStatement", - "src": "544:20:44" + "nodeType": "VariableDeclarationStatement", + "src": "1172:17:54" }, { "expression": { "argumentTypes": null, - "id": 9986, + "id": 12340, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9963, - "src": "577:1:44", + "referencedDeclaration": 12335, + "src": "1203:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 9964, - "id": 9987, + "functionReturnParameters": 12327, + "id": 12341, "nodeType": "Return", - "src": "570:8:44" + "src": "1196:8:54" } ] }, - "documentation": "@dev Multiplies two numbers, throws on overflow.", - "id": 9989, + "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", + "id": 12343, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "mul", + "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 9961, + "id": 12324, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9958, - "name": "_a", + "id": 12321, + "name": "a", "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "216:10:44", + "scope": 12343, + "src": "1091:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1551,10 +2637,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9957, + "id": 12320, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "216:7:44", + "src": "1091:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1565,11 +2651,11 @@ }, { "constant": false, - "id": 9960, - "name": "_b", + "id": 12323, + "name": "b", "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "228:10:44", + "scope": 12343, + "src": "1102:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1577,10 +2663,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9959, + "id": 12322, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "228:7:44", + "src": "1102:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1590,20 +2676,20 @@ "visibility": "internal" } ], - "src": "215:24:44" + "src": "1090:22:54" }, "payable": false, "returnParameters": { - "id": 9964, + "id": 12327, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9963, - "name": "c", + "id": 12326, + "name": "", "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "263:9:44", + "scope": 12343, + "src": "1136:7:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1611,10 +2697,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9962, + "id": 12325, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "263:7:44", + "src": "1136:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1624,186 +2710,101 @@ "visibility": "internal" } ], - "src": "262:11:44" + "src": "1135:9:54" }, - "scope": 10048, - "src": "203:380:44", + "scope": 12388, + "src": "1078:131:54", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10002, + "id": 12366, "nodeType": "Block", - "src": "734:214:44", + "src": "1339:64:54", "statements": [ { - "expression": { + "assignments": [ + 12353 + ], + "declarations": [ + { + "constant": false, + "id": 12353, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 12367, + "src": "1345:9:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12352, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1345:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12357, + "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10000, + "id": 12356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9998, - "name": "_a", + "id": 12354, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9991, - "src": "936:2:44", + "referencedDeclaration": 12345, + "src": "1357:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "/", + "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 9999, - "name": "_b", + "id": 12355, + "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9993, - "src": "941:2:44", + "referencedDeclaration": 12347, + "src": "1361:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "936:7:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9997, - "id": 10001, - "nodeType": "Return", - "src": "929:14:44" - } - ] - }, - "documentation": "@dev Integer division of two numbers, truncating the quotient.", - "id": 10003, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9994, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9991, - "name": "_a", - "nodeType": "VariableDeclaration", - "scope": 10003, - "src": "678:10:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "678:7:44", + "src": "1357:5:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" + "nodeType": "VariableDeclarationStatement", + "src": "1345:17:54" }, - { - "constant": false, - "id": 9993, - "name": "_b", - "nodeType": "VariableDeclaration", - "scope": 10003, - "src": "690:10:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9992, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "690:7:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "677:24:44" - }, - "payable": false, - "returnParameters": { - "id": 9997, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9996, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10003, - "src": "725:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9995, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "725:7:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "724:9:44" - }, - "scope": 10048, - "src": "665:283:44", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10022, - "nodeType": "Block", - "src": "1129:47:44", - "statements": [ { "expression": { "argumentTypes": null, @@ -1814,40 +2815,40 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10015, + "id": 12361, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10013, - "name": "_b", + "id": 12359, + "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10007, - "src": "1142:2:44", + "referencedDeclaration": 12353, + "src": "1376:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "<=", + "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 10014, - "name": "_a", + "id": 12360, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10005, - "src": "1148:2:44", + "referencedDeclaration": 12345, + "src": "1381:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1142:8:44", + "src": "1376:6:54", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1861,18 +2862,21 @@ "typeString": "bool" } ], - "id": 10012, - "name": "assert", + "id": 12358, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10477, - "src": "1135:6:44", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1368:7:54", "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10016, + "id": 12362, "isConstant": false, "isLValue": false, "isPure": false, @@ -1880,88 +2884,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1135:16:44", + "src": "1368:15:54", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10017, + "id": 12363, "nodeType": "ExpressionStatement", - "src": "1135:16:44" + "src": "1368:15:54" }, { "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10018, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10005, - "src": "1164:2:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 10019, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10007, - "src": "1169:2:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1164:7:44", + "id": 12364, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12353, + "src": "1397:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 10011, - "id": 10021, + "functionReturnParameters": 12351, + "id": 12365, "nodeType": "Return", - "src": "1157:14:44" + "src": "1390:8:54" } ] }, - "documentation": "@dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).", - "id": 10023, + "documentation": "@dev Adds two numbers, reverts on overflow.", + "id": 12367, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "sub", + "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 10008, + "id": 12348, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10005, - "name": "_a", + "id": 12345, + "name": "a", "nodeType": "VariableDeclaration", - "scope": 10023, - "src": "1073:10:44", + "scope": 12367, + "src": "1285:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1969,10 +2941,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10004, + "id": 12344, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1073:7:44", + "src": "1285:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1983,11 +2955,11 @@ }, { "constant": false, - "id": 10007, - "name": "_b", + "id": 12347, + "name": "b", "nodeType": "VariableDeclaration", - "scope": 10023, - "src": "1085:10:44", + "scope": 12367, + "src": "1296:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1995,10 +2967,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10006, + "id": 12346, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1085:7:44", + "src": "1296:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2008,20 +2980,20 @@ "visibility": "internal" } ], - "src": "1072:24:44" + "src": "1284:22:54" }, "payable": false, "returnParameters": { - "id": 10011, + "id": 12351, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10010, + "id": 12350, "name": "", "nodeType": "VariableDeclaration", - "scope": 10023, - "src": "1120:7:44", + "scope": 12367, + "src": "1330:7:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2029,10 +3001,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10009, + "id": 12349, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1120:7:44", + "src": "1330:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2042,98 +3014,20 @@ "visibility": "internal" } ], - "src": "1119:9:44" + "src": "1329:9:54" }, - "scope": 10048, - "src": "1060:116:44", + "scope": 12388, + "src": "1272:131:54", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 10046, + "id": 12386, "nodeType": "Block", - "src": "1309:57:44", + "src": "1602:44:54", "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10032, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10030, - "src": "1315:1:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10033, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "1319:2:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 10034, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10027, - "src": "1324:2:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1319:7:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1315:11:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10037, - "nodeType": "ExpressionStatement", - "src": "1315:11:44" - }, { "expression": { "argumentTypes": null, @@ -2144,40 +3038,45 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 10041, + "id": 12379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 10039, - "name": "c", + "id": 12377, + "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10030, - "src": "1339:1:44", + "referencedDeclaration": 12371, + "src": "1616:1:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": ">=", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 10040, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "1344:2:44", + "hexValue": "30", + "id": 12378, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1621:1:54", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "1339:7:44", + "src": "1616:6:54", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2191,18 +3090,21 @@ "typeString": "bool" } ], - "id": 10038, - "name": "assert", + "id": 12376, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10477, - "src": "1332:6:44", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1608:7:54", "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 10042, + "id": 12380, "isConstant": false, "isLValue": false, "isPure": false, @@ -2210,56 +3112,88 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1332:15:44", + "src": "1608:15:54", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 10043, + "id": 12381, "nodeType": "ExpressionStatement", - "src": "1332:15:44" + "src": "1608:15:54" }, { "expression": { "argumentTypes": null, - "id": 10044, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10030, - "src": "1360:1:44", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12382, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12369, + "src": "1636:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 12383, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12371, + "src": "1640:1:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1636:5:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 10031, - "id": 10045, + "functionReturnParameters": 12375, + "id": 12385, "nodeType": "Return", - "src": "1353:8:44" + "src": "1629:12:54" } ] }, - "documentation": "@dev Adds two numbers, throws on overflow.", - "id": 10047, + "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", + "id": 12387, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "add", + "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 10028, + "id": 12372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10025, - "name": "_a", + "id": 12369, + "name": "a", "nodeType": "VariableDeclaration", - "scope": 10047, - "src": "1251:10:44", + "scope": 12387, + "src": "1548:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2267,10 +3201,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10024, + "id": 12368, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1251:7:44", + "src": "1548:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2281,11 +3215,11 @@ }, { "constant": false, - "id": 10027, - "name": "_b", + "id": 12371, + "name": "b", "nodeType": "VariableDeclaration", - "scope": 10047, - "src": "1263:10:44", + "scope": 12387, + "src": "1559:9:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2293,10 +3227,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10026, + "id": 12370, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1263:7:44", + "src": "1559:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2306,20 +3240,20 @@ "visibility": "internal" } ], - "src": "1250:24:44" + "src": "1547:22:54" }, "payable": false, "returnParameters": { - "id": 10031, + "id": 12375, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 10030, - "name": "c", + "id": 12374, + "name": "", "nodeType": "VariableDeclaration", - "scope": 10047, - "src": "1298:9:44", + "scope": 12387, + "src": "1593:7:54", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2327,10 +3261,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10029, + "id": 12373, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1298:7:44", + "src": "1593:7:54", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2340,20 +3274,20 @@ "visibility": "internal" } ], - "src": "1297:11:44" + "src": "1592:9:54" }, - "scope": 10048, - "src": "1238:128:44", + "scope": 12388, + "src": "1535:111:54", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 10049, - "src": "117:1251:44" + "scope": 12389, + "src": "117:1531:54" } ], - "src": "0:1369:44" + "src": "0:1649:54" }, "compiler": { "name": "solc", @@ -2361,5 +3295,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.352Z" + "updatedAt": "2018-12-06T13:14:33.236Z" } \ No newline at end of file diff --git a/build/contracts/Secondary.json b/build/contracts/Secondary.json new file mode 100644 index 00000000..704e5c2e --- /dev/null +++ b/build/contracts/Secondary.json @@ -0,0 +1,1636 @@ +{ + "contractName": "Secondary", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.24;\n\n/**\n * @title Secondary\n * @dev A Secondary contract can only be used by its primary account (the one that created it)\n */\ncontract Secondary {\n address private _primary;\n\n event PrimaryTransferred(\n address recipient\n );\n\n /**\n * @dev Sets the primary account to the one that is creating the Secondary contract.\n */\n constructor() internal {\n _primary = msg.sender;\n emit PrimaryTransferred(_primary);\n }\n\n /**\n * @dev Reverts if called from any account other than the primary.\n */\n modifier onlyPrimary() {\n require(msg.sender == _primary);\n _;\n }\n\n /**\n * @return the address of the primary.\n */\n function primary() public view returns (address) {\n return _primary;\n }\n \n /**\n * @dev Transfers contract to a new primary.\n * @param recipient The address of new primary. \n */\n function transferPrimary(address recipient) public onlyPrimary {\n require(recipient != address(0));\n _primary = recipient;\n emit PrimaryTransferred(_primary);\n }\n}\n", + "sourcePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "ast": { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "exportedSymbols": { + "Secondary": [ + 12453 + ] + }, + "id": 12454, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12390, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:55" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title Secondary\n@dev A Secondary contract can only be used by its primary account (the one that created it)", + "fullyImplemented": true, + "id": 12453, + "linearizedBaseContracts": [ + 12453 + ], + "name": "Secondary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 12392, + "name": "_primary", + "nodeType": "VariableDeclaration", + "scope": 12453, + "src": "172:24:55", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12391, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "172:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 12396, + "name": "PrimaryTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 12395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12394, + "indexed": false, + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 12396, + "src": "231:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "231:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "225:27:55" + }, + "src": "201:52:55" + }, + { + "body": { + "id": 12408, + "nodeType": "Block", + "src": "379:71:55", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12399, + "name": "_primary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12392, + "src": "385:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12400, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "396:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "396:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "385:21:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12403, + "nodeType": "ExpressionStatement", + "src": "385:21:55" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12405, + "name": "_primary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12392, + "src": "436:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12404, + "name": "PrimaryTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12396, + "src": "417:18:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "417:28:55", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12407, + "nodeType": "EmitStatement", + "src": "412:33:55" + } + ] + }, + "documentation": "@dev Sets the primary account to the one that is creating the Secondary contract.", + "id": 12409, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12397, + "nodeType": "ParameterList", + "parameters": [], + "src": "367:2:55" + }, + "payable": false, + "returnParameters": { + "id": 12398, + "nodeType": "ParameterList", + "parameters": [], + "src": "379:0:55" + }, + "scope": 12453, + "src": "356:94:55", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12419, + "nodeType": "Block", + "src": "558:49:55", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "572:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "572:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 12414, + "name": "_primary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12392, + "src": "586:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "572:22:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12411, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "564:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "564:31:55", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12417, + "nodeType": "ExpressionStatement", + "src": "564:31:55" + }, + { + "id": 12418, + "nodeType": "PlaceholderStatement", + "src": "601:1:55" + } + ] + }, + "documentation": "@dev Reverts if called from any account other than the primary.", + "id": 12420, + "name": "onlyPrimary", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 12410, + "nodeType": "ParameterList", + "parameters": [], + "src": "555:2:55" + }, + "src": "535:72:55", + "visibility": "internal" + }, + { + "body": { + "id": 12427, + "nodeType": "Block", + "src": "713:26:55", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12425, + "name": "_primary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12392, + "src": "726:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 12424, + "id": 12426, + "nodeType": "Return", + "src": "719:15:55" + } + ] + }, + "documentation": "@return the address of the primary.", + "id": 12428, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "primary", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12421, + "nodeType": "ParameterList", + "parameters": [], + "src": "680:2:55" + }, + "payable": false, + "returnParameters": { + "id": 12424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12423, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12428, + "src": "704:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "704:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "703:9:55" + }, + "scope": 12453, + "src": "664:75:55", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12451, + "nodeType": "Block", + "src": "918:108:55", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12436, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12430, + "src": "932:9:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "953:1:55", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "945:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12439, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "945:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "932:23:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12435, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "924:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "924:32:55", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12442, + "nodeType": "ExpressionStatement", + "src": "924:32:55" + }, + { + "expression": { + "argumentTypes": null, + "id": 12445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12443, + "name": "_primary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12392, + "src": "962:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12444, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12430, + "src": "973:9:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "962:20:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12446, + "nodeType": "ExpressionStatement", + "src": "962:20:55" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12448, + "name": "_primary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12392, + "src": "1012:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12447, + "name": "PrimaryTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12396, + "src": "993:18:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "993:28:55", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12450, + "nodeType": "EmitStatement", + "src": "988:33:55" + } + ] + }, + "documentation": "@dev Transfers contract to a new primary.\n@param recipient The address of new primary. ", + "id": 12452, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 12433, + "modifierName": { + "argumentTypes": null, + "id": 12432, + "name": "onlyPrimary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12420, + "src": "906:11:55", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "906:11:55" + } + ], + "name": "transferPrimary", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12430, + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 12452, + "src": "880:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "880:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "879:19:55" + }, + "payable": false, + "returnParameters": { + "id": 12434, + "nodeType": "ParameterList", + "parameters": [], + "src": "918:0:55" + }, + "scope": 12453, + "src": "855:171:55", + "stateMutability": "nonpayable", + "superFunction": 1759, + "visibility": "public" + } + ], + "scope": 12454, + "src": "149:879:55" + } + ], + "src": "0:1029:55" + }, + "legacyAST": { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "exportedSymbols": { + "Secondary": [ + 12453 + ] + }, + "id": 12454, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12390, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:55" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title Secondary\n@dev A Secondary contract can only be used by its primary account (the one that created it)", + "fullyImplemented": true, + "id": 12453, + "linearizedBaseContracts": [ + 12453 + ], + "name": "Secondary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 12392, + "name": "_primary", + "nodeType": "VariableDeclaration", + "scope": 12453, + "src": "172:24:55", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12391, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "172:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 12396, + "name": "PrimaryTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 12395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12394, + "indexed": false, + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 12396, + "src": "231:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "231:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "225:27:55" + }, + "src": "201:52:55" + }, + { + "body": { + "id": 12408, + "nodeType": "Block", + "src": "379:71:55", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12399, + "name": "_primary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12392, + "src": "385:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12400, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "396:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "396:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "385:21:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12403, + "nodeType": "ExpressionStatement", + "src": "385:21:55" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12405, + "name": "_primary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12392, + "src": "436:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12404, + "name": "PrimaryTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12396, + "src": "417:18:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "417:28:55", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12407, + "nodeType": "EmitStatement", + "src": "412:33:55" + } + ] + }, + "documentation": "@dev Sets the primary account to the one that is creating the Secondary contract.", + "id": 12409, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12397, + "nodeType": "ParameterList", + "parameters": [], + "src": "367:2:55" + }, + "payable": false, + "returnParameters": { + "id": 12398, + "nodeType": "ParameterList", + "parameters": [], + "src": "379:0:55" + }, + "scope": 12453, + "src": "356:94:55", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12419, + "nodeType": "Block", + "src": "558:49:55", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "572:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "572:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 12414, + "name": "_primary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12392, + "src": "586:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "572:22:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12411, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "564:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "564:31:55", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12417, + "nodeType": "ExpressionStatement", + "src": "564:31:55" + }, + { + "id": 12418, + "nodeType": "PlaceholderStatement", + "src": "601:1:55" + } + ] + }, + "documentation": "@dev Reverts if called from any account other than the primary.", + "id": 12420, + "name": "onlyPrimary", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 12410, + "nodeType": "ParameterList", + "parameters": [], + "src": "555:2:55" + }, + "src": "535:72:55", + "visibility": "internal" + }, + { + "body": { + "id": 12427, + "nodeType": "Block", + "src": "713:26:55", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12425, + "name": "_primary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12392, + "src": "726:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 12424, + "id": 12426, + "nodeType": "Return", + "src": "719:15:55" + } + ] + }, + "documentation": "@return the address of the primary.", + "id": 12428, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "primary", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12421, + "nodeType": "ParameterList", + "parameters": [], + "src": "680:2:55" + }, + "payable": false, + "returnParameters": { + "id": 12424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12423, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12428, + "src": "704:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "704:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "703:9:55" + }, + "scope": 12453, + "src": "664:75:55", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12451, + "nodeType": "Block", + "src": "918:108:55", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12436, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12430, + "src": "932:9:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 12438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "953:1:55", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "945:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 12439, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "945:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "932:23:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12435, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "924:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "924:32:55", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12442, + "nodeType": "ExpressionStatement", + "src": "924:32:55" + }, + { + "expression": { + "argumentTypes": null, + "id": 12445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12443, + "name": "_primary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12392, + "src": "962:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12444, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12430, + "src": "973:9:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "962:20:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12446, + "nodeType": "ExpressionStatement", + "src": "962:20:55" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12448, + "name": "_primary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12392, + "src": "1012:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12447, + "name": "PrimaryTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12396, + "src": "993:18:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "993:28:55", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12450, + "nodeType": "EmitStatement", + "src": "988:33:55" + } + ] + }, + "documentation": "@dev Transfers contract to a new primary.\n@param recipient The address of new primary. ", + "id": 12452, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 12433, + "modifierName": { + "argumentTypes": null, + "id": 12432, + "name": "onlyPrimary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12420, + "src": "906:11:55", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "906:11:55" + } + ], + "name": "transferPrimary", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12430, + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 12452, + "src": "880:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "880:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "879:19:55" + }, + "payable": false, + "returnParameters": { + "id": 12434, + "nodeType": "ParameterList", + "parameters": [], + "src": "918:0:55" + }, + "scope": 12453, + "src": "855:171:55", + "stateMutability": "nonpayable", + "superFunction": 1759, + "visibility": "public" + } + ], + "scope": 12454, + "src": "149:879:55" + } + ], + "src": "0:1029:55" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.029Z" +} \ No newline at end of file diff --git a/build/contracts/Symbols.json b/build/contracts/Symbols.json index 81a38e31..ca1e6b12 100644 --- a/build/contracts/Symbols.json +++ b/build/contracts/Symbols.json @@ -82,24 +82,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610397806100206000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b71a9db8114610071578063289e029b1461008b57806350b49f2d146100a35780637d20abf8146100cd578063e5da831f146100f9575b600080fd5b34801561007d57600080fd5b5061008960043561015e565b005b34801561009757600080fd5b506100896004356101b6565b3480156100af57600080fd5b506100bb60043561022b565b60408051918252519081900360200190f35b3480156100d957600080fd5b506100e560043561024a565b604080519115158252519081900360200190f35b34801561010557600080fd5b5061010e61025f565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561014a578181015183820152602001610132565b505050509050019250505060405180910390f35b60008181526003602052604090205460ff16151561017b57600080fd5b6000818152600360209081526040808320805460ff1916905560029091529020546101a5906102b9565b600090815260026020526040812055565b60008181526003602052604090205460ff16156101d257600080fd5b6000818152600360209081526040808320805460ff191660019081179091558054600290935290832082905581810181559091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b600180548290811061023957fe5b600091825260209091200154905081565b60009081526003602052604090205460ff1690565b606060018054806020026020016040519081016040528092919081815260200182805480156102ae57602002820191906000526020600020905b81548152600190910190602001808311610299575b505050505090505b90565b60015481106102c757600080fd5b60015460001901811461030d576001805460001981019081106102e657fe5b906000526020600020015460018281548110151561030057fe5b6000918252602090912001555b6001805490610320906000198301610324565b5050565b8154818355818111156103485760008381526020902061034891810190830161034d565b505050565b6102b691905b808211156103675760008155600101610353565b50905600a165627a7a7230582066a982332bfe3a6952e0f06b544cc5212fc3777b4f01e44da02e1cde81e415740029", - "deployedBytecode": "0x60806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b71a9db8114610071578063289e029b1461008b57806350b49f2d146100a35780637d20abf8146100cd578063e5da831f146100f9575b600080fd5b34801561007d57600080fd5b5061008960043561015e565b005b34801561009757600080fd5b506100896004356101b6565b3480156100af57600080fd5b506100bb60043561022b565b60408051918252519081900360200190f35b3480156100d957600080fd5b506100e560043561024a565b604080519115158252519081900360200190f35b34801561010557600080fd5b5061010e61025f565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561014a578181015183820152602001610132565b505050509050019250505060405180910390f35b60008181526003602052604090205460ff16151561017b57600080fd5b6000818152600360209081526040808320805460ff1916905560029091529020546101a5906102b9565b600090815260026020526040812055565b60008181526003602052604090205460ff16156101d257600080fd5b6000818152600360209081526040808320805460ff191660019081179091558054600290935290832082905581810181559091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b600180548290811061023957fe5b600091825260209091200154905081565b60009081526003602052604090205460ff1690565b606060018054806020026020016040519081016040528092919081815260200182805480156102ae57602002820191906000526020600020905b81548152600190910190602001808311610299575b505050505090505b90565b60015481106102c757600080fd5b60015460001901811461030d576001805460001981019081106102e657fe5b906000526020600020015460018281548110151561030057fe5b6000918252602090912001555b6001805490610320906000198301610324565b5050565b8154818355818111156103485760008381526020902061034891810190830161034d565b505050565b6102b691905b808211156103675760008155600101610353565b50905600a165627a7a7230582066a982332bfe3a6952e0f06b544cc5212fc3777b4f01e44da02e1cde81e415740029", - "sourceMap": "52:1037:26:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:1037:26;;;;;;;", - "deployedSourceMap": "52:1037:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;411:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;411:204:26;;;;;;;204:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;204:201:26;;;;;87:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;87:28:26;;;;;;;;;;;;;;;;;;;;;621:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;621:100:26;;;;;;;;;;;;;;;;;;;;;;;727:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;727:92:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;727:92:26;;;;;;;;;;;;;;;;;411:204;474:15;;;;:7;:15;;;;;;;;466:24;;;;;;;;519:5;501:15;;;:7;:15;;;;;;;;:23;;-1:-1:-1;;501:23:26;;;555:11;:19;;;;;;534:41;;:20;:41::i;:::-;607:1;585:19;;;:11;:19;;;;;:23;411:204::o;204:201::-;265:15;;;;:7;:15;;;;;;;;264:16;256:25;;;;;;292:15;;;;:7;:15;;;;;;;;:22;;-1:-1:-1;;292:22:26;310:4;292:22;;;;;;346:18;;324:11;:19;;;;;;:40;;;23:18:-1;;;45:23;;374:24:26;;;;;;204:201::o;87:28::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;87:28:26;:::o;621:100::-;676:4;699:15;;;:7;:15;;;;;;;;;621:100::o;727:92::-;773:9;801:11;794:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;727:92;;:::o;825:262::-;902:11;:18;894:26;;886:35;;;;;;966:1;945:18;-1:-1:-1;;945:22:26;936:31;;932:118;;1004:11;1016:18;;-1:-1:-1;;1016:22:26;;;1004:35;;;;;;;;;;;;;;983:11;995:5;983:18;;;;;;;;;;;;;;;;;;;:56;932:118;1060:11;:20;;;;;-1:-1:-1;;1060:20:26;;;:::i;:::-;;825:262;:::o;52:1037::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\nimport \"./ISymbols.sol\";\n\ncontract Symbols is ISymbols {\n bytes32[] public symbolsList;\n mapping (bytes32 => uint) symbolIndex;\n mapping (bytes32 => bool) symbols;\n\n function addSymbol(bytes32 symbol) public {\n require(!symbols[symbol]);\n\n symbols[symbol] = true;\n symbolIndex[symbol] = symbolsList.length;\n symbolsList.push(symbol);\n }\n\n function removeSymbol(bytes32 symbol) public {\n require(symbols[symbol]);\n\n symbols[symbol] = false;\n _removeSymbolByIndex(symbolIndex[symbol]);\n symbolIndex[symbol] = 0;\n }\n\n function hasSymbol(bytes32 symbol) public view returns(bool) {\n return symbols[symbol];\n }\n\n function getSymbolsList() public view returns(bytes32[]) {\n return symbolsList;\n }\n\n function _removeSymbolByIndex(uint index) internal {\n require(index < symbolsList.length);\n\n if (index != symbolsList.length - 1) {\n symbolsList[index] = symbolsList[symbolsList.length - 1];\n }\n\n symbolsList.length--;\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b506103a1806100206000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b71a9db8114610071578063289e029b1461008b57806350b49f2d146100a35780637d20abf8146100cd578063e5da831f146100f9575b600080fd5b34801561007d57600080fd5b5061008960043561015e565b005b34801561009757600080fd5b50610089600435610235565b3480156100af57600080fd5b506100bb6004356102aa565b60408051918252519081900360200190f35b3480156100d957600080fd5b506100e56004356102c9565b604080519115158252519081900360200190f35b34801561010557600080fd5b5061010e6102de565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561014a578181015183820152602001610132565b505050509050019250505060405180910390f35b60008181526003602052604081205460ff16151561017b57600080fd5b506000818152600360209081526040808320805460ff1916905560029091528120805491905560015460001901811461021d576001805460001981019081106101c057fe5b90600052602060002001546001828154811015156101da57fe5b906000526020600020018160001916905550806002600060018481548110151561020057fe5b600091825260208083209091015483528201929092526040019020555b6001805490610230906000198301610338565b505050565b60008181526003602052604090205460ff161561025157600080fd5b6000818152600360209081526040808320805460ff191660019081179091558054600290935290832082905581810181559091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b60018054829081106102b857fe5b600091825260209091200154905081565b60009081526003602052604090205460ff1690565b6060600180548060200260200160405190810160405280929190818152602001828054801561032d57602002820191906000526020600020905b81548152600190910190602001808311610318575b505050505090505b90565b8154818355818111156102305760008381526020902061023091810190830161033591905b80821115610371576000815560010161035d565b50905600a165627a7a7230582015467da84ee4750584088bf887f139231f34f1f127b8b35f552dab0af663ec990029", + "deployedBytecode": "0x60806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b71a9db8114610071578063289e029b1461008b57806350b49f2d146100a35780637d20abf8146100cd578063e5da831f146100f9575b600080fd5b34801561007d57600080fd5b5061008960043561015e565b005b34801561009757600080fd5b50610089600435610235565b3480156100af57600080fd5b506100bb6004356102aa565b60408051918252519081900360200190f35b3480156100d957600080fd5b506100e56004356102c9565b604080519115158252519081900360200190f35b34801561010557600080fd5b5061010e6102de565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561014a578181015183820152602001610132565b505050509050019250505060405180910390f35b60008181526003602052604081205460ff16151561017b57600080fd5b506000818152600360209081526040808320805460ff1916905560029091528120805491905560015460001901811461021d576001805460001981019081106101c057fe5b90600052602060002001546001828154811015156101da57fe5b906000526020600020018160001916905550806002600060018481548110151561020057fe5b600091825260208083209091015483528201929092526040019020555b6001805490610230906000198301610338565b505050565b60008181526003602052604090205460ff161561025157600080fd5b6000818152600360209081526040808320805460ff191660019081179091558054600290935290832082905581810181559091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b60018054829081106102b857fe5b600091825260209091200154905081565b60009081526003602052604090205460ff1690565b6060600180548060200260200160405190810160405280929190818152602001828054801561032d57602002820191906000526020600020905b81548152600190910190602001808311610318575b505050505090505b90565b8154818355818111156102305760008381526020902061023091810190830161033591905b80821115610371576000815560010161035d565b50905600a165627a7a7230582015467da84ee4750584088bf887f139231f34f1f127b8b35f552dab0af663ec990029", + "sourceMap": "52:974:39:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:974:39;;;;;;;", + "deployedSourceMap": "52:974:39:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;411:409;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;411:409:39;;;;;;;204:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;204:201:39;;;;;87:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;87:28:39;;;;;;;;;;;;;;;;;;;;;826:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;826:100:39;;;;;;;;;;;;;;;;;;;;;;;932:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;932:92:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;932:92:39;;;;;;;;;;;;;;;;;411:409;535:10;474:15;;;:7;:15;;;;;;;;466:24;;;;;;;;-1:-1:-1;519:5:39;501:15;;;:7;:15;;;;;;;;:23;;-1:-1:-1;;501:23:39;;;548:11;:19;;;;;;;578:23;;;501;625:18;-1:-1:-1;;625:22:39;616:31;;612:171;;684:11;696:18;;-1:-1:-1;;696:22:39;;;684:35;;;;;;;;;;;;;;663:11;675:5;663:18;;;;;;;;;;;;;;;;;:56;;;;;;;767:5;733:11;:31;745:11;757:5;745:18;;;;;;;;;;;;;;;;;;;;;;733:31;;;;;;;;;;;;:39;612:171;793:11;:20;;;;;-1:-1:-1;;793:20:39;;;:::i;:::-;;411:409;;:::o;204:201::-;265:15;;;;:7;:15;;;;;;;;264:16;256:25;;;;;;292:15;;;;:7;:15;;;;;;;;:22;;-1:-1:-1;;292:22:39;310:4;292:22;;;;;;346:18;;324:11;:19;;;;;;:40;;;23:18:-1;;;45:23;;374:24:39;;;;;;204:201::o;87:28::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;87:28:39;:::o;826:100::-;881:4;904:15;;;:7;:15;;;;;;;;;826:100::o;932:92::-;978:9;1006:11;999:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;932:92;;:::o;52:974::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "source": "pragma solidity ^0.4.24;\n\nimport \"./ISymbols.sol\";\n\ncontract Symbols is ISymbols {\n bytes32[] public symbolsList;\n mapping (bytes32 => uint) symbolIndex;\n mapping (bytes32 => bool) symbols;\n\n function addSymbol(bytes32 symbol) public {\n require(!symbols[symbol]);\n\n symbols[symbol] = true;\n symbolIndex[symbol] = symbolsList.length;\n symbolsList.push(symbol);\n }\n\n function removeSymbol(bytes32 symbol) public {\n require(symbols[symbol]);\n\n symbols[symbol] = false;\n\n uint index = symbolIndex[symbol];\n\n symbolIndex[symbol] = 0;\n\n if (index != symbolsList.length - 1) {\n symbolsList[index] = symbolsList[symbolsList.length - 1];\n symbolIndex[symbolsList[index]] = index;\n }\n\n symbolsList.length--;\n }\n\n function hasSymbol(bytes32 symbol) public view returns(bool) {\n return symbols[symbol];\n }\n\n function getSymbolsList() public view returns(bytes32[]) {\n return symbolsList;\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/rates/Symbols.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/rates/Symbols.sol", "exportedSymbols": { "Symbols": [ - 7666 + 10393 ] }, - "id": 7667, + "id": 10394, "nodeType": "SourceUnit", "nodes": [ { - "id": 7531, + "id": 10263, "literals": [ "solidity", "^", @@ -107,16 +107,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:26" + "src": "0:24:39" }, { "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", "file": "./ISymbols.sol", - "id": 7532, + "id": 10264, "nodeType": "ImportDirective", - "scope": 7667, - "sourceUnit": 7309, - "src": "26:24:26", + "scope": 10394, + "sourceUnit": 10044, + "src": "26:24:39", "symbolAliases": [], "unitAlias": "" }, @@ -126,42 +126,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 7533, + "id": 10265, "name": "ISymbols", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7308, - "src": "72:8:26", + "referencedDeclaration": 10043, + "src": "72:8:39", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISymbols_$7308", + "typeIdentifier": "t_contract$_ISymbols_$10043", "typeString": "contract ISymbols" } }, - "id": 7534, + "id": 10266, "nodeType": "InheritanceSpecifier", - "src": "72:8:26" + "src": "72:8:39" } ], "contractDependencies": [ - 7308 + 10043 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 7666, + "id": 10393, "linearizedBaseContracts": [ - 7666, - 7308 + 10393, + 10043 ], "name": "Symbols", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 7537, + "id": 10269, "name": "symbolsList", "nodeType": "VariableDeclaration", - "scope": 7666, - "src": "87:28:26", + "scope": 10393, + "src": "87:28:39", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -170,19 +170,19 @@ }, "typeName": { "baseType": { - "id": 7535, + "id": 10267, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "87:7:26", + "src": "87:7:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 7536, + "id": 10268, "length": null, "nodeType": "ArrayTypeName", - "src": "87:9:26", + "src": "87:9:39", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -193,11 +193,11 @@ }, { "constant": false, - "id": 7541, + "id": 10273, "name": "symbolIndex", "nodeType": "VariableDeclaration", - "scope": 7666, - "src": "121:37:26", + "scope": 10393, + "src": "121:37:39", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -205,28 +205,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 7540, + "id": 10272, "keyType": { - "id": 7538, + "id": 10270, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "130:7:26", + "src": "130:7:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "121:25:26", + "src": "121:25:39", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 7539, + "id": 10271, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "141:4:26", + "src": "141:4:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -238,11 +238,11 @@ }, { "constant": false, - "id": 7545, + "id": 10277, "name": "symbols", "nodeType": "VariableDeclaration", - "scope": 7666, - "src": "164:33:26", + "scope": 10393, + "src": "164:33:39", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -250,28 +250,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 7544, + "id": 10276, "keyType": { - "id": 7542, + "id": 10274, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "173:7:26", + "src": "173:7:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "164:25:26", + "src": "164:25:39", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 7543, + "id": 10275, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "184:4:26", + "src": "184:4:39", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -283,9 +283,9 @@ }, { "body": { - "id": 7576, + "id": 10308, "nodeType": "Block", - "src": "246:159:26", + "src": "246:159:39", "statements": [ { "expression": { @@ -293,7 +293,7 @@ "arguments": [ { "argumentTypes": null, - "id": 7554, + "id": 10286, "isConstant": false, "isLValue": false, "isPure": false, @@ -301,31 +301,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "264:16:26", + "src": "264:16:39", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7551, + "id": 10283, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7545, - "src": "265:7:26", + "referencedDeclaration": 10277, + "src": "265:7:39", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 7553, + "id": 10285, "indexExpression": { "argumentTypes": null, - "id": 7552, + "id": 10284, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7547, - "src": "273:6:26", + "referencedDeclaration": 10279, + "src": "273:6:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -336,7 +336,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "265:15:26", + "src": "265:15:39", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -355,21 +355,21 @@ "typeString": "bool" } ], - "id": 7550, + "id": 10282, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "256:7:26", + "referencedDeclaration": 13444, + "src": "256:7:39", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7555, + "id": 10287, "isConstant": false, "isLValue": false, "isPure": false, @@ -377,20 +377,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "256:25:26", + "src": "256:25:39", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7556, + "id": 10288, "nodeType": "ExpressionStatement", - "src": "256:25:26" + "src": "256:25:39" }, { "expression": { "argumentTypes": null, - "id": 7561, + "id": 10293, "isConstant": false, "isLValue": false, "isPure": false, @@ -399,26 +399,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7557, + "id": 10289, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7545, - "src": "292:7:26", + "referencedDeclaration": 10277, + "src": "292:7:39", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 7559, + "id": 10291, "indexExpression": { "argumentTypes": null, - "id": 7558, + "id": 10290, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7547, - "src": "300:6:26", + "referencedDeclaration": 10279, + "src": "300:6:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -429,7 +429,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "292:15:26", + "src": "292:15:39", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -440,14 +440,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 7560, + "id": 10292, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "310:4:26", + "src": "310:4:39", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -455,20 +455,20 @@ }, "value": "true" }, - "src": "292:22:26", + "src": "292:22:39", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 7562, + "id": 10294, "nodeType": "ExpressionStatement", - "src": "292:22:26" + "src": "292:22:39" }, { "expression": { "argumentTypes": null, - "id": 7568, + "id": 10300, "isConstant": false, "isLValue": false, "isPure": false, @@ -477,26 +477,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7563, + "id": 10295, "name": "symbolIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7541, - "src": "324:11:26", + "referencedDeclaration": 10273, + "src": "324:11:39", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 7565, + "id": 10297, "indexExpression": { "argumentTypes": null, - "id": 7564, + "id": 10296, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7547, - "src": "336:6:26", + "referencedDeclaration": 10279, + "src": "336:6:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -507,7 +507,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "324:19:26", + "src": "324:19:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -519,18 +519,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7566, + "id": 10298, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "346:11:26", + "referencedDeclaration": 10269, + "src": "346:11:39", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 7567, + "id": 10299, "isConstant": false, "isLValue": true, "isPure": false, @@ -538,21 +538,21 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "346:18:26", + "src": "346:18:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "324:40:26", + "src": "324:40:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7569, + "id": 10301, "nodeType": "ExpressionStatement", - "src": "324:40:26" + "src": "324:40:39" }, { "expression": { @@ -560,12 +560,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7573, + "id": 10305, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7547, - "src": "391:6:26", + "referencedDeclaration": 10279, + "src": "391:6:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -581,18 +581,18 @@ ], "expression": { "argumentTypes": null, - "id": 7570, + "id": 10302, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "374:11:26", + "referencedDeclaration": 10269, + "src": "374:11:39", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 7572, + "id": 10304, "isConstant": false, "isLValue": false, "isPure": false, @@ -600,13 +600,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "374:16:26", + "src": "374:16:39", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) returns (uint256)" } }, - "id": 7574, + "id": 10306, "isConstant": false, "isLValue": false, "isPure": false, @@ -614,20 +614,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "374:24:26", + "src": "374:24:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7575, + "id": 10307, "nodeType": "ExpressionStatement", - "src": "374:24:26" + "src": "374:24:39" } ] }, "documentation": null, - "id": 7577, + "id": 10309, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -635,16 +635,16 @@ "name": "addSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7548, + "id": 10280, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7547, + "id": 10279, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7577, - "src": "223:14:26", + "scope": 10309, + "src": "223:14:39", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -652,10 +652,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7546, + "id": 10278, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "223:7:26", + "src": "223:7:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -665,26 +665,26 @@ "visibility": "internal" } ], - "src": "222:16:26" + "src": "222:16:39" }, "payable": false, "returnParameters": { - "id": 7549, + "id": 10281, "nodeType": "ParameterList", "parameters": [], - "src": "246:0:26" + "src": "246:0:39" }, - "scope": 7666, - "src": "204:201:26", + "scope": 10393, + "src": "204:201:39", "stateMutability": "nonpayable", - "superFunction": 7289, + "superFunction": 10024, "visibility": "public" }, { "body": { - "id": 7606, + "id": 10370, "nodeType": "Block", - "src": "456:159:26", + "src": "456:364:39", "statements": [ { "expression": { @@ -694,26 +694,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7583, + "id": 10315, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7545, - "src": "474:7:26", + "referencedDeclaration": 10277, + "src": "474:7:39", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 7585, + "id": 10317, "indexExpression": { "argumentTypes": null, - "id": 7584, + "id": 10316, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7579, - "src": "482:6:26", + "referencedDeclaration": 10311, + "src": "482:6:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -724,7 +724,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "474:15:26", + "src": "474:15:39", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -738,21 +738,21 @@ "typeString": "bool" } ], - "id": 7582, + "id": 10314, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "466:7:26", + "referencedDeclaration": 13444, + "src": "466:7:39", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7586, + "id": 10318, "isConstant": false, "isLValue": false, "isPure": false, @@ -760,20 +760,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "466:24:26", + "src": "466:24:39", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7587, + "id": 10319, "nodeType": "ExpressionStatement", - "src": "466:24:26" + "src": "466:24:39" }, { "expression": { "argumentTypes": null, - "id": 7592, + "id": 10324, "isConstant": false, "isLValue": false, "isPure": false, @@ -782,26 +782,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7588, + "id": 10320, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7545, - "src": "501:7:26", + "referencedDeclaration": 10277, + "src": "501:7:39", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 7590, + "id": 10322, "indexExpression": { "argumentTypes": null, - "id": 7589, + "id": 10321, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7579, - "src": "509:6:26", + "referencedDeclaration": 10311, + "src": "509:6:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -812,7 +812,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "501:15:26", + "src": "501:15:39", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -823,14 +823,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 7591, + "id": 10323, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "519:5:26", + "src": "519:5:39", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -838,101 +838,96 @@ }, "value": "false" }, - "src": "501:23:26", + "src": "501:23:39", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 7593, + "id": 10325, "nodeType": "ExpressionStatement", - "src": "501:23:26" + "src": "501:23:39" }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7595, - "name": "symbolIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7541, - "src": "555:11:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 7597, - "indexExpression": { - "argumentTypes": null, - "id": 7596, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7579, - "src": "567:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "555:19:26", + "assignments": [ + 10327 + ], + "declarations": [ + { + "constant": false, + "id": 10327, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 10371, + "src": "535:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10326, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "535:4:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10331, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10328, + "name": "symbolIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10273, + "src": "548:11:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7594, - "name": "_removeSymbolByIndex", + }, + "id": 10330, + "indexExpression": { + "argumentTypes": null, + "id": 10329, + "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7665, - "src": "534:20:26", + "referencedDeclaration": 10311, + "src": "560:6:39", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 7598, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "534:41:26", + "nodeType": "IndexAccess", + "src": "548:19:39", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 7599, - "nodeType": "ExpressionStatement", - "src": "534:41:26" + "nodeType": "VariableDeclarationStatement", + "src": "535:32:39" }, { "expression": { "argumentTypes": null, - "id": 7604, + "id": 10336, "isConstant": false, "isLValue": false, "isPure": false, @@ -941,26 +936,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7600, + "id": 10332, "name": "symbolIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7541, - "src": "585:11:26", + "referencedDeclaration": 10273, + "src": "578:11:39", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 7602, + "id": 10334, "indexExpression": { "argumentTypes": null, - "id": 7601, + "id": 10333, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7579, - "src": "597:6:26", + "referencedDeclaration": 10311, + "src": "590:6:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -971,7 +966,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "585:19:26", + "src": "578:19:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -982,14 +977,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 7603, + "id": 10335, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "607:1:26", + "src": "600:1:39", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -997,521 +992,128 @@ }, "value": "0" }, - "src": "585:23:26", + "src": "578:23:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7605, + "id": 10337, "nodeType": "ExpressionStatement", - "src": "585:23:26" - } - ] - }, - "documentation": null, - "id": 7607, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeSymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7580, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7579, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 7607, - "src": "433:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7578, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "433:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "432:16:26" - }, - "payable": false, - "returnParameters": { - "id": 7581, - "nodeType": "ParameterList", - "parameters": [], - "src": "456:0:26" - }, - "scope": 7666, - "src": "411:204:26", - "stateMutability": "nonpayable", - "superFunction": 7294, - "visibility": "public" - }, - { - "body": { - "id": 7618, - "nodeType": "Block", - "src": "682:39:26", - "statements": [ + "src": "578:23:39" + }, { - "expression": { + "condition": { "argumentTypes": null, - "baseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 7614, - "name": "symbols", + "id": 10338, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7545, - "src": "699:7:26", + "referencedDeclaration": 10327, + "src": "616:5:39", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 7616, - "indexExpression": { + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, - "id": 7615, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7609, - "src": "707:6:26", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10339, + "name": "symbolsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10269, + "src": "625:11:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 10340, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "625:18:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 10341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "646:1:39", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "625:22:39", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "699:15:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 7613, - "id": 7617, - "nodeType": "Return", - "src": "692:22:26" - } - ] - }, - "documentation": null, - "id": 7619, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "hasSymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7610, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7609, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 7619, - "src": "640:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7608, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "640:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "639:16:26" - }, - "payable": false, - "returnParameters": { - "id": 7613, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7612, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7619, - "src": "676:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7611, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "676:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "675:6:26" - }, - "scope": 7666, - "src": "621:100:26", - "stateMutability": "view", - "superFunction": 7301, - "visibility": "public" - }, - { - "body": { - "id": 7627, - "nodeType": "Block", - "src": "784:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7625, - "name": "symbolsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "801:11:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "functionReturnParameters": 7624, - "id": 7626, - "nodeType": "Return", - "src": "794:18:26" - } - ] - }, - "documentation": null, - "id": 7628, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSymbolsList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7620, - "nodeType": "ParameterList", - "parameters": [], - "src": "750:2:26" - }, - "payable": false, - "returnParameters": { - "id": 7624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7623, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7628, - "src": "773:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 7621, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "773:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 7622, - "length": null, - "nodeType": "ArrayTypeName", - "src": "773:9:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "772:11:26" - }, - "scope": 7666, - "src": "727:92:26", - "stateMutability": "view", - "superFunction": 7307, - "visibility": "public" - }, - { - "body": { - "id": 7664, - "nodeType": "Block", - "src": "876:211:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7634, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7630, - "src": "894:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7635, - "name": "symbolsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "902:11:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 7636, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "902:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "894:26:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7633, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "886:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 7638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "886:35:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7639, - "nodeType": "ExpressionStatement", - "src": "886:35:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7640, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7630, - "src": "936:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7641, - "name": "symbolsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "945:11:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 7642, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "945:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "966:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "945:22:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "936:31:26", + "src": "616:31:39", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 7658, + "id": 10364, "nodeType": "IfStatement", - "src": "932:118:26", + "src": "612:171:39", "trueBody": { - "id": 7657, + "id": 10363, "nodeType": "Block", - "src": "969:81:26", + "src": "649:134:39", "statements": [ { "expression": { "argumentTypes": null, - "id": 7655, + "id": 10353, "isConstant": false, "isLValue": false, "isPure": false, @@ -1520,26 +1122,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7646, + "id": 10344, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "983:11:26", + "referencedDeclaration": 10269, + "src": "663:11:39", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 7648, + "id": 10346, "indexExpression": { "argumentTypes": null, - "id": 7647, + "id": 10345, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7630, - "src": "995:5:26", + "referencedDeclaration": 10327, + "src": "675:5:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1550,7 +1152,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "983:18:26", + "src": "663:18:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1562,25 +1164,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7649, + "id": 10347, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "1004:11:26", + "referencedDeclaration": 10269, + "src": "684:11:39", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 7654, + "id": 10352, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7653, + "id": 10351, "isConstant": false, "isLValue": false, "isPure": false, @@ -1589,18 +1191,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7650, + "id": 10348, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "1016:11:26", + "referencedDeclaration": 10269, + "src": "696:11:39", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 7651, + "id": 10349, "isConstant": false, "isLValue": true, "isPure": false, @@ -1608,7 +1210,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1016:18:26", + "src": "696:18:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1619,14 +1221,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 7652, + "id": 10350, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1037:1:26", + "src": "717:1:39", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1634,7 +1236,7 @@ }, "value": "1" }, - "src": "1016:22:26", + "src": "696:22:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1645,53 +1247,153 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1004:35:26", + "src": "684:35:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "983:56:26", + "src": "663:56:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 7656, + "id": 10354, "nodeType": "ExpressionStatement", - "src": "983:56:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 7662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "1060:20:26", - "subExpression": { - "argumentTypes": null, - "expression": { + "src": "663:56:39" + }, + { + "expression": { + "argumentTypes": null, + "id": 10361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10355, + "name": "symbolIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10273, + "src": "733:11:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 10359, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10356, + "name": "symbolsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10269, + "src": "745:11:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 10358, + "indexExpression": { + "argumentTypes": null, + "id": 10357, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10327, + "src": "757:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "745:18:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "733:31:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10360, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10327, + "src": "767:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "733:39:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10362, + "nodeType": "ExpressionStatement", + "src": "733:39:39" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 10368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "793:20:39", + "subExpression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 7659, + "id": 10365, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "1060:11:26", + "referencedDeclaration": 10269, + "src": "793:11:39", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 7661, + "id": 10367, "isConstant": false, "isLValue": true, "isPure": false, @@ -1699,7 +1401,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1060:18:26", + "src": "793:18:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1710,670 +1412,497 @@ "typeString": "uint256" } }, - "id": 7663, + "id": 10369, "nodeType": "ExpressionStatement", - "src": "1060:20:26" + "src": "793:20:39" } ] }, "documentation": null, - "id": 7665, + "id": 10371, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "_removeSymbolByIndex", + "name": "removeSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7631, + "id": 10312, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7630, - "name": "index", + "id": 10311, + "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7665, - "src": "855:10:26", + "scope": 10371, + "src": "433:14:39", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 7629, - "name": "uint", + "id": 10310, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "855:4:26", + "src": "433:7:39", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "src": "854:12:26" + "src": "432:16:39" }, "payable": false, "returnParameters": { - "id": 7632, + "id": 10313, "nodeType": "ParameterList", "parameters": [], - "src": "876:0:26" + "src": "456:0:39" }, - "scope": 7666, - "src": "825:262:26", + "scope": 10393, + "src": "411:409:39", "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 7667, - "src": "52:1037:26" - } - ], - "src": "0:1090:26" - }, - "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/rates/Symbols.sol", - "exportedSymbols": { - "Symbols": [ - 7666 - ] - }, - "id": 7667, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7531, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", - "file": "./ISymbols.sol", - "id": 7532, - "nodeType": "ImportDirective", - "scope": 7667, - "sourceUnit": 7309, - "src": "26:24:26", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7533, - "name": "ISymbols", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7308, - "src": "72:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISymbols_$7308", - "typeString": "contract ISymbols" - } - }, - "id": 7534, - "nodeType": "InheritanceSpecifier", - "src": "72:8:26" - } - ], - "contractDependencies": [ - 7308 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 7666, - "linearizedBaseContracts": [ - 7666, - 7308 - ], - "name": "Symbols", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 7537, - "name": "symbolsList", - "nodeType": "VariableDeclaration", - "scope": 7666, - "src": "87:28:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 7535, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "87:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 7536, - "length": null, - "nodeType": "ArrayTypeName", - "src": "87:9:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, + "superFunction": 10029, "visibility": "public" }, - { - "constant": false, - "id": 7541, - "name": "symbolIndex", - "nodeType": "VariableDeclaration", - "scope": 7666, - "src": "121:37:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 7540, - "keyType": { - "id": 7538, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "130:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "121:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 7539, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "141:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7545, - "name": "symbols", - "nodeType": "VariableDeclaration", - "scope": 7666, - "src": "164:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 7544, - "keyType": { - "id": 7542, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "173:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "164:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 7543, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "184:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, { "body": { - "id": 7576, + "id": 10382, "nodeType": "Block", - "src": "246:159:26", + "src": "887:39:39", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "264:16:26", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7551, - "name": "symbols", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7545, - "src": "265:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 7553, - "indexExpression": { - "argumentTypes": null, - "id": 7552, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7547, - "src": "273:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "265:15:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "baseExpression": { + "argumentTypes": null, + "id": 10378, + "name": "symbols", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10277, + "src": "904:7:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7550, - "name": "require", + }, + "id": 10380, + "indexExpression": { + "argumentTypes": null, + "id": 10379, + "name": "symbol", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "256:7:26", + "overloadedDeclarations": [], + "referencedDeclaration": 10373, + "src": "912:6:39", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 7555, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "256:25:26", + "nodeType": "IndexAccess", + "src": "904:15:39", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 7556, - "nodeType": "ExpressionStatement", - "src": "256:25:26" - }, + "functionReturnParameters": 10377, + "id": 10381, + "nodeType": "Return", + "src": "897:22:39" + } + ] + }, + "documentation": null, + "id": 10383, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasSymbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10374, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "id": 7561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7557, - "name": "symbols", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7545, - "src": "292:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 7559, - "indexExpression": { - "argumentTypes": null, - "id": 7558, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7547, - "src": "300:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "292:15:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 7560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "310:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "292:22:26", + "constant": false, + "id": 10373, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 10383, + "src": "845:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 10372, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "845:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "844:16:39" + }, + "payable": false, + "returnParameters": { + "id": 10377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10376, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10383, + "src": "881:4:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10375, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "881:4:39", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 7562, - "nodeType": "ExpressionStatement", - "src": "292:22:26" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "880:6:39" + }, + "scope": 10393, + "src": "826:100:39", + "stateMutability": "view", + "superFunction": 10036, + "visibility": "public" + }, + { + "body": { + "id": 10391, + "nodeType": "Block", + "src": "989:35:39", + "statements": [ { "expression": { "argumentTypes": null, - "id": 7568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7563, - "name": "symbolIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7541, - "src": "324:11:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 7565, - "indexExpression": { - "argumentTypes": null, - "id": 7564, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7547, - "src": "336:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "324:19:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7566, - "name": "symbolsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "346:11:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 7567, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "346:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "324:40:26", + "id": 10389, + "name": "symbolsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10269, + "src": "1006:11:39", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" } }, - "id": 7569, - "nodeType": "ExpressionStatement", - "src": "324:40:26" - }, + "functionReturnParameters": 10388, + "id": 10390, + "nodeType": "Return", + "src": "999:18:39" + } + ] + }, + "documentation": null, + "id": 10392, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSymbolsList", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10384, + "nodeType": "ParameterList", + "parameters": [], + "src": "955:2:39" + }, + "payable": false, + "returnParameters": { + "id": 10388, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7573, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7547, - "src": "391:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 7570, - "name": "symbolsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "374:11:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 7572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "374:16:26", + "constant": false, + "id": 10387, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10392, + "src": "978:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 10385, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "978:7:39", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) returns (uint256)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 7574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "374:24:26", + "id": 10386, + "length": null, + "nodeType": "ArrayTypeName", + "src": "978:9:39", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" } }, - "id": 7575, - "nodeType": "ExpressionStatement", - "src": "374:24:26" + "value": null, + "visibility": "internal" + } + ], + "src": "977:11:39" + }, + "scope": 10393, + "src": "932:92:39", + "stateMutability": "view", + "superFunction": 10042, + "visibility": "public" + } + ], + "scope": 10394, + "src": "52:974:39" + } + ], + "src": "0:1027:39" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/rates/Symbols.sol", + "exportedSymbols": { + "Symbols": [ + 10393 + ] + }, + "id": 10394, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10263, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:39" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", + "file": "./ISymbols.sol", + "id": 10264, + "nodeType": "ImportDirective", + "scope": 10394, + "sourceUnit": 10044, + "src": "26:24:39", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10265, + "name": "ISymbols", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10043, + "src": "72:8:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISymbols_$10043", + "typeString": "contract ISymbols" + } + }, + "id": 10266, + "nodeType": "InheritanceSpecifier", + "src": "72:8:39" + } + ], + "contractDependencies": [ + 10043 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 10393, + "linearizedBaseContracts": [ + 10393, + 10043 + ], + "name": "Symbols", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 10269, + "name": "symbolsList", + "nodeType": "VariableDeclaration", + "scope": 10393, + "src": "87:28:39", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 10267, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "87:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - ] + }, + "id": 10268, + "length": null, + "nodeType": "ArrayTypeName", + "src": "87:9:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } }, - "documentation": null, - "id": 7577, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addSymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7548, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7547, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 7577, - "src": "223:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7546, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "223:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10273, + "name": "symbolIndex", + "nodeType": "VariableDeclaration", + "scope": 10393, + "src": "121:37:39", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 10272, + "keyType": { + "id": 10270, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "130:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - ], - "src": "222:16:26" + }, + "nodeType": "Mapping", + "src": "121:25:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 10271, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "141:4:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } }, - "payable": false, - "returnParameters": { - "id": 7549, - "nodeType": "ParameterList", - "parameters": [], - "src": "246:0:26" + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10277, + "name": "symbols", + "nodeType": "VariableDeclaration", + "scope": 10393, + "src": "164:33:39", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" }, - "scope": 7666, - "src": "204:201:26", - "stateMutability": "nonpayable", - "superFunction": 7289, - "visibility": "public" + "typeName": { + "id": 10276, + "keyType": { + "id": 10274, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "173:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "164:25:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 10275, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "184:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" }, { "body": { - "id": 7606, + "id": 10308, "nodeType": "Block", - "src": "456:159:26", + "src": "246:159:39", "statements": [ { "expression": { @@ -2381,39 +1910,55 @@ "arguments": [ { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7583, - "name": "symbols", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7545, - "src": "474:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 7585, - "indexExpression": { + "id": 10286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "264:16:39", + "subExpression": { "argumentTypes": null, - "id": 7584, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7579, - "src": "482:6:26", + "baseExpression": { + "argumentTypes": null, + "id": 10283, + "name": "symbols", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10277, + "src": "265:7:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 10285, + "indexExpression": { + "argumentTypes": null, + "id": 10284, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10279, + "src": "273:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "265:15:39", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "474:15:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2427,21 +1972,21 @@ "typeString": "bool" } ], - "id": 7582, + "id": 10282, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "466:7:26", + "referencedDeclaration": 13444, + "src": "256:7:39", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7586, + "id": 10287, "isConstant": false, "isLValue": false, "isPure": false, @@ -2449,20 +1994,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "466:24:26", + "src": "256:25:39", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7587, + "id": 10288, "nodeType": "ExpressionStatement", - "src": "466:24:26" + "src": "256:25:39" }, { "expression": { "argumentTypes": null, - "id": 7592, + "id": 10293, "isConstant": false, "isLValue": false, "isPure": false, @@ -2471,157 +2016,76 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7588, + "id": 10289, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7545, - "src": "501:7:26", + "referencedDeclaration": 10277, + "src": "292:7:39", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 7590, + "id": 10291, "indexExpression": { "argumentTypes": null, - "id": 7589, + "id": 10290, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7579, - "src": "509:6:26", + "referencedDeclaration": 10279, + "src": "300:6:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "501:15:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 7591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "519:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "501:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7593, - "nodeType": "ExpressionStatement", - "src": "501:23:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7595, - "name": "symbolIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7541, - "src": "555:11:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 7597, - "indexExpression": { - "argumentTypes": null, - "id": 7596, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7579, - "src": "567:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "555:19:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7594, - "name": "_removeSymbolByIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7665, - "src": "534:20:26", + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "292:15:39", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 7598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "534:41:26", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 10292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "310:4:39", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "292:22:39", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 7599, + "id": 10294, "nodeType": "ExpressionStatement", - "src": "534:41:26" + "src": "292:22:39" }, { "expression": { "argumentTypes": null, - "id": 7604, + "id": 10300, "isConstant": false, "isLValue": false, "isPure": false, @@ -2630,26 +2094,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7600, + "id": 10295, "name": "symbolIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7541, - "src": "585:11:26", + "referencedDeclaration": 10273, + "src": "324:11:39", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 7602, + "id": 10297, "indexExpression": { "argumentTypes": null, - "id": 7601, + "id": 10296, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7579, - "src": "597:6:26", + "referencedDeclaration": 10279, + "src": "336:6:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2660,7 +2124,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "585:19:26", + "src": "324:19:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2670,319 +2134,174 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "hexValue": "30", - "id": 7603, + "expression": { + "argumentTypes": null, + "id": 10298, + "name": "symbolsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10269, + "src": "346:11:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 10299, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "607:1:26", - "subdenomination": null, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "346:18:39", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "585:23:26", + "src": "324:40:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7605, + "id": 10301, "nodeType": "ExpressionStatement", - "src": "585:23:26" - } - ] - }, - "documentation": null, - "id": 7607, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeSymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7580, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7579, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 7607, - "src": "433:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7578, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "433:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "432:16:26" - }, - "payable": false, - "returnParameters": { - "id": 7581, - "nodeType": "ParameterList", - "parameters": [], - "src": "456:0:26" - }, - "scope": 7666, - "src": "411:204:26", - "stateMutability": "nonpayable", - "superFunction": 7294, - "visibility": "public" - }, - { - "body": { - "id": 7618, - "nodeType": "Block", - "src": "682:39:26", - "statements": [ + "src": "324:40:39" + }, { "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7614, - "name": "symbols", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7545, - "src": "699:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" + "arguments": [ + { + "argumentTypes": null, + "id": 10305, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10279, + "src": "391:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } } - }, - "id": 7616, - "indexExpression": { - "argumentTypes": null, - "id": 7615, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7609, - "src": "707:6:26", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 10302, + "name": "symbolsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10269, + "src": "374:11:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 10304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "374:16:39", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) returns (uint256)" } }, + "id": 10306, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "699:15:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 7613, - "id": 7617, - "nodeType": "Return", - "src": "692:22:26" - } - ] - }, - "documentation": null, - "id": 7619, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "hasSymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7610, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7609, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 7619, - "src": "640:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7608, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "640:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "639:16:26" - }, - "payable": false, - "returnParameters": { - "id": 7613, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7612, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7619, - "src": "676:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7611, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "676:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "675:6:26" - }, - "scope": 7666, - "src": "621:100:26", - "stateMutability": "view", - "superFunction": 7301, - "visibility": "public" - }, - { - "body": { - "id": 7627, - "nodeType": "Block", - "src": "784:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7625, - "name": "symbolsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "801:11:26", + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "374:24:39", "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 7624, - "id": 7626, - "nodeType": "Return", - "src": "794:18:26" + "id": 10307, + "nodeType": "ExpressionStatement", + "src": "374:24:39" } ] }, "documentation": null, - "id": 7628, + "id": 10309, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "getSymbolsList", + "name": "addSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7620, - "nodeType": "ParameterList", - "parameters": [], - "src": "750:2:26" - }, - "payable": false, - "returnParameters": { - "id": 7624, + "id": 10280, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7623, - "name": "", + "id": 10279, + "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7628, - "src": "773:9:26", + "scope": 10309, + "src": "223:14:39", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "baseType": { - "id": 7621, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "773:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 7622, - "length": null, - "nodeType": "ArrayTypeName", - "src": "773:9:26", + "id": 10278, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "223:7:39", "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "src": "772:11:26" + "src": "222:16:39" }, - "scope": 7666, - "src": "727:92:26", - "stateMutability": "view", - "superFunction": 7307, + "payable": false, + "returnParameters": { + "id": 10281, + "nodeType": "ParameterList", + "parameters": [], + "src": "246:0:39" + }, + "scope": 10393, + "src": "204:201:39", + "stateMutability": "nonpayable", + "superFunction": 10024, "visibility": "public" }, { "body": { - "id": 7664, + "id": 10370, "nodeType": "Block", - "src": "876:211:26", + "src": "456:364:39", "statements": [ { "expression": { @@ -2990,60 +2309,39 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "baseExpression": { "argumentTypes": null, - "id": 7634, - "name": "index", + "id": 10315, + "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7630, - "src": "894:5:26", + "referencedDeclaration": 10277, + "src": "474:7:39", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { + "id": 10317, + "indexExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7635, - "name": "symbolsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "902:11:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 7636, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "902:18:26", + "id": 10316, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10311, + "src": "482:6:39", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "src": "894:26:26", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "474:15:39", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3057,37 +2355,269 @@ "typeString": "bool" } ], - "id": 7633, + "id": 10314, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "886:7:26", + "referencedDeclaration": 13444, + "src": "466:7:39", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "886:35:26", + "id": 10318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "466:24:39", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10319, + "nodeType": "ExpressionStatement", + "src": "466:24:39" + }, + { + "expression": { + "argumentTypes": null, + "id": 10324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10320, + "name": "symbols", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10277, + "src": "501:7:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 10322, + "indexExpression": { + "argumentTypes": null, + "id": 10321, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10311, + "src": "509:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "501:15:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 10323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "519:5:39", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "501:23:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10325, + "nodeType": "ExpressionStatement", + "src": "501:23:39" + }, + { + "assignments": [ + 10327 + ], + "declarations": [ + { + "constant": false, + "id": 10327, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 10371, + "src": "535:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10326, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "535:4:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10331, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10328, + "name": "symbolIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10273, + "src": "548:11:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 10330, + "indexExpression": { + "argumentTypes": null, + "id": 10329, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10311, + "src": "560:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "548:19:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "535:32:39" + }, + { + "expression": { + "argumentTypes": null, + "id": 10336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10332, + "name": "symbolIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10273, + "src": "578:11:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 10334, + "indexExpression": { + "argumentTypes": null, + "id": 10333, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10311, + "src": "590:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "578:19:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "600:1:39", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "578:23:39", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 7639, + "id": 10337, "nodeType": "ExpressionStatement", - "src": "886:35:26" + "src": "578:23:39" }, { "condition": { @@ -3096,19 +2626,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7645, + "id": 10343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7640, + "id": 10338, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7630, - "src": "936:5:26", + "referencedDeclaration": 10327, + "src": "616:5:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3122,7 +2652,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7644, + "id": 10342, "isConstant": false, "isLValue": false, "isPure": false, @@ -3131,18 +2661,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7641, + "id": 10339, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "945:11:26", + "referencedDeclaration": 10269, + "src": "625:11:39", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 7642, + "id": 10340, "isConstant": false, "isLValue": true, "isPure": false, @@ -3150,7 +2680,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "945:18:26", + "src": "625:18:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3161,14 +2691,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 7643, + "id": 10341, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "966:1:26", + "src": "646:1:39", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3176,31 +2706,31 @@ }, "value": "1" }, - "src": "945:22:26", + "src": "625:22:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "936:31:26", + "src": "616:31:39", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 7658, + "id": 10364, "nodeType": "IfStatement", - "src": "932:118:26", + "src": "612:171:39", "trueBody": { - "id": 7657, + "id": 10363, "nodeType": "Block", - "src": "969:81:26", + "src": "649:134:39", "statements": [ { "expression": { "argumentTypes": null, - "id": 7655, + "id": 10353, "isConstant": false, "isLValue": false, "isPure": false, @@ -3209,26 +2739,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7646, + "id": 10344, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "983:11:26", + "referencedDeclaration": 10269, + "src": "663:11:39", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 7648, + "id": 10346, "indexExpression": { "argumentTypes": null, - "id": 7647, + "id": 10345, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7630, - "src": "995:5:26", + "referencedDeclaration": 10327, + "src": "675:5:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3239,7 +2769,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "983:18:26", + "src": "663:18:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3251,25 +2781,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 7649, + "id": 10347, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "1004:11:26", + "referencedDeclaration": 10269, + "src": "684:11:39", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 7654, + "id": 10352, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7653, + "id": 10351, "isConstant": false, "isLValue": false, "isPure": false, @@ -3278,18 +2808,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7650, + "id": 10348, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "1016:11:26", + "referencedDeclaration": 10269, + "src": "696:11:39", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 7651, + "id": 10349, "isConstant": false, "isLValue": true, "isPure": false, @@ -3297,7 +2827,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1016:18:26", + "src": "696:18:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3308,14 +2838,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 7652, + "id": 10350, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1037:1:26", + "src": "717:1:39", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3323,7 +2853,7 @@ }, "value": "1" }, - "src": "1016:22:26", + "src": "696:22:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3334,21 +2864,121 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1004:35:26", + "src": "684:35:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "983:56:26", + "src": "663:56:39", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 7656, + "id": 10354, + "nodeType": "ExpressionStatement", + "src": "663:56:39" + }, + { + "expression": { + "argumentTypes": null, + "id": 10361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10355, + "name": "symbolIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10273, + "src": "733:11:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 10359, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10356, + "name": "symbolsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10269, + "src": "745:11:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 10358, + "indexExpression": { + "argumentTypes": null, + "id": 10357, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10327, + "src": "757:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "745:18:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "733:31:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10360, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10327, + "src": "767:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "733:39:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10362, "nodeType": "ExpressionStatement", - "src": "983:56:26" + "src": "733:39:39" } ] } @@ -3356,7 +2986,7 @@ { "expression": { "argumentTypes": null, - "id": 7662, + "id": 10368, "isConstant": false, "isLValue": false, "isPure": false, @@ -3364,23 +2994,23 @@ "nodeType": "UnaryOperation", "operator": "--", "prefix": false, - "src": "1060:20:26", + "src": "793:20:39", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7659, + "id": 10365, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7537, - "src": "1060:11:26", + "referencedDeclaration": 10269, + "src": "793:11:39", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 7661, + "id": 10367, "isConstant": false, "isLValue": true, "isPure": false, @@ -3388,7 +3018,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1060:18:26", + "src": "793:18:39", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3399,72 +3029,298 @@ "typeString": "uint256" } }, - "id": 7663, + "id": 10369, "nodeType": "ExpressionStatement", - "src": "1060:20:26" + "src": "793:20:39" } ] }, "documentation": null, - "id": 7665, + "id": 10371, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "_removeSymbolByIndex", + "name": "removeSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 7631, + "id": 10312, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7630, - "name": "index", + "id": 10311, + "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7665, - "src": "855:10:26", + "scope": 10371, + "src": "433:14:39", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 7629, - "name": "uint", + "id": 10310, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "855:4:26", + "src": "433:7:39", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "src": "854:12:26" + "src": "432:16:39" }, "payable": false, "returnParameters": { - "id": 7632, + "id": 10313, "nodeType": "ParameterList", "parameters": [], - "src": "876:0:26" + "src": "456:0:39" }, - "scope": 7666, - "src": "825:262:26", + "scope": 10393, + "src": "411:409:39", "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + "superFunction": 10029, + "visibility": "public" + }, + { + "body": { + "id": 10382, + "nodeType": "Block", + "src": "887:39:39", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10378, + "name": "symbols", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10277, + "src": "904:7:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 10380, + "indexExpression": { + "argumentTypes": null, + "id": 10379, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10373, + "src": "912:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "904:15:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10377, + "id": 10381, + "nodeType": "Return", + "src": "897:22:39" + } + ] + }, + "documentation": null, + "id": 10383, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasSymbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10373, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 10383, + "src": "845:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 10372, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "845:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "844:16:39" + }, + "payable": false, + "returnParameters": { + "id": 10377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10376, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10383, + "src": "881:4:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10375, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "881:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "880:6:39" + }, + "scope": 10393, + "src": "826:100:39", + "stateMutability": "view", + "superFunction": 10036, + "visibility": "public" + }, + { + "body": { + "id": 10391, + "nodeType": "Block", + "src": "989:35:39", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10389, + "name": "symbolsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10269, + "src": "1006:11:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "functionReturnParameters": 10388, + "id": 10390, + "nodeType": "Return", + "src": "999:18:39" + } + ] + }, + "documentation": null, + "id": 10392, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSymbolsList", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10384, + "nodeType": "ParameterList", + "parameters": [], + "src": "955:2:39" + }, + "payable": false, + "returnParameters": { + "id": 10388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10387, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10392, + "src": "978:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 10385, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "978:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 10386, + "length": null, + "nodeType": "ArrayTypeName", + "src": "978:9:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "977:11:39" + }, + "scope": 10393, + "src": "932:92:39", + "stateMutability": "view", + "superFunction": 10042, + "visibility": "public" } ], - "scope": 7667, - "src": "52:1037:26" + "scope": 10394, + "src": "52:974:39" } ], - "src": "0:1090:26" + "src": "0:1027:39" }, "compiler": { "name": "solc", @@ -3472,5 +3328,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.322Z" + "updatedAt": "2018-12-06T13:14:33.205Z" } \ No newline at end of file diff --git a/build/contracts/TokenExchanger.json b/build/contracts/TokenExchanger.json index de6a3d75..365e6f2a 100644 --- a/build/contracts/TokenExchanger.json +++ b/build/contracts/TokenExchanger.json @@ -1,6 +1,20 @@ { "contractName": "TokenExchanger", "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -15,19 +29,10 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [], - "name": "owner", + "name": "primary", "outputs": [ { "name": "", @@ -76,20 +81,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -132,29 +123,12 @@ "anonymous": false, "inputs": [ { - "indexed": true, - "name": "previousOwner", - "type": "address" - } - ], - "name": "OwnershipRenounced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", + "indexed": false, + "name": "recipient", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "PrimaryTransferred", "type": "event" }, { @@ -209,7 +183,7 @@ "name": "getWTokenByToken", "outputs": [ { - "name": "wTokenAddress", + "name": "", "type": "address" } ], @@ -228,7 +202,7 @@ "name": "getTokenByWToken", "outputs": [ { - "name": "tokenAddress", + "name": "", "type": "address" } ], @@ -282,24 +256,24 @@ "type": "function" } ], - "bytecode": "0x6080604052600160025534801561001557600080fd5b506040516020806108d5833981016040525160005560018054600160a060020a0319163317905561088a8061004b6000396000f3006080604052600436106100a05763ffffffff60e060020a600035041663045d038981146100a5578063151f3734146100cb57806354fd4d5014610108578063715018a61461012f5780638da5cb5b14610144578063a073691214610159578063cf05039514610180578063cf0a7b4d146101a1578063e1f21c67146101c2578063e2601a5714610200578063f2fde38b14610221578063ff740c1d14610242575b600080fd5b3480156100b157600080fd5b506100c9600160a060020a0360043516602435610269565b005b3480156100d757600080fd5b506100ec600160a060020a0360043516610355565b60408051600160a060020a039092168252519081900360200190f35b34801561011457600080fd5b5061011d61038b565b60408051918252519081900360200190f35b34801561013b57600080fd5b506100c9610391565b34801561015057600080fd5b506100ec6103ff565b34801561016557600080fd5b506100c9600160a060020a036004358116906024351661040e565b34801561018c57600080fd5b506100ec600160a060020a03600435166104ee565b3480156101ad57600080fd5b506100ec600160a060020a0360043516610524565b3480156101ce57600080fd5b506101ec600160a060020a036004358116906024351660443561053f565b604080519115158252519081900360200190f35b34801561020c57600080fd5b506100ec600160a060020a03600435166105f0565b34801561022d57600080fd5b506100c9600160a060020a036004351661060b565b34801561024e57600080fd5b506101ec600160a060020a036004358116906024351661062e565b60025460009060011461027b57600080fd5b600280556000821161028c57600080fd5b600160a060020a03831615156102a157600080fd5b6102aa836104ee565b9050600160a060020a03811615156102c157600080fd5b6102dc600160a060020a03841633308563ffffffff61069016565b6102f6600160a060020a038216338463ffffffff61074116565b33600160a060020a031681600160a060020a031684600160a060020a03167f8f76119a2ce416e7cb071f59d5029dac674dfc46b4c245219902c862465d2037856040518082815260200191505060405180910390a45050600160025550565b6000600160a060020a038216151561036c57600080fd5b50600160a060020a039081166000908152600360205260409020541690565b60005481565b600154600160a060020a031633146103a857600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600154600160a060020a031681565b600154600160a060020a0316331461042557600080fd5b600160a060020a038216151561043a57600080fd5b600160a060020a038116151561044f57600080fd5b600160a060020a03828116908216141561046857600080fd5b610472828261062e565b1561047c57600080fd5b600160a060020a03918216600081815260036020908152604080832080549690951673ffffffffffffffffffffffffffffffffffffffff19968716811790955584835260048252808320805490961684179095559181526005825283812092815291905220805460ff19166001179055565b6000600160a060020a038216151561050557600080fd5b50600160a060020a039081166000908152600460205260409020541690565b600460205260009081526040902054600160a060020a031681565b600154600090600160a060020a0316331461055957600080fd5b83600160a060020a031663095ea7b384846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156105bc57600080fd5b505af11580156105d0573d6000803e3d6000fd5b505050506040513d60208110156105e657600080fd5b5051949350505050565b600360205260009081526040902054600160a060020a031681565b600154600160a060020a0316331461062257600080fd5b61062b816107e0565b50565b600160a060020a03808316600090815260056020908152604080832093851683529290529081205460ff16806106895750600160a060020a0380831660009081526005602090815260408083209387168352929052205460ff165b9392505050565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301528481166024830152604482018490529151918616916323b872dd916064808201926020929091908290030181600087803b15801561070457600080fd5b505af1158015610718573d6000803e3d6000fd5b505050506040513d602081101561072e57600080fd5b5051151561073b57600080fd5b50505050565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156107a457600080fd5b505af11580156107b8573d6000803e3d6000fd5b505050506040513d60208110156107ce57600080fd5b505115156107db57600080fd5b505050565b600160a060020a03811615156107f557600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582003c03dce71b7de353254a604fefad8526cd6f7c21d32159ecbf53c77bd62ee140029", - "deployedBytecode": "0x6080604052600436106100a05763ffffffff60e060020a600035041663045d038981146100a5578063151f3734146100cb57806354fd4d5014610108578063715018a61461012f5780638da5cb5b14610144578063a073691214610159578063cf05039514610180578063cf0a7b4d146101a1578063e1f21c67146101c2578063e2601a5714610200578063f2fde38b14610221578063ff740c1d14610242575b600080fd5b3480156100b157600080fd5b506100c9600160a060020a0360043516602435610269565b005b3480156100d757600080fd5b506100ec600160a060020a0360043516610355565b60408051600160a060020a039092168252519081900360200190f35b34801561011457600080fd5b5061011d61038b565b60408051918252519081900360200190f35b34801561013b57600080fd5b506100c9610391565b34801561015057600080fd5b506100ec6103ff565b34801561016557600080fd5b506100c9600160a060020a036004358116906024351661040e565b34801561018c57600080fd5b506100ec600160a060020a03600435166104ee565b3480156101ad57600080fd5b506100ec600160a060020a0360043516610524565b3480156101ce57600080fd5b506101ec600160a060020a036004358116906024351660443561053f565b604080519115158252519081900360200190f35b34801561020c57600080fd5b506100ec600160a060020a03600435166105f0565b34801561022d57600080fd5b506100c9600160a060020a036004351661060b565b34801561024e57600080fd5b506101ec600160a060020a036004358116906024351661062e565b60025460009060011461027b57600080fd5b600280556000821161028c57600080fd5b600160a060020a03831615156102a157600080fd5b6102aa836104ee565b9050600160a060020a03811615156102c157600080fd5b6102dc600160a060020a03841633308563ffffffff61069016565b6102f6600160a060020a038216338463ffffffff61074116565b33600160a060020a031681600160a060020a031684600160a060020a03167f8f76119a2ce416e7cb071f59d5029dac674dfc46b4c245219902c862465d2037856040518082815260200191505060405180910390a45050600160025550565b6000600160a060020a038216151561036c57600080fd5b50600160a060020a039081166000908152600360205260409020541690565b60005481565b600154600160a060020a031633146103a857600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600154600160a060020a031681565b600154600160a060020a0316331461042557600080fd5b600160a060020a038216151561043a57600080fd5b600160a060020a038116151561044f57600080fd5b600160a060020a03828116908216141561046857600080fd5b610472828261062e565b1561047c57600080fd5b600160a060020a03918216600081815260036020908152604080832080549690951673ffffffffffffffffffffffffffffffffffffffff19968716811790955584835260048252808320805490961684179095559181526005825283812092815291905220805460ff19166001179055565b6000600160a060020a038216151561050557600080fd5b50600160a060020a039081166000908152600460205260409020541690565b600460205260009081526040902054600160a060020a031681565b600154600090600160a060020a0316331461055957600080fd5b83600160a060020a031663095ea7b384846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156105bc57600080fd5b505af11580156105d0573d6000803e3d6000fd5b505050506040513d60208110156105e657600080fd5b5051949350505050565b600360205260009081526040902054600160a060020a031681565b600154600160a060020a0316331461062257600080fd5b61062b816107e0565b50565b600160a060020a03808316600090815260056020908152604080832093851683529290529081205460ff16806106895750600160a060020a0380831660009081526005602090815260408083209387168352929052205460ff165b9392505050565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301528481166024830152604482018490529151918616916323b872dd916064808201926020929091908290030181600087803b15801561070457600080fd5b505af1158015610718573d6000803e3d6000fd5b505050506040513d602081101561072e57600080fd5b5051151561073b57600080fd5b50505050565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156107a457600080fd5b505af11580156107b8573d6000803e3d6000fd5b505050506040513d60208110156107ce57600080fd5b505115156107db57600080fd5b505050565b600160a060020a03811615156107f557600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582003c03dce71b7de353254a604fefad8526cd6f7c21d32159ecbf53c77bd62ee140029", - "sourceMap": "381:2152:36:-;;;487:1:41;657:51;;806:56:36;8:9:-1;5:2;;;30:1;27;20:12;5:2;806:56:36;;;;;;;;;;;;;123:7:37;:18;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;381:2152:36;;;;;;", - "deployedSourceMap": "381:2152:36:-;;;;;;;;;-1:-1:-1;;;381:2152:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1918:613;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1918:613:36;-1:-1:-1;;;;;1918:613:36;;;;;;;;;1386:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1386:183:36;-1:-1:-1;;;;;1386:183:36;;;;;;;;;-1:-1:-1;;;;;1386:183:36;;;;;;;;;;;;;;53:19:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:37;;;;;;;;;;;;;;;;;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;868:364:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;868:364:36;-1:-1:-1;;;;;868:364:36;;;;;;;;;;1575:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1575:183:36;-1:-1:-1;;;;;1575:183:36;;;;;590:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;590:53:36;-1:-1:-1;;;;;590:53:36;;;;;1764:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1764:148:36;-1:-1:-1;;;;;1764:148:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;530:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;530:54:36;-1:-1:-1;;;;;530:54:36;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;-1:-1:-1;;;;;1274:103:45;;;;;1238:142:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1238:142:36;-1:-1:-1;;;;;1238:142:36;;;;;;;;;;1918:613;1128:14:41;;2133:13:36;;487:1:41;1128:39;1120:48;;;;;;584:1;1174:40;;2015:1:36;2006:10;;1998:19;;;;;;-1:-1:-1;;;;;2035:23:36;;;;2027:32;;;;;;2149:27;2166:9;2149:16;:27::i;:::-;2133:43;-1:-1:-1;;;;;;2194:21:36;;;;2186:30;;;;;;2331:61;-1:-1:-1;;;;;2331:26:36;;2358:10;2378:4;2385:6;2331:61;:26;:61;:::i;:::-;2402:40;-1:-1:-1;;;;;2402:20:36;;2423:10;2435:6;2402:40;:20;:40;:::i;:::-;2513:10;-1:-1:-1;;;;;2458:66:36;2495:7;-1:-1:-1;;;;;2458:66:36;2475:9;-1:-1:-1;;;;;2458:66:36;;2505:6;2458:66;;;;;;;;;;;;;;;;;;-1:-1:-1;;487:1:41;1227:14;:38;-1:-1:-1;1918:613:36:o;1386:183::-;1448:20;-1:-1:-1;;;;;1488:19:36;;;;1480:28;;;;;;-1:-1:-1;;;;;;1535:27:36;;;;;;;:20;:27;;;;;;;;1386:183::o;53:19:37:-;;;;:::o;1001:111:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;238:20::-;;;-1:-1:-1;;;;;238:20:45;;:::o;868:364:36:-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;960:19:36;;;;952:28;;;;;;-1:-1:-1;;;;;998:20:36;;;;990:29;;;;;;-1:-1:-1;;;;;1037:15:36;;;;;;;;1029:24;;;;;;1072:22;1080:5;1087:6;1072:7;:22::i;:::-;1071:23;1063:32;;;;;;-1:-1:-1;;;;;1106:27:36;;;;;;;:20;:27;;;;;;;;:36;;;;;;-1:-1:-1;;1106:36:36;;;;;;;;1152:28;;;:20;:28;;;;;:36;;;;;;;;;;1198:12;;;:5;:12;;;;;:20;;;;;;;:27;;-1:-1:-1;;1198:27:36;1106:36;1198:27;;;868:364::o;1575:183::-;1638:18;-1:-1:-1;;;;;1676:20:36;;;;1668:29;;;;;;-1:-1:-1;;;;;;1723:28:36;;;;;;;:20;:28;;;;;;;;1575:183::o;590:53::-;;;;;;;;;;;;-1:-1:-1;;;;;590:53:36;;:::o;1764:148::-;719:5:45;;1852:4:36;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1875:5:36;-1:-1:-1;;;;;1875:13:36;;1889:7;1898:6;1875:30;;;;;-1:-1:-1;;;1875:30:36;;;;;;;-1:-1:-1;;;;;1875:30:36;-1:-1:-1;;;;;1875:30:36;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1875:30:36;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1875:30:36;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1875:30:36;;1764:148;-1:-1:-1;;;;1764:148:36:o;530:54::-;;;;;;;;;;;;-1:-1:-1;;;;;530:54:36;;:::o;1274:103:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;1238:142:36:-;-1:-1:-1;;;;;1327:13:36;;;1304:4;1327:13;;;:5;:13;;;;;;;;:21;;;;;;;;;;;;;;;:46;;-1:-1:-1;;;;;;1352:13:36;;;;;;;:5;:13;;;;;;;;:21;;;;;;;;;;;;1327:46;1320:53;1238:142;-1:-1:-1;;;1238:142:36:o;521:178:49:-;654:39;;;;;;-1:-1:-1;;;;;654:39:49;;;;;;;;;;;;;;;;;;;;;;:19;;;;;;:39;;;;;;;;;;;;;;;-1:-1:-1;654:19:49;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;654:39:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;654:39:49;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;654:39:49;646:48;;;;;;;;521:178;;;;:::o;368:149::-;483:6;-1:-1:-1;;;;;483:15:49;;499:3;504:6;483:28;;;;;-1:-1:-1;;;483:28:49;;;;;;;-1:-1:-1;;;;;483:28:49;-1:-1:-1;;;;;483:28:49;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;483:28:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;483:28:49;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;483:28:49;475:37;;;;;;;;368:149;;;:::o;1512:171:45:-;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol\";\nimport \"openzeppelin-solidity/contracts/ReentrancyGuard.sol\";\nimport \"../../versioning/Versionable.sol\";\nimport \"../WToken.sol\";\nimport \"./ITokenExchanger.sol\";\n\n\ncontract TokenExchanger is ITokenExchanger, Versionable, Ownable, ReentrancyGuard {\n using SafeMath for uint;\n using SafeERC20 for ERC20;\n\n mapping(address => WToken) public listingTokenToWToken;\n mapping(address => ERC20) public listingWTokenToToken;\n mapping(address => mapping(address => bool)) pairs;\n\n event Exchange(address indexed from, address indexed to, uint amount, address indexed sender);\n\n constructor(uint version) Versionable(version) public {}\n\n function addTokenToListing(ERC20 token, WToken wToken) external onlyOwner {\n require(token != address(0));\n require(wToken != address(0));\n require(token != wToken);\n require(!hasPair(token, wToken));\n\n listingTokenToWToken[token] = wToken;\n listingWTokenToToken[wToken] = token;\n pairs[token][wToken] = true;\n }\n\n function hasPair(ERC20 token1, ERC20 token2) public view returns (bool) {\n return pairs[token1][token2] || pairs[token2][token1];\n }\n\n function getWTokenByToken(address token) public view returns (WToken wTokenAddress) {\n require(token != address(0));\n\n wTokenAddress = listingTokenToWToken[token];\n }\n\n function getTokenByWToken(address wToken) public view returns (ERC20 tokenAddress) {\n require(wToken != address(0));\n\n tokenAddress = listingWTokenToToken[wToken];\n }\n\n function approve(ERC20 token, address spender, uint amount) external onlyOwner returns (bool) {\n return token.approve(spender, amount);\n }\n\n function exchange(ERC20 fromToken, uint amount) external nonReentrant {\n require(amount > 0);\n require(fromToken != address(0));\n // Checking if fromToken is WToken and have actual pair\n ERC20 toToken = getTokenByWToken(fromToken);\n require(toToken != address(0));\n // we won't check `amount` for zero because ERC20 implies zero amount transfers as a valid case\n\n fromToken.safeTransferFrom(msg.sender, address(this), amount);\n toToken.safeTransfer(msg.sender, amount);\n\n emit Exchange(address(fromToken), address(toToken), amount, msg.sender);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b506040516020806108988339810160408181529151600081905560018054600160a060020a031916331790819055600160a060020a0316825291517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a150600160025561080e8061008a6000396000f3006080604052600436106100955763ffffffff60e060020a600035041663045d0389811461009a578063151f3734146100c05780632348238c146100fd57806354fd4d501461011e578063a073691214610145578063c6dbdf611461016c578063cf05039514610181578063cf0a7b4d146101a2578063e1f21c67146101c3578063e2601a5714610201578063ff740c1d14610222575b600080fd5b3480156100a657600080fd5b506100be600160a060020a0360043516602435610249565b005b3480156100cc57600080fd5b506100e1600160a060020a0360043516610336565b60408051600160a060020a039092168252519081900360200190f35b34801561010957600080fd5b506100be600160a060020a036004351661036c565b34801561012a57600080fd5b506101336103ff565b60408051918252519081900360200190f35b34801561015157600080fd5b506100be600160a060020a0360043581169060243516610405565b34801561017857600080fd5b506100e161050a565b34801561018d57600080fd5b506100e1600160a060020a0360043516610519565b3480156101ae57600080fd5b506100e1600160a060020a036004351661054f565b3480156101cf57600080fd5b506101ed600160a060020a036004358116906024351660443561056a565b604080519115158252519081900360200190f35b34801561020d57600080fd5b506100e1600160a060020a036004351661061b565b34801561022e57600080fd5b506101ed600160a060020a0360043581169060243516610636565b600280546001019081905560009081831161026357600080fd5b600160a060020a038416151561027857600080fd5b61028184610519565b9150600160a060020a038216151561029857600080fd5b6102b3600160a060020a03851633308663ffffffff61069816565b6102cd600160a060020a038316338563ffffffff61074316565b33600160a060020a031682600160a060020a031685600160a060020a03167f8f76119a2ce416e7cb071f59d5029dac674dfc46b4c245219902c862465d2037866040518082815260200191505060405180910390a4600254811461033057600080fd5b50505050565b6000600160a060020a038216151561034d57600080fd5b50600160a060020a039081166000908152600360205260409020541690565b600154600160a060020a0316331461038357600080fd5b600160a060020a038116151561039857600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b60005481565b600154600160a060020a0316331461041c57600080fd5b600160a060020a038216151561043157600080fd5b600160a060020a038116151561044657600080fd5b600160a060020a03828116600090815260036020526040902054161561046b57600080fd5b600160a060020a03828116908216141561048457600080fd5b61048e8282610636565b1561049857600080fd5b600160a060020a03918216600081815260036020908152604080832080549690951673ffffffffffffffffffffffffffffffffffffffff19968716811790955584835260048252808320805490961684179095559181526005825283812092815291905220805460ff19166001179055565b600154600160a060020a031690565b6000600160a060020a038216151561053057600080fd5b50600160a060020a039081166000908152600460205260409020541690565b600460205260009081526040902054600160a060020a031681565b600154600090600160a060020a0316331461058457600080fd5b83600160a060020a031663095ea7b384846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156105e757600080fd5b505af11580156105fb573d6000803e3d6000fd5b505050506040513d602081101561061157600080fd5b5051949350505050565b600360205260009081526040902054600160a060020a031681565b600160a060020a03808316600090815260056020908152604080832093851683529290529081205460ff16806106915750600160a060020a0380831660009081526005602090815260408083209387168352929052205460ff165b9392505050565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301528481166024830152604482018490529151918616916323b872dd916064808201926020929091908290030181600087803b15801561070c57600080fd5b505af1158015610720573d6000803e3d6000fd5b505050506040513d602081101561073657600080fd5b5051151561033057600080fd5b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b505115156107dd57600080fd5b5050505600a165627a7a723058205d2e51e0d0a631859d7868111dfb63a115b1206e51749048f29b018a1ddbf9a50029", + "deployedBytecode": "0x6080604052600436106100955763ffffffff60e060020a600035041663045d0389811461009a578063151f3734146100c05780632348238c146100fd57806354fd4d501461011e578063a073691214610145578063c6dbdf611461016c578063cf05039514610181578063cf0a7b4d146101a2578063e1f21c67146101c3578063e2601a5714610201578063ff740c1d14610222575b600080fd5b3480156100a657600080fd5b506100be600160a060020a0360043516602435610249565b005b3480156100cc57600080fd5b506100e1600160a060020a0360043516610336565b60408051600160a060020a039092168252519081900360200190f35b34801561010957600080fd5b506100be600160a060020a036004351661036c565b34801561012a57600080fd5b506101336103ff565b60408051918252519081900360200190f35b34801561015157600080fd5b506100be600160a060020a0360043581169060243516610405565b34801561017857600080fd5b506100e161050a565b34801561018d57600080fd5b506100e1600160a060020a0360043516610519565b3480156101ae57600080fd5b506100e1600160a060020a036004351661054f565b3480156101cf57600080fd5b506101ed600160a060020a036004358116906024351660443561056a565b604080519115158252519081900360200190f35b34801561020d57600080fd5b506100e1600160a060020a036004351661061b565b34801561022e57600080fd5b506101ed600160a060020a0360043581169060243516610636565b600280546001019081905560009081831161026357600080fd5b600160a060020a038416151561027857600080fd5b61028184610519565b9150600160a060020a038216151561029857600080fd5b6102b3600160a060020a03851633308663ffffffff61069816565b6102cd600160a060020a038316338563ffffffff61074316565b33600160a060020a031682600160a060020a031685600160a060020a03167f8f76119a2ce416e7cb071f59d5029dac674dfc46b4c245219902c862465d2037866040518082815260200191505060405180910390a4600254811461033057600080fd5b50505050565b6000600160a060020a038216151561034d57600080fd5b50600160a060020a039081166000908152600360205260409020541690565b600154600160a060020a0316331461038357600080fd5b600160a060020a038116151561039857600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b60005481565b600154600160a060020a0316331461041c57600080fd5b600160a060020a038216151561043157600080fd5b600160a060020a038116151561044657600080fd5b600160a060020a03828116600090815260036020526040902054161561046b57600080fd5b600160a060020a03828116908216141561048457600080fd5b61048e8282610636565b1561049857600080fd5b600160a060020a03918216600081815260036020908152604080832080549690951673ffffffffffffffffffffffffffffffffffffffff19968716811790955584835260048252808320805490961684179095559181526005825283812092815291905220805460ff19166001179055565b600154600160a060020a031690565b6000600160a060020a038216151561053057600080fd5b50600160a060020a039081166000908152600460205260409020541690565b600460205260009081526040902054600160a060020a031681565b600154600090600160a060020a0316331461058457600080fd5b83600160a060020a031663095ea7b384846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156105e757600080fd5b505af11580156105fb573d6000803e3d6000fd5b505050506040513d602081101561061157600080fd5b5051949350505050565b600360205260009081526040902054600160a060020a031681565b600160a060020a03808316600090815260056020908152604080832093851683529290529081205460ff16806106915750600160a060020a0380831660009081526005602090815260408083209387168352929052205460ff165b9392505050565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301528481166024830152604482018490529151918616916323b872dd916064808201926020929091908290030181600087803b15801561070c57600080fd5b505af1158015610720573d6000803e3d6000fd5b505050506040513d602081101561073657600080fd5b5051151561033057600080fd5b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b505115156107dd57600080fd5b5050505600a165627a7a723058205d2e51e0d0a631859d7868111dfb63a115b1206e51749048f29b018a1ddbf9a50029", + "sourceMap": "527:2317:47:-;;;1003:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;1003:56:47;;;;;;;;;;;;;;;;123:7:48;:18;;;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;-1:-1:-1;;;;;436:8:55;417:28;;;;;;;;;1003:56:47;417:28:55;;;-1:-1:-1;559:1:62;543:13;:17;527:2317:47;;;;;;", + "deployedSourceMap": "527:2317:47:-;;;;;;;;;-1:-1:-1;;;527:2317:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2227:615;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2227:615:47;-1:-1:-1;;;;;2227:615:47;;;;;;;;;1727:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1727:161:47;-1:-1:-1;;;;;1727:161:47;;;;;;;;;-1:-1:-1;;;;;1727:161:47;;;;;;;;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;-1:-1:-1;;;;;855:171:55;;;;;53:19:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:48;;;;;;;;;;;;;;;;;;;;1065:492:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1065:492:47;-1:-1:-1;;;;;1065:492:47;;;;;;;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;1894:170:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1894:170:47;-1:-1:-1;;;;;1894:170:47;;;;;779:61;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;779:61:47;-1:-1:-1;;;;;779:61:47;;;;;2070:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2070:151:47;-1:-1:-1;;;;;2070:151:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;718:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;718:55:47;-1:-1:-1;;;;;718:55:47;;;;;1563:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1563:158:47;-1:-1:-1;;;;;1563:158:47;;;;;;;;;;2227:615;954:13:62;:18;;971:1;954:18;;;;;2443:14:47;;2316:10;;;2308:19;;;;;;-1:-1:-1;;;;;2345:23:47;;;;2337:32;;;;;;2460:27;2477:9;2460:16;:27::i;:::-;2443:44;-1:-1:-1;;;;;;2505:21:47;;;;2497:30;;;;;;2642:61;-1:-1:-1;;;;;2642:26:47;;2669:10;2689:4;2696:6;2642:61;:26;:61;:::i;:::-;2713:40;-1:-1:-1;;;;;2713:20:47;;2734:10;2746:6;2713:40;:20;:40;:::i;:::-;2824:10;-1:-1:-1;;;;;2769:66:47;2806:7;-1:-1:-1;;;;;2769:66:47;2786:9;-1:-1:-1;;;;;2769:66:47;;2816:6;2769:66;;;;;;;;;;;;;;;;;;1051:13:62;;1035:29;;1027:38;;;;;;2227:615:47;;;;:::o;1727:161::-;1789:7;-1:-1:-1;;;;;1816:19:47;;;;1808:28;;;;;;-1:-1:-1;;;;;;1854:27:47;;;;;;;:20;:27;;;;;;;;1727:161::o;855:171:55:-;586:8;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;53:19:48:-;;;;:::o;1065:492:47:-;586:8:55;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;-1:-1:-1;;;;;1168:19:47;;;;1160:28;;;;;;-1:-1:-1;;;;;1206:20:47;;;;1198:29;;;;;;-1:-1:-1;;;;;1253:27:47;;;1293:1;1253:27;;;:20;:27;;;;;;;1245:50;1237:59;;;;;;-1:-1:-1;;;;;1314:33:47;;;;;;;;1306:42;;;;;;1367:52;1389:5;1411:6;1367:7;:52::i;:::-;1366:53;1358:62;;;;;;-1:-1:-1;;;;;1431:27:47;;;;;;;:20;:27;;;;;;;;:36;;;;;;-1:-1:-1;;1431:36:47;;;;;;;;1477:28;;;:20;:28;;;;;:36;;;;;;;;;;1523:12;;;:5;:12;;;;;:20;;;;;;;:27;;-1:-1:-1;;1523:27:47;1431:36;1523:27;;;1065:492::o;664:75:55:-;726:8;;-1:-1:-1;;;;;726:8:55;664:75;:::o;1894:170:47:-;1957:13;-1:-1:-1;;;;;1990:20:47;;;;1982:29;;;;;;-1:-1:-1;;;;;;2029:28:47;;;;;;;:20;:28;;;;;;;;1894:170::o;779:61::-;;;;;;;;;;;;-1:-1:-1;;;;;779:61:47;;:::o;2070:151::-;586:8:55;;2161:4:47;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;2184:5:47;-1:-1:-1;;;;;2184:13:47;;2198:7;2207:6;2184:30;;;;;-1:-1:-1;;;2184:30:47;;;;;;;-1:-1:-1;;;;;2184:30:47;-1:-1:-1;;;;;2184:30:47;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2184:30:47;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2184:30:47;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2184:30:47;;2070:151;-1:-1:-1;;;;2070:151:47:o;718:55::-;;;;;;;;;;;;-1:-1:-1;;;;;718:55:47;;:::o;1563:158::-;-1:-1:-1;;;;;1668:13:47;;;1645:4;1668:13;;;:5;:13;;;;;;;;:21;;;;;;;;;;;;;;;:46;;-1:-1:-1;;;;;;1693:13:47;;;;;;;:5;:13;;;;;;;;:21;;;;;;;;;;;;1668:46;1661:53;1563:158;-1:-1:-1;;;1563:158:47:o;550:171:61:-;680:35;;;;;;-1:-1:-1;;;;;680:35:61;;;;;;;;;;;;;;;;;;;;;;:18;;;;;;:35;;;;;;;;;;;;;;;-1:-1:-1;680:18:61;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;680:35:61;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;680:35:61;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;680:35:61;672:44;;;;;;;407:139;515:5;-1:-1:-1;;;;;515:14:61;;530:2;534:5;515:25;;;;;-1:-1:-1;;;515:25:61;;;;;;;-1:-1:-1;;;;;515:25:61;-1:-1:-1;;;;;515:25:61;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;515:25:61;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;515:25:61;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;515:25:61;507:34;;;;;;;;407:139;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Secondary.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol\";\nimport \"openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol\";\nimport \"../../versioning/Versionable.sol\";\nimport \"../IWToken.sol\";\nimport \"./ITokenExchanger.sol\";\n\n\ncontract TokenExchanger is ITokenExchanger, Versionable, Secondary, ReentrancyGuard {\n using SafeMath for uint;\n using SafeERC20 for ERC20Detailed;\n using SafeERC20 for IERC20;\n\n mapping(address => IWToken) public listingTokenToWToken;\n mapping(address => ERC20Detailed) public listingWTokenToToken;\n mapping(address => mapping(address => bool)) pairs;\n\n event Exchange(address indexed from, address indexed to, uint amount, address indexed sender);\n\n constructor(uint version) Versionable(version) public {}\n\n function addTokenToListing(ERC20Detailed token, IWToken wToken) external onlyPrimary {\n require(token != address(0));\n require(wToken != address(0));\n require(address(listingTokenToWToken[token]) == address(0));\n require(address(token) != address(wToken));\n require(!hasPair(ERC20Detailed(token), ERC20Detailed(wToken)));\n\n listingTokenToWToken[token] = wToken;\n listingWTokenToToken[wToken] = token;\n pairs[token][wToken] = true;\n }\n\n function hasPair(ERC20Detailed token1, ERC20Detailed token2) public view returns (bool) {\n return pairs[token1][token2] || pairs[token2][token1];\n }\n\n function getWTokenByToken(address token) public view returns (IWToken) {\n require(token != address(0));\n\n return listingTokenToWToken[token];\n }\n\n function getTokenByWToken(address wToken) public view returns (ERC20Detailed) {\n require(wToken != address(0));\n\n return listingWTokenToToken[wToken];\n }\n\n function approve(IERC20 token, address spender, uint amount) external onlyPrimary returns (bool) {\n return token.approve(spender, amount);\n }\n\n function exchange(IERC20 fromToken, uint amount) external nonReentrant {\n require(amount > 0);\n require(fromToken != address(0));\n // Checking if fromToken is WToken and have actual pair\n IERC20 toToken = getTokenByWToken(fromToken);\n require(toToken != address(0));\n // we won't check `amount` for zero because ERC20 implies zero amount transfers as a valid case\n\n fromToken.safeTransferFrom(msg.sender, address(this), amount);\n toToken.safeTransfer(msg.sender, amount);\n\n emit Exchange(address(fromToken), address(toToken), amount, msg.sender);\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/token/exchanger/TokenExchanger.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/token/exchanger/TokenExchanger.sol", "exportedSymbols": { "TokenExchanger": [ - 9501 + 11818 ] }, - "id": 9502, + "id": 11819, "nodeType": "SourceUnit", "nodes": [ { - "id": 9231, + "id": 11527, "literals": [ "solidity", "^", @@ -307,82 +281,104 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:36" + "src": "0:24:47" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 9232, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 11528, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 10135, - "src": "26:63:36", + "scope": 11819, + "sourceUnit": 12454, + "src": "26:65:47", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 9233, + "id": 11529, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 10049, - "src": "90:59:36", + "scope": 11819, + "sourceUnit": 12389, + "src": "92:59:47", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 11530, + "nodeType": "ImportDirective", + "scope": 11819, + "sourceUnit": 13084, + "src": "152:64:47", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "id": 11531, + "nodeType": "ImportDirective", + "scope": 11819, + "sourceUnit": 12987, + "src": "217:71:47", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", - "id": 9234, + "id": 11532, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 10306, - "src": "150:67:36", + "scope": 11819, + "sourceUnit": 13228, + "src": "289:67:47", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 9235, + "absolutePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "file": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "id": 11533, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 9778, - "src": "218:61:36", + "scope": 11819, + "sourceUnit": 13259, + "src": "357:67:47", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "../../versioning/Versionable.sol", - "id": 9236, + "id": 11534, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 9517, - "src": "280:42:36", + "scope": 11819, + "sourceUnit": 11834, + "src": "425:42:47", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "../WToken.sol", - "id": 9237, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../IWToken.sol", + "id": 11535, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 8751, - "src": "323:23:36", + "scope": 11819, + "sourceUnit": 10486, + "src": "468:24:47", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "file": "./ITokenExchanger.sol", - "id": 9238, + "id": 11536, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 9195, - "src": "347:31:36", + "scope": 11819, + "sourceUnit": 11491, + "src": "493:31:47", "symbolAliases": [], "unitAlias": "" }, @@ -392,120 +388,120 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 9239, + "id": 11537, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9194, - "src": "408:15:36", + "referencedDeclaration": 11490, + "src": "554:15:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } }, - "id": 9240, + "id": 11538, "nodeType": "InheritanceSpecifier", - "src": "408:15:36" + "src": "554:15:47" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 9241, + "id": 11539, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "425:11:36", + "referencedDeclaration": 11833, + "src": "571:11:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", + "typeIdentifier": "t_contract$_Versionable_$11833", "typeString": "contract Versionable" } }, - "id": 9242, + "id": 11540, "nodeType": "InheritanceSpecifier", - "src": "425:11:36" + "src": "571:11:47" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 9243, - "name": "Ownable", + "id": 11541, + "name": "Secondary", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "438:7:36", + "referencedDeclaration": 12453, + "src": "584:9:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" } }, - "id": 9244, + "id": 11542, "nodeType": "InheritanceSpecifier", - "src": "438:7:36" + "src": "584:9:47" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 9245, + "id": 11543, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9777, - "src": "447:15:36", + "referencedDeclaration": 13258, + "src": "595:15:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9777", + "typeIdentifier": "t_contract$_ReentrancyGuard_$13258", "typeString": "contract ReentrancyGuard" } }, - "id": 9246, + "id": 11544, "nodeType": "InheritanceSpecifier", - "src": "447:15:36" + "src": "595:15:47" } ], "contractDependencies": [ - 9185, - 9194, - 9229, - 9516, - 9777, - 10134 + 11481, + 11490, + 11525, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 9501, + "id": 11818, "linearizedBaseContracts": [ - 9501, - 9777, - 10134, - 9516, - 9194, - 9229, - 9185 + 11818, + 13258, + 12453, + 11833, + 11490, + 11525, + 11481 ], "name": "TokenExchanger", "nodeType": "ContractDefinition", "nodes": [ { - "id": 9249, + "id": 11547, "libraryName": { "contractScope": null, - "id": 9247, + "id": 11545, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "475:8:36", + "referencedDeclaration": 12388, + "src": "623:8:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "469:24:36", + "src": "617:24:47", "typeName": { - "id": 9248, + "id": 11546, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "488:4:36", + "src": "636:4:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -513,75 +509,104 @@ } }, { - "id": 9252, + "id": 11550, + "libraryName": { + "contractScope": null, + "id": 11548, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13227, + "src": "652:9:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$13227", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "646:34:47", + "typeName": { + "contractScope": null, + "id": 11549, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12986, + "src": "666:13:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + } + }, + { + "id": 11553, "libraryName": { "contractScope": null, - "id": 9250, + "id": 11551, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10305, - "src": "504:9:36", + "referencedDeclaration": 13227, + "src": "691:9:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$10305", + "typeIdentifier": "t_contract$_SafeERC20_$13227", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", - "src": "498:26:36", + "src": "685:27:47", "typeName": { "contractScope": null, - "id": 9251, - "name": "ERC20", + "id": 11552, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "518:5:36", + "referencedDeclaration": 13083, + "src": "705:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } } }, { "constant": false, - "id": 9256, + "id": 11557, "name": "listingTokenToWToken", "nodeType": "VariableDeclaration", - "scope": 9501, - "src": "530:54:36", + "scope": 11818, + "src": "718:55:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8750_$", - "typeString": "mapping(address => contract WToken)" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IWToken_$10485_$", + "typeString": "mapping(address => contract IWToken)" }, "typeName": { - "id": 9255, + "id": 11556, "keyType": { - "id": 9253, + "id": 11554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "538:7:36", + "src": "726:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "530:26:36", + "src": "718:27:47", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8750_$", - "typeString": "mapping(address => contract WToken)" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IWToken_$10485_$", + "typeString": "mapping(address => contract IWToken)" }, "valueType": { "contractScope": null, - "id": 9254, - "name": "WToken", + "id": 11555, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "549:6:36", + "referencedDeclaration": 10485, + "src": "737:7:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } } }, @@ -590,45 +615,45 @@ }, { "constant": false, - "id": 9260, + "id": 11561, "name": "listingWTokenToToken", "nodeType": "VariableDeclaration", - "scope": 9501, - "src": "590:53:36", + "scope": 11818, + "src": "779:61:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$10211_$", - "typeString": "mapping(address => contract ERC20)" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "mapping(address => contract ERC20Detailed)" }, "typeName": { - "id": 9259, + "id": 11560, "keyType": { - "id": 9257, + "id": 11558, "name": "address", "nodeType": "ElementaryTypeName", - "src": "598:7:36", + "src": "787:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "590:25:36", + "src": "779:33:47", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$10211_$", - "typeString": "mapping(address => contract ERC20)" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "mapping(address => contract ERC20Detailed)" }, "valueType": { "contractScope": null, - "id": 9258, - "name": "ERC20", + "id": 11559, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "609:5:36", + "referencedDeclaration": 12986, + "src": "798:13:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } } }, @@ -637,11 +662,11 @@ }, { "constant": false, - "id": 9266, + "id": 11567, "name": "pairs", "nodeType": "VariableDeclaration", - "scope": 9501, - "src": "649:50:36", + "scope": 11818, + "src": "846:50:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -649,46 +674,46 @@ "typeString": "mapping(address => mapping(address => bool))" }, "typeName": { - "id": 9265, + "id": 11566, "keyType": { - "id": 9261, + "id": 11562, "name": "address", "nodeType": "ElementaryTypeName", - "src": "657:7:36", + "src": "854:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "649:44:36", + "src": "846:44:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" }, "valueType": { - "id": 9264, + "id": 11565, "keyType": { - "id": 9262, + "id": 11563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "676:7:36", + "src": "873:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "668:24:36", + "src": "865:24:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 9263, + "id": 11564, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "687:4:36", + "src": "884:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -702,21 +727,21 @@ { "anonymous": false, "documentation": null, - "id": 9276, + "id": 11577, "name": "Exchange", "nodeType": "EventDefinition", "parameters": { - "id": 9275, + "id": 11576, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9268, + "id": 11569, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 9276, - "src": "721:20:36", + "scope": 11577, + "src": "918:20:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -724,10 +749,10 @@ "typeString": "address" }, "typeName": { - "id": 9267, + "id": 11568, "name": "address", "nodeType": "ElementaryTypeName", - "src": "721:7:36", + "src": "918:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -738,12 +763,12 @@ }, { "constant": false, - "id": 9270, + "id": 11571, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 9276, - "src": "743:18:36", + "scope": 11577, + "src": "940:18:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -751,10 +776,10 @@ "typeString": "address" }, "typeName": { - "id": 9269, + "id": 11570, "name": "address", "nodeType": "ElementaryTypeName", - "src": "743:7:36", + "src": "940:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -765,12 +790,12 @@ }, { "constant": false, - "id": 9272, + "id": 11573, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 9276, - "src": "763:11:36", + "scope": 11577, + "src": "960:11:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -778,10 +803,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9271, + "id": 11572, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "763:4:36", + "src": "960:4:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -792,12 +817,12 @@ }, { "constant": false, - "id": 9274, + "id": 11575, "indexed": true, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 9276, - "src": "776:22:36", + "scope": 11577, + "src": "973:22:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -805,10 +830,10 @@ "typeString": "address" }, "typeName": { - "id": 9273, + "id": 11574, "name": "address", "nodeType": "ElementaryTypeName", - "src": "776:7:36", + "src": "973:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -818,19 +843,19 @@ "visibility": "internal" } ], - "src": "720:79:36" + "src": "917:79:47" }, - "src": "706:94:36" + "src": "903:94:47" }, { "body": { - "id": 9284, + "id": 11585, "nodeType": "Block", - "src": "860:2:36", + "src": "1057:2:47", "statements": [] }, "documentation": null, - "id": 9285, + "id": 11586, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -839,49 +864,49 @@ "arguments": [ { "argumentTypes": null, - "id": 9281, + "id": 11582, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9278, - "src": "844:7:36", + "referencedDeclaration": 11579, + "src": "1041:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 9282, + "id": 11583, "modifierName": { "argumentTypes": null, - "id": 9280, + "id": 11581, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "832:11:36", + "referencedDeclaration": 11833, + "src": "1029:11:47", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "832:20:36" + "src": "1029:20:47" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 9279, + "id": 11580, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9278, + "id": 11579, "name": "version", "nodeType": "VariableDeclaration", - "scope": 9285, - "src": "818:12:36", + "scope": 11586, + "src": "1015:12:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -889,10 +914,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9277, + "id": 11578, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "818:4:36", + "src": "1015:4:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -902,26 +927,26 @@ "visibility": "internal" } ], - "src": "817:14:36" + "src": "1014:14:47" }, "payable": false, "returnParameters": { - "id": 9283, + "id": 11584, "nodeType": "ParameterList", "parameters": [], - "src": "860:0:36" + "src": "1057:0:47" }, - "scope": 9501, - "src": "806:56:36", + "scope": 11818, + "src": "1003:56:47", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9344, + "id": 11665, "nodeType": "Block", - "src": "942:290:36", + "src": "1150:407:47", "statements": [ { "expression": { @@ -933,22 +958,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9299, + "id": 11600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9295, + "id": 11596, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9287, - "src": "960:5:36", + "referencedDeclaration": 11588, + "src": "1168:5:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "nodeType": "BinaryOperation", @@ -959,14 +984,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9297, + "id": 11598, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "977:1:36", + "src": "1185:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -982,20 +1007,20 @@ "typeString": "int_const 0" } ], - "id": 9296, + "id": 11597, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "969:7:36", + "src": "1177:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9298, + "id": 11599, "isConstant": false, "isLValue": false, "isPure": true, @@ -1003,13 +1028,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "969:10:36", + "src": "1177:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "960:19:36", + "src": "1168:19:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1023,21 +1048,21 @@ "typeString": "bool" } ], - "id": 9294, + "id": 11595, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "952:7:36", + "referencedDeclaration": 13444, + "src": "1160:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9300, + "id": 11601, "isConstant": false, "isLValue": false, "isPure": false, @@ -1045,15 +1070,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "952:28:36", + "src": "1160:28:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9301, + "id": 11602, "nodeType": "ExpressionStatement", - "src": "952:28:36" + "src": "1160:28:47" }, { "expression": { @@ -1065,22 +1090,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9307, + "id": 11608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9303, + "id": 11604, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9289, - "src": "998:6:36", + "referencedDeclaration": 11590, + "src": "1206:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "nodeType": "BinaryOperation", @@ -1091,14 +1116,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9305, + "id": 11606, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1016:1:36", + "src": "1224:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1114,20 +1139,20 @@ "typeString": "int_const 0" } ], - "id": 9304, + "id": 11605, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1008:7:36", + "src": "1216:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9306, + "id": 11607, "isConstant": false, "isLValue": false, "isPure": true, @@ -1135,13 +1160,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1008:10:36", + "src": "1216:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "998:20:36", + "src": "1206:20:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1155,21 +1180,21 @@ "typeString": "bool" } ], - "id": 9302, + "id": 11603, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "990:7:36", + "referencedDeclaration": 13444, + "src": "1198:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9308, + "id": 11609, "isConstant": false, "isLValue": false, "isPure": false, @@ -1177,15 +1202,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "990:29:36", + "src": "1198:29:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9309, + "id": 11610, "nodeType": "ExpressionStatement", - "src": "990:29:36" + "src": "1198:29:47" }, { "expression": { @@ -1194,43 +1219,316 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 9313, + "id": 11620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9311, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9287, - "src": "1037:5:36", + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11613, + "name": "listingTokenToWToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11557, + "src": "1253:20:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IWToken_$10485_$", + "typeString": "mapping(address => contract IWToken)" + } + }, + "id": 11615, + "indexExpression": { + "argumentTypes": null, + "id": 11614, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11588, + "src": "1274:5:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1253:27:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 11612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1245:7:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 11616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1245:36:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 11618, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1293:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1285:7:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 11619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1285:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1245:50:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 11611, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1237:7:47", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 11621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1237:59:47", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11622, + "nodeType": "ExpressionStatement", + "src": "1237:59:47" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11625, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11588, + "src": "1322:5:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + ], + "id": 11624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1314:7:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 11626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1314:14:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 9312, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9289, - "src": "1046:6:36", + "arguments": [ + { + "argumentTypes": null, + "id": 11628, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1340:6:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 11627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1332:7:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 11629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1332:15:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "1037:15:36", + "src": "1314:33:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1244,21 +1542,21 @@ "typeString": "bool" } ], - "id": 9310, + "id": 11623, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1029:7:36", + "referencedDeclaration": 13444, + "src": "1306:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9314, + "id": 11631, "isConstant": false, "isLValue": false, "isPure": false, @@ -1266,15 +1564,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1029:24:36", + "src": "1306:42:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9315, + "id": 11632, "nodeType": "ExpressionStatement", - "src": "1029:24:36" + "src": "1306:42:47" }, { "expression": { @@ -1282,7 +1580,7 @@ "arguments": [ { "argumentTypes": null, - "id": 9321, + "id": 11642, "isConstant": false, "isLValue": false, "isPure": false, @@ -1290,62 +1588,134 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1071:23:36", + "src": "1366:53:47", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 9318, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9287, - "src": "1080:5:36", + "arguments": [ + { + "argumentTypes": null, + "id": 11636, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11588, + "src": "1389:5:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + ], + "id": 11635, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "1375:13:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "id": 11637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1375:20:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, { "argumentTypes": null, - "id": 9319, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9289, - "src": "1087:6:36", + "arguments": [ + { + "argumentTypes": null, + "id": 11639, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1411:6:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 11638, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "1397:13:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "id": 11640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1397:21:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } ], - "id": 9317, + "id": 11634, "name": "hasPair", "nodeType": "Identifier", "overloadedDeclarations": [ - 9367 + 11688 ], - "referencedDeclaration": 9367, - "src": "1072:7:36", + "referencedDeclaration": 11688, + "src": "1367:7:47", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_ERC20_$10211_$_t_contract$_ERC20_$10211_$returns$_t_bool_$", - "typeString": "function (contract ERC20,contract ERC20) view returns (bool)" + "typeIdentifier": "t_function_internal_view$_t_contract$_ERC20Detailed_$12986_$_t_contract$_ERC20Detailed_$12986_$returns$_t_bool_$", + "typeString": "function (contract ERC20Detailed,contract ERC20Detailed) view returns (bool)" } }, - "id": 9320, + "id": 11641, "isConstant": false, "isLValue": false, "isPure": false, @@ -1353,7 +1723,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1072:22:36", + "src": "1367:52:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1372,21 +1742,21 @@ "typeString": "bool" } ], - "id": 9316, + "id": 11633, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1063:7:36", + "referencedDeclaration": 13444, + "src": "1358:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9322, + "id": 11643, "isConstant": false, "isLValue": false, "isPure": false, @@ -1394,20 +1764,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1063:32:36", + "src": "1358:62:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9323, + "id": 11644, "nodeType": "ExpressionStatement", - "src": "1063:32:36" + "src": "1358:62:47" }, { "expression": { "argumentTypes": null, - "id": 9328, + "id": 11649, "isConstant": false, "isLValue": false, "isPure": false, @@ -1416,29 +1786,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9324, + "id": 11645, "name": "listingTokenToWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9256, - "src": "1106:20:36", + "referencedDeclaration": 11557, + "src": "1431:20:47", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8750_$", - "typeString": "mapping(address => contract WToken)" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IWToken_$10485_$", + "typeString": "mapping(address => contract IWToken)" } }, - "id": 9326, + "id": 11647, "indexExpression": { "argumentTypes": null, - "id": 9325, + "id": 11646, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9287, - "src": "1127:5:36", + "referencedDeclaration": 11588, + "src": "1452:5:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "isConstant": false, @@ -1446,41 +1816,41 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1106:27:36", + "src": "1431:27:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 9327, + "id": 11648, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9289, - "src": "1136:6:36", + "referencedDeclaration": 11590, + "src": "1461:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "src": "1106:36:36", + "src": "1431:36:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "id": 9329, + "id": 11650, "nodeType": "ExpressionStatement", - "src": "1106:36:36" + "src": "1431:36:47" }, { "expression": { "argumentTypes": null, - "id": 9334, + "id": 11655, "isConstant": false, "isLValue": false, "isPure": false, @@ -1489,29 +1859,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9330, + "id": 11651, "name": "listingWTokenToToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9260, - "src": "1152:20:36", + "referencedDeclaration": 11561, + "src": "1477:20:47", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$10211_$", - "typeString": "mapping(address => contract ERC20)" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "mapping(address => contract ERC20Detailed)" } }, - "id": 9332, + "id": 11653, "indexExpression": { "argumentTypes": null, - "id": 9331, + "id": 11652, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9289, - "src": "1173:6:36", + "referencedDeclaration": 11590, + "src": "1498:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "isConstant": false, @@ -1519,41 +1889,41 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1152:28:36", + "src": "1477:28:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 9333, + "id": 11654, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9287, - "src": "1183:5:36", + "referencedDeclaration": 11588, + "src": "1508:5:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "src": "1152:36:36", + "src": "1477:36:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "id": 9335, + "id": 11656, "nodeType": "ExpressionStatement", - "src": "1152:36:36" + "src": "1477:36:47" }, { "expression": { "argumentTypes": null, - "id": 9342, + "id": 11663, "isConstant": false, "isLValue": false, "isPure": false, @@ -1564,29 +1934,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9336, + "id": 11657, "name": "pairs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9266, - "src": "1198:5:36", + "referencedDeclaration": 11567, + "src": "1523:5:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 9339, + "id": 11660, "indexExpression": { "argumentTypes": null, - "id": 9337, + "id": 11658, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9287, - "src": "1204:5:36", + "referencedDeclaration": 11588, + "src": "1529:5:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "isConstant": false, @@ -1594,24 +1964,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1198:12:36", + "src": "1523:12:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 9340, + "id": 11661, "indexExpression": { "argumentTypes": null, - "id": 9338, + "id": 11659, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9289, - "src": "1211:6:36", + "referencedDeclaration": 11590, + "src": "1536:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "isConstant": false, @@ -1619,7 +1989,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1198:20:36", + "src": "1523:20:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1630,14 +2000,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 9341, + "id": 11662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1221:4:36", + "src": "1546:4:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1645,73 +2015,73 @@ }, "value": "true" }, - "src": "1198:27:36", + "src": "1523:27:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 9343, + "id": 11664, "nodeType": "ExpressionStatement", - "src": "1198:27:36" + "src": "1523:27:47" } ] }, "documentation": null, - "id": 9345, + "id": 11666, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 9292, + "id": 11593, "modifierName": { "argumentTypes": null, - "id": 9291, - "name": "onlyOwner", + "id": 11592, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "932:9:36", + "referencedDeclaration": 12420, + "src": "1138:11:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "932:9:36" + "src": "1138:11:47" } ], "name": "addTokenToListing", "nodeType": "FunctionDefinition", "parameters": { - "id": 9290, + "id": 11591, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9287, + "id": 11588, "name": "token", "nodeType": "VariableDeclaration", - "scope": 9345, - "src": "895:11:36", + "scope": 11666, + "src": "1092:19:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9286, - "name": "ERC20", + "id": 11587, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "895:5:36", + "referencedDeclaration": 12986, + "src": "1092:13:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, @@ -1719,53 +2089,53 @@ }, { "constant": false, - "id": 9289, + "id": 11590, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 9345, - "src": "908:13:36", + "scope": 11666, + "src": "1113:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 9288, - "name": "WToken", + "id": 11589, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "908:6:36", + "referencedDeclaration": 10485, + "src": "1113:7:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "894:28:36" + "src": "1091:37:47" }, "payable": false, "returnParameters": { - "id": 9293, + "id": 11594, "nodeType": "ParameterList", "parameters": [], - "src": "942:0:36" + "src": "1150:0:47" }, - "scope": 9501, - "src": "868:364:36", + "scope": 11818, + "src": "1065:492:47", "stateMutability": "nonpayable", - "superFunction": 9205, + "superFunction": 11501, "visibility": "external" }, { "body": { - "id": 9366, + "id": 11687, "nodeType": "Block", - "src": "1310:70:36", + "src": "1651:70:47", "statements": [ { "expression": { @@ -1774,7 +2144,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9364, + "id": 11685, "isConstant": false, "isLValue": false, "isPure": false, @@ -1785,29 +2155,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9354, + "id": 11675, "name": "pairs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9266, - "src": "1327:5:36", + "referencedDeclaration": 11567, + "src": "1668:5:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 9356, + "id": 11677, "indexExpression": { "argumentTypes": null, - "id": 9355, + "id": 11676, "name": "token1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9347, - "src": "1333:6:36", + "referencedDeclaration": 11668, + "src": "1674:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "isConstant": false, @@ -1815,24 +2185,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1327:13:36", + "src": "1668:13:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 9358, + "id": 11679, "indexExpression": { "argumentTypes": null, - "id": 9357, + "id": 11678, "name": "token2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9349, - "src": "1341:6:36", + "referencedDeclaration": 11670, + "src": "1682:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "isConstant": false, @@ -1840,7 +2210,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1327:21:36", + "src": "1668:21:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1854,29 +2224,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9359, + "id": 11680, "name": "pairs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9266, - "src": "1352:5:36", + "referencedDeclaration": 11567, + "src": "1693:5:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 9361, + "id": 11682, "indexExpression": { "argumentTypes": null, - "id": 9360, + "id": 11681, "name": "token2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9349, - "src": "1358:6:36", + "referencedDeclaration": 11670, + "src": "1699:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "isConstant": false, @@ -1884,24 +2254,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1352:13:36", + "src": "1693:13:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 9363, + "id": 11684, "indexExpression": { "argumentTypes": null, - "id": 9362, + "id": 11683, "name": "token1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9347, - "src": "1366:6:36", + "referencedDeclaration": 11668, + "src": "1707:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "isConstant": false, @@ -1909,27 +2279,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1352:21:36", + "src": "1693:21:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1327:46:36", + "src": "1668:46:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 9353, - "id": 9365, + "functionReturnParameters": 11674, + "id": 11686, "nodeType": "Return", - "src": "1320:53:36" + "src": "1661:53:47" } ] }, "documentation": null, - "id": 9367, + "id": 11688, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1937,32 +2307,32 @@ "name": "hasPair", "nodeType": "FunctionDefinition", "parameters": { - "id": 9350, + "id": 11671, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9347, + "id": 11668, "name": "token1", "nodeType": "VariableDeclaration", - "scope": 9367, - "src": "1255:12:36", + "scope": 11688, + "src": "1580:20:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9346, - "name": "ERC20", + "id": 11667, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "1255:5:36", + "referencedDeclaration": 12986, + "src": "1580:13:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, @@ -1970,47 +2340,47 @@ }, { "constant": false, - "id": 9349, + "id": 11670, "name": "token2", "nodeType": "VariableDeclaration", - "scope": 9367, - "src": "1269:12:36", + "scope": 11688, + "src": "1602:20:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9348, - "name": "ERC20", + "id": 11669, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "1269:5:36", + "referencedDeclaration": 12986, + "src": "1602:13:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, "visibility": "internal" } ], - "src": "1254:28:36" + "src": "1579:44:47" }, "payable": false, "returnParameters": { - "id": 9353, + "id": 11674, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9352, + "id": 11673, "name": "", "nodeType": "VariableDeclaration", - "scope": 9367, - "src": "1304:4:36", + "scope": 11688, + "src": "1645:4:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2018,10 +2388,10 @@ "typeString": "bool" }, "typeName": { - "id": 9351, + "id": 11672, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1304:4:36", + "src": "1645:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2031,19 +2401,19 @@ "visibility": "internal" } ], - "src": "1303:6:36" + "src": "1644:6:47" }, - "scope": 9501, - "src": "1238:142:36", + "scope": 11818, + "src": "1563:158:47", "stateMutability": "view", - "superFunction": 9214, + "superFunction": 11510, "visibility": "public" }, { "body": { - "id": 9388, + "id": 11707, "nodeType": "Block", - "src": "1470:99:36", + "src": "1798:90:47", "statements": [ { "expression": { @@ -2055,19 +2425,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9379, + "id": 11700, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9375, + "id": 11696, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9369, - "src": "1488:5:36", + "referencedDeclaration": 11690, + "src": "1816:5:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2081,14 +2451,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9377, + "id": 11698, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1505:1:36", + "src": "1833:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2104,20 +2474,20 @@ "typeString": "int_const 0" } ], - "id": 9376, + "id": 11697, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1497:7:36", + "src": "1825:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9378, + "id": 11699, "isConstant": false, "isLValue": false, "isPure": true, @@ -2125,13 +2495,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1497:10:36", + "src": "1825:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1488:19:36", + "src": "1816:19:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2145,21 +2515,21 @@ "typeString": "bool" } ], - "id": 9374, + "id": 11695, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1480:7:36", + "referencedDeclaration": 13444, + "src": "1808:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9380, + "id": 11701, "isConstant": false, "isLValue": false, "isPure": false, @@ -2167,93 +2537,66 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1480:28:36", + "src": "1808:28:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9381, + "id": 11702, "nodeType": "ExpressionStatement", - "src": "1480:28:36" + "src": "1808:28:47" }, { "expression": { "argumentTypes": null, - "id": 9386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "baseExpression": { "argumentTypes": null, - "id": 9382, - "name": "wTokenAddress", + "id": 11703, + "name": "listingTokenToWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9372, - "src": "1519:13:36", + "referencedDeclaration": 11557, + "src": "1854:20:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IWToken_$10485_$", + "typeString": "mapping(address => contract IWToken)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 11705, + "indexExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9383, - "name": "listingTokenToWToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9256, - "src": "1535:20:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8750_$", - "typeString": "mapping(address => contract WToken)" - } - }, - "id": 9385, - "indexExpression": { - "argumentTypes": null, - "id": 9384, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9369, - "src": "1556:5:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1535:27:36", + "id": 11704, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11690, + "src": "1875:5:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "1519:43:36", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1854:27:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "id": 9387, - "nodeType": "ExpressionStatement", - "src": "1519:43:36" + "functionReturnParameters": 11694, + "id": 11706, + "nodeType": "Return", + "src": "1847:34:47" } ] }, "documentation": null, - "id": 9389, + "id": 11708, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2261,16 +2604,16 @@ "name": "getWTokenByToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 9370, + "id": 11691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9369, + "id": 11690, "name": "token", "nodeType": "VariableDeclaration", - "scope": 9389, - "src": "1412:13:36", + "scope": 11708, + "src": "1753:13:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2278,10 +2621,10 @@ "typeString": "address" }, "typeName": { - "id": 9368, + "id": 11689, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1412:7:36", + "src": "1753:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2291,55 +2634,55 @@ "visibility": "internal" } ], - "src": "1411:15:36" + "src": "1752:15:47" }, "payable": false, "returnParameters": { - "id": 9373, + "id": 11694, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9372, - "name": "wTokenAddress", + "id": 11693, + "name": "", "nodeType": "VariableDeclaration", - "scope": 9389, - "src": "1448:20:36", + "scope": 11708, + "src": "1789:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 9371, - "name": "WToken", + "id": 11692, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "1448:6:36", + "referencedDeclaration": 10485, + "src": "1789:7:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "1447:22:36" + "src": "1788:9:47" }, - "scope": 9501, - "src": "1386:183:36", + "scope": 11818, + "src": "1727:161:47", "stateMutability": "view", - "superFunction": 9221, + "superFunction": 11517, "visibility": "public" }, { "body": { - "id": 9410, + "id": 11727, "nodeType": "Block", - "src": "1658:100:36", + "src": "1972:92:47", "statements": [ { "expression": { @@ -2351,19 +2694,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9401, + "id": 11720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9397, + "id": 11716, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9391, - "src": "1676:6:36", + "referencedDeclaration": 11710, + "src": "1990:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2377,14 +2720,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9399, + "id": 11718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1694:1:36", + "src": "2008:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2400,20 +2743,20 @@ "typeString": "int_const 0" } ], - "id": 9398, + "id": 11717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1686:7:36", + "src": "2000:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9400, + "id": 11719, "isConstant": false, "isLValue": false, "isPure": true, @@ -2421,13 +2764,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1686:10:36", + "src": "2000:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1676:20:36", + "src": "1990:20:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2441,21 +2784,21 @@ "typeString": "bool" } ], - "id": 9396, + "id": 11715, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1668:7:36", + "referencedDeclaration": 13444, + "src": "1982:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9402, + "id": 11721, "isConstant": false, "isLValue": false, "isPure": false, @@ -2463,93 +2806,66 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1668:29:36", + "src": "1982:29:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9403, + "id": 11722, "nodeType": "ExpressionStatement", - "src": "1668:29:36" + "src": "1982:29:47" }, { "expression": { "argumentTypes": null, - "id": 9408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "baseExpression": { "argumentTypes": null, - "id": 9404, - "name": "tokenAddress", + "id": 11723, + "name": "listingWTokenToToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9394, - "src": "1708:12:36", + "referencedDeclaration": 11561, + "src": "2029:20:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "mapping(address => contract ERC20Detailed)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 11725, + "indexExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9405, - "name": "listingWTokenToToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9260, - "src": "1723:20:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$10211_$", - "typeString": "mapping(address => contract ERC20)" - } - }, - "id": 9407, - "indexExpression": { - "argumentTypes": null, - "id": 9406, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9391, - "src": "1744:6:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1723:28:36", + "id": 11724, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11710, + "src": "2050:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "1708:43:36", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2029:28:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "id": 9409, - "nodeType": "ExpressionStatement", - "src": "1708:43:36" + "functionReturnParameters": 11714, + "id": 11726, + "nodeType": "Return", + "src": "2022:35:47" } ] }, "documentation": null, - "id": 9411, + "id": 11728, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2557,16 +2873,16 @@ "name": "getTokenByWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 9392, + "id": 11711, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9391, + "id": 11710, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 9411, - "src": "1601:14:36", + "scope": 11728, + "src": "1920:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2574,10 +2890,10 @@ "typeString": "address" }, "typeName": { - "id": 9390, + "id": 11709, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1601:7:36", + "src": "1920:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2587,55 +2903,55 @@ "visibility": "internal" } ], - "src": "1600:16:36" + "src": "1919:16:47" }, "payable": false, "returnParameters": { - "id": 9395, + "id": 11714, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9394, - "name": "tokenAddress", + "id": 11713, + "name": "", "nodeType": "VariableDeclaration", - "scope": 9411, - "src": "1638:18:36", + "scope": 11728, + "src": "1957:13:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9393, - "name": "ERC20", + "id": 11712, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "1638:5:36", + "referencedDeclaration": 12986, + "src": "1957:13:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, "visibility": "internal" } ], - "src": "1637:20:36" + "src": "1956:15:47" }, - "scope": 9501, - "src": "1575:183:36", + "scope": 11818, + "src": "1894:170:47", "stateMutability": "view", - "superFunction": 9228, + "superFunction": 11524, "visibility": "public" }, { "body": { - "id": 9430, + "id": 11747, "nodeType": "Block", - "src": "1858:54:36", + "src": "2167:54:47", "statements": [ { "expression": { @@ -2643,12 +2959,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9426, + "id": 11743, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9415, - "src": "1889:7:36", + "referencedDeclaration": 11732, + "src": "2198:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2656,12 +2972,12 @@ }, { "argumentTypes": null, - "id": 9427, + "id": 11744, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9417, - "src": "1898:6:36", + "referencedDeclaration": 11734, + "src": "2207:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2681,32 +2997,32 @@ ], "expression": { "argumentTypes": null, - "id": 9424, + "id": 11741, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9413, - "src": "1875:5:36", + "referencedDeclaration": 11730, + "src": "2184:5:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 9425, + "id": 11742, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 10202, - "src": "1875:13:36", + "referencedDeclaration": 13055, + "src": "2184:13:47", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 9428, + "id": 11745, "isConstant": false, "isLValue": false, "isPure": false, @@ -2714,74 +3030,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1875:30:36", + "src": "2184:30:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 9423, - "id": 9429, + "functionReturnParameters": 11740, + "id": 11746, "nodeType": "Return", - "src": "1868:37:36" + "src": "2177:37:47" } ] }, "documentation": null, - "id": 9431, + "id": 11748, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 9420, + "id": 11737, "modifierName": { "argumentTypes": null, - "id": 9419, - "name": "onlyOwner", + "id": 11736, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "1833:9:36", + "referencedDeclaration": 12420, + "src": "2140:11:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1833:9:36" + "src": "2140:11:47" } ], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 9418, + "id": 11735, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9413, + "id": 11730, "name": "token", "nodeType": "VariableDeclaration", - "scope": 9431, - "src": "1781:11:36", + "scope": 11748, + "src": "2087:12:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 9412, - "name": "ERC20", + "id": 11729, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "1781:5:36", + "referencedDeclaration": 13083, + "src": "2087:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -2789,11 +3105,11 @@ }, { "constant": false, - "id": 9415, + "id": 11732, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 9431, - "src": "1794:15:36", + "scope": 11748, + "src": "2101:15:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2801,10 +3117,10 @@ "typeString": "address" }, "typeName": { - "id": 9414, + "id": 11731, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1794:7:36", + "src": "2101:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2815,11 +3131,11 @@ }, { "constant": false, - "id": 9417, + "id": 11734, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 9431, - "src": "1811:11:36", + "scope": 11748, + "src": "2118:11:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2827,10 +3143,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9416, + "id": 11733, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1811:4:36", + "src": "2118:4:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2840,20 +3156,20 @@ "visibility": "internal" } ], - "src": "1780:43:36" + "src": "2086:44:47" }, "payable": false, "returnParameters": { - "id": 9423, + "id": 11740, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9422, + "id": 11739, "name": "", "nodeType": "VariableDeclaration", - "scope": 9431, - "src": "1852:4:36", + "scope": 11748, + "src": "2161:4:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2861,10 +3177,10 @@ "typeString": "bool" }, "typeName": { - "id": 9421, + "id": 11738, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1852:4:36", + "src": "2161:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2874,19 +3190,19 @@ "visibility": "internal" } ], - "src": "1851:6:36" + "src": "2160:6:47" }, - "scope": 9501, - "src": "1764:148:36", + "scope": 11818, + "src": "2070:151:47", "stateMutability": "nonpayable", - "superFunction": 9177, + "superFunction": 11473, "visibility": "external" }, { "body": { - "id": 9499, + "id": 11816, "nodeType": "Block", - "src": "1988:543:36", + "src": "2298:544:47", "statements": [ { "expression": { @@ -2898,19 +3214,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9443, + "id": 11760, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9441, + "id": 11758, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9435, - "src": "2006:6:36", + "referencedDeclaration": 11752, + "src": "2316:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2921,14 +3237,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9442, + "id": 11759, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2015:1:36", + "src": "2325:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2936,7 +3252,7 @@ }, "value": "0" }, - "src": "2006:10:36", + "src": "2316:10:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2950,21 +3266,21 @@ "typeString": "bool" } ], - "id": 9440, + "id": 11757, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1998:7:36", + "referencedDeclaration": 13444, + "src": "2308:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9444, + "id": 11761, "isConstant": false, "isLValue": false, "isPure": false, @@ -2972,15 +3288,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1998:19:36", + "src": "2308:19:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9445, + "id": 11762, "nodeType": "ExpressionStatement", - "src": "1998:19:36" + "src": "2308:19:47" }, { "expression": { @@ -2992,22 +3308,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9451, + "id": 11768, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9447, + "id": 11764, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9433, - "src": "2035:9:36", + "referencedDeclaration": 11750, + "src": "2345:9:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "nodeType": "BinaryOperation", @@ -3018,14 +3334,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9449, + "id": 11766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2056:1:36", + "src": "2366:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3041,20 +3357,20 @@ "typeString": "int_const 0" } ], - "id": 9448, + "id": 11765, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2048:7:36", + "src": "2358:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9450, + "id": 11767, "isConstant": false, "isLValue": false, "isPure": true, @@ -3062,13 +3378,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2048:10:36", + "src": "2358:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2035:23:36", + "src": "2345:23:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3082,21 +3398,21 @@ "typeString": "bool" } ], - "id": 9446, + "id": 11763, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2027:7:36", + "referencedDeclaration": 13444, + "src": "2337:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9452, + "id": 11769, "isConstant": false, "isLValue": false, "isPure": false, @@ -3104,89 +3420,89 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2027:32:36", + "src": "2337:32:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9453, + "id": 11770, "nodeType": "ExpressionStatement", - "src": "2027:32:36" + "src": "2337:32:47" }, { "assignments": [ - 9455 + 11772 ], "declarations": [ { "constant": false, - "id": 9455, + "id": 11772, "name": "toToken", "nodeType": "VariableDeclaration", - "scope": 9500, - "src": "2133:13:36", + "scope": 11817, + "src": "2443:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 9454, - "name": "ERC20", + "id": 11771, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "2133:5:36", + "referencedDeclaration": 13083, + "src": "2443:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, "visibility": "internal" } ], - "id": 9459, + "id": 11776, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 9457, + "id": 11774, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9433, - "src": "2166:9:36", + "referencedDeclaration": 11750, + "src": "2477:9:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } ], - "id": 9456, + "id": 11773, "name": "getTokenByWToken", "nodeType": "Identifier", "overloadedDeclarations": [ - 9411 + 11728 ], - "referencedDeclaration": 9411, - "src": "2149:16:36", + "referencedDeclaration": 11728, + "src": "2460:16:47", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_contract$_ERC20_$10211_$", - "typeString": "function (address) view returns (contract ERC20)" + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "function (address) view returns (contract ERC20Detailed)" } }, - "id": 9458, + "id": 11775, "isConstant": false, "isLValue": false, "isPure": false, @@ -3194,14 +3510,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2149:27:36", + "src": "2460:27:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "nodeType": "VariableDeclarationStatement", - "src": "2133:43:36" + "src": "2443:44:47" }, { "expression": { @@ -3213,22 +3529,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9465, + "id": 11782, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9461, + "id": 11778, "name": "toToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "2194:7:36", + "referencedDeclaration": 11772, + "src": "2505:7:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "nodeType": "BinaryOperation", @@ -3239,14 +3555,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9463, + "id": 11780, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2213:1:36", + "src": "2524:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3262,20 +3578,20 @@ "typeString": "int_const 0" } ], - "id": 9462, + "id": 11779, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2205:7:36", + "src": "2516:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9464, + "id": 11781, "isConstant": false, "isLValue": false, "isPure": true, @@ -3283,13 +3599,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2205:10:36", + "src": "2516:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2194:21:36", + "src": "2505:21:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3303,21 +3619,21 @@ "typeString": "bool" } ], - "id": 9460, + "id": 11777, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2186:7:36", + "referencedDeclaration": 13444, + "src": "2497:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9466, + "id": 11783, "isConstant": false, "isLValue": false, "isPure": false, @@ -3325,15 +3641,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2186:30:36", + "src": "2497:30:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9467, + "id": 11784, "nodeType": "ExpressionStatement", - "src": "2186:30:36" + "src": "2497:30:47" }, { "expression": { @@ -3343,18 +3659,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9471, + "id": 11788, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "2358:3:36", + "referencedDeclaration": 13441, + "src": "2669:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 9472, + "id": 11789, "isConstant": false, "isLValue": false, "isPure": false, @@ -3362,7 +3678,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2358:10:36", + "src": "2669:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3373,14 +3689,14 @@ "arguments": [ { "argumentTypes": null, - "id": 9474, + "id": 11791, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10597, - "src": "2378:4:36", + "referencedDeclaration": 13576, + "src": "2689:4:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenExchanger_$9501", + "typeIdentifier": "t_contract$_TokenExchanger_$11818", "typeString": "contract TokenExchanger" } } @@ -3388,24 +3704,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_TokenExchanger_$9501", + "typeIdentifier": "t_contract$_TokenExchanger_$11818", "typeString": "contract TokenExchanger" } ], - "id": 9473, + "id": 11790, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2370:7:36", + "src": "2681:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9475, + "id": 11792, "isConstant": false, "isLValue": false, "isPure": false, @@ -3413,7 +3729,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2370:13:36", + "src": "2681:13:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3421,12 +3737,12 @@ }, { "argumentTypes": null, - "id": 9476, + "id": 11793, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9435, - "src": "2385:6:36", + "referencedDeclaration": 11752, + "src": "2696:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3450,32 +3766,32 @@ ], "expression": { "argumentTypes": null, - "id": 9468, + "id": 11785, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9433, - "src": "2331:9:36", + "referencedDeclaration": 11750, + "src": "2642:9:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 9470, + "id": 11787, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 10286, - "src": "2331:26:36", + "referencedDeclaration": 13129, + "src": "2642:26:47", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$10211_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$10211_$", - "typeString": "function (contract ERC20,address,address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$13083_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$13083_$", + "typeString": "function (contract IERC20,address,address,uint256)" } }, - "id": 9477, + "id": 11794, "isConstant": false, "isLValue": false, "isPure": false, @@ -3483,15 +3799,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2331:61:36", + "src": "2642:61:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9478, + "id": 11795, "nodeType": "ExpressionStatement", - "src": "2331:61:36" + "src": "2642:61:47" }, { "expression": { @@ -3501,18 +3817,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9482, + "id": 11799, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "2423:3:36", + "referencedDeclaration": 13441, + "src": "2734:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 9483, + "id": 11800, "isConstant": false, "isLValue": false, "isPure": false, @@ -3520,7 +3836,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2423:10:36", + "src": "2734:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3528,12 +3844,12 @@ }, { "argumentTypes": null, - "id": 9484, + "id": 11801, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9435, - "src": "2435:6:36", + "referencedDeclaration": 11752, + "src": "2746:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3553,32 +3869,32 @@ ], "expression": { "argumentTypes": null, - "id": 9479, + "id": 11796, "name": "toToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "2402:7:36", + "referencedDeclaration": 11772, + "src": "2713:7:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 9481, + "id": 11798, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 10265, - "src": "2402:20:36", + "referencedDeclaration": 13108, + "src": "2713:20:47", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20Basic_$10243_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20Basic_$10243_$", - "typeString": "function (contract ERC20Basic,address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$13083_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$13083_$", + "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 9485, + "id": 11802, "isConstant": false, "isLValue": false, "isPure": false, @@ -3586,15 +3902,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2402:40:36", + "src": "2713:40:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9486, + "id": 11803, "nodeType": "ExpressionStatement", - "src": "2402:40:36" + "src": "2713:40:47" }, { "eventCall": { @@ -3605,39 +3921,39 @@ "arguments": [ { "argumentTypes": null, - "id": 9489, + "id": 11806, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9433, - "src": "2475:9:36", + "referencedDeclaration": 11750, + "src": "2786:9:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } ], - "id": 9488, + "id": 11805, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2467:7:36", + "src": "2778:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9490, + "id": 11807, "isConstant": false, "isLValue": false, "isPure": false, @@ -3645,7 +3961,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2467:18:36", + "src": "2778:18:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3656,39 +3972,39 @@ "arguments": [ { "argumentTypes": null, - "id": 9492, + "id": 11809, "name": "toToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "2495:7:36", + "referencedDeclaration": 11772, + "src": "2806:7:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } ], - "id": 9491, + "id": 11808, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2487:7:36", + "src": "2798:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9493, + "id": 11810, "isConstant": false, "isLValue": false, "isPure": false, @@ -3696,7 +4012,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2487:16:36", + "src": "2798:16:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3704,12 +4020,12 @@ }, { "argumentTypes": null, - "id": 9494, + "id": 11811, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9435, - "src": "2505:6:36", + "referencedDeclaration": 11752, + "src": "2816:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3719,18 +4035,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9495, + "id": 11812, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "2513:3:36", + "referencedDeclaration": 13441, + "src": "2824:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 9496, + "id": 11813, "isConstant": false, "isLValue": false, "isPure": false, @@ -3738,7 +4054,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2513:10:36", + "src": "2824:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3764,18 +4080,18 @@ "typeString": "address" } ], - "id": 9487, + "id": 11804, "name": "Exchange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9276, - "src": "2458:8:36", + "referencedDeclaration": 11577, + "src": "2769:8:47", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (address,address,uint256,address)" } }, - "id": 9497, + "id": 11814, "isConstant": false, "isLValue": false, "isPure": false, @@ -3783,73 +4099,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2458:66:36", + "src": "2769:66:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9498, + "id": 11815, "nodeType": "EmitStatement", - "src": "2453:71:36" + "src": "2764:71:47" } ] }, "documentation": null, - "id": 9500, + "id": 11817, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 9438, + "id": 11755, "modifierName": { "argumentTypes": null, - "id": 9437, + "id": 11754, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9776, - "src": "1975:12:36", + "referencedDeclaration": 13257, + "src": "2285:12:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1975:12:36" + "src": "2285:12:47" } ], "name": "exchange", "nodeType": "FunctionDefinition", "parameters": { - "id": 9436, + "id": 11753, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9433, + "id": 11750, "name": "fromToken", "nodeType": "VariableDeclaration", - "scope": 9500, - "src": "1936:15:36", + "scope": 11817, + "src": "2245:16:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 9432, - "name": "ERC20", + "id": 11749, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "1936:5:36", + "referencedDeclaration": 13083, + "src": "2245:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -3857,11 +4173,11 @@ }, { "constant": false, - "id": 9435, + "id": 11752, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 9500, - "src": "1953:11:36", + "scope": 11817, + "src": "2263:11:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3869,10 +4185,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9434, + "id": 11751, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1953:4:36", + "src": "2263:4:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3882,40 +4198,40 @@ "visibility": "internal" } ], - "src": "1935:30:36" + "src": "2244:31:47" }, "payable": false, "returnParameters": { - "id": 9439, + "id": 11756, "nodeType": "ParameterList", "parameters": [], - "src": "1988:0:36" + "src": "2298:0:47" }, - "scope": 9501, - "src": "1918:613:36", + "scope": 11818, + "src": "2227:615:47", "stateMutability": "nonpayable", - "superFunction": 9184, + "superFunction": 11480, "visibility": "external" } ], - "scope": 9502, - "src": "381:2152:36" + "scope": 11819, + "src": "527:2317:47" } ], - "src": "0:2534:36" + "src": "0:2845:47" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/exchanger/TokenExchanger.sol", "exportedSymbols": { "TokenExchanger": [ - 9501 + 11818 ] }, - "id": 9502, + "id": 11819, "nodeType": "SourceUnit", "nodes": [ { - "id": 9231, + "id": 11527, "literals": [ "solidity", "^", @@ -3923,82 +4239,104 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:36" + "src": "0:24:47" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 9232, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 11528, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 10135, - "src": "26:63:36", + "scope": 11819, + "sourceUnit": 12454, + "src": "26:65:47", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 9233, + "id": 11529, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 10049, - "src": "90:59:36", + "scope": 11819, + "sourceUnit": 12389, + "src": "92:59:47", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 11530, + "nodeType": "ImportDirective", + "scope": 11819, + "sourceUnit": 13084, + "src": "152:64:47", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "id": 11531, + "nodeType": "ImportDirective", + "scope": 11819, + "sourceUnit": 12987, + "src": "217:71:47", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", - "id": 9234, + "id": 11532, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 10306, - "src": "150:67:36", + "scope": 11819, + "sourceUnit": 13228, + "src": "289:67:47", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 9235, + "absolutePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "file": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "id": 11533, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 9778, - "src": "218:61:36", + "scope": 11819, + "sourceUnit": 13259, + "src": "357:67:47", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "../../versioning/Versionable.sol", - "id": 9236, + "id": 11534, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 9517, - "src": "280:42:36", + "scope": 11819, + "sourceUnit": 11834, + "src": "425:42:47", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "../WToken.sol", - "id": 9237, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../IWToken.sol", + "id": 11535, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 8751, - "src": "323:23:36", + "scope": 11819, + "sourceUnit": 10486, + "src": "468:24:47", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "file": "./ITokenExchanger.sol", - "id": 9238, + "id": 11536, "nodeType": "ImportDirective", - "scope": 9502, - "sourceUnit": 9195, - "src": "347:31:36", + "scope": 11819, + "sourceUnit": 11491, + "src": "493:31:47", "symbolAliases": [], "unitAlias": "" }, @@ -4008,120 +4346,120 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 9239, + "id": 11537, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9194, - "src": "408:15:36", + "referencedDeclaration": 11490, + "src": "554:15:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } }, - "id": 9240, + "id": 11538, "nodeType": "InheritanceSpecifier", - "src": "408:15:36" + "src": "554:15:47" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 9241, + "id": 11539, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "425:11:36", + "referencedDeclaration": 11833, + "src": "571:11:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", + "typeIdentifier": "t_contract$_Versionable_$11833", "typeString": "contract Versionable" } }, - "id": 9242, + "id": 11540, "nodeType": "InheritanceSpecifier", - "src": "425:11:36" + "src": "571:11:47" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 9243, - "name": "Ownable", + "id": 11541, + "name": "Secondary", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "438:7:36", + "referencedDeclaration": 12453, + "src": "584:9:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" } }, - "id": 9244, + "id": 11542, "nodeType": "InheritanceSpecifier", - "src": "438:7:36" + "src": "584:9:47" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 9245, + "id": 11543, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9777, - "src": "447:15:36", + "referencedDeclaration": 13258, + "src": "595:15:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9777", + "typeIdentifier": "t_contract$_ReentrancyGuard_$13258", "typeString": "contract ReentrancyGuard" } }, - "id": 9246, + "id": 11544, "nodeType": "InheritanceSpecifier", - "src": "447:15:36" + "src": "595:15:47" } ], "contractDependencies": [ - 9185, - 9194, - 9229, - 9516, - 9777, - 10134 + 11481, + 11490, + 11525, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 9501, + "id": 11818, "linearizedBaseContracts": [ - 9501, - 9777, - 10134, - 9516, - 9194, - 9229, - 9185 + 11818, + 13258, + 12453, + 11833, + 11490, + 11525, + 11481 ], "name": "TokenExchanger", "nodeType": "ContractDefinition", "nodes": [ { - "id": 9249, + "id": 11547, "libraryName": { "contractScope": null, - "id": 9247, + "id": 11545, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "475:8:36", + "referencedDeclaration": 12388, + "src": "623:8:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "469:24:36", + "src": "617:24:47", "typeName": { - "id": 9248, + "id": 11546, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "488:4:36", + "src": "636:4:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4129,75 +4467,104 @@ } }, { - "id": 9252, + "id": 11550, + "libraryName": { + "contractScope": null, + "id": 11548, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13227, + "src": "652:9:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$13227", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "646:34:47", + "typeName": { + "contractScope": null, + "id": 11549, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12986, + "src": "666:13:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + } + }, + { + "id": 11553, "libraryName": { "contractScope": null, - "id": 9250, + "id": 11551, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10305, - "src": "504:9:36", + "referencedDeclaration": 13227, + "src": "691:9:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$10305", + "typeIdentifier": "t_contract$_SafeERC20_$13227", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", - "src": "498:26:36", + "src": "685:27:47", "typeName": { "contractScope": null, - "id": 9251, - "name": "ERC20", + "id": 11552, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "518:5:36", + "referencedDeclaration": 13083, + "src": "705:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } } }, { "constant": false, - "id": 9256, + "id": 11557, "name": "listingTokenToWToken", "nodeType": "VariableDeclaration", - "scope": 9501, - "src": "530:54:36", + "scope": 11818, + "src": "718:55:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8750_$", - "typeString": "mapping(address => contract WToken)" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IWToken_$10485_$", + "typeString": "mapping(address => contract IWToken)" }, "typeName": { - "id": 9255, + "id": 11556, "keyType": { - "id": 9253, + "id": 11554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "538:7:36", + "src": "726:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "530:26:36", + "src": "718:27:47", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8750_$", - "typeString": "mapping(address => contract WToken)" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IWToken_$10485_$", + "typeString": "mapping(address => contract IWToken)" }, "valueType": { "contractScope": null, - "id": 9254, - "name": "WToken", + "id": 11555, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "549:6:36", + "referencedDeclaration": 10485, + "src": "737:7:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } } }, @@ -4206,45 +4573,45 @@ }, { "constant": false, - "id": 9260, + "id": 11561, "name": "listingWTokenToToken", "nodeType": "VariableDeclaration", - "scope": 9501, - "src": "590:53:36", + "scope": 11818, + "src": "779:61:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$10211_$", - "typeString": "mapping(address => contract ERC20)" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "mapping(address => contract ERC20Detailed)" }, "typeName": { - "id": 9259, + "id": 11560, "keyType": { - "id": 9257, + "id": 11558, "name": "address", "nodeType": "ElementaryTypeName", - "src": "598:7:36", + "src": "787:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "590:25:36", + "src": "779:33:47", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$10211_$", - "typeString": "mapping(address => contract ERC20)" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "mapping(address => contract ERC20Detailed)" }, "valueType": { "contractScope": null, - "id": 9258, - "name": "ERC20", + "id": 11559, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "609:5:36", + "referencedDeclaration": 12986, + "src": "798:13:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } } }, @@ -4253,11 +4620,11 @@ }, { "constant": false, - "id": 9266, + "id": 11567, "name": "pairs", "nodeType": "VariableDeclaration", - "scope": 9501, - "src": "649:50:36", + "scope": 11818, + "src": "846:50:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4265,46 +4632,46 @@ "typeString": "mapping(address => mapping(address => bool))" }, "typeName": { - "id": 9265, + "id": 11566, "keyType": { - "id": 9261, + "id": 11562, "name": "address", "nodeType": "ElementaryTypeName", - "src": "657:7:36", + "src": "854:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "649:44:36", + "src": "846:44:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" }, "valueType": { - "id": 9264, + "id": 11565, "keyType": { - "id": 9262, + "id": 11563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "676:7:36", + "src": "873:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "668:24:36", + "src": "865:24:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 9263, + "id": 11564, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "687:4:36", + "src": "884:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4318,21 +4685,21 @@ { "anonymous": false, "documentation": null, - "id": 9276, + "id": 11577, "name": "Exchange", "nodeType": "EventDefinition", "parameters": { - "id": 9275, + "id": 11576, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9268, + "id": 11569, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 9276, - "src": "721:20:36", + "scope": 11577, + "src": "918:20:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4340,10 +4707,10 @@ "typeString": "address" }, "typeName": { - "id": 9267, + "id": 11568, "name": "address", "nodeType": "ElementaryTypeName", - "src": "721:7:36", + "src": "918:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4354,12 +4721,12 @@ }, { "constant": false, - "id": 9270, + "id": 11571, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 9276, - "src": "743:18:36", + "scope": 11577, + "src": "940:18:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4367,10 +4734,10 @@ "typeString": "address" }, "typeName": { - "id": 9269, + "id": 11570, "name": "address", "nodeType": "ElementaryTypeName", - "src": "743:7:36", + "src": "940:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4381,12 +4748,12 @@ }, { "constant": false, - "id": 9272, + "id": 11573, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 9276, - "src": "763:11:36", + "scope": 11577, + "src": "960:11:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4394,10 +4761,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9271, + "id": 11572, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "763:4:36", + "src": "960:4:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4408,12 +4775,12 @@ }, { "constant": false, - "id": 9274, + "id": 11575, "indexed": true, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 9276, - "src": "776:22:36", + "scope": 11577, + "src": "973:22:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4421,10 +4788,10 @@ "typeString": "address" }, "typeName": { - "id": 9273, + "id": 11574, "name": "address", "nodeType": "ElementaryTypeName", - "src": "776:7:36", + "src": "973:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4434,19 +4801,19 @@ "visibility": "internal" } ], - "src": "720:79:36" + "src": "917:79:47" }, - "src": "706:94:36" + "src": "903:94:47" }, { "body": { - "id": 9284, + "id": 11585, "nodeType": "Block", - "src": "860:2:36", + "src": "1057:2:47", "statements": [] }, "documentation": null, - "id": 9285, + "id": 11586, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -4455,49 +4822,49 @@ "arguments": [ { "argumentTypes": null, - "id": 9281, + "id": 11582, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9278, - "src": "844:7:36", + "referencedDeclaration": 11579, + "src": "1041:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 9282, + "id": 11583, "modifierName": { "argumentTypes": null, - "id": 9280, + "id": 11581, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "832:11:36", + "referencedDeclaration": 11833, + "src": "1029:11:47", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "832:20:36" + "src": "1029:20:47" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 9279, + "id": 11580, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9278, + "id": 11579, "name": "version", "nodeType": "VariableDeclaration", - "scope": 9285, - "src": "818:12:36", + "scope": 11586, + "src": "1015:12:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4505,40 +4872,172 @@ "typeString": "uint256" }, "typeName": { - "id": 9277, + "id": 11578, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "818:4:36", + "src": "1015:4:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1014:14:47" + }, + "payable": false, + "returnParameters": { + "id": 11584, + "nodeType": "ParameterList", + "parameters": [], + "src": "1057:0:47" + }, + "scope": 11818, + "src": "1003:56:47", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11665, + "nodeType": "Block", + "src": "1150:407:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11596, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11588, + "src": "1168:5:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 11598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1185:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1177:7:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 11599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1177:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1168:19:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 11595, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1160:7:47", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 11601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1160:28:47", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "817:14:36" - }, - "payable": false, - "returnParameters": { - "id": 9283, - "nodeType": "ParameterList", - "parameters": [], - "src": "860:0:36" - }, - "scope": 9501, - "src": "806:56:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9344, - "nodeType": "Block", - "src": "942:290:36", - "statements": [ + "id": 11602, + "nodeType": "ExpressionStatement", + "src": "1160:28:47" + }, { "expression": { "argumentTypes": null, @@ -4549,22 +5048,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9299, + "id": 11608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9295, - "name": "token", + "id": 11604, + "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9287, - "src": "960:5:36", + "referencedDeclaration": 11590, + "src": "1206:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "nodeType": "BinaryOperation", @@ -4575,14 +5074,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9297, + "id": 11606, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "977:1:36", + "src": "1224:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4598,20 +5097,20 @@ "typeString": "int_const 0" } ], - "id": 9296, + "id": 11605, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "969:7:36", + "src": "1216:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9298, + "id": 11607, "isConstant": false, "isLValue": false, "isPure": true, @@ -4619,13 +5118,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "969:10:36", + "src": "1216:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "960:19:36", + "src": "1206:20:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4639,21 +5138,21 @@ "typeString": "bool" } ], - "id": 9294, + "id": 11603, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "952:7:36", + "referencedDeclaration": 13444, + "src": "1198:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9300, + "id": 11609, "isConstant": false, "isLValue": false, "isPure": false, @@ -4661,15 +5160,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "952:28:36", + "src": "1198:29:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9301, + "id": 11610, "nodeType": "ExpressionStatement", - "src": "952:28:36" + "src": "1198:29:47" }, { "expression": { @@ -4681,40 +5180,105 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9307, + "id": 11620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9303, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9289, - "src": "998:6:36", + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11613, + "name": "listingTokenToWToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11557, + "src": "1253:20:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IWToken_$10485_$", + "typeString": "mapping(address => contract IWToken)" + } + }, + "id": 11615, + "indexExpression": { + "argumentTypes": null, + "id": 11614, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11588, + "src": "1274:5:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1253:27:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 11612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1245:7:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 11616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1245:36:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 9305, + "id": 11618, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1016:1:36", + "src": "1293:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4730,20 +5294,20 @@ "typeString": "int_const 0" } ], - "id": 9304, + "id": 11617, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1008:7:36", + "src": "1285:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9306, + "id": 11619, "isConstant": false, "isLValue": false, "isPure": true, @@ -4751,13 +5315,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1008:10:36", + "src": "1285:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "998:20:36", + "src": "1245:50:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4771,21 +5335,21 @@ "typeString": "bool" } ], - "id": 9302, + "id": 11611, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "990:7:36", + "referencedDeclaration": 13444, + "src": "1237:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9308, + "id": 11621, "isConstant": false, "isLValue": false, "isPure": false, @@ -4793,15 +5357,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "990:29:36", + "src": "1237:59:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9309, + "id": 11622, "nodeType": "ExpressionStatement", - "src": "990:29:36" + "src": "1237:59:47" }, { "expression": { @@ -4810,43 +5374,119 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 9313, + "id": 11630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9311, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9287, - "src": "1037:5:36", + "arguments": [ + { + "argumentTypes": null, + "id": 11625, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11588, + "src": "1322:5:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + ], + "id": 11624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1314:7:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 11626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1314:14:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 9312, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9289, - "src": "1046:6:36", + "arguments": [ + { + "argumentTypes": null, + "id": 11628, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1340:6:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 11627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1332:7:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 11629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1332:15:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "1037:15:36", + "src": "1314:33:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4860,21 +5500,21 @@ "typeString": "bool" } ], - "id": 9310, + "id": 11623, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1029:7:36", + "referencedDeclaration": 13444, + "src": "1306:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9314, + "id": 11631, "isConstant": false, "isLValue": false, "isPure": false, @@ -4882,15 +5522,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1029:24:36", + "src": "1306:42:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9315, + "id": 11632, "nodeType": "ExpressionStatement", - "src": "1029:24:36" + "src": "1306:42:47" }, { "expression": { @@ -4898,7 +5538,7 @@ "arguments": [ { "argumentTypes": null, - "id": 9321, + "id": 11642, "isConstant": false, "isLValue": false, "isPure": false, @@ -4906,62 +5546,134 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1071:23:36", + "src": "1366:53:47", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 9318, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9287, - "src": "1080:5:36", + "arguments": [ + { + "argumentTypes": null, + "id": 11636, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11588, + "src": "1389:5:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + ], + "id": 11635, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "1375:13:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "id": 11637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1375:20:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, { "argumentTypes": null, - "id": 9319, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9289, - "src": "1087:6:36", + "arguments": [ + { + "argumentTypes": null, + "id": 11639, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1411:6:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 11638, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "1397:13:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "id": 11640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1397:21:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } ], - "id": 9317, + "id": 11634, "name": "hasPair", "nodeType": "Identifier", "overloadedDeclarations": [ - 9367 + 11688 ], - "referencedDeclaration": 9367, - "src": "1072:7:36", + "referencedDeclaration": 11688, + "src": "1367:7:47", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_ERC20_$10211_$_t_contract$_ERC20_$10211_$returns$_t_bool_$", - "typeString": "function (contract ERC20,contract ERC20) view returns (bool)" + "typeIdentifier": "t_function_internal_view$_t_contract$_ERC20Detailed_$12986_$_t_contract$_ERC20Detailed_$12986_$returns$_t_bool_$", + "typeString": "function (contract ERC20Detailed,contract ERC20Detailed) view returns (bool)" } }, - "id": 9320, + "id": 11641, "isConstant": false, "isLValue": false, "isPure": false, @@ -4969,7 +5681,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1072:22:36", + "src": "1367:52:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4988,21 +5700,21 @@ "typeString": "bool" } ], - "id": 9316, + "id": 11633, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1063:7:36", + "referencedDeclaration": 13444, + "src": "1358:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9322, + "id": 11643, "isConstant": false, "isLValue": false, "isPure": false, @@ -5010,20 +5722,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1063:32:36", + "src": "1358:62:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9323, + "id": 11644, "nodeType": "ExpressionStatement", - "src": "1063:32:36" + "src": "1358:62:47" }, { "expression": { "argumentTypes": null, - "id": 9328, + "id": 11649, "isConstant": false, "isLValue": false, "isPure": false, @@ -5032,29 +5744,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9324, + "id": 11645, "name": "listingTokenToWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9256, - "src": "1106:20:36", + "referencedDeclaration": 11557, + "src": "1431:20:47", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8750_$", - "typeString": "mapping(address => contract WToken)" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IWToken_$10485_$", + "typeString": "mapping(address => contract IWToken)" } }, - "id": 9326, + "id": 11647, "indexExpression": { "argumentTypes": null, - "id": 9325, + "id": 11646, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9287, - "src": "1127:5:36", + "referencedDeclaration": 11588, + "src": "1452:5:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "isConstant": false, @@ -5062,41 +5774,41 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1106:27:36", + "src": "1431:27:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 9327, + "id": 11648, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9289, - "src": "1136:6:36", + "referencedDeclaration": 11590, + "src": "1461:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "src": "1106:36:36", + "src": "1431:36:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "id": 9329, + "id": 11650, "nodeType": "ExpressionStatement", - "src": "1106:36:36" + "src": "1431:36:47" }, { "expression": { "argumentTypes": null, - "id": 9334, + "id": 11655, "isConstant": false, "isLValue": false, "isPure": false, @@ -5105,29 +5817,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9330, + "id": 11651, "name": "listingWTokenToToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9260, - "src": "1152:20:36", + "referencedDeclaration": 11561, + "src": "1477:20:47", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$10211_$", - "typeString": "mapping(address => contract ERC20)" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "mapping(address => contract ERC20Detailed)" } }, - "id": 9332, + "id": 11653, "indexExpression": { "argumentTypes": null, - "id": 9331, + "id": 11652, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9289, - "src": "1173:6:36", + "referencedDeclaration": 11590, + "src": "1498:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "isConstant": false, @@ -5135,41 +5847,41 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1152:28:36", + "src": "1477:28:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 9333, + "id": 11654, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9287, - "src": "1183:5:36", + "referencedDeclaration": 11588, + "src": "1508:5:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "src": "1152:36:36", + "src": "1477:36:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "id": 9335, + "id": 11656, "nodeType": "ExpressionStatement", - "src": "1152:36:36" + "src": "1477:36:47" }, { "expression": { "argumentTypes": null, - "id": 9342, + "id": 11663, "isConstant": false, "isLValue": false, "isPure": false, @@ -5180,29 +5892,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9336, + "id": 11657, "name": "pairs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9266, - "src": "1198:5:36", + "referencedDeclaration": 11567, + "src": "1523:5:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 9339, + "id": 11660, "indexExpression": { "argumentTypes": null, - "id": 9337, + "id": 11658, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9287, - "src": "1204:5:36", + "referencedDeclaration": 11588, + "src": "1529:5:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "isConstant": false, @@ -5210,24 +5922,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1198:12:36", + "src": "1523:12:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 9340, + "id": 11661, "indexExpression": { "argumentTypes": null, - "id": 9338, + "id": 11659, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9289, - "src": "1211:6:36", + "referencedDeclaration": 11590, + "src": "1536:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "isConstant": false, @@ -5235,7 +5947,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1198:20:36", + "src": "1523:20:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5246,14 +5958,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 9341, + "id": 11662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1221:4:36", + "src": "1546:4:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5261,73 +5973,73 @@ }, "value": "true" }, - "src": "1198:27:36", + "src": "1523:27:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 9343, + "id": 11664, "nodeType": "ExpressionStatement", - "src": "1198:27:36" + "src": "1523:27:47" } ] }, "documentation": null, - "id": 9345, + "id": 11666, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 9292, + "id": 11593, "modifierName": { "argumentTypes": null, - "id": 9291, - "name": "onlyOwner", + "id": 11592, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "932:9:36", + "referencedDeclaration": 12420, + "src": "1138:11:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "932:9:36" + "src": "1138:11:47" } ], "name": "addTokenToListing", "nodeType": "FunctionDefinition", "parameters": { - "id": 9290, + "id": 11591, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9287, + "id": 11588, "name": "token", "nodeType": "VariableDeclaration", - "scope": 9345, - "src": "895:11:36", + "scope": 11666, + "src": "1092:19:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9286, - "name": "ERC20", + "id": 11587, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "895:5:36", + "referencedDeclaration": 12986, + "src": "1092:13:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, @@ -5335,53 +6047,53 @@ }, { "constant": false, - "id": 9289, + "id": 11590, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 9345, - "src": "908:13:36", + "scope": 11666, + "src": "1113:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 9288, - "name": "WToken", + "id": 11589, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "908:6:36", + "referencedDeclaration": 10485, + "src": "1113:7:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "894:28:36" + "src": "1091:37:47" }, "payable": false, "returnParameters": { - "id": 9293, + "id": 11594, "nodeType": "ParameterList", "parameters": [], - "src": "942:0:36" + "src": "1150:0:47" }, - "scope": 9501, - "src": "868:364:36", + "scope": 11818, + "src": "1065:492:47", "stateMutability": "nonpayable", - "superFunction": 9205, + "superFunction": 11501, "visibility": "external" }, { "body": { - "id": 9366, + "id": 11687, "nodeType": "Block", - "src": "1310:70:36", + "src": "1651:70:47", "statements": [ { "expression": { @@ -5390,7 +6102,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9364, + "id": 11685, "isConstant": false, "isLValue": false, "isPure": false, @@ -5401,29 +6113,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9354, + "id": 11675, "name": "pairs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9266, - "src": "1327:5:36", + "referencedDeclaration": 11567, + "src": "1668:5:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 9356, + "id": 11677, "indexExpression": { "argumentTypes": null, - "id": 9355, + "id": 11676, "name": "token1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9347, - "src": "1333:6:36", + "referencedDeclaration": 11668, + "src": "1674:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "isConstant": false, @@ -5431,24 +6143,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1327:13:36", + "src": "1668:13:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 9358, + "id": 11679, "indexExpression": { "argumentTypes": null, - "id": 9357, + "id": 11678, "name": "token2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9349, - "src": "1341:6:36", + "referencedDeclaration": 11670, + "src": "1682:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "isConstant": false, @@ -5456,7 +6168,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1327:21:36", + "src": "1668:21:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5470,29 +6182,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9359, + "id": 11680, "name": "pairs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9266, - "src": "1352:5:36", + "referencedDeclaration": 11567, + "src": "1693:5:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 9361, + "id": 11682, "indexExpression": { "argumentTypes": null, - "id": 9360, + "id": 11681, "name": "token2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9349, - "src": "1358:6:36", + "referencedDeclaration": 11670, + "src": "1699:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "isConstant": false, @@ -5500,24 +6212,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1352:13:36", + "src": "1693:13:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 9363, + "id": 11684, "indexExpression": { "argumentTypes": null, - "id": 9362, + "id": 11683, "name": "token1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9347, - "src": "1366:6:36", + "referencedDeclaration": 11668, + "src": "1707:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "isConstant": false, @@ -5525,27 +6237,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1352:21:36", + "src": "1693:21:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1327:46:36", + "src": "1668:46:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 9353, - "id": 9365, + "functionReturnParameters": 11674, + "id": 11686, "nodeType": "Return", - "src": "1320:53:36" + "src": "1661:53:47" } ] }, "documentation": null, - "id": 9367, + "id": 11688, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5553,32 +6265,32 @@ "name": "hasPair", "nodeType": "FunctionDefinition", "parameters": { - "id": 9350, + "id": 11671, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9347, + "id": 11668, "name": "token1", "nodeType": "VariableDeclaration", - "scope": 9367, - "src": "1255:12:36", + "scope": 11688, + "src": "1580:20:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9346, - "name": "ERC20", + "id": 11667, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "1255:5:36", + "referencedDeclaration": 12986, + "src": "1580:13:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, @@ -5586,47 +6298,47 @@ }, { "constant": false, - "id": 9349, + "id": 11670, "name": "token2", "nodeType": "VariableDeclaration", - "scope": 9367, - "src": "1269:12:36", + "scope": 11688, + "src": "1602:20:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9348, - "name": "ERC20", + "id": 11669, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "1269:5:36", + "referencedDeclaration": 12986, + "src": "1602:13:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, "visibility": "internal" } ], - "src": "1254:28:36" + "src": "1579:44:47" }, "payable": false, "returnParameters": { - "id": 9353, + "id": 11674, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9352, + "id": 11673, "name": "", "nodeType": "VariableDeclaration", - "scope": 9367, - "src": "1304:4:36", + "scope": 11688, + "src": "1645:4:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5634,10 +6346,10 @@ "typeString": "bool" }, "typeName": { - "id": 9351, + "id": 11672, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1304:4:36", + "src": "1645:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5647,19 +6359,19 @@ "visibility": "internal" } ], - "src": "1303:6:36" + "src": "1644:6:47" }, - "scope": 9501, - "src": "1238:142:36", + "scope": 11818, + "src": "1563:158:47", "stateMutability": "view", - "superFunction": 9214, + "superFunction": 11510, "visibility": "public" }, { "body": { - "id": 9388, + "id": 11707, "nodeType": "Block", - "src": "1470:99:36", + "src": "1798:90:47", "statements": [ { "expression": { @@ -5671,19 +6383,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9379, + "id": 11700, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9375, + "id": 11696, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9369, - "src": "1488:5:36", + "referencedDeclaration": 11690, + "src": "1816:5:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5697,14 +6409,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9377, + "id": 11698, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1505:1:36", + "src": "1833:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5720,20 +6432,20 @@ "typeString": "int_const 0" } ], - "id": 9376, + "id": 11697, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1497:7:36", + "src": "1825:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9378, + "id": 11699, "isConstant": false, "isLValue": false, "isPure": true, @@ -5741,13 +6453,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1497:10:36", + "src": "1825:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1488:19:36", + "src": "1816:19:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5761,21 +6473,21 @@ "typeString": "bool" } ], - "id": 9374, + "id": 11695, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1480:7:36", + "referencedDeclaration": 13444, + "src": "1808:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9380, + "id": 11701, "isConstant": false, "isLValue": false, "isPure": false, @@ -5783,93 +6495,66 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1480:28:36", + "src": "1808:28:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9381, + "id": 11702, "nodeType": "ExpressionStatement", - "src": "1480:28:36" + "src": "1808:28:47" }, { "expression": { "argumentTypes": null, - "id": 9386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "baseExpression": { "argumentTypes": null, - "id": 9382, - "name": "wTokenAddress", + "id": 11703, + "name": "listingTokenToWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9372, - "src": "1519:13:36", + "referencedDeclaration": 11557, + "src": "1854:20:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IWToken_$10485_$", + "typeString": "mapping(address => contract IWToken)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 11705, + "indexExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9383, - "name": "listingTokenToWToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9256, - "src": "1535:20:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8750_$", - "typeString": "mapping(address => contract WToken)" - } - }, - "id": 9385, - "indexExpression": { - "argumentTypes": null, - "id": 9384, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9369, - "src": "1556:5:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1535:27:36", + "id": 11704, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11690, + "src": "1875:5:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "1519:43:36", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1854:27:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "id": 9387, - "nodeType": "ExpressionStatement", - "src": "1519:43:36" + "functionReturnParameters": 11694, + "id": 11706, + "nodeType": "Return", + "src": "1847:34:47" } ] }, "documentation": null, - "id": 9389, + "id": 11708, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5877,16 +6562,16 @@ "name": "getWTokenByToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 9370, + "id": 11691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9369, + "id": 11690, "name": "token", "nodeType": "VariableDeclaration", - "scope": 9389, - "src": "1412:13:36", + "scope": 11708, + "src": "1753:13:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5894,10 +6579,10 @@ "typeString": "address" }, "typeName": { - "id": 9368, + "id": 11689, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1412:7:36", + "src": "1753:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5907,55 +6592,55 @@ "visibility": "internal" } ], - "src": "1411:15:36" + "src": "1752:15:47" }, "payable": false, "returnParameters": { - "id": 9373, + "id": 11694, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9372, - "name": "wTokenAddress", + "id": 11693, + "name": "", "nodeType": "VariableDeclaration", - "scope": 9389, - "src": "1448:20:36", + "scope": 11708, + "src": "1789:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 9371, - "name": "WToken", + "id": 11692, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "1448:6:36", + "referencedDeclaration": 10485, + "src": "1789:7:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "1447:22:36" + "src": "1788:9:47" }, - "scope": 9501, - "src": "1386:183:36", + "scope": 11818, + "src": "1727:161:47", "stateMutability": "view", - "superFunction": 9221, + "superFunction": 11517, "visibility": "public" }, { "body": { - "id": 9410, + "id": 11727, "nodeType": "Block", - "src": "1658:100:36", + "src": "1972:92:47", "statements": [ { "expression": { @@ -5967,19 +6652,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9401, + "id": 11720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9397, + "id": 11716, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9391, - "src": "1676:6:36", + "referencedDeclaration": 11710, + "src": "1990:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5993,14 +6678,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9399, + "id": 11718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1694:1:36", + "src": "2008:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6016,20 +6701,20 @@ "typeString": "int_const 0" } ], - "id": 9398, + "id": 11717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1686:7:36", + "src": "2000:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9400, + "id": 11719, "isConstant": false, "isLValue": false, "isPure": true, @@ -6037,13 +6722,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1686:10:36", + "src": "2000:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1676:20:36", + "src": "1990:20:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6057,21 +6742,21 @@ "typeString": "bool" } ], - "id": 9396, + "id": 11715, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1668:7:36", + "referencedDeclaration": 13444, + "src": "1982:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9402, + "id": 11721, "isConstant": false, "isLValue": false, "isPure": false, @@ -6079,93 +6764,66 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1668:29:36", + "src": "1982:29:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9403, + "id": 11722, "nodeType": "ExpressionStatement", - "src": "1668:29:36" + "src": "1982:29:47" }, { "expression": { "argumentTypes": null, - "id": 9408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "baseExpression": { "argumentTypes": null, - "id": 9404, - "name": "tokenAddress", + "id": 11723, + "name": "listingWTokenToToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9394, - "src": "1708:12:36", + "referencedDeclaration": 11561, + "src": "2029:20:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "mapping(address => contract ERC20Detailed)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 11725, + "indexExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9405, - "name": "listingWTokenToToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9260, - "src": "1723:20:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$10211_$", - "typeString": "mapping(address => contract ERC20)" - } - }, - "id": 9407, - "indexExpression": { - "argumentTypes": null, - "id": 9406, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9391, - "src": "1744:6:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1723:28:36", + "id": 11724, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11710, + "src": "2050:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "1708:43:36", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2029:28:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "id": 9409, - "nodeType": "ExpressionStatement", - "src": "1708:43:36" + "functionReturnParameters": 11714, + "id": 11726, + "nodeType": "Return", + "src": "2022:35:47" } ] }, "documentation": null, - "id": 9411, + "id": 11728, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6173,16 +6831,16 @@ "name": "getTokenByWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 9392, + "id": 11711, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9391, + "id": 11710, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 9411, - "src": "1601:14:36", + "scope": 11728, + "src": "1920:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6190,10 +6848,10 @@ "typeString": "address" }, "typeName": { - "id": 9390, + "id": 11709, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1601:7:36", + "src": "1920:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6203,55 +6861,55 @@ "visibility": "internal" } ], - "src": "1600:16:36" + "src": "1919:16:47" }, "payable": false, "returnParameters": { - "id": 9395, + "id": 11714, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9394, - "name": "tokenAddress", + "id": 11713, + "name": "", "nodeType": "VariableDeclaration", - "scope": 9411, - "src": "1638:18:36", + "scope": 11728, + "src": "1957:13:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" }, "typeName": { "contractScope": null, - "id": 9393, - "name": "ERC20", + "id": 11712, + "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "1638:5:36", + "referencedDeclaration": 12986, + "src": "1957:13:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "value": null, "visibility": "internal" } ], - "src": "1637:20:36" + "src": "1956:15:47" }, - "scope": 9501, - "src": "1575:183:36", + "scope": 11818, + "src": "1894:170:47", "stateMutability": "view", - "superFunction": 9228, + "superFunction": 11524, "visibility": "public" }, { "body": { - "id": 9430, + "id": 11747, "nodeType": "Block", - "src": "1858:54:36", + "src": "2167:54:47", "statements": [ { "expression": { @@ -6259,12 +6917,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9426, + "id": 11743, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9415, - "src": "1889:7:36", + "referencedDeclaration": 11732, + "src": "2198:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6272,12 +6930,12 @@ }, { "argumentTypes": null, - "id": 9427, + "id": 11744, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9417, - "src": "1898:6:36", + "referencedDeclaration": 11734, + "src": "2207:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6297,32 +6955,32 @@ ], "expression": { "argumentTypes": null, - "id": 9424, + "id": 11741, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9413, - "src": "1875:5:36", + "referencedDeclaration": 11730, + "src": "2184:5:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 9425, + "id": 11742, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 10202, - "src": "1875:13:36", + "referencedDeclaration": 13055, + "src": "2184:13:47", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 9428, + "id": 11745, "isConstant": false, "isLValue": false, "isPure": false, @@ -6330,74 +6988,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1875:30:36", + "src": "2184:30:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 9423, - "id": 9429, + "functionReturnParameters": 11740, + "id": 11746, "nodeType": "Return", - "src": "1868:37:36" + "src": "2177:37:47" } ] }, "documentation": null, - "id": 9431, + "id": 11748, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 9420, + "id": 11737, "modifierName": { "argumentTypes": null, - "id": 9419, - "name": "onlyOwner", + "id": 11736, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "1833:9:36", + "referencedDeclaration": 12420, + "src": "2140:11:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1833:9:36" + "src": "2140:11:47" } ], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 9418, + "id": 11735, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9413, + "id": 11730, "name": "token", "nodeType": "VariableDeclaration", - "scope": 9431, - "src": "1781:11:36", + "scope": 11748, + "src": "2087:12:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 9412, - "name": "ERC20", + "id": 11729, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "1781:5:36", + "referencedDeclaration": 13083, + "src": "2087:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -6405,11 +7063,11 @@ }, { "constant": false, - "id": 9415, + "id": 11732, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 9431, - "src": "1794:15:36", + "scope": 11748, + "src": "2101:15:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6417,10 +7075,10 @@ "typeString": "address" }, "typeName": { - "id": 9414, + "id": 11731, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1794:7:36", + "src": "2101:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6431,11 +7089,11 @@ }, { "constant": false, - "id": 9417, + "id": 11734, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 9431, - "src": "1811:11:36", + "scope": 11748, + "src": "2118:11:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6443,10 +7101,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9416, + "id": 11733, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1811:4:36", + "src": "2118:4:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6456,20 +7114,20 @@ "visibility": "internal" } ], - "src": "1780:43:36" + "src": "2086:44:47" }, "payable": false, "returnParameters": { - "id": 9423, + "id": 11740, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9422, + "id": 11739, "name": "", "nodeType": "VariableDeclaration", - "scope": 9431, - "src": "1852:4:36", + "scope": 11748, + "src": "2161:4:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6477,10 +7135,10 @@ "typeString": "bool" }, "typeName": { - "id": 9421, + "id": 11738, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1852:4:36", + "src": "2161:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6490,19 +7148,19 @@ "visibility": "internal" } ], - "src": "1851:6:36" + "src": "2160:6:47" }, - "scope": 9501, - "src": "1764:148:36", + "scope": 11818, + "src": "2070:151:47", "stateMutability": "nonpayable", - "superFunction": 9177, + "superFunction": 11473, "visibility": "external" }, { "body": { - "id": 9499, + "id": 11816, "nodeType": "Block", - "src": "1988:543:36", + "src": "2298:544:47", "statements": [ { "expression": { @@ -6514,19 +7172,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9443, + "id": 11760, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9441, + "id": 11758, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9435, - "src": "2006:6:36", + "referencedDeclaration": 11752, + "src": "2316:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6537,14 +7195,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9442, + "id": 11759, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2015:1:36", + "src": "2325:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6552,7 +7210,7 @@ }, "value": "0" }, - "src": "2006:10:36", + "src": "2316:10:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6566,21 +7224,21 @@ "typeString": "bool" } ], - "id": 9440, + "id": 11757, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1998:7:36", + "referencedDeclaration": 13444, + "src": "2308:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9444, + "id": 11761, "isConstant": false, "isLValue": false, "isPure": false, @@ -6588,15 +7246,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1998:19:36", + "src": "2308:19:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9445, + "id": 11762, "nodeType": "ExpressionStatement", - "src": "1998:19:36" + "src": "2308:19:47" }, { "expression": { @@ -6608,22 +7266,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9451, + "id": 11768, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9447, + "id": 11764, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9433, - "src": "2035:9:36", + "referencedDeclaration": 11750, + "src": "2345:9:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "nodeType": "BinaryOperation", @@ -6634,14 +7292,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9449, + "id": 11766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2056:1:36", + "src": "2366:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6657,20 +7315,20 @@ "typeString": "int_const 0" } ], - "id": 9448, + "id": 11765, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2048:7:36", + "src": "2358:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9450, + "id": 11767, "isConstant": false, "isLValue": false, "isPure": true, @@ -6678,13 +7336,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2048:10:36", + "src": "2358:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2035:23:36", + "src": "2345:23:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6698,21 +7356,21 @@ "typeString": "bool" } ], - "id": 9446, + "id": 11763, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2027:7:36", + "referencedDeclaration": 13444, + "src": "2337:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9452, + "id": 11769, "isConstant": false, "isLValue": false, "isPure": false, @@ -6720,89 +7378,89 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2027:32:36", + "src": "2337:32:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9453, + "id": 11770, "nodeType": "ExpressionStatement", - "src": "2027:32:36" + "src": "2337:32:47" }, { "assignments": [ - 9455 + 11772 ], "declarations": [ { "constant": false, - "id": 9455, + "id": 11772, "name": "toToken", "nodeType": "VariableDeclaration", - "scope": 9500, - "src": "2133:13:36", + "scope": 11817, + "src": "2443:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 9454, - "name": "ERC20", + "id": 11771, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "2133:5:36", + "referencedDeclaration": 13083, + "src": "2443:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, "visibility": "internal" } ], - "id": 9459, + "id": 11776, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 9457, + "id": 11774, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9433, - "src": "2166:9:36", + "referencedDeclaration": 11750, + "src": "2477:9:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } ], - "id": 9456, + "id": 11773, "name": "getTokenByWToken", "nodeType": "Identifier", "overloadedDeclarations": [ - 9411 + 11728 ], - "referencedDeclaration": 9411, - "src": "2149:16:36", + "referencedDeclaration": 11728, + "src": "2460:16:47", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_contract$_ERC20_$10211_$", - "typeString": "function (address) view returns (contract ERC20)" + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "function (address) view returns (contract ERC20Detailed)" } }, - "id": 9458, + "id": 11775, "isConstant": false, "isLValue": false, "isPure": false, @@ -6810,14 +7468,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2149:27:36", + "src": "2460:27:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "nodeType": "VariableDeclarationStatement", - "src": "2133:43:36" + "src": "2443:44:47" }, { "expression": { @@ -6829,22 +7487,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9465, + "id": 11782, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9461, + "id": 11778, "name": "toToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "2194:7:36", + "referencedDeclaration": 11772, + "src": "2505:7:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "nodeType": "BinaryOperation", @@ -6855,14 +7513,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9463, + "id": 11780, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2213:1:36", + "src": "2524:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6878,20 +7536,20 @@ "typeString": "int_const 0" } ], - "id": 9462, + "id": 11779, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2205:7:36", + "src": "2516:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9464, + "id": 11781, "isConstant": false, "isLValue": false, "isPure": true, @@ -6899,13 +7557,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2205:10:36", + "src": "2516:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2194:21:36", + "src": "2505:21:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6919,21 +7577,21 @@ "typeString": "bool" } ], - "id": 9460, + "id": 11777, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2186:7:36", + "referencedDeclaration": 13444, + "src": "2497:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9466, + "id": 11783, "isConstant": false, "isLValue": false, "isPure": false, @@ -6941,15 +7599,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2186:30:36", + "src": "2497:30:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9467, + "id": 11784, "nodeType": "ExpressionStatement", - "src": "2186:30:36" + "src": "2497:30:47" }, { "expression": { @@ -6959,18 +7617,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9471, + "id": 11788, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "2358:3:36", + "referencedDeclaration": 13441, + "src": "2669:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 9472, + "id": 11789, "isConstant": false, "isLValue": false, "isPure": false, @@ -6978,7 +7636,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2358:10:36", + "src": "2669:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6989,14 +7647,14 @@ "arguments": [ { "argumentTypes": null, - "id": 9474, + "id": 11791, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10597, - "src": "2378:4:36", + "referencedDeclaration": 13576, + "src": "2689:4:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenExchanger_$9501", + "typeIdentifier": "t_contract$_TokenExchanger_$11818", "typeString": "contract TokenExchanger" } } @@ -7004,24 +7662,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_TokenExchanger_$9501", + "typeIdentifier": "t_contract$_TokenExchanger_$11818", "typeString": "contract TokenExchanger" } ], - "id": 9473, + "id": 11790, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2370:7:36", + "src": "2681:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9475, + "id": 11792, "isConstant": false, "isLValue": false, "isPure": false, @@ -7029,7 +7687,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2370:13:36", + "src": "2681:13:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7037,12 +7695,12 @@ }, { "argumentTypes": null, - "id": 9476, + "id": 11793, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9435, - "src": "2385:6:36", + "referencedDeclaration": 11752, + "src": "2696:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7066,32 +7724,32 @@ ], "expression": { "argumentTypes": null, - "id": 9468, + "id": 11785, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9433, - "src": "2331:9:36", + "referencedDeclaration": 11750, + "src": "2642:9:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 9470, + "id": 11787, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 10286, - "src": "2331:26:36", + "referencedDeclaration": 13129, + "src": "2642:26:47", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$10211_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$10211_$", - "typeString": "function (contract ERC20,address,address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$13083_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$13083_$", + "typeString": "function (contract IERC20,address,address,uint256)" } }, - "id": 9477, + "id": 11794, "isConstant": false, "isLValue": false, "isPure": false, @@ -7099,15 +7757,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2331:61:36", + "src": "2642:61:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9478, + "id": 11795, "nodeType": "ExpressionStatement", - "src": "2331:61:36" + "src": "2642:61:47" }, { "expression": { @@ -7117,18 +7775,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9482, + "id": 11799, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "2423:3:36", + "referencedDeclaration": 13441, + "src": "2734:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 9483, + "id": 11800, "isConstant": false, "isLValue": false, "isPure": false, @@ -7136,7 +7794,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2423:10:36", + "src": "2734:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7144,12 +7802,12 @@ }, { "argumentTypes": null, - "id": 9484, + "id": 11801, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9435, - "src": "2435:6:36", + "referencedDeclaration": 11752, + "src": "2746:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7169,32 +7827,32 @@ ], "expression": { "argumentTypes": null, - "id": 9479, + "id": 11796, "name": "toToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "2402:7:36", + "referencedDeclaration": 11772, + "src": "2713:7:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 9481, + "id": 11798, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 10265, - "src": "2402:20:36", + "referencedDeclaration": 13108, + "src": "2713:20:47", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20Basic_$10243_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20Basic_$10243_$", - "typeString": "function (contract ERC20Basic,address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$13083_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$13083_$", + "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 9485, + "id": 11802, "isConstant": false, "isLValue": false, "isPure": false, @@ -7202,15 +7860,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2402:40:36", + "src": "2713:40:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9486, + "id": 11803, "nodeType": "ExpressionStatement", - "src": "2402:40:36" + "src": "2713:40:47" }, { "eventCall": { @@ -7221,39 +7879,39 @@ "arguments": [ { "argumentTypes": null, - "id": 9489, + "id": 11806, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9433, - "src": "2475:9:36", + "referencedDeclaration": 11750, + "src": "2786:9:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } ], - "id": 9488, + "id": 11805, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2467:7:36", + "src": "2778:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9490, + "id": 11807, "isConstant": false, "isLValue": false, "isPure": false, @@ -7261,7 +7919,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2467:18:36", + "src": "2778:18:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7272,39 +7930,39 @@ "arguments": [ { "argumentTypes": null, - "id": 9492, + "id": 11809, "name": "toToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "2495:7:36", + "referencedDeclaration": 11772, + "src": "2806:7:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } ], - "id": 9491, + "id": 11808, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2487:7:36", + "src": "2798:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9493, + "id": 11810, "isConstant": false, "isLValue": false, "isPure": false, @@ -7312,7 +7970,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2487:16:36", + "src": "2798:16:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7320,12 +7978,12 @@ }, { "argumentTypes": null, - "id": 9494, + "id": 11811, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9435, - "src": "2505:6:36", + "referencedDeclaration": 11752, + "src": "2816:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7335,18 +7993,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9495, + "id": 11812, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "2513:3:36", + "referencedDeclaration": 13441, + "src": "2824:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 9496, + "id": 11813, "isConstant": false, "isLValue": false, "isPure": false, @@ -7354,7 +8012,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2513:10:36", + "src": "2824:10:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7380,18 +8038,18 @@ "typeString": "address" } ], - "id": 9487, + "id": 11804, "name": "Exchange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9276, - "src": "2458:8:36", + "referencedDeclaration": 11577, + "src": "2769:8:47", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (address,address,uint256,address)" } }, - "id": 9497, + "id": 11814, "isConstant": false, "isLValue": false, "isPure": false, @@ -7399,73 +8057,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2458:66:36", + "src": "2769:66:47", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9498, + "id": 11815, "nodeType": "EmitStatement", - "src": "2453:71:36" + "src": "2764:71:47" } ] }, "documentation": null, - "id": 9500, + "id": 11817, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 9438, + "id": 11755, "modifierName": { "argumentTypes": null, - "id": 9437, + "id": 11754, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9776, - "src": "1975:12:36", + "referencedDeclaration": 13257, + "src": "2285:12:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1975:12:36" + "src": "2285:12:47" } ], "name": "exchange", "nodeType": "FunctionDefinition", "parameters": { - "id": 9436, + "id": 11753, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9433, + "id": 11750, "name": "fromToken", "nodeType": "VariableDeclaration", - "scope": 9500, - "src": "1936:15:36", + "scope": 11817, + "src": "2245:16:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 9432, - "name": "ERC20", + "id": 11749, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "1936:5:36", + "referencedDeclaration": 13083, + "src": "2245:6:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -7473,11 +8131,11 @@ }, { "constant": false, - "id": 9435, + "id": 11752, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 9500, - "src": "1953:11:36", + "scope": 11817, + "src": "2263:11:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7485,10 +8143,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9434, + "id": 11751, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1953:4:36", + "src": "2263:4:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7498,27 +8156,27 @@ "visibility": "internal" } ], - "src": "1935:30:36" + "src": "2244:31:47" }, "payable": false, "returnParameters": { - "id": 9439, + "id": 11756, "nodeType": "ParameterList", "parameters": [], - "src": "1988:0:36" + "src": "2298:0:47" }, - "scope": 9501, - "src": "1918:613:36", + "scope": 11818, + "src": "2227:615:47", "stateMutability": "nonpayable", - "superFunction": 9184, + "superFunction": 11480, "visibility": "external" } ], - "scope": 9502, - "src": "381:2152:36" + "scope": 11819, + "src": "527:2317:47" } ], - "src": "0:2534:36" + "src": "0:2845:47" }, "compiler": { "name": "solc", @@ -7582,13 +8240,25 @@ ], "name": "OwnershipTransferred", "type": "event" + }, + "0x4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" } }, "links": {}, - "address": "0xf4310692eb32aa42b9ed180a115787c20b219ac2", - "transactionHash": "0x46849dfc7b185deae38a4c0f342bb57c9ac0d48c6326f6d74108fe070cffab7a" + "address": "0x06e6c579c5d14a0ba5724217cdbb3ba924a59be6", + "transactionHash": "0x831b16ee6f36f1fc349bab152b6e49bac77a37e1a101e8c8517e7d8bb0701c25" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:56:22.047Z" + "updatedAt": "2018-12-06T13:20:48.553Z" } \ No newline at end of file diff --git a/build/contracts/TokenListing.json b/build/contracts/TokenListing.json new file mode 100644 index 00000000..405a5016 --- /dev/null +++ b/build/contracts/TokenListing.json @@ -0,0 +1,24605 @@ +{ + "contractName": "TokenListing", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": true, + "name": "tokenOwner", + "type": "address" + } + ], + "name": "OwnerWhitelisted", + "type": "event" + } + ], + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058201e09baa83798e394b38228e22b2b6c7a2eec9736b9ca8e37fd7b391cade789950029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058201e09baa83798e394b38228e22b2b6c7a2eec9736b9ca8e37fd7b391cade789950029", + "sourceMap": "178:8998:23:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "178:8998:23:-;;;;;;;;", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"../crowdsale/IW12Crowdsale.sol\";\nimport \"./Percent.sol\";\nimport \"./Crowdsale.sol\";\n\nlibrary TokenListing {\n using Percent for uint;\n using SafeMath for uint;\n\n enum CrowdsaleStatus { NotInitialized, Initialized }\n\n struct WhitelistedToken {\n string name;\n string symbol;\n uint8 decimals;\n address[] owners;\n uint feePercent;\n uint ethFeePercent;\n uint WTokenSaleFeePercent;\n uint trancheFeePercent;\n address token;\n mapping(address => bool) _hasOwner;\n }\n\n struct Crowdsale {\n address crowdsale;\n uint feePercent;\n uint ethFeePercent;\n uint WTokenSaleFeePercent;\n uint trancheFeePercent;\n uint tokensForSaleAmount;\n uint wTokensIssuedAmount;\n address[] owners;\n }\n\n struct Whitelist {\n // may be used as id\n // token address -> index\n mapping(address => uint) _index;\n // token address -> index -> bool\n mapping(address => mapping(uint => bool)) _hasIndex;\n // token address -> crowdsale\n // []\n // [initialised, initialised, non-initialised]\n // [initialised, initialised, initialised]\n mapping(address => Crowdsale[]) _crowdsales;\n // token address -> crowdsale address -> bool\n mapping(address => mapping(address => bool)) _hasCrowdsaleIndex;\n // token address -> crowdsale address -> index\n mapping(address => mapping(address => uint)) _crowdsaleIndex;\n\n WhitelistedToken[] _list;\n }\n\n event OwnerWhitelisted(address indexed tokenAddress, address indexed tokenOwner);\n\n function getTokens(Whitelist storage whitelist) internal view returns (WhitelistedToken[]) {\n return whitelist._list;\n }\n\n function isTokenWhitelisted(Whitelist storage whitelist, address token) internal view returns (bool) {\n return whitelist._hasIndex[token][whitelist._index[token]];\n }\n\n function tokenIndex(Whitelist storage whitelist, address token) internal view returns (uint) {\n require(isTokenWhitelisted(whitelist, token));\n\n return whitelist._index[token];\n }\n\n function hasTokenOwner(Whitelist storage whitelist, address token, address owner) internal view returns (bool) {\n return getToken(whitelist, token)._hasOwner[owner];\n }\n\n function getCrowdsales(Whitelist storage whitelist, address token) internal view returns (Crowdsale[]) {\n require(isTokenWhitelisted(whitelist, token));\n\n return whitelist._crowdsales[token];\n }\n\n function hasCrowdsaleWithAddress(Whitelist storage whitelist, address token, address crowdsale) internal view returns (bool) {\n require(isTokenWhitelisted(whitelist, token));\n\n return whitelist._hasCrowdsaleIndex[token][crowdsale];\n }\n\n function hasNotInitialisedCrowdsale(Whitelist storage whitelist, address token) internal view returns (bool) {\n require(isTokenWhitelisted(whitelist, token));\n\n return whitelist._hasCrowdsaleIndex[token][address(0)];\n }\n\n function getNotInitialisedCrowdsale(Whitelist storage whitelist, address token)\n internal view returns (Crowdsale storage)\n {\n return getCrowdsaleByAddress(whitelist, token, address(0));\n }\n\n function getCrowdsaleByAddress(Whitelist storage whitelist, address token, address crowdsale)\n internal view returns (Crowdsale storage)\n {\n require(hasCrowdsaleWithAddress(whitelist, token, crowdsale));\n\n return whitelist._crowdsales[token][whitelist._crowdsaleIndex[token][crowdsale]];\n }\n\n function getCrowdsaleIndexByAddress(Whitelist storage whitelist, address token, address crowdsale)\n internal view returns (uint)\n {\n require(hasCrowdsaleWithAddress(whitelist, token, crowdsale));\n\n return whitelist._crowdsaleIndex[token][crowdsale];\n }\n\n function getToken(Whitelist storage whitelist, address token)\n internal view returns (WhitelistedToken storage)\n {\n return whitelist._list[tokenIndex(whitelist, token)];\n }\n\n function _removeOwners(WhitelistedToken storage record) private {\n if (record.owners.length > 0) {\n for (uint i = 0; i < record.owners.length; i++) {\n record._hasOwner[record.owners[i]] = false;\n }\n record.owners.length = 0;\n }\n }\n\n function _addNotInitializedCrowdsale(Whitelist storage whitelist, address token) private {\n require(!hasNotInitialisedCrowdsale(whitelist, token));\n\n uint crowdsaleIndex = whitelist._crowdsales[token].length;\n whitelist._hasCrowdsaleIndex[token][address(0)] = true;\n whitelist._crowdsaleIndex[token][address(0)] = crowdsaleIndex;\n whitelist._crowdsales[token].push(\n Crowdsale({\n crowdsale : address(0),\n feePercent : 0,\n ethFeePercent : 0,\n WTokenSaleFeePercent : 0,\n trancheFeePercent : 0,\n tokensForSaleAmount : 0,\n wTokensIssuedAmount : 0,\n owners : new address[](0)\n })\n );\n }\n\n function _addTokenOwner(Whitelist storage whitelist, address token, address owner) private {\n require(owner != address(0));\n // check for duplicates\n require(!hasTokenOwner(whitelist, token, owner));\n\n getToken(whitelist, token).owners.push(owner);\n getToken(whitelist, token)._hasOwner[owner] = true;\n\n emit OwnerWhitelisted(token, owner);\n }\n\n function addOrUpdate(\n Whitelist storage whitelist,\n address token,\n string name,\n string symbol,\n uint8 decimals,\n address[] tokenOwners,\n uint feePercent,\n uint ethFeePercent,\n uint WTokenSaleFeePercent,\n uint trancheFeePercent\n )\n internal returns(uint)\n {\n require(token != address(0));\n require(tokenOwners.length > 0);\n require(feePercent.isPercent() && feePercent.fromPercent() < 100);\n require(ethFeePercent.isPercent() && ethFeePercent.fromPercent() < 100);\n require(WTokenSaleFeePercent.isPercent() && WTokenSaleFeePercent.fromPercent() < 100);\n require(trancheFeePercent.isPercent() && trancheFeePercent.fromPercent() < 100);\n\n if (!isTokenWhitelisted(whitelist, token)) {\n whitelist._index[token] = whitelist._list.length;\n whitelist._hasIndex[token][whitelist._list.length] = true;\n whitelist._list.push(\n WhitelistedToken({\n name: name,\n symbol: symbol,\n decimals: decimals,\n owners: new address[](0),\n feePercent: feePercent,\n ethFeePercent: ethFeePercent,\n WTokenSaleFeePercent: WTokenSaleFeePercent,\n trancheFeePercent: trancheFeePercent,\n token: token\n })\n );\n } else {\n _removeOwners(getToken(whitelist, token));\n getToken(whitelist, token).name = name;\n getToken(whitelist, token).symbol = symbol;\n getToken(whitelist, token).decimals = decimals;\n getToken(whitelist, token).feePercent = feePercent;\n getToken(whitelist, token).ethFeePercent = ethFeePercent;\n getToken(whitelist, token).WTokenSaleFeePercent = WTokenSaleFeePercent;\n getToken(whitelist, token).trancheFeePercent = trancheFeePercent;\n }\n\n for (uint i = 0; i < tokenOwners.length; i++) {\n _addTokenOwner(whitelist, token, tokenOwners[i]);\n }\n\n if (!hasNotInitialisedCrowdsale(whitelist, token)) {\n _addNotInitializedCrowdsale(whitelist, token);\n }\n\n return whitelist._index[token];\n }\n\n\n function initializeCrowdsale(Whitelist storage whitelist, address token, address crowdsale) internal {\n require(crowdsale != address(0));\n require(hasNotInitialisedCrowdsale(whitelist, token));\n require(!hasCrowdsaleWithAddress(whitelist, token, crowdsale));\n\n getNotInitialisedCrowdsale(whitelist, token).crowdsale = crowdsale;\n getNotInitialisedCrowdsale(whitelist, token).feePercent = getToken(whitelist, token).feePercent;\n getNotInitialisedCrowdsale(whitelist, token).ethFeePercent = getToken(whitelist, token).ethFeePercent;\n getNotInitialisedCrowdsale(whitelist, token).WTokenSaleFeePercent = getToken(whitelist, token).WTokenSaleFeePercent;\n getNotInitialisedCrowdsale(whitelist, token).trancheFeePercent = getToken(whitelist, token).trancheFeePercent;\n getNotInitialisedCrowdsale(whitelist, token).owners = getToken(whitelist, token).owners;\n\n whitelist._hasCrowdsaleIndex[token][crowdsale] = true;\n whitelist._crowdsaleIndex[token][crowdsale] = getCrowdsaleIndexByAddress(whitelist, token, address(0));\n whitelist._hasCrowdsaleIndex[token][address(0)] = false;\n whitelist._crowdsaleIndex[token][address(0)] = 0;\n }\n}\n", + "sourcePath": "/home/circleci/code/contracts/libs/TokenListing.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/libs/TokenListing.sol", + "exportedSymbols": { + "TokenListing": [ + 8172 + ] + }, + "id": 8173, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7271, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:23" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 7272, + "nodeType": "ImportDirective", + "scope": 8173, + "sourceUnit": 12389, + "src": "26:59:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../crowdsale/IW12Crowdsale.sol", + "id": 7273, + "nodeType": "ImportDirective", + "scope": 8173, + "sourceUnit": 1761, + "src": "86:40:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", + "file": "./Percent.sol", + "id": 7274, + "nodeType": "ImportDirective", + "scope": 8173, + "sourceUnit": 6432, + "src": "127:23:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Crowdsale.sol", + "file": "./Crowdsale.sol", + "id": 7275, + "nodeType": "ImportDirective", + "scope": 8173, + "sourceUnit": 5201, + "src": "151:25:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 8172, + "linearizedBaseContracts": [ + 8172 + ], + "name": "TokenListing", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 7278, + "libraryName": { + "contractScope": null, + "id": 7276, + "name": "Percent", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6431, + "src": "211:7:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Percent_$6431", + "typeString": "library Percent" + } + }, + "nodeType": "UsingForDirective", + "src": "205:23:23", + "typeName": { + "id": 7277, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "223:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 7281, + "libraryName": { + "contractScope": null, + "id": 7279, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "239:8:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "233:24:23", + "typeName": { + "id": 7280, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "252:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "canonicalName": "TokenListing.CrowdsaleStatus", + "id": 7284, + "members": [ + { + "id": 7282, + "name": "NotInitialized", + "nodeType": "EnumValue", + "src": "286:14:23" + }, + { + "id": 7283, + "name": "Initialized", + "nodeType": "EnumValue", + "src": "302:11:23" + } + ], + "name": "CrowdsaleStatus", + "nodeType": "EnumDefinition", + "src": "263:52:23" + }, + { + "canonicalName": "TokenListing.WhitelistedToken", + "id": 7308, + "members": [ + { + "constant": false, + "id": 7286, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "355:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7285, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "355:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7288, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "376:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7287, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "376:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7290, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "399:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7289, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "399:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7293, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "423:16:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 7291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "423:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7292, + "length": null, + "nodeType": "ArrayTypeName", + "src": "423:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7295, + "name": "feePercent", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "449:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7294, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "449:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7297, + "name": "ethFeePercent", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "474:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7296, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "474:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7299, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "502:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7298, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "502:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7301, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "537:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7300, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "537:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7303, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "569:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7302, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "569:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7307, + "name": "_hasOwner", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "592:34:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 7306, + "keyType": { + "id": 7304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "600:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "592:24:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 7305, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "611:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "WhitelistedToken", + "nodeType": "StructDefinition", + "scope": 8172, + "src": "321:312:23", + "visibility": "public" + }, + { + "canonicalName": "TokenListing.Crowdsale", + "id": 7326, + "members": [ + { + "constant": false, + "id": 7310, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "666:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7312, + "name": "feePercent", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "693:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7311, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "693:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7314, + "name": "ethFeePercent", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "718:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7313, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "718:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7316, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "746:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7315, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "746:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7318, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "781:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7317, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "781:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7320, + "name": "tokensForSaleAmount", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "813:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7319, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "813:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7322, + "name": "wTokensIssuedAmount", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "847:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7321, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "847:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7325, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "881:16:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 7323, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "881:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7324, + "length": null, + "nodeType": "ArrayTypeName", + "src": "881:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Crowdsale", + "nodeType": "StructDefinition", + "scope": 8172, + "src": "639:265:23", + "visibility": "public" + }, + { + "canonicalName": "TokenListing.Whitelist", + "id": 7357, + "members": [ + { + "constant": false, + "id": 7330, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 7357, + "src": "1000:31:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 7329, + "keyType": { + "id": 7327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1008:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1000:24:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 7328, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1019:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7336, + "name": "_hasIndex", + "nodeType": "VariableDeclaration", + "scope": 7357, + "src": "1083:51:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(address => mapping(uint256 => bool))" + }, + "typeName": { + "id": 7335, + "keyType": { + "id": 7331, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1091:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1083:41:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(address => mapping(uint256 => bool))" + }, + "valueType": { + "id": 7334, + "keyType": { + "id": 7332, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1110:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1102:21:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "valueType": { + "id": 7333, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1118:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7341, + "name": "_crowdsales", + "nodeType": "VariableDeclaration", + "scope": 7357, + "src": "1302:43:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_$", + "typeString": "mapping(address => struct TokenListing.Crowdsale[])" + }, + "typeName": { + "id": 7340, + "keyType": { + "id": 7337, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1310:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1302:31:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_$", + "typeString": "mapping(address => struct TokenListing.Crowdsale[])" + }, + "valueType": { + "baseType": { + "contractScope": null, + "id": 7338, + "name": "Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7326, + "src": "1321:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale" + } + }, + "id": 7339, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1321:11:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_ptr", + "typeString": "struct TokenListing.Crowdsale[]" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7347, + "name": "_hasCrowdsaleIndex", + "nodeType": "VariableDeclaration", + "scope": 7357, + "src": "1409:63:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 7346, + "keyType": { + "id": 7342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1417:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1409:44:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 7345, + "keyType": { + "id": 7343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1436:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1428:24:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 7344, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1447:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7353, + "name": "_crowdsaleIndex", + "nodeType": "VariableDeclaration", + "scope": 7357, + "src": "1537:60:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 7352, + "keyType": { + "id": 7348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1537:44:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 7351, + "keyType": { + "id": 7349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1564:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1556:24:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 7350, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1575:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7356, + "name": "_list", + "nodeType": "VariableDeclaration", + "scope": 7357, + "src": "1608:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 7354, + "name": "WhitelistedToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7308, + "src": "1608:16:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + } + }, + "id": 7355, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1608:18:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Whitelist", + "nodeType": "StructDefinition", + "scope": 8172, + "src": "910:729:23", + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 7363, + "name": "OwnerWhitelisted", + "nodeType": "EventDefinition", + "parameters": { + "id": 7362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7359, + "indexed": true, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 7363, + "src": "1668:28:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7358, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1668:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7361, + "indexed": true, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 7363, + "src": "1698:26:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1698:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1667:58:23" + }, + "src": "1645:81:23" + }, + { + "body": { + "id": 7374, + "nodeType": "Block", + "src": "1823:39:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7371, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7365, + "src": "1840:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7372, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 7356, + "src": "1840:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage", + "typeString": "struct TokenListing.WhitelistedToken storage ref[] storage ref" + } + }, + "functionReturnParameters": 7370, + "id": 7373, + "nodeType": "Return", + "src": "1833:22:23" + } + ] + }, + "documentation": null, + "id": 7375, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7365, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7375, + "src": "1751:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7364, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "1751:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1750:29:23" + }, + "payable": false, + "returnParameters": { + "id": 7370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7369, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7375, + "src": "1803:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.WhitelistedToken[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 7367, + "name": "WhitelistedToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7308, + "src": "1803:16:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + } + }, + "id": 7368, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1803:18:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1802:20:23" + }, + "scope": 8172, + "src": "1732:130:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7394, + "nodeType": "Block", + "src": "1969:75:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7384, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7377, + "src": "1986:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7385, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7336, + "src": "1986:19:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(address => mapping(uint256 => bool))" + } + }, + "id": 7387, + "indexExpression": { + "argumentTypes": null, + "id": 7386, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7379, + "src": "2006:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1986:26:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 7392, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7388, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7377, + "src": "2013:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7389, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_index", + "nodeType": "MemberAccess", + "referencedDeclaration": 7330, + "src": "2013:16:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7391, + "indexExpression": { + "argumentTypes": null, + "id": 7390, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7379, + "src": "2030:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2013:23:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1986:51:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7383, + "id": 7393, + "nodeType": "Return", + "src": "1979:58:23" + } + ] + }, + "documentation": null, + "id": 7395, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isTokenWhitelisted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7377, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7395, + "src": "1896:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7376, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "1896:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7379, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7395, + "src": "1925:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7378, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1925:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1895:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7382, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7395, + "src": "1963:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7381, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1963:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1962:6:23" + }, + "scope": 8172, + "src": "1868:176:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7416, + "nodeType": "Block", + "src": "2143:103:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7406, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7397, + "src": "2180:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7407, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7399, + "src": "2191:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7405, + "name": "isTokenWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7395, + "src": "2161:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 7408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2161:36:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7404, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2153:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2153:45:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7410, + "nodeType": "ExpressionStatement", + "src": "2153:45:23" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7411, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7397, + "src": "2216:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7412, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_index", + "nodeType": "MemberAccess", + "referencedDeclaration": 7330, + "src": "2216:16:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7414, + "indexExpression": { + "argumentTypes": null, + "id": 7413, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7399, + "src": "2233:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2216:23:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7403, + "id": 7415, + "nodeType": "Return", + "src": "2209:30:23" + } + ] + }, + "documentation": null, + "id": 7417, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "tokenIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7400, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7397, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7417, + "src": "2070:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7396, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "2070:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7399, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7417, + "src": "2099:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2099:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2069:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7403, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7402, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7417, + "src": "2137:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7401, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2137:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2136:6:23" + }, + "scope": 8172, + "src": "2050:196:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7436, + "nodeType": "Block", + "src": "2363:67:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7429, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7419, + "src": "2389:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7430, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7421, + "src": "2400:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7428, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "2380:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2380:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7432, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7307, + "src": "2380:36:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 7434, + "indexExpression": { + "argumentTypes": null, + "id": 7433, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7423, + "src": "2417:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2380:43:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7427, + "id": 7435, + "nodeType": "Return", + "src": "2373:50:23" + } + ] + }, + "documentation": null, + "id": 7437, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7419, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7437, + "src": "2275:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7418, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "2275:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7421, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7437, + "src": "2304:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2304:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7423, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 7437, + "src": "2319:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2319:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2274:59:23" + }, + "payable": false, + "returnParameters": { + "id": 7427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7437, + "src": "2357:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2357:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2356:6:23" + }, + "scope": 8172, + "src": "2252:178:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7459, + "nodeType": "Block", + "src": "2539:108:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7449, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7439, + "src": "2576:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7450, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7441, + "src": "2587:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7448, + "name": "isTokenWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7395, + "src": "2557:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 7451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2557:36:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2549:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2549:45:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7453, + "nodeType": "ExpressionStatement", + "src": "2549:45:23" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7454, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7439, + "src": "2612:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7455, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7341, + "src": "2612:21:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_$", + "typeString": "mapping(address => struct TokenListing.Crowdsale storage ref[] storage ref)" + } + }, + "id": 7457, + "indexExpression": { + "argumentTypes": null, + "id": 7456, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7441, + "src": "2634:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2612:28:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage", + "typeString": "struct TokenListing.Crowdsale storage ref[] storage ref" + } + }, + "functionReturnParameters": 7446, + "id": 7458, + "nodeType": "Return", + "src": "2605:35:23" + } + ] + }, + "documentation": null, + "id": 7460, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCrowdsales", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7439, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7460, + "src": "2459:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7438, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "2459:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7441, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7460, + "src": "2488:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2488:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2458:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7445, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7460, + "src": "2526:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.Crowdsale[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 7443, + "name": "Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7326, + "src": "2526:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale" + } + }, + "id": 7444, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2526:11:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_ptr", + "typeString": "struct TokenListing.Crowdsale[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2525:13:23" + }, + "scope": 8172, + "src": "2436:211:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7485, + "nodeType": "Block", + "src": "2778:126:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7473, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7462, + "src": "2815:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7474, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7464, + "src": "2826:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7472, + "name": "isTokenWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7395, + "src": "2796:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 7475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2796:36:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7471, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2788:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2788:45:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7477, + "nodeType": "ExpressionStatement", + "src": "2788:45:23" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7478, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7462, + "src": "2851:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7479, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasCrowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7347, + "src": "2851:28:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 7481, + "indexExpression": { + "argumentTypes": null, + "id": 7480, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7464, + "src": "2880:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2851:35:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 7483, + "indexExpression": { + "argumentTypes": null, + "id": 7482, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7466, + "src": "2887:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2851:46:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7470, + "id": 7484, + "nodeType": "Return", + "src": "2844:53:23" + } + ] + }, + "documentation": null, + "id": 7486, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasCrowdsaleWithAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7462, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7486, + "src": "2686:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7461, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "2686:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7464, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7486, + "src": "2715:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7463, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2715:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7466, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 7486, + "src": "2730:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2730:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2685:63:23" + }, + "payable": false, + "returnParameters": { + "id": 7470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7469, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7486, + "src": "2772:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7468, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2772:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2771:6:23" + }, + "scope": 8172, + "src": "2653:251:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7511, + "nodeType": "Block", + "src": "3019:127:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7497, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7488, + "src": "3056:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7498, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7490, + "src": "3067:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7496, + "name": "isTokenWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7395, + "src": "3037:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 7499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3037:36:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7495, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3029:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3029:45:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7501, + "nodeType": "ExpressionStatement", + "src": "3029:45:23" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7502, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7488, + "src": "3092:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7503, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasCrowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7347, + "src": "3092:28:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 7505, + "indexExpression": { + "argumentTypes": null, + "id": 7504, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7490, + "src": "3121:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3092:35:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 7509, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3136:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3128:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3128:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3092:47:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7494, + "id": 7510, + "nodeType": "Return", + "src": "3085:54:23" + } + ] + }, + "documentation": null, + "id": 7512, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasNotInitialisedCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7488, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7512, + "src": "2946:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7487, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "2946:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7490, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7512, + "src": "2975:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7489, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2975:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2945:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7493, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7512, + "src": "3013:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7492, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3013:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3012:6:23" + }, + "scope": 8172, + "src": "2910:236:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7529, + "nodeType": "Block", + "src": "3286:75:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7522, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7514, + "src": "3325:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7523, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7516, + "src": "3336:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3351:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3343:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3343:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7521, + "name": "getCrowdsaleByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7562, + "src": "3303:21:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 7527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3303:51:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "functionReturnParameters": 7520, + "id": 7528, + "nodeType": "Return", + "src": "3296:58:23" + } + ] + }, + "documentation": null, + "id": 7530, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getNotInitialisedCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7514, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7530, + "src": "3188:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7513, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "3188:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7516, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7530, + "src": "3217:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3217:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3187:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7520, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7519, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7530, + "src": "3263:9:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 7518, + "name": "Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7326, + "src": "3263:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3262:19:23" + }, + "scope": 8172, + "src": "3152:209:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7561, + "nodeType": "Block", + "src": "3515:169:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7543, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7532, + "src": "3557:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7544, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7534, + "src": "3568:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7545, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7536, + "src": "3575:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7542, + "name": "hasCrowdsaleWithAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7486, + "src": "3533:23:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 7546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3533:52:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7541, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3525:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3525:61:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7548, + "nodeType": "ExpressionStatement", + "src": "3525:61:23" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7549, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7532, + "src": "3604:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7550, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7341, + "src": "3604:21:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_$", + "typeString": "mapping(address => struct TokenListing.Crowdsale storage ref[] storage ref)" + } + }, + "id": 7552, + "indexExpression": { + "argumentTypes": null, + "id": 7551, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7534, + "src": "3626:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3604:28:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage", + "typeString": "struct TokenListing.Crowdsale storage ref[] storage ref" + } + }, + "id": 7559, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7553, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7532, + "src": "3633:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7554, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7353, + "src": "3633:25:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7556, + "indexExpression": { + "argumentTypes": null, + "id": 7555, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7534, + "src": "3659:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3633:32:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7558, + "indexExpression": { + "argumentTypes": null, + "id": 7557, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7536, + "src": "3666:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3633:43:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3604:73:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage", + "typeString": "struct TokenListing.Crowdsale storage ref" + } + }, + "functionReturnParameters": 7540, + "id": 7560, + "nodeType": "Return", + "src": "3597:80:23" + } + ] + }, + "documentation": null, + "id": 7562, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCrowdsaleByAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7532, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7562, + "src": "3398:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7531, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "3398:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7534, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7562, + "src": "3427:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7533, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3427:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7536, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 7562, + "src": "3442:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7535, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3442:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3397:63:23" + }, + "payable": false, + "returnParameters": { + "id": 7540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7539, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7562, + "src": "3492:9:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 7538, + "name": "Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7326, + "src": "3492:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3491:19:23" + }, + "scope": 8172, + "src": "3367:317:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7588, + "nodeType": "Block", + "src": "3830:139:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7575, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7564, + "src": "3872:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7576, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7566, + "src": "3883:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7577, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7568, + "src": "3890:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7574, + "name": "hasCrowdsaleWithAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7486, + "src": "3848:23:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 7578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3848:52:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7573, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3840:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3840:61:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7580, + "nodeType": "ExpressionStatement", + "src": "3840:61:23" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7581, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7564, + "src": "3919:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7582, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7353, + "src": "3919:25:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7584, + "indexExpression": { + "argumentTypes": null, + "id": 7583, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7566, + "src": "3945:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3919:32:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7586, + "indexExpression": { + "argumentTypes": null, + "id": 7585, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7568, + "src": "3952:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3919:43:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7572, + "id": 7587, + "nodeType": "Return", + "src": "3912:50:23" + } + ] + }, + "documentation": null, + "id": 7589, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCrowdsaleIndexByAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7564, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "3726:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7563, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "3726:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7566, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "3755:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3755:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7568, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "3770:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3770:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3725:63:23" + }, + "payable": false, + "returnParameters": { + "id": 7572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7571, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "3820:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7570, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3820:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3819:6:23" + }, + "scope": 8172, + "src": "3690:279:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7606, + "nodeType": "Block", + "src": "4098:69:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7598, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7591, + "src": "4115:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7599, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 7356, + "src": "4115:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage", + "typeString": "struct TokenListing.WhitelistedToken storage ref[] storage ref" + } + }, + "id": 7604, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7601, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7591, + "src": "4142:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7602, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7593, + "src": "4153:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7600, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7417, + "src": "4131:10:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_uint256_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (uint256)" + } + }, + "id": 7603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4131:28:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4115:45:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage", + "typeString": "struct TokenListing.WhitelistedToken storage ref" + } + }, + "functionReturnParameters": 7597, + "id": 7605, + "nodeType": "Return", + "src": "4108:52:23" + } + ] + }, + "documentation": null, + "id": 7607, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7591, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7607, + "src": "3993:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7590, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "3993:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7593, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7607, + "src": "4022:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4022:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3992:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7596, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7607, + "src": "4068:16:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + }, + "typeName": { + "contractScope": null, + "id": 7595, + "name": "WhitelistedToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7308, + "src": "4068:16:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4067:26:23" + }, + "scope": 8172, + "src": "3975:192:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7652, + "nodeType": "Block", + "src": "4237:231:23", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7612, + "name": "record", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7609, + "src": "4251:6:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7613, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "4251:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 7614, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4251:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4274:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4251:24:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7651, + "nodeType": "IfStatement", + "src": "4247:215:23", + "trueBody": { + "id": 7650, + "nodeType": "Block", + "src": "4277:185:23", + "statements": [ + { + "body": { + "id": 7640, + "nodeType": "Block", + "src": "4339:75:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7629, + "name": "record", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7609, + "src": "4357:6:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7635, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7307, + "src": "4357:16:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 7636, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7631, + "name": "record", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7609, + "src": "4374:6:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "4374:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 7634, + "indexExpression": { + "argumentTypes": null, + "id": 7633, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7618, + "src": "4388:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4374:16:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4357:34:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4394:5:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "4357:42:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7639, + "nodeType": "ExpressionStatement", + "src": "4357:42:23" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7621, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7618, + "src": "4308:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7622, + "name": "record", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7609, + "src": "4312:6:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7623, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "4312:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 7624, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4312:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4308:24:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7641, + "initializationExpression": { + "assignments": [ + 7618 + ], + "declarations": [ + { + "constant": false, + "id": 7618, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 7653, + "src": "4296:6:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4296:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7620, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 7619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4305:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4296:10:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 7627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4334:3:23", + "subExpression": { + "argumentTypes": null, + "id": 7626, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7618, + "src": "4334:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7628, + "nodeType": "ExpressionStatement", + "src": "4334:3:23" + }, + "nodeType": "ForStatement", + "src": "4291:123:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7642, + "name": "record", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7609, + "src": "4427:6:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7645, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "4427:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 7646, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4427:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 7647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4450:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4427:24:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7649, + "nodeType": "ExpressionStatement", + "src": "4427:24:23" + } + ] + } + } + ] + }, + "documentation": null, + "id": 7653, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_removeOwners", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7609, + "name": "record", + "nodeType": "VariableDeclaration", + "scope": 7653, + "src": "4196:31:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + }, + "typeName": { + "contractScope": null, + "id": 7608, + "name": "WhitelistedToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7308, + "src": "4196:16:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4195:33:23" + }, + "payable": false, + "returnParameters": { + "id": 7611, + "nodeType": "ParameterList", + "parameters": [], + "src": "4237:0:23" + }, + "scope": 8172, + "src": "4173:295:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 7724, + "nodeType": "Block", + "src": "4563:679:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4581:45:23", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7662, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7655, + "src": "4609:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7663, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7657, + "src": "4620:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7661, + "name": "hasNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7512, + "src": "4582:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 7664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4582:44:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7660, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "4573:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4573:54:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7667, + "nodeType": "ExpressionStatement", + "src": "4573:54:23" + }, + { + "assignments": [ + 7669 + ], + "declarations": [ + { + "constant": false, + "id": 7669, + "name": "crowdsaleIndex", + "nodeType": "VariableDeclaration", + "scope": 7725, + "src": "4638:19:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7668, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4638:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7675, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7670, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7655, + "src": "4660:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7671, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7341, + "src": "4660:21:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_$", + "typeString": "mapping(address => struct TokenListing.Crowdsale storage ref[] storage ref)" + } + }, + "id": 7673, + "indexExpression": { + "argumentTypes": null, + "id": 7672, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7657, + "src": "4682:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4660:28:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage", + "typeString": "struct TokenListing.Crowdsale storage ref[] storage ref" + } + }, + "id": 7674, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4660:35:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4638:57:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7676, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7655, + "src": "4705:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasCrowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7347, + "src": "4705:28:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 7683, + "indexExpression": { + "argumentTypes": null, + "id": 7678, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7657, + "src": "4734:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4705:35:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 7684, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7680, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4749:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4741:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4741:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4705:47:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4755:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4705:54:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7687, + "nodeType": "ExpressionStatement", + "src": "4705:54:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7688, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7655, + "src": "4769:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7694, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7353, + "src": "4769:25:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7695, + "indexExpression": { + "argumentTypes": null, + "id": 7690, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7657, + "src": "4795:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4769:32:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7696, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4810:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4802:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4802:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4769:44:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7697, + "name": "crowdsaleIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7669, + "src": "4816:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4769:61:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7699, + "nodeType": "ExpressionStatement", + "src": "4769:61:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4935:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4927:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4927:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4968:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5003:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5045:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5084:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5125:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7715, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5166:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5208:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "5194:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 7716, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5198:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7717, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5198:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 7720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5194:16:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 7706, + "name": "Crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7326, + "src": "4887:9:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "type(struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 7721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "crowdsale", + "feePercent", + "ethFeePercent", + "WTokenSaleFeePercent", + "trancheFeePercent", + "tokensForSaleAmount", + "wTokensIssuedAmount", + "owners" + ], + "nodeType": "FunctionCall", + "src": "4887:338:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_memory", + "typeString": "struct TokenListing.Crowdsale memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Crowdsale_$7326_memory", + "typeString": "struct TokenListing.Crowdsale memory" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7700, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7655, + "src": "4840:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7703, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7341, + "src": "4840:21:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_$", + "typeString": "mapping(address => struct TokenListing.Crowdsale storage ref[] storage ref)" + } + }, + "id": 7704, + "indexExpression": { + "argumentTypes": null, + "id": 7702, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7657, + "src": "4862:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4840:28:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage", + "typeString": "struct TokenListing.Crowdsale storage ref[] storage ref" + } + }, + "id": 7705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4840:33:23", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Crowdsale_$7326_storage_$returns$_t_uint256_$", + "typeString": "function (struct TokenListing.Crowdsale storage ref) returns (uint256)" + } + }, + "id": 7722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4840:395:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7723, + "nodeType": "ExpressionStatement", + "src": "4840:395:23" + } + ] + }, + "documentation": null, + "id": 7725, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addNotInitializedCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7655, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7725, + "src": "4511:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7654, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "4511:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7657, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7725, + "src": "4540:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4540:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4510:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7659, + "nodeType": "ParameterList", + "parameters": [], + "src": "4563:0:23" + }, + "scope": 8172, + "src": "4474:768:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 7775, + "nodeType": "Block", + "src": "5339:297:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7735, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7731, + "src": "5357:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5374:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5366:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5357:19:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7734, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5349:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5349:28:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7741, + "nodeType": "ExpressionStatement", + "src": "5349:28:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5427:39:23", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7744, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7727, + "src": "5442:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7745, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7729, + "src": "5453:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7746, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7731, + "src": "5460:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7743, + "name": "hasTokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7437, + "src": "5428:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 7747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5428:38:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7742, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5419:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5419:48:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7750, + "nodeType": "ExpressionStatement", + "src": "5419:48:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7757, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7731, + "src": "5517:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7752, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7727, + "src": "5487:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7753, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7729, + "src": "5498:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7751, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "5478:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5478:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7755, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "5478:33:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 7756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5478:38:23", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 7758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5478:45:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7759, + "nodeType": "ExpressionStatement", + "src": "5478:45:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7761, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7727, + "src": "5542:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7762, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7729, + "src": "5553:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7760, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "5533:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5533:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7764, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7307, + "src": "5533:36:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 7766, + "indexExpression": { + "argumentTypes": null, + "id": 7765, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7731, + "src": "5570:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5533:43:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5579:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5533:50:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7769, + "nodeType": "ExpressionStatement", + "src": "5533:50:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7771, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7729, + "src": "5616:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7772, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7731, + "src": "5623:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7770, + "name": "OwnerWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7363, + "src": "5599:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 7773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5599:30:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7774, + "nodeType": "EmitStatement", + "src": "5594:35:23" + } + ] + }, + "documentation": null, + "id": 7776, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7727, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7776, + "src": "5272:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7726, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "5272:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7729, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7776, + "src": "5301:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5301:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7731, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 7776, + "src": "5316:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5316:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5271:59:23" + }, + "payable": false, + "returnParameters": { + "id": 7733, + "nodeType": "ParameterList", + "parameters": [], + "src": "5339:0:23" + }, + "scope": 8172, + "src": "5248:388:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 8018, + "nodeType": "Block", + "src": "5983:1966:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7803, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "6001:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6018:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6010:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6010:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6001:19:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5993:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5993:28:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7809, + "nodeType": "ExpressionStatement", + "src": "5993:28:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7811, + "name": "tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7789, + "src": "6039:11:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 7812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6039:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6060:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6039:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7810, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6031:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6031:31:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7816, + "nodeType": "ExpressionStatement", + "src": "6031:31:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7818, + "name": "feePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7791, + "src": "6080:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "6080:20:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 7820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7821, + "name": "feePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7791, + "src": "6106:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6430, + "src": "6106:22:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 7823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6106:24:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 7824, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6133:3:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "6106:30:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6080:56:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7817, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6072:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6072:65:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7828, + "nodeType": "ExpressionStatement", + "src": "6072:65:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7830, + "name": "ethFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7793, + "src": "6155:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "6155:23:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 7832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6155:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7833, + "name": "ethFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7793, + "src": "6184:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6430, + "src": "6184:25:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 7835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6184:27:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 7836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6214:3:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "6184:33:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6155:62:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7829, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6147:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6147:71:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7840, + "nodeType": "ExpressionStatement", + "src": "6147:71:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7842, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7795, + "src": "6236:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "6236:30:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 7844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6236:32:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7845, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7795, + "src": "6272:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6430, + "src": "6272:32:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 7847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:34:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 7848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6309:3:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "6272:40:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6236:76:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7841, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6228:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6228:85:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7852, + "nodeType": "ExpressionStatement", + "src": "6228:85:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7854, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7797, + "src": "6331:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "6331:27:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 7856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6331:29:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7857, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7797, + "src": "6364:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6430, + "src": "6364:29:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 7859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6364:31:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 7860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6398:3:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "6364:37:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6331:70:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7853, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6323:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6323:79:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7864, + "nodeType": "ExpressionStatement", + "src": "6323:79:23" + }, + { + "condition": { + "argumentTypes": null, + "id": 7869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "6417:37:23", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7866, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "6437:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7867, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "6448:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7865, + "name": "isTokenWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7395, + "src": "6418:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 7868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6418:36:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 7978, + "nodeType": "Block", + "src": "7112:530:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7917, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7149:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7918, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7160:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7916, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7140:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7140:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + ], + "id": 7915, + "name": "_removeOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7653, + "src": "7126:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_WhitelistedToken_$7308_storage_ptr_$returns$__$", + "typeString": "function (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7126:41:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7921, + "nodeType": "ExpressionStatement", + "src": "7126:41:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7923, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7190:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7924, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7201:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7922, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7181:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7181:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7926, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 7286, + "src": "7181:31:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7927, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7782, + "src": "7215:4:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "7181:38:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 7929, + "nodeType": "ExpressionStatement", + "src": "7181:38:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7931, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7242:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7932, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7253:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7930, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7233:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7233:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7934, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 7288, + "src": "7233:33:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7935, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7784, + "src": "7269:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "7233:42:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 7937, + "nodeType": "ExpressionStatement", + "src": "7233:42:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7939, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7298:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7940, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7309:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7938, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7289:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7289:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7942, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 7290, + "src": "7289:35:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7943, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "7327:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7289:46:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 7945, + "nodeType": "ExpressionStatement", + "src": "7289:46:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7947, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7358:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7948, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7369:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7946, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7349:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7349:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7950, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7295, + "src": "7349:37:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7951, + "name": "feePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7791, + "src": "7389:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7349:50:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7953, + "nodeType": "ExpressionStatement", + "src": "7349:50:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7955, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7422:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7956, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7433:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7954, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7413:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7413:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7958, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "ethFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7297, + "src": "7413:40:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7959, + "name": "ethFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7793, + "src": "7456:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7413:56:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7961, + "nodeType": "ExpressionStatement", + "src": "7413:56:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7963, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7492:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7964, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7503:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7962, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7483:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7483:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7966, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7299, + "src": "7483:47:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7967, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7795, + "src": "7533:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7483:70:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7969, + "nodeType": "ExpressionStatement", + "src": "7483:70:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7971, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7576:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7972, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7587:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7970, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7567:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7567:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7974, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7301, + "src": "7567:44:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7975, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7797, + "src": "7614:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7567:64:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7977, + "nodeType": "ExpressionStatement", + "src": "7567:64:23" + } + ] + }, + "id": 7979, + "nodeType": "IfStatement", + "src": "6413:1229:23", + "trueBody": { + "id": 7914, + "nodeType": "Block", + "src": "6456:650:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7870, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "6470:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7873, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_index", + "nodeType": "MemberAccess", + "referencedDeclaration": 7330, + "src": "6470:16:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7874, + "indexExpression": { + "argumentTypes": null, + "id": 7872, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "6487:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6470:23:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7875, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "6496:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7876, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 7356, + "src": "6496:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage", + "typeString": "struct TokenListing.WhitelistedToken storage ref[] storage ref" + } + }, + "id": 7877, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6496:22:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6470:48:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7879, + "nodeType": "ExpressionStatement", + "src": "6470:48:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7880, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "6532:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7886, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7336, + "src": "6532:19:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(address => mapping(uint256 => bool))" + } + }, + "id": 7887, + "indexExpression": { + "argumentTypes": null, + "id": 7882, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "6552:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6532:26:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 7888, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7883, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "6559:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7884, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 7356, + "src": "6559:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage", + "typeString": "struct TokenListing.WhitelistedToken storage ref[] storage ref" + } + }, + "id": 7885, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6559:22:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6532:50:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6585:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6532:57:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7891, + "nodeType": "ExpressionStatement", + "src": "6532:57:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7898, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7782, + "src": "6686:4:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 7899, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7784, + "src": "6720:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 7900, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "6758:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6810:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6796:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 7901, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6800:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7902, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6800:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 7905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6796:16:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 7906, + "name": "feePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7791, + "src": "6846:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7907, + "name": "ethFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7793, + "src": "6893:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7908, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7795, + "src": "6950:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7909, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7797, + "src": "7011:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7910, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7057:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 7897, + "name": "WhitelistedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7308, + "src": "6641:16:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "type(struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "name", + "symbol", + "decimals", + "owners", + "feePercent", + "ethFeePercent", + "WTokenSaleFeePercent", + "trancheFeePercent", + "token" + ], + "nodeType": "FunctionCall", + "src": "6641:440:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_memory", + "typeString": "struct TokenListing.WhitelistedToken memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_memory", + "typeString": "struct TokenListing.WhitelistedToken memory" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7892, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "6603:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7895, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 7356, + "src": "6603:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage", + "typeString": "struct TokenListing.WhitelistedToken storage ref[] storage ref" + } + }, + "id": 7896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6603:20:23", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_WhitelistedToken_$7308_storage_$returns$_t_uint256_$", + "typeString": "function (struct TokenListing.WhitelistedToken storage ref) returns (uint256)" + } + }, + "id": 7912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6603:492:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7913, + "nodeType": "ExpressionStatement", + "src": "6603:492:23" + } + ] + } + }, + { + "body": { + "id": 7999, + "nodeType": "Block", + "src": "7698:73:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7992, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7727:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7993, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7738:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7994, + "name": "tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7789, + "src": "7745:11:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 7996, + "indexExpression": { + "argumentTypes": null, + "id": 7995, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7981, + "src": "7757:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7745:14:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7991, + "name": "_addTokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7776, + "src": "7712:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address)" + } + }, + "id": 7997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7712:48:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7998, + "nodeType": "ExpressionStatement", + "src": "7712:48:23" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7984, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7981, + "src": "7669:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7985, + "name": "tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7789, + "src": "7673:11:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 7986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7673:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7669:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8000, + "initializationExpression": { + "assignments": [ + 7981 + ], + "declarations": [ + { + "constant": false, + "id": 7981, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "7657:6:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7980, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7657:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7983, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 7982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7666:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7657:10:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 7989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7693:3:23", + "subExpression": { + "argumentTypes": null, + "id": 7988, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7981, + "src": "7693:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7990, + "nodeType": "ExpressionStatement", + "src": "7693:3:23" + }, + "nodeType": "ForStatement", + "src": "7652:119:23" + }, + { + "condition": { + "argumentTypes": null, + "id": 8005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7785:45:23", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8002, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7813:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8003, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7824:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8001, + "name": "hasNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7512, + "src": "7786:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 8004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7786:44:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8012, + "nodeType": "IfStatement", + "src": "7781:121:23", + "trueBody": { + "id": 8011, + "nodeType": "Block", + "src": "7832:70:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8007, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7874:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8008, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7885:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8006, + "name": "_addNotInitializedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7725, + "src": "7846:27:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$__$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address)" + } + }, + "id": 8009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7846:45:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8010, + "nodeType": "ExpressionStatement", + "src": "7846:45:23" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8013, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7919:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 8014, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_index", + "nodeType": "MemberAccess", + "referencedDeclaration": 7330, + "src": "7919:16:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 8016, + "indexExpression": { + "argumentTypes": null, + "id": 8015, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7936:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7919:23:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7801, + "id": 8017, + "nodeType": "Return", + "src": "7912:30:23" + } + ] + }, + "documentation": null, + "id": 8019, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addOrUpdate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7778, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5672:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7777, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "5672:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7780, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5709:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7779, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5709:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7782, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5732:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7781, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5732:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7784, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5753:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7783, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5753:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7786, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5776:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7785, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5776:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7789, + "name": "tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5800:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 7787, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5800:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7788, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5800:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7791, + "name": "feePercent", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5831:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7790, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5831:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7793, + "name": "ethFeePercent", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5856:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7792, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5856:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7795, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5884:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7794, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5884:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7797, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5919:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7796, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5919:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5662:285:23" + }, + "payable": false, + "returnParameters": { + "id": 7801, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7800, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5973:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7799, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5973:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5972:6:23" + }, + "scope": 8172, + "src": "5642:2307:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8170, + "nodeType": "Block", + "src": "8057:1117:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8029, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "8075:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8096:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8088:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8088:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8075:23:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "8067:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8067:32:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8035, + "nodeType": "ExpressionStatement", + "src": "8067:32:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8038, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8144:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8039, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8155:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8037, + "name": "hasNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7512, + "src": "8117:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 8040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8117:44:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8036, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "8109:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8109:53:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8042, + "nodeType": "ExpressionStatement", + "src": "8109:53:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8180:53:23", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8045, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8205:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8046, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8216:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8047, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "8223:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8044, + "name": "hasCrowdsaleWithAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7486, + "src": "8181:23:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 8048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8181:52:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8043, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "8172:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8172:62:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8051, + "nodeType": "ExpressionStatement", + "src": "8172:62:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8053, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8272:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8054, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8283:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8052, + "name": "getNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "8245:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 8055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8245:44:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 8056, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "crowdsale", + "nodeType": "MemberAccess", + "referencedDeclaration": 7310, + "src": "8245:54:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8057, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "8302:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8245:66:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8059, + "nodeType": "ExpressionStatement", + "src": "8245:66:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8061, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8348:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8062, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8359:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8060, + "name": "getNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "8321:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 8063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8321:44:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 8064, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7312, + "src": "8321:55:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8066, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8388:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8067, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8399:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8065, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "8379:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 8068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8379:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 8069, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7295, + "src": "8379:37:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8321:95:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8071, + "nodeType": "ExpressionStatement", + "src": "8321:95:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8073, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8453:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8074, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8464:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8072, + "name": "getNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "8426:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 8075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8426:44:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 8076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "ethFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7314, + "src": "8426:58:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8078, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8496:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8079, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8507:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8077, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "8487:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 8080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8487:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 8081, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ethFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7297, + "src": "8487:40:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8426:101:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8083, + "nodeType": "ExpressionStatement", + "src": "8426:101:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8085, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8564:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8086, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8575:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8084, + "name": "getNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "8537:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 8087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8537:44:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 8088, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7316, + "src": "8537:65:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8090, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8614:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8091, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8625:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8089, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "8605:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 8092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8605:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 8093, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7299, + "src": "8605:47:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8537:115:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8095, + "nodeType": "ExpressionStatement", + "src": "8537:115:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8097, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8689:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8098, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8700:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8096, + "name": "getNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "8662:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 8099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8662:44:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 8100, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7318, + "src": "8662:62:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8102, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8736:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8103, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8747:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8101, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "8727:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 8104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8727:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 8105, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7301, + "src": "8727:44:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8662:109:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8107, + "nodeType": "ExpressionStatement", + "src": "8662:109:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8109, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8808:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8110, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8819:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8108, + "name": "getNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "8781:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 8111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:44:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 8112, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7325, + "src": "8781:51:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8114, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8844:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8115, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8855:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8113, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "8835:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 8116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8835:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 8117, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "8835:33:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "src": "8781:87:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 8119, + "nodeType": "ExpressionStatement", + "src": "8781:87:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8120, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8879:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 8124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasCrowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7347, + "src": "8879:28:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 8125, + "indexExpression": { + "argumentTypes": null, + "id": 8122, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8908:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8879:35:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 8126, + "indexExpression": { + "argumentTypes": null, + "id": 8123, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "8915:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8879:46:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8928:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "8879:53:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8129, + "nodeType": "ExpressionStatement", + "src": "8879:53:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8130, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8942:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 8134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7353, + "src": "8942:25:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 8135, + "indexExpression": { + "argumentTypes": null, + "id": 8132, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8968:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8942:32:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 8136, + "indexExpression": { + "argumentTypes": null, + "id": 8133, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "8975:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8942:43:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8138, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "9015:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8139, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "9026:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9041:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9033:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9033:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8137, + "name": "getCrowdsaleIndexByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7589, + "src": "8988:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (uint256)" + } + }, + "id": 8143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8988:56:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8942:102:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8145, + "nodeType": "ExpressionStatement", + "src": "8942:102:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8146, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "9054:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 8152, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasCrowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7347, + "src": "9054:28:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 8153, + "indexExpression": { + "argumentTypes": null, + "id": 8148, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "9083:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9054:35:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 8154, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9098:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9090:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9090:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9054:47:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8155, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9104:5:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "9054:55:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8157, + "nodeType": "ExpressionStatement", + "src": "9054:55:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8158, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "9119:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 8164, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7353, + "src": "9119:25:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 8165, + "indexExpression": { + "argumentTypes": null, + "id": 8160, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "9145:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9119:32:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 8166, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9160:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9152:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9152:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9119:44:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 8167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9166:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9119:48:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8169, + "nodeType": "ExpressionStatement", + "src": "9119:48:23" + } + ] + }, + "documentation": null, + "id": 8171, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "initializeCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8026, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8021, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 8171, + "src": "7985:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 8020, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "7985:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8023, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 8171, + "src": "8014:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8014:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8025, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 8171, + "src": "8029:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8024, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8029:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7984:63:23" + }, + "payable": false, + "returnParameters": { + "id": 8027, + "nodeType": "ParameterList", + "parameters": [], + "src": "8057:0:23" + }, + "scope": 8172, + "src": "7956:1218:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 8173, + "src": "178:8998:23" + } + ], + "src": "0:9177:23" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/libs/TokenListing.sol", + "exportedSymbols": { + "TokenListing": [ + 8172 + ] + }, + "id": 8173, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7271, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:23" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 7272, + "nodeType": "ImportDirective", + "scope": 8173, + "sourceUnit": 12389, + "src": "26:59:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../crowdsale/IW12Crowdsale.sol", + "id": 7273, + "nodeType": "ImportDirective", + "scope": 8173, + "sourceUnit": 1761, + "src": "86:40:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", + "file": "./Percent.sol", + "id": 7274, + "nodeType": "ImportDirective", + "scope": 8173, + "sourceUnit": 6432, + "src": "127:23:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Crowdsale.sol", + "file": "./Crowdsale.sol", + "id": 7275, + "nodeType": "ImportDirective", + "scope": 8173, + "sourceUnit": 5201, + "src": "151:25:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 8172, + "linearizedBaseContracts": [ + 8172 + ], + "name": "TokenListing", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 7278, + "libraryName": { + "contractScope": null, + "id": 7276, + "name": "Percent", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6431, + "src": "211:7:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Percent_$6431", + "typeString": "library Percent" + } + }, + "nodeType": "UsingForDirective", + "src": "205:23:23", + "typeName": { + "id": 7277, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "223:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 7281, + "libraryName": { + "contractScope": null, + "id": 7279, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "239:8:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "233:24:23", + "typeName": { + "id": 7280, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "252:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "canonicalName": "TokenListing.CrowdsaleStatus", + "id": 7284, + "members": [ + { + "id": 7282, + "name": "NotInitialized", + "nodeType": "EnumValue", + "src": "286:14:23" + }, + { + "id": 7283, + "name": "Initialized", + "nodeType": "EnumValue", + "src": "302:11:23" + } + ], + "name": "CrowdsaleStatus", + "nodeType": "EnumDefinition", + "src": "263:52:23" + }, + { + "canonicalName": "TokenListing.WhitelistedToken", + "id": 7308, + "members": [ + { + "constant": false, + "id": 7286, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "355:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7285, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "355:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7288, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "376:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7287, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "376:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7290, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "399:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7289, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "399:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7293, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "423:16:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 7291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "423:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7292, + "length": null, + "nodeType": "ArrayTypeName", + "src": "423:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7295, + "name": "feePercent", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "449:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7294, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "449:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7297, + "name": "ethFeePercent", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "474:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7296, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "474:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7299, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "502:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7298, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "502:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7301, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "537:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7300, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "537:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7303, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "569:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7302, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "569:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7307, + "name": "_hasOwner", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "592:34:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 7306, + "keyType": { + "id": 7304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "600:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "592:24:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 7305, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "611:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "WhitelistedToken", + "nodeType": "StructDefinition", + "scope": 8172, + "src": "321:312:23", + "visibility": "public" + }, + { + "canonicalName": "TokenListing.Crowdsale", + "id": 7326, + "members": [ + { + "constant": false, + "id": 7310, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "666:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7312, + "name": "feePercent", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "693:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7311, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "693:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7314, + "name": "ethFeePercent", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "718:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7313, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "718:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7316, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "746:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7315, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "746:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7318, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "781:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7317, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "781:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7320, + "name": "tokensForSaleAmount", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "813:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7319, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "813:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7322, + "name": "wTokensIssuedAmount", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "847:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7321, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "847:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7325, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 7326, + "src": "881:16:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 7323, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "881:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7324, + "length": null, + "nodeType": "ArrayTypeName", + "src": "881:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Crowdsale", + "nodeType": "StructDefinition", + "scope": 8172, + "src": "639:265:23", + "visibility": "public" + }, + { + "canonicalName": "TokenListing.Whitelist", + "id": 7357, + "members": [ + { + "constant": false, + "id": 7330, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 7357, + "src": "1000:31:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 7329, + "keyType": { + "id": 7327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1008:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1000:24:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 7328, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1019:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7336, + "name": "_hasIndex", + "nodeType": "VariableDeclaration", + "scope": 7357, + "src": "1083:51:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(address => mapping(uint256 => bool))" + }, + "typeName": { + "id": 7335, + "keyType": { + "id": 7331, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1091:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1083:41:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(address => mapping(uint256 => bool))" + }, + "valueType": { + "id": 7334, + "keyType": { + "id": 7332, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1110:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1102:21:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "valueType": { + "id": 7333, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1118:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7341, + "name": "_crowdsales", + "nodeType": "VariableDeclaration", + "scope": 7357, + "src": "1302:43:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_$", + "typeString": "mapping(address => struct TokenListing.Crowdsale[])" + }, + "typeName": { + "id": 7340, + "keyType": { + "id": 7337, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1310:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1302:31:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_$", + "typeString": "mapping(address => struct TokenListing.Crowdsale[])" + }, + "valueType": { + "baseType": { + "contractScope": null, + "id": 7338, + "name": "Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7326, + "src": "1321:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale" + } + }, + "id": 7339, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1321:11:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_ptr", + "typeString": "struct TokenListing.Crowdsale[]" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7347, + "name": "_hasCrowdsaleIndex", + "nodeType": "VariableDeclaration", + "scope": 7357, + "src": "1409:63:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 7346, + "keyType": { + "id": 7342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1417:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1409:44:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 7345, + "keyType": { + "id": 7343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1436:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1428:24:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 7344, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1447:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7353, + "name": "_crowdsaleIndex", + "nodeType": "VariableDeclaration", + "scope": 7357, + "src": "1537:60:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 7352, + "keyType": { + "id": 7348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1537:44:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 7351, + "keyType": { + "id": 7349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1564:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1556:24:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 7350, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1575:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7356, + "name": "_list", + "nodeType": "VariableDeclaration", + "scope": 7357, + "src": "1608:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 7354, + "name": "WhitelistedToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7308, + "src": "1608:16:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + } + }, + "id": 7355, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1608:18:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Whitelist", + "nodeType": "StructDefinition", + "scope": 8172, + "src": "910:729:23", + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 7363, + "name": "OwnerWhitelisted", + "nodeType": "EventDefinition", + "parameters": { + "id": 7362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7359, + "indexed": true, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 7363, + "src": "1668:28:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7358, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1668:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7361, + "indexed": true, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 7363, + "src": "1698:26:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1698:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1667:58:23" + }, + "src": "1645:81:23" + }, + { + "body": { + "id": 7374, + "nodeType": "Block", + "src": "1823:39:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7371, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7365, + "src": "1840:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7372, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 7356, + "src": "1840:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage", + "typeString": "struct TokenListing.WhitelistedToken storage ref[] storage ref" + } + }, + "functionReturnParameters": 7370, + "id": 7373, + "nodeType": "Return", + "src": "1833:22:23" + } + ] + }, + "documentation": null, + "id": 7375, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7365, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7375, + "src": "1751:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7364, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "1751:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1750:29:23" + }, + "payable": false, + "returnParameters": { + "id": 7370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7369, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7375, + "src": "1803:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.WhitelistedToken[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 7367, + "name": "WhitelistedToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7308, + "src": "1803:16:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + } + }, + "id": 7368, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1803:18:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1802:20:23" + }, + "scope": 8172, + "src": "1732:130:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7394, + "nodeType": "Block", + "src": "1969:75:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7384, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7377, + "src": "1986:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7385, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7336, + "src": "1986:19:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(address => mapping(uint256 => bool))" + } + }, + "id": 7387, + "indexExpression": { + "argumentTypes": null, + "id": 7386, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7379, + "src": "2006:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1986:26:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 7392, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7388, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7377, + "src": "2013:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7389, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_index", + "nodeType": "MemberAccess", + "referencedDeclaration": 7330, + "src": "2013:16:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7391, + "indexExpression": { + "argumentTypes": null, + "id": 7390, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7379, + "src": "2030:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2013:23:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1986:51:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7383, + "id": 7393, + "nodeType": "Return", + "src": "1979:58:23" + } + ] + }, + "documentation": null, + "id": 7395, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isTokenWhitelisted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7377, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7395, + "src": "1896:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7376, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "1896:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7379, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7395, + "src": "1925:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7378, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1925:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1895:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7382, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7395, + "src": "1963:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7381, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1963:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1962:6:23" + }, + "scope": 8172, + "src": "1868:176:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7416, + "nodeType": "Block", + "src": "2143:103:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7406, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7397, + "src": "2180:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7407, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7399, + "src": "2191:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7405, + "name": "isTokenWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7395, + "src": "2161:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 7408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2161:36:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7404, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2153:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2153:45:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7410, + "nodeType": "ExpressionStatement", + "src": "2153:45:23" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7411, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7397, + "src": "2216:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7412, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_index", + "nodeType": "MemberAccess", + "referencedDeclaration": 7330, + "src": "2216:16:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7414, + "indexExpression": { + "argumentTypes": null, + "id": 7413, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7399, + "src": "2233:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2216:23:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7403, + "id": 7415, + "nodeType": "Return", + "src": "2209:30:23" + } + ] + }, + "documentation": null, + "id": 7417, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "tokenIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7400, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7397, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7417, + "src": "2070:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7396, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "2070:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7399, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7417, + "src": "2099:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2099:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2069:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7403, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7402, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7417, + "src": "2137:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7401, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2137:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2136:6:23" + }, + "scope": 8172, + "src": "2050:196:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7436, + "nodeType": "Block", + "src": "2363:67:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7429, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7419, + "src": "2389:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7430, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7421, + "src": "2400:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7428, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "2380:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2380:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7432, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7307, + "src": "2380:36:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 7434, + "indexExpression": { + "argumentTypes": null, + "id": 7433, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7423, + "src": "2417:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2380:43:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7427, + "id": 7435, + "nodeType": "Return", + "src": "2373:50:23" + } + ] + }, + "documentation": null, + "id": 7437, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7419, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7437, + "src": "2275:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7418, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "2275:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7421, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7437, + "src": "2304:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2304:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7423, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 7437, + "src": "2319:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2319:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2274:59:23" + }, + "payable": false, + "returnParameters": { + "id": 7427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7437, + "src": "2357:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2357:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2356:6:23" + }, + "scope": 8172, + "src": "2252:178:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7459, + "nodeType": "Block", + "src": "2539:108:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7449, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7439, + "src": "2576:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7450, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7441, + "src": "2587:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7448, + "name": "isTokenWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7395, + "src": "2557:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 7451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2557:36:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2549:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2549:45:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7453, + "nodeType": "ExpressionStatement", + "src": "2549:45:23" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7454, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7439, + "src": "2612:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7455, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7341, + "src": "2612:21:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_$", + "typeString": "mapping(address => struct TokenListing.Crowdsale storage ref[] storage ref)" + } + }, + "id": 7457, + "indexExpression": { + "argumentTypes": null, + "id": 7456, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7441, + "src": "2634:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2612:28:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage", + "typeString": "struct TokenListing.Crowdsale storage ref[] storage ref" + } + }, + "functionReturnParameters": 7446, + "id": 7458, + "nodeType": "Return", + "src": "2605:35:23" + } + ] + }, + "documentation": null, + "id": 7460, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCrowdsales", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7439, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7460, + "src": "2459:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7438, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "2459:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7441, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7460, + "src": "2488:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2488:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2458:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7445, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7460, + "src": "2526:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.Crowdsale[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 7443, + "name": "Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7326, + "src": "2526:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale" + } + }, + "id": 7444, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2526:11:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_ptr", + "typeString": "struct TokenListing.Crowdsale[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2525:13:23" + }, + "scope": 8172, + "src": "2436:211:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7485, + "nodeType": "Block", + "src": "2778:126:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7473, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7462, + "src": "2815:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7474, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7464, + "src": "2826:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7472, + "name": "isTokenWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7395, + "src": "2796:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 7475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2796:36:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7471, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2788:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2788:45:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7477, + "nodeType": "ExpressionStatement", + "src": "2788:45:23" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7478, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7462, + "src": "2851:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7479, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasCrowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7347, + "src": "2851:28:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 7481, + "indexExpression": { + "argumentTypes": null, + "id": 7480, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7464, + "src": "2880:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2851:35:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 7483, + "indexExpression": { + "argumentTypes": null, + "id": 7482, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7466, + "src": "2887:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2851:46:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7470, + "id": 7484, + "nodeType": "Return", + "src": "2844:53:23" + } + ] + }, + "documentation": null, + "id": 7486, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasCrowdsaleWithAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7462, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7486, + "src": "2686:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7461, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "2686:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7464, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7486, + "src": "2715:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7463, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2715:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7466, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 7486, + "src": "2730:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2730:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2685:63:23" + }, + "payable": false, + "returnParameters": { + "id": 7470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7469, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7486, + "src": "2772:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7468, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2772:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2771:6:23" + }, + "scope": 8172, + "src": "2653:251:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7511, + "nodeType": "Block", + "src": "3019:127:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7497, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7488, + "src": "3056:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7498, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7490, + "src": "3067:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7496, + "name": "isTokenWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7395, + "src": "3037:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 7499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3037:36:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7495, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3029:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3029:45:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7501, + "nodeType": "ExpressionStatement", + "src": "3029:45:23" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7502, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7488, + "src": "3092:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7503, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasCrowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7347, + "src": "3092:28:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 7505, + "indexExpression": { + "argumentTypes": null, + "id": 7504, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7490, + "src": "3121:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3092:35:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 7509, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3136:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3128:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3128:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3092:47:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7494, + "id": 7510, + "nodeType": "Return", + "src": "3085:54:23" + } + ] + }, + "documentation": null, + "id": 7512, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasNotInitialisedCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7488, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7512, + "src": "2946:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7487, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "2946:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7490, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7512, + "src": "2975:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7489, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2975:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2945:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7493, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7512, + "src": "3013:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7492, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3013:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3012:6:23" + }, + "scope": 8172, + "src": "2910:236:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7529, + "nodeType": "Block", + "src": "3286:75:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7522, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7514, + "src": "3325:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7523, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7516, + "src": "3336:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3351:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3343:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3343:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7521, + "name": "getCrowdsaleByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7562, + "src": "3303:21:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 7527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3303:51:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "functionReturnParameters": 7520, + "id": 7528, + "nodeType": "Return", + "src": "3296:58:23" + } + ] + }, + "documentation": null, + "id": 7530, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getNotInitialisedCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7514, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7530, + "src": "3188:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7513, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "3188:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7516, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7530, + "src": "3217:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3217:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3187:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7520, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7519, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7530, + "src": "3263:9:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 7518, + "name": "Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7326, + "src": "3263:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3262:19:23" + }, + "scope": 8172, + "src": "3152:209:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7561, + "nodeType": "Block", + "src": "3515:169:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7543, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7532, + "src": "3557:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7544, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7534, + "src": "3568:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7545, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7536, + "src": "3575:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7542, + "name": "hasCrowdsaleWithAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7486, + "src": "3533:23:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 7546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3533:52:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7541, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3525:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3525:61:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7548, + "nodeType": "ExpressionStatement", + "src": "3525:61:23" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7549, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7532, + "src": "3604:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7550, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7341, + "src": "3604:21:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_$", + "typeString": "mapping(address => struct TokenListing.Crowdsale storage ref[] storage ref)" + } + }, + "id": 7552, + "indexExpression": { + "argumentTypes": null, + "id": 7551, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7534, + "src": "3626:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3604:28:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage", + "typeString": "struct TokenListing.Crowdsale storage ref[] storage ref" + } + }, + "id": 7559, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7553, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7532, + "src": "3633:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7554, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7353, + "src": "3633:25:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7556, + "indexExpression": { + "argumentTypes": null, + "id": 7555, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7534, + "src": "3659:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3633:32:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7558, + "indexExpression": { + "argumentTypes": null, + "id": 7557, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7536, + "src": "3666:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3633:43:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3604:73:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage", + "typeString": "struct TokenListing.Crowdsale storage ref" + } + }, + "functionReturnParameters": 7540, + "id": 7560, + "nodeType": "Return", + "src": "3597:80:23" + } + ] + }, + "documentation": null, + "id": 7562, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCrowdsaleByAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7532, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7562, + "src": "3398:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7531, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "3398:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7534, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7562, + "src": "3427:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7533, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3427:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7536, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 7562, + "src": "3442:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7535, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3442:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3397:63:23" + }, + "payable": false, + "returnParameters": { + "id": 7540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7539, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7562, + "src": "3492:9:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 7538, + "name": "Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7326, + "src": "3492:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3491:19:23" + }, + "scope": 8172, + "src": "3367:317:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7588, + "nodeType": "Block", + "src": "3830:139:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7575, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7564, + "src": "3872:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7576, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7566, + "src": "3883:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7577, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7568, + "src": "3890:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7574, + "name": "hasCrowdsaleWithAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7486, + "src": "3848:23:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 7578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3848:52:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7573, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3840:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3840:61:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7580, + "nodeType": "ExpressionStatement", + "src": "3840:61:23" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7581, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7564, + "src": "3919:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7582, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7353, + "src": "3919:25:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7584, + "indexExpression": { + "argumentTypes": null, + "id": 7583, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7566, + "src": "3945:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3919:32:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7586, + "indexExpression": { + "argumentTypes": null, + "id": 7585, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7568, + "src": "3952:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3919:43:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7572, + "id": 7587, + "nodeType": "Return", + "src": "3912:50:23" + } + ] + }, + "documentation": null, + "id": 7589, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCrowdsaleIndexByAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7564, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "3726:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7563, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "3726:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7566, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "3755:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3755:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7568, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "3770:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3770:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3725:63:23" + }, + "payable": false, + "returnParameters": { + "id": 7572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7571, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "3820:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7570, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3820:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3819:6:23" + }, + "scope": 8172, + "src": "3690:279:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7606, + "nodeType": "Block", + "src": "4098:69:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7598, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7591, + "src": "4115:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7599, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 7356, + "src": "4115:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage", + "typeString": "struct TokenListing.WhitelistedToken storage ref[] storage ref" + } + }, + "id": 7604, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7601, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7591, + "src": "4142:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7602, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7593, + "src": "4153:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7600, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7417, + "src": "4131:10:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_uint256_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (uint256)" + } + }, + "id": 7603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4131:28:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4115:45:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage", + "typeString": "struct TokenListing.WhitelistedToken storage ref" + } + }, + "functionReturnParameters": 7597, + "id": 7605, + "nodeType": "Return", + "src": "4108:52:23" + } + ] + }, + "documentation": null, + "id": 7607, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7591, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7607, + "src": "3993:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7590, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "3993:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7593, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7607, + "src": "4022:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4022:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3992:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7596, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7607, + "src": "4068:16:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + }, + "typeName": { + "contractScope": null, + "id": 7595, + "name": "WhitelistedToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7308, + "src": "4068:16:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4067:26:23" + }, + "scope": 8172, + "src": "3975:192:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7652, + "nodeType": "Block", + "src": "4237:231:23", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7612, + "name": "record", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7609, + "src": "4251:6:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7613, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "4251:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 7614, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4251:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4274:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4251:24:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7651, + "nodeType": "IfStatement", + "src": "4247:215:23", + "trueBody": { + "id": 7650, + "nodeType": "Block", + "src": "4277:185:23", + "statements": [ + { + "body": { + "id": 7640, + "nodeType": "Block", + "src": "4339:75:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7629, + "name": "record", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7609, + "src": "4357:6:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7635, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7307, + "src": "4357:16:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 7636, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7631, + "name": "record", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7609, + "src": "4374:6:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "4374:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 7634, + "indexExpression": { + "argumentTypes": null, + "id": 7633, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7618, + "src": "4388:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4374:16:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4357:34:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4394:5:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "4357:42:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7639, + "nodeType": "ExpressionStatement", + "src": "4357:42:23" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7621, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7618, + "src": "4308:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7622, + "name": "record", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7609, + "src": "4312:6:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7623, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "4312:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 7624, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4312:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4308:24:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7641, + "initializationExpression": { + "assignments": [ + 7618 + ], + "declarations": [ + { + "constant": false, + "id": 7618, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 7653, + "src": "4296:6:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4296:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7620, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 7619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4305:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4296:10:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 7627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4334:3:23", + "subExpression": { + "argumentTypes": null, + "id": 7626, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7618, + "src": "4334:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7628, + "nodeType": "ExpressionStatement", + "src": "4334:3:23" + }, + "nodeType": "ForStatement", + "src": "4291:123:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7642, + "name": "record", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7609, + "src": "4427:6:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7645, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "4427:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 7646, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4427:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 7647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4450:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4427:24:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7649, + "nodeType": "ExpressionStatement", + "src": "4427:24:23" + } + ] + } + } + ] + }, + "documentation": null, + "id": 7653, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_removeOwners", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7609, + "name": "record", + "nodeType": "VariableDeclaration", + "scope": 7653, + "src": "4196:31:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + }, + "typeName": { + "contractScope": null, + "id": 7608, + "name": "WhitelistedToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7308, + "src": "4196:16:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4195:33:23" + }, + "payable": false, + "returnParameters": { + "id": 7611, + "nodeType": "ParameterList", + "parameters": [], + "src": "4237:0:23" + }, + "scope": 8172, + "src": "4173:295:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 7724, + "nodeType": "Block", + "src": "4563:679:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4581:45:23", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7662, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7655, + "src": "4609:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7663, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7657, + "src": "4620:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7661, + "name": "hasNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7512, + "src": "4582:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 7664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4582:44:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7660, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "4573:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4573:54:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7667, + "nodeType": "ExpressionStatement", + "src": "4573:54:23" + }, + { + "assignments": [ + 7669 + ], + "declarations": [ + { + "constant": false, + "id": 7669, + "name": "crowdsaleIndex", + "nodeType": "VariableDeclaration", + "scope": 7725, + "src": "4638:19:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7668, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4638:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7675, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7670, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7655, + "src": "4660:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7671, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7341, + "src": "4660:21:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_$", + "typeString": "mapping(address => struct TokenListing.Crowdsale storage ref[] storage ref)" + } + }, + "id": 7673, + "indexExpression": { + "argumentTypes": null, + "id": 7672, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7657, + "src": "4682:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4660:28:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage", + "typeString": "struct TokenListing.Crowdsale storage ref[] storage ref" + } + }, + "id": 7674, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4660:35:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4638:57:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7676, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7655, + "src": "4705:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasCrowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7347, + "src": "4705:28:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 7683, + "indexExpression": { + "argumentTypes": null, + "id": 7678, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7657, + "src": "4734:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4705:35:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 7684, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7680, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4749:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4741:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4741:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4705:47:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4755:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4705:54:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7687, + "nodeType": "ExpressionStatement", + "src": "4705:54:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7688, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7655, + "src": "4769:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7694, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7353, + "src": "4769:25:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7695, + "indexExpression": { + "argumentTypes": null, + "id": 7690, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7657, + "src": "4795:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4769:32:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7696, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4810:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4802:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4802:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4769:44:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7697, + "name": "crowdsaleIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7669, + "src": "4816:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4769:61:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7699, + "nodeType": "ExpressionStatement", + "src": "4769:61:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4935:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4927:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4927:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4968:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5003:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5045:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5084:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5125:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7715, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5166:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5208:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "5194:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 7716, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5198:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7717, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5198:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 7720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5194:16:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 7706, + "name": "Crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7326, + "src": "4887:9:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "type(struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 7721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "crowdsale", + "feePercent", + "ethFeePercent", + "WTokenSaleFeePercent", + "trancheFeePercent", + "tokensForSaleAmount", + "wTokensIssuedAmount", + "owners" + ], + "nodeType": "FunctionCall", + "src": "4887:338:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_memory", + "typeString": "struct TokenListing.Crowdsale memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Crowdsale_$7326_memory", + "typeString": "struct TokenListing.Crowdsale memory" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7700, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7655, + "src": "4840:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7703, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7341, + "src": "4840:21:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage_$", + "typeString": "mapping(address => struct TokenListing.Crowdsale storage ref[] storage ref)" + } + }, + "id": 7704, + "indexExpression": { + "argumentTypes": null, + "id": 7702, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7657, + "src": "4862:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4840:28:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_storage_$dyn_storage", + "typeString": "struct TokenListing.Crowdsale storage ref[] storage ref" + } + }, + "id": 7705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4840:33:23", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Crowdsale_$7326_storage_$returns$_t_uint256_$", + "typeString": "function (struct TokenListing.Crowdsale storage ref) returns (uint256)" + } + }, + "id": 7722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4840:395:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7723, + "nodeType": "ExpressionStatement", + "src": "4840:395:23" + } + ] + }, + "documentation": null, + "id": 7725, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addNotInitializedCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7655, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7725, + "src": "4511:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7654, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "4511:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7657, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7725, + "src": "4540:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4540:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4510:44:23" + }, + "payable": false, + "returnParameters": { + "id": 7659, + "nodeType": "ParameterList", + "parameters": [], + "src": "4563:0:23" + }, + "scope": 8172, + "src": "4474:768:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 7775, + "nodeType": "Block", + "src": "5339:297:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7735, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7731, + "src": "5357:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5374:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5366:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5357:19:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7734, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5349:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5349:28:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7741, + "nodeType": "ExpressionStatement", + "src": "5349:28:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5427:39:23", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7744, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7727, + "src": "5442:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7745, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7729, + "src": "5453:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7746, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7731, + "src": "5460:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7743, + "name": "hasTokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7437, + "src": "5428:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 7747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5428:38:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7742, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5419:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5419:48:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7750, + "nodeType": "ExpressionStatement", + "src": "5419:48:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7757, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7731, + "src": "5517:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7752, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7727, + "src": "5487:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7753, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7729, + "src": "5498:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7751, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "5478:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5478:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7755, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "5478:33:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 7756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5478:38:23", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 7758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5478:45:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7759, + "nodeType": "ExpressionStatement", + "src": "5478:45:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7761, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7727, + "src": "5542:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7762, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7729, + "src": "5553:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7760, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "5533:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5533:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7764, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7307, + "src": "5533:36:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 7766, + "indexExpression": { + "argumentTypes": null, + "id": 7765, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7731, + "src": "5570:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5533:43:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5579:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5533:50:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7769, + "nodeType": "ExpressionStatement", + "src": "5533:50:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7771, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7729, + "src": "5616:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7772, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7731, + "src": "5623:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7770, + "name": "OwnerWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7363, + "src": "5599:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 7773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5599:30:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7774, + "nodeType": "EmitStatement", + "src": "5594:35:23" + } + ] + }, + "documentation": null, + "id": 7776, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7727, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 7776, + "src": "5272:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7726, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "5272:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7729, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7776, + "src": "5301:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5301:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7731, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 7776, + "src": "5316:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5316:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5271:59:23" + }, + "payable": false, + "returnParameters": { + "id": 7733, + "nodeType": "ParameterList", + "parameters": [], + "src": "5339:0:23" + }, + "scope": 8172, + "src": "5248:388:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 8018, + "nodeType": "Block", + "src": "5983:1966:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7803, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "6001:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6018:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6010:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6010:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6001:19:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5993:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5993:28:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7809, + "nodeType": "ExpressionStatement", + "src": "5993:28:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7811, + "name": "tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7789, + "src": "6039:11:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 7812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6039:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6060:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6039:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7810, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6031:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6031:31:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7816, + "nodeType": "ExpressionStatement", + "src": "6031:31:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7818, + "name": "feePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7791, + "src": "6080:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "6080:20:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 7820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7821, + "name": "feePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7791, + "src": "6106:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6430, + "src": "6106:22:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 7823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6106:24:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 7824, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6133:3:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "6106:30:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6080:56:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7817, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6072:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6072:65:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7828, + "nodeType": "ExpressionStatement", + "src": "6072:65:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7830, + "name": "ethFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7793, + "src": "6155:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "6155:23:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 7832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6155:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7833, + "name": "ethFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7793, + "src": "6184:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6430, + "src": "6184:25:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 7835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6184:27:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 7836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6214:3:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "6184:33:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6155:62:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7829, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6147:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6147:71:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7840, + "nodeType": "ExpressionStatement", + "src": "6147:71:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7842, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7795, + "src": "6236:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "6236:30:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 7844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6236:32:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7845, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7795, + "src": "6272:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6430, + "src": "6272:32:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 7847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:34:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 7848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6309:3:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "6272:40:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6236:76:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7841, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6228:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6228:85:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7852, + "nodeType": "ExpressionStatement", + "src": "6228:85:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7854, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7797, + "src": "6331:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "6331:27:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 7856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6331:29:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 7857, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7797, + "src": "6364:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6430, + "src": "6364:29:23", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 7859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6364:31:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 7860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6398:3:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "6364:37:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6331:70:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7853, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6323:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6323:79:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7864, + "nodeType": "ExpressionStatement", + "src": "6323:79:23" + }, + { + "condition": { + "argumentTypes": null, + "id": 7869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "6417:37:23", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7866, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "6437:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7867, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "6448:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7865, + "name": "isTokenWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7395, + "src": "6418:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 7868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6418:36:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 7978, + "nodeType": "Block", + "src": "7112:530:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7917, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7149:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7918, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7160:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7916, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7140:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7140:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + ], + "id": 7915, + "name": "_removeOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7653, + "src": "7126:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_WhitelistedToken_$7308_storage_ptr_$returns$__$", + "typeString": "function (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7126:41:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7921, + "nodeType": "ExpressionStatement", + "src": "7126:41:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7923, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7190:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7924, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7201:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7922, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7181:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7181:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7926, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 7286, + "src": "7181:31:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7927, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7782, + "src": "7215:4:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "7181:38:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 7929, + "nodeType": "ExpressionStatement", + "src": "7181:38:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7931, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7242:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7932, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7253:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7930, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7233:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7233:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7934, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 7288, + "src": "7233:33:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7935, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7784, + "src": "7269:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "7233:42:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 7937, + "nodeType": "ExpressionStatement", + "src": "7233:42:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7939, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7298:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7940, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7309:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7938, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7289:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7289:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7942, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 7290, + "src": "7289:35:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7943, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "7327:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7289:46:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 7945, + "nodeType": "ExpressionStatement", + "src": "7289:46:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7947, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7358:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7948, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7369:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7946, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7349:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7349:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7950, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7295, + "src": "7349:37:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7951, + "name": "feePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7791, + "src": "7389:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7349:50:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7953, + "nodeType": "ExpressionStatement", + "src": "7349:50:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7955, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7422:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7956, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7433:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7954, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7413:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7413:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7958, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "ethFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7297, + "src": "7413:40:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7959, + "name": "ethFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7793, + "src": "7456:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7413:56:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7961, + "nodeType": "ExpressionStatement", + "src": "7413:56:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7963, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7492:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7964, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7503:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7962, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7483:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7483:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7966, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7299, + "src": "7483:47:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7967, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7795, + "src": "7533:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7483:70:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7969, + "nodeType": "ExpressionStatement", + "src": "7483:70:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7971, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7576:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7972, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7587:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7970, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "7567:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7567:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 7974, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7301, + "src": "7567:44:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7975, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7797, + "src": "7614:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7567:64:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7977, + "nodeType": "ExpressionStatement", + "src": "7567:64:23" + } + ] + }, + "id": 7979, + "nodeType": "IfStatement", + "src": "6413:1229:23", + "trueBody": { + "id": 7914, + "nodeType": "Block", + "src": "6456:650:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7870, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "6470:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7873, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_index", + "nodeType": "MemberAccess", + "referencedDeclaration": 7330, + "src": "6470:16:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7874, + "indexExpression": { + "argumentTypes": null, + "id": 7872, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "6487:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6470:23:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7875, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "6496:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7876, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 7356, + "src": "6496:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage", + "typeString": "struct TokenListing.WhitelistedToken storage ref[] storage ref" + } + }, + "id": 7877, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6496:22:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6470:48:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7879, + "nodeType": "ExpressionStatement", + "src": "6470:48:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7880, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "6532:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7886, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7336, + "src": "6532:19:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(address => mapping(uint256 => bool))" + } + }, + "id": 7887, + "indexExpression": { + "argumentTypes": null, + "id": 7882, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "6552:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6532:26:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 7888, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7883, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "6559:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7884, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 7356, + "src": "6559:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage", + "typeString": "struct TokenListing.WhitelistedToken storage ref[] storage ref" + } + }, + "id": 7885, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6559:22:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6532:50:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6585:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6532:57:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7891, + "nodeType": "ExpressionStatement", + "src": "6532:57:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7898, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7782, + "src": "6686:4:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 7899, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7784, + "src": "6720:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 7900, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "6758:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6810:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6796:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 7901, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6800:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7902, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6800:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 7905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6796:16:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 7906, + "name": "feePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7791, + "src": "6846:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7907, + "name": "ethFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7793, + "src": "6893:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7908, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7795, + "src": "6950:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7909, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7797, + "src": "7011:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7910, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7057:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 7897, + "name": "WhitelistedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7308, + "src": "6641:16:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "type(struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 7911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "name", + "symbol", + "decimals", + "owners", + "feePercent", + "ethFeePercent", + "WTokenSaleFeePercent", + "trancheFeePercent", + "token" + ], + "nodeType": "FunctionCall", + "src": "6641:440:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_memory", + "typeString": "struct TokenListing.WhitelistedToken memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_memory", + "typeString": "struct TokenListing.WhitelistedToken memory" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7892, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "6603:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 7895, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 7356, + "src": "6603:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_storage_$dyn_storage", + "typeString": "struct TokenListing.WhitelistedToken storage ref[] storage ref" + } + }, + "id": 7896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6603:20:23", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_WhitelistedToken_$7308_storage_$returns$_t_uint256_$", + "typeString": "function (struct TokenListing.WhitelistedToken storage ref) returns (uint256)" + } + }, + "id": 7912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6603:492:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7913, + "nodeType": "ExpressionStatement", + "src": "6603:492:23" + } + ] + } + }, + { + "body": { + "id": 7999, + "nodeType": "Block", + "src": "7698:73:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7992, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7727:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 7993, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7738:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7994, + "name": "tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7789, + "src": "7745:11:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 7996, + "indexExpression": { + "argumentTypes": null, + "id": 7995, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7981, + "src": "7757:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7745:14:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7991, + "name": "_addTokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7776, + "src": "7712:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address)" + } + }, + "id": 7997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7712:48:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7998, + "nodeType": "ExpressionStatement", + "src": "7712:48:23" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7984, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7981, + "src": "7669:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7985, + "name": "tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7789, + "src": "7673:11:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 7986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7673:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7669:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8000, + "initializationExpression": { + "assignments": [ + 7981 + ], + "declarations": [ + { + "constant": false, + "id": 7981, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "7657:6:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7980, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7657:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7983, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 7982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7666:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7657:10:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 7989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7693:3:23", + "subExpression": { + "argumentTypes": null, + "id": 7988, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7981, + "src": "7693:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7990, + "nodeType": "ExpressionStatement", + "src": "7693:3:23" + }, + "nodeType": "ForStatement", + "src": "7652:119:23" + }, + { + "condition": { + "argumentTypes": null, + "id": 8005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7785:45:23", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8002, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7813:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8003, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7824:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8001, + "name": "hasNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7512, + "src": "7786:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 8004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7786:44:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8012, + "nodeType": "IfStatement", + "src": "7781:121:23", + "trueBody": { + "id": 8011, + "nodeType": "Block", + "src": "7832:70:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8007, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7874:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8008, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7885:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8006, + "name": "_addNotInitializedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7725, + "src": "7846:27:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$__$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address)" + } + }, + "id": 8009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7846:45:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8010, + "nodeType": "ExpressionStatement", + "src": "7846:45:23" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8013, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7778, + "src": "7919:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 8014, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_index", + "nodeType": "MemberAccess", + "referencedDeclaration": 7330, + "src": "7919:16:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 8016, + "indexExpression": { + "argumentTypes": null, + "id": 8015, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "7936:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7919:23:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7801, + "id": 8017, + "nodeType": "Return", + "src": "7912:30:23" + } + ] + }, + "documentation": null, + "id": 8019, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addOrUpdate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7778, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5672:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 7777, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "5672:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7780, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5709:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7779, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5709:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7782, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5732:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7781, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5732:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7784, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5753:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7783, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5753:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7786, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5776:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7785, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5776:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7789, + "name": "tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5800:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 7787, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5800:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7788, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5800:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7791, + "name": "feePercent", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5831:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7790, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5831:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7793, + "name": "ethFeePercent", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5856:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7792, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5856:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7795, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5884:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7794, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5884:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7797, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5919:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7796, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5919:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5662:285:23" + }, + "payable": false, + "returnParameters": { + "id": 7801, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7800, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "5973:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7799, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5973:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5972:6:23" + }, + "scope": 8172, + "src": "5642:2307:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8170, + "nodeType": "Block", + "src": "8057:1117:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8029, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "8075:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8096:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8088:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8088:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8075:23:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "8067:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8067:32:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8035, + "nodeType": "ExpressionStatement", + "src": "8067:32:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8038, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8144:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8039, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8155:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8037, + "name": "hasNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7512, + "src": "8117:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 8040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8117:44:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8036, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "8109:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8109:53:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8042, + "nodeType": "ExpressionStatement", + "src": "8109:53:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8180:53:23", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8045, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8205:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8046, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8216:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8047, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "8223:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8044, + "name": "hasCrowdsaleWithAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7486, + "src": "8181:23:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 8048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8181:52:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8043, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "8172:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8172:62:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8051, + "nodeType": "ExpressionStatement", + "src": "8172:62:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8053, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8272:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8054, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8283:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8052, + "name": "getNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "8245:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 8055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8245:44:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 8056, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "crowdsale", + "nodeType": "MemberAccess", + "referencedDeclaration": 7310, + "src": "8245:54:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8057, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "8302:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8245:66:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8059, + "nodeType": "ExpressionStatement", + "src": "8245:66:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8061, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8348:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8062, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8359:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8060, + "name": "getNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "8321:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 8063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8321:44:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 8064, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7312, + "src": "8321:55:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8066, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8388:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8067, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8399:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8065, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "8379:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 8068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8379:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 8069, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7295, + "src": "8379:37:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8321:95:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8071, + "nodeType": "ExpressionStatement", + "src": "8321:95:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8073, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8453:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8074, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8464:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8072, + "name": "getNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "8426:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 8075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8426:44:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 8076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "ethFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7314, + "src": "8426:58:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8078, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8496:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8079, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8507:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8077, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "8487:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 8080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8487:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 8081, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ethFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7297, + "src": "8487:40:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8426:101:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8083, + "nodeType": "ExpressionStatement", + "src": "8426:101:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8085, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8564:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8086, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8575:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8084, + "name": "getNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "8537:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 8087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8537:44:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 8088, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7316, + "src": "8537:65:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8090, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8614:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8091, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8625:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8089, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "8605:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 8092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8605:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 8093, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7299, + "src": "8605:47:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8537:115:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8095, + "nodeType": "ExpressionStatement", + "src": "8537:115:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8097, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8689:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8098, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8700:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8096, + "name": "getNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "8662:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 8099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8662:44:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 8100, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7318, + "src": "8662:62:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8102, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8736:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8103, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8747:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8101, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "8727:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 8104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8727:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 8105, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7301, + "src": "8727:44:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8662:109:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8107, + "nodeType": "ExpressionStatement", + "src": "8662:109:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8109, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8808:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8110, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8819:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8108, + "name": "getNotInitialisedCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "8781:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 8111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:44:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 8112, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7325, + "src": "8781:51:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8114, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8844:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8115, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8855:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8113, + "name": "getToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7607, + "src": "8835:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 8116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8835:26:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 8117, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "8835:33:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "src": "8781:87:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 8119, + "nodeType": "ExpressionStatement", + "src": "8781:87:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8120, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8879:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 8124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasCrowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7347, + "src": "8879:28:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 8125, + "indexExpression": { + "argumentTypes": null, + "id": 8122, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8908:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8879:35:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 8126, + "indexExpression": { + "argumentTypes": null, + "id": 8123, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "8915:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8879:46:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8928:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "8879:53:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8129, + "nodeType": "ExpressionStatement", + "src": "8879:53:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8130, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "8942:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 8134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7353, + "src": "8942:25:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 8135, + "indexExpression": { + "argumentTypes": null, + "id": 8132, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "8968:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8942:32:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 8136, + "indexExpression": { + "argumentTypes": null, + "id": 8133, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "8975:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8942:43:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8138, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "9015:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + { + "argumentTypes": null, + "id": 8139, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "9026:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9041:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9033:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9033:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8137, + "name": "getCrowdsaleIndexByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7589, + "src": "8988:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (uint256)" + } + }, + "id": 8143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8988:56:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8942:102:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8145, + "nodeType": "ExpressionStatement", + "src": "8942:102:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8146, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "9054:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 8152, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_hasCrowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7347, + "src": "9054:28:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 8153, + "indexExpression": { + "argumentTypes": null, + "id": 8148, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "9083:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9054:35:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 8154, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9098:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9090:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9090:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9054:47:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8155, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9104:5:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "9054:55:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8157, + "nodeType": "ExpressionStatement", + "src": "9054:55:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 8168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8158, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8021, + "src": "9119:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist storage pointer" + } + }, + "id": 8164, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_crowdsaleIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 7353, + "src": "9119:25:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 8165, + "indexExpression": { + "argumentTypes": null, + "id": 8160, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8023, + "src": "9145:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9119:32:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 8166, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9160:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9152:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9152:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9119:44:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 8167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9166:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9119:48:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8169, + "nodeType": "ExpressionStatement", + "src": "9119:48:23" + } + ] + }, + "documentation": null, + "id": 8171, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "initializeCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8026, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8021, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 8171, + "src": "7985:27:23", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + }, + "typeName": { + "contractScope": null, + "id": 8020, + "name": "Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "7985:9:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8023, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 8171, + "src": "8014:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8014:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8025, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 8171, + "src": "8029:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8024, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8029:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7984:63:23" + }, + "payable": false, + "returnParameters": { + "id": 8027, + "nodeType": "ParameterList", + "parameters": [], + "src": "8057:0:23" + }, + "scope": 8172, + "src": "7956:1218:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 8173, + "src": "178:8998:23" + } + ], + "src": "0:9177:23" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.024Z" +} \ No newline at end of file diff --git a/build/contracts/Utils.json b/build/contracts/Utils.json index 452d619d..aec1fd10 100644 --- a/build/contracts/Utils.json +++ b/build/contracts/Utils.json @@ -54,26 +54,53 @@ "payable": false, "stateMutability": "pure", "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "a", + "type": "uint256" + }, + { + "name": "b", + "type": "uint256" + }, + { + "name": "c", + "type": "uint256" + } + ], + "name": "safeMulDiv", + "outputs": [ + { + "name": "result", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" } ], - "bytecode": "0x6101b8610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600436106100625763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166376ba78988114610067578063a5a55fcf1461008a575b600080fd5b61007860043560243560443561009b565b60408051918252519081900360200190f35b610078600435602435604435610108565b60006101006100d0600a85900a6100c48582898115156100b757fe5b069063ffffffff61013b16565b9063ffffffff61016a16565b6100f4846100e888600a89900a63ffffffff61016a16565b9063ffffffff61013b16565b9063ffffffff61017f16565b949350505050565b6000610100610123836100c486600a0a86898115156100b757fe5b6100f4600a86900a6100e8888763ffffffff61016a16565b600082151561014c57506000610164565b5081810281838281151561015c57fe5b041461016457fe5b92915050565b6000818381151561017757fe5b049392505050565b8181018281101561016457fe00a165627a7a72305820b6ba1b69fa5d2281f11d0a5c3c7d81c33db4ac12ed03133c527deb8d52a60af70029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100625763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166376ba78988114610067578063a5a55fcf1461008a575b600080fd5b61007860043560243560443561009b565b60408051918252519081900360200190f35b610078600435602435604435610108565b60006101006100d0600a85900a6100c48582898115156100b757fe5b069063ffffffff61013b16565b9063ffffffff61016a16565b6100f4846100e888600a89900a63ffffffff61016a16565b9063ffffffff61013b16565b9063ffffffff61017f16565b949350505050565b6000610100610123836100c486600a0a86898115156100b757fe5b6100f4600a86900a6100e8888763ffffffff61016a16565b600082151561014c57506000610164565b5081810281838281151561015c57fe5b041461016457fe5b92915050565b6000818381151561017757fe5b049392505050565b8181018281101561016457fe00a165627a7a72305820b6ba1b69fa5d2281f11d0a5c3c7d81c33db4ac12ed03133c527deb8d52a60af70029", - "sourceMap": "87:1704:16:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "87:1704:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;343:216;;;;;;;;;;;;;;;;;;;;;;;;;;725:211;;;;;;;;;;343:216;432:4;455:97;495:56;536:2;:14;;;495:36;526:4;536:14;496:5;:24;;;;;;;;;495:36;:30;:36;:::i;:::-;:40;:56;:40;:56;:::i;:::-;455:35;485:4;455:25;:5;465:2;:14;;;455:25;:9;:25;:::i;:::-;:29;:35;:29;:35;:::i;:::-;:39;:97;:39;:97;:::i;:::-;448:104;343:216;-1:-1:-1;;;;343:216:16:o;725:211::-;821:4;844:85;884:44;923:4;884:34;909:8;903:2;:14;893:4;885:5;:12;;;;;;884:44;844:35;864:2;:14;;;844:15;:5;854:4;844:15;:9;:15;:::i;203:380:44:-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:44;506:8;;485:36;-1:-1:-1;531:7:44;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;;203:380;;;;:::o;665:283::-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;1238:128::-;1319:7;;;1339;;;;1332:15;;", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nlibrary Utils {\n using SafeMath for uint;\n\n uint constant MAX_UINT = uint(-1);\n\n /**\n * @dev Do convert `value` with `decimals` as position of point to another by `rate`.\n * This a workaround avoids overflow in some case.\n */\n function safeConversionByRate(uint value, uint decimals, uint rate) public pure returns (uint) {\n return value.div(10 ** decimals).mul(rate).add((value % (10 ** decimals)).mul(rate).div(10 ** decimals));\n }\n\n /**\n * @dev Do reverse conversion of `value` by `rate`(see `safeConversionByRate`).\n * This a workaround avoids overflow in some case.\n */\n function safeReverseConversionByRate(uint value, uint decimals, uint rate) public pure returns (uint) {\n return value.div(rate).mul(10 ** decimals).add((value % rate).mul(10 ** decimals).div(rate));\n }\n\n /**\n * @dev Doing multiplying `a` by `b` and then divide by `c`. In some case it avoids overflow.\n * (2^256-1) * 2 / 2 = (2^256-1) - no overflow when (2^256-1) * 2\n */\n function safeMulDiv(uint a, uint b, uint c) internal pure returns(uint result) {\n uint fractionsSum;\n\n assert(c != 0);\n \n if(a == 0 || b == 0) return;\n\n uint maxA = MAX_UINT.div(b);\n\n if (a <= maxA) return a.mul(b).div(c);\n if (a == c) return b;\n if (b == c) return a;\n\n while (a != 0) {\n uint aPart = maxA > a ? a : maxA;\n uint aPartByBProd = aPart.mul(b);\n\n result = result.add(aPartByBProd.div(c));\n fractionsSum = fractionsSum.add(aPartByBProd % c);\n\n a = a.sub(aPart);\n }\n\n result = result.add(fractionsSum.div(c));\n }\n}\n", + "bytecode": "0x610346610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f300730000000000000000000000000000000000000000301460806040526004361061006d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166376ba78988114610072578063a5a55fcf14610095578063bda4e619146100a6575b600080fd5b6100836004356024356044356100b7565b60408051918252519081900360200190f35b61008360043560243560443561011c565b610083600435602435604435610155565b60006101146100f0600a85900a6100e4856100d8898463ffffffff61027416565b9063ffffffff61029516565b9063ffffffff6102ce16565b610108846100d888600a89900a63ffffffff6102ce16565b9063ffffffff6102f116565b949350505050565b600061011461013d836100e4600a87900a6100d8898463ffffffff61027416565b610108600a86900a6100d8888763ffffffff6102ce16565b60008080808085151561016457fe5b87158061016f575086155b1561017957610269565b61018b6000198863ffffffff6102ce16565b92508288116101af576101a8866100e48a8a63ffffffff61029516565b9450610269565b858814156101bf57869450610269565b858714156101cf57879450610269565b8715610253578783116101e257826101e4565b875b91506101f6828863ffffffff61029516565b905061021861020b828863ffffffff6102ce16565b869063ffffffff6102f116565b945061023a61022d828863ffffffff61027416565b859063ffffffff6102f116565b935061024c888363ffffffff61030316565b97506101cf565b61026661020b858863ffffffff6102ce16565b94505b505050509392505050565b600081151561028257600080fd5b818381151561028d57fe5b069392505050565b6000808315156102a857600091506102c7565b508282028284828115156102b857fe5b04146102c357600080fd5b8091505b5092915050565b6000808083116102dd57600080fd5b82848115156102e857fe5b04949350505050565b6000828201838110156102c357600080fd5b6000808383111561031357600080fd5b50509003905600a165627a7a72305820f7fa39a11f6ca9adbf2ca12cfb53376cf8fd249189ca1c40782ffcdb40cf431c0029", + "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061006d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166376ba78988114610072578063a5a55fcf14610095578063bda4e619146100a6575b600080fd5b6100836004356024356044356100b7565b60408051918252519081900360200190f35b61008360043560243560443561011c565b610083600435602435604435610155565b60006101146100f0600a85900a6100e4856100d8898463ffffffff61027416565b9063ffffffff61029516565b9063ffffffff6102ce16565b610108846100d888600a89900a63ffffffff6102ce16565b9063ffffffff6102f116565b949350505050565b600061011461013d836100e4600a87900a6100d8898463ffffffff61027416565b610108600a86900a6100d8888763ffffffff6102ce16565b60008080808085151561016457fe5b87158061016f575086155b1561017957610269565b61018b6000198863ffffffff6102ce16565b92508288116101af576101a8866100e48a8a63ffffffff61029516565b9450610269565b858814156101bf57869450610269565b858714156101cf57879450610269565b8715610253578783116101e257826101e4565b875b91506101f6828863ffffffff61029516565b905061021861020b828863ffffffff6102ce16565b869063ffffffff6102f116565b945061023a61022d828863ffffffff61027416565b859063ffffffff6102f116565b935061024c888363ffffffff61030316565b97506101cf565b61026661020b858863ffffffff6102ce16565b94505b505050509392505050565b600081151561028257600080fd5b818381151561028d57fe5b069392505050565b6000808315156102a857600091506102c7565b508282028284828115156102b857fe5b04146102c357600080fd5b8091505b5092915050565b6000808083116102dd57600080fd5b82848115156102e857fe5b04949350505050565b6000828201838110156102c357600080fd5b6000808383111561031357600080fd5b50509003905600a165627a7a72305820f7fa39a11f6ca9adbf2ca12cfb53376cf8fd249189ca1c40782ffcdb40cf431c0029", + "sourceMap": "87:1705:24:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "87:1705:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;343:215;;;;;;;;;;;;;;;;;;;;;;;;;;724:212;;;;;;;;;;1131:659;;;;;;;;;;343:215;432:4;455:96;495:55;535:2;:14;;;495:35;525:4;495:25;:5;535:14;495:25;:9;:25;:::i;:::-;:29;:35;:29;:35;:::i;:::-;:39;:55;:39;:55;:::i;:::-;455:35;485:4;455:25;:5;465:2;:14;;;455:25;:9;:25;:::i;:35::-;:39;:96;:39;:96;:::i;:::-;448:103;343:215;-1:-1:-1;;;;343:215:24:o;724:212::-;820:4;843:86;883:45;923:4;883:35;903:2;:14;;;883:15;:5;923:4;883:15;:9;:15;:::i;:45::-;843:35;863:2;:14;;;843:15;:5;853:4;843:15;:9;:15;:::i;1131:659::-;1195:11;;;;;1253:6;;;1246:14;;;;1282:6;;;:16;;-1:-1:-1;1292:6:24;;1282:16;1279:28;;;1300:7;;1279:28;1329:15;-1:-1:-1;;1342:1:24;1329:15;:12;:15;:::i;:::-;1317:27;-1:-1:-1;1359:9:24;;;1355:37;;1377:15;1390:1;1377:8;:1;1383;1377:8;:5;:8;:::i;:15::-;1370:22;;;;1355:37;1411:1;1406;:6;1402:20;;;1421:1;1414:8;;;;1402:20;1441:1;1436;:6;1432:20;;;1451:1;1444:8;;;;1432:20;1470:6;;1463:270;;1512:1;1505:4;:8;:19;;1520:4;1505:19;;;1516:1;1505:19;1492:32;-1:-1:-1;1558:12:24;1492:32;1568:1;1558:12;:9;:12;:::i;:::-;1538:32;-1:-1:-1;1594:31:24;1605:19;1538:32;1622:1;1605:19;:16;:19;:::i;:::-;1594:6;;:31;:10;:31;:::i;:::-;1585:40;-1:-1:-1;1654:37:24;1671:19;:12;1688:1;1671:19;:16;:19;:::i;:::-;1654:12;;:37;:16;:37;:::i;:::-;1639:52;-1:-1:-1;1710:12:24;:1;1716:5;1710:12;:5;:12;:::i;:::-;1706:16;;1463:270;;;1752:31;1763:19;:12;1780:1;1763:19;:16;:19;:::i;1752:31::-;1743:40;;1131:659;;;;;;;;;;:::o;1535:111:54:-;1593:7;1616:6;;;1608:15;;;;;;1640:1;1636;:5;;;;;;;;;1535:111;-1:-1:-1;;;1535:111:54:o;204:381::-;262:7;;486:6;;482:35;;;509:1;502:8;;;;482:35;-1:-1:-1;535:5:54;;;539:1;535;:5;554;;;;;;;;:10;546:19;;;;;;579:1;572:8;;204:381;;;;;;:::o;695:270::-;753:7;;776:5;;;768:14;;;;;;862:1;858;:5;;;;;;;;;695:270;-1:-1:-1;;;;695:270:54:o;1272:131::-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;1078:131;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nlibrary Utils {\n using SafeMath for uint;\n\n uint constant MAX_UINT = uint(-1);\n\n /**\n * @dev Do convert `value` with `decimals` as position of point to another by `rate`.\n * This a workaround avoids overflow in some case.\n */\n function safeConversionByRate(uint value, uint decimals, uint rate) public pure returns (uint) {\n return value.div(10 ** decimals).mul(rate).add(value.mod(10 ** decimals).mul(rate).div(10 ** decimals));\n }\n\n /**\n * @dev Do reverse conversion of `value` by `rate`(see `safeConversionByRate`).\n * This a workaround avoids overflow in some case.\n */\n function safeReverseConversionByRate(uint value, uint decimals, uint rate) public pure returns (uint) {\n return value.div(rate).mul(10 ** decimals).add(value.mod(rate).mul(10 ** decimals).div(rate));\n }\n\n /**\n * @dev Doing multiplying `a` by `b` and then divide by `c`. In some case it avoids overflow.\n * (2^256-1) * 2 / 2 = (2^256-1) - no overflow when (2^256-1) * 2\n */\n function safeMulDiv(uint a, uint b, uint c) public pure returns(uint result) {\n uint fractionsSum;\n\n assert(c != 0);\n \n if(a == 0 || b == 0) return;\n\n uint maxA = MAX_UINT.div(b);\n\n if (a <= maxA) return a.mul(b).div(c);\n if (a == c) return b;\n if (b == c) return a;\n\n while (a != 0) {\n uint aPart = maxA > a ? a : maxA;\n uint aPartByBProd = aPart.mul(b);\n\n result = result.add(aPartByBProd.div(c));\n fractionsSum = fractionsSum.add(aPartByBProd.mod(c));\n\n a = a.sub(aPart);\n }\n\n result = result.add(fractionsSum.div(c));\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/libs/Utils.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", "exportedSymbols": { "Utils": [ - 6324 + 8378 ] }, - "id": 6325, + "id": 8379, "nodeType": "SourceUnit", "nodes": [ { - "id": 6120, + "id": 8174, "literals": [ "solidity", "^", @@ -81,16 +108,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:16" + "src": "0:24:24" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 6121, + "id": 8175, "nodeType": "ImportDirective", - "scope": 6325, - "sourceUnit": 10049, - "src": "26:59:16", + "scope": 8379, + "sourceUnit": 12389, + "src": "26:59:24", "symbolAliases": [], "unitAlias": "" }, @@ -100,34 +127,34 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 6324, + "id": 8378, "linearizedBaseContracts": [ - 6324 + 8378 ], "name": "Utils", "nodeType": "ContractDefinition", "nodes": [ { - "id": 6124, + "id": 8178, "libraryName": { "contractScope": null, - "id": 6122, + "id": 8176, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "113:8:16", + "referencedDeclaration": 12388, + "src": "113:8:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "107:24:16", + "src": "107:24:24", "typeName": { - "id": 6123, + "id": 8177, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "126:4:16", + "src": "126:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -136,11 +163,11 @@ }, { "constant": true, - "id": 6130, + "id": 8184, "name": "MAX_UINT", "nodeType": "VariableDeclaration", - "scope": 6324, - "src": "137:33:16", + "scope": 8378, + "src": "137:33:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -148,10 +175,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6125, + "id": 8179, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "137:4:16", + "src": "137:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -162,7 +189,7 @@ "arguments": [ { "argumentTypes": null, - "id": 6128, + "id": 8182, "isConstant": false, "isLValue": false, "isPure": true, @@ -170,18 +197,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "167:2:16", + "src": "167:2:24", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 6127, + "id": 8181, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "168:1:16", + "src": "168:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -202,20 +229,20 @@ "typeString": "int_const -1" } ], - "id": 6126, + "id": 8180, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "162:4:16", + "src": "162:4:24", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 6129, + "id": 8183, "isConstant": false, "isLValue": false, "isPure": true, @@ -223,7 +250,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "162:8:16", + "src": "162:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -233,9 +260,9 @@ }, { "body": { - "id": 6168, + "id": 8221, "nodeType": "Block", - "src": "438:121:16", + "src": "438:120:24", "statements": [ { "expression": { @@ -250,7 +277,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6164, + "id": 8217, "isConstant": false, "isLValue": false, "isPure": false, @@ -258,14 +285,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 6162, + "id": 8215, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "536:2:16", + "src": "535:2:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -277,18 +304,18 @@ "operator": "**", "rightExpression": { "argumentTypes": null, - "id": 6163, + "id": 8216, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6134, - "src": "542:8:16", + "referencedDeclaration": 8188, + "src": "541:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "536:14:16", + "src": "535:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -307,12 +334,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6159, + "id": 8212, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6136, - "src": "526:4:16", + "referencedDeclaration": 8190, + "src": "525:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -328,135 +355,121 @@ ], "expression": { "argumentTypes": null, - "components": [ + "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6156, + "id": 8209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6151, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "496:5:16", + "hexValue": "3130", + "id": 8207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "505:2:24", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" }, "nodeType": "BinaryOperation", - "operator": "%", + "operator": "**", "rightExpression": { "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 6152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "505:2:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 6153, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6134, - "src": "511:8:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "505:14:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6155, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "504:16:16", + "id": 8208, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8188, + "src": "511:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "496:24:16", + "src": "505:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 6157, + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8186, + "src": "495:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mod", + "nodeType": "MemberAccess", + "referencedDeclaration": 12387, + "src": "495:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8210, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "495:26:16", + "names": [], + "nodeType": "FunctionCall", + "src": "495:25:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6158, + "id": 8211, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "495:30:16", + "referencedDeclaration": 12295, + "src": "495:29:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6160, + "id": 8213, "isConstant": false, "isLValue": false, "isPure": false, @@ -464,27 +477,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "495:36:16", + "src": "495:35:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6161, + "id": 8214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "495:40:16", + "referencedDeclaration": 12319, + "src": "495:39:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6165, + "id": 8218, "isConstant": false, "isLValue": false, "isPure": false, @@ -492,7 +505,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "495:56:16", + "src": "495:55:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -511,12 +524,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6148, + "id": 8202, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6136, - "src": "485:4:16", + "referencedDeclaration": 8190, + "src": "485:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -539,7 +552,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6145, + "id": 8199, "isConstant": false, "isLValue": false, "isPure": false, @@ -547,14 +560,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 6143, + "id": 8197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "465:2:16", + "src": "465:2:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -566,18 +579,18 @@ "operator": "**", "rightExpression": { "argumentTypes": null, - "id": 6144, + "id": 8198, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6134, - "src": "471:8:16", + "referencedDeclaration": 8188, + "src": "471:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "465:14:16", + "src": "465:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -593,32 +606,32 @@ ], "expression": { "argumentTypes": null, - "id": 6141, + "id": 8195, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "455:5:16", + "referencedDeclaration": 8186, + "src": "455:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6142, + "id": 8196, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "455:9:16", + "referencedDeclaration": 12319, + "src": "455:9:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6146, + "id": 8200, "isConstant": false, "isLValue": false, "isPure": false, @@ -626,27 +639,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "455:25:16", + "src": "455:25:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6147, + "id": 8201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "455:29:16", + "referencedDeclaration": 12295, + "src": "455:29:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6149, + "id": 8203, "isConstant": false, "isLValue": false, "isPure": false, @@ -654,27 +667,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "455:35:16", + "src": "455:35:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6150, + "id": 8204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "455:39:16", + "referencedDeclaration": 12367, + "src": "455:39:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6166, + "id": 8219, "isConstant": false, "isLValue": false, "isPure": false, @@ -682,21 +695,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "455:97:16", + "src": "455:96:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6140, - "id": 6167, + "functionReturnParameters": 8194, + "id": 8220, "nodeType": "Return", - "src": "448:104:16" + "src": "448:103:24" } ] }, "documentation": "@dev Do convert `value` with `decimals` as position of point to another by `rate`.\n This a workaround avoids overflow in some case.", - "id": 6169, + "id": 8222, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -704,16 +717,16 @@ "name": "safeConversionByRate", "nodeType": "FunctionDefinition", "parameters": { - "id": 6137, + "id": 8191, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6132, + "id": 8186, "name": "value", "nodeType": "VariableDeclaration", - "scope": 6169, - "src": "373:10:16", + "scope": 8222, + "src": "373:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -721,10 +734,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6131, + "id": 8185, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "373:4:16", + "src": "373:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -735,11 +748,11 @@ }, { "constant": false, - "id": 6134, + "id": 8188, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 6169, - "src": "385:13:16", + "scope": 8222, + "src": "385:13:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -747,10 +760,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6133, + "id": 8187, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "385:4:16", + "src": "385:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -761,11 +774,11 @@ }, { "constant": false, - "id": 6136, + "id": 8190, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 6169, - "src": "400:9:16", + "scope": 8222, + "src": "400:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -773,10 +786,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6135, + "id": 8189, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "400:4:16", + "src": "400:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -786,20 +799,20 @@ "visibility": "internal" } ], - "src": "372:38:16" + "src": "372:38:24" }, "payable": false, "returnParameters": { - "id": 6140, + "id": 8194, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6139, + "id": 8193, "name": "", "nodeType": "VariableDeclaration", - "scope": 6169, - "src": "432:4:16", + "scope": 8222, + "src": "432:4:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -807,10 +820,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6138, + "id": 8192, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "432:4:16", + "src": "432:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -820,19 +833,19 @@ "visibility": "internal" } ], - "src": "431:6:16" + "src": "431:6:24" }, - "scope": 6324, - "src": "343:216:16", + "scope": 8378, + "src": "343:215:24", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6204, + "id": 8257, "nodeType": "Block", - "src": "827:109:16", + "src": "826:110:24", "statements": [ { "expression": { @@ -843,12 +856,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6200, + "id": 8253, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6175, - "src": "923:4:16", + "referencedDeclaration": 8228, + "src": "923:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -871,7 +884,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6197, + "id": 8250, "isConstant": false, "isLValue": false, "isPure": false, @@ -879,14 +892,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 6195, + "id": 8248, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "903:2:16", + "src": "903:2:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -898,18 +911,18 @@ "operator": "**", "rightExpression": { "argumentTypes": null, - "id": 6196, + "id": 8249, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6173, - "src": "909:8:16", + "referencedDeclaration": 8226, + "src": "909:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "903:14:16", + "src": "903:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -925,81 +938,84 @@ ], "expression": { "argumentTypes": null, - "components": [ + "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 8245, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8228, + "src": "893:4:24", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 6192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6190, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6171, - "src": "885:5:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 6191, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6175, - "src": "893:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "885:12:16", + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8243, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8224, + "src": "883:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + "id": 8244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mod", + "nodeType": "MemberAccess", + "referencedDeclaration": 12387, + "src": "883:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } - ], - "id": 6193, + }, + "id": 8246, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "884:14:16", + "names": [], + "nodeType": "FunctionCall", + "src": "883:15:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6194, + "id": 8247, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "884:18:16", + "referencedDeclaration": 12295, + "src": "883:19:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6198, + "id": 8251, "isConstant": false, "isLValue": false, "isPure": false, @@ -1007,27 +1023,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "884:34:16", + "src": "883:35:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6199, + "id": 8252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "884:38:16", + "referencedDeclaration": 12319, + "src": "883:39:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6201, + "id": 8254, "isConstant": false, "isLValue": false, "isPure": false, @@ -1035,7 +1051,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "884:44:16", + "src": "883:45:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1058,7 +1074,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6187, + "id": 8240, "isConstant": false, "isLValue": false, "isPure": false, @@ -1066,14 +1082,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 6185, + "id": 8238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "864:2:16", + "src": "863:2:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -1085,18 +1101,18 @@ "operator": "**", "rightExpression": { "argumentTypes": null, - "id": 6186, + "id": 8239, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6173, - "src": "870:8:16", + "referencedDeclaration": 8226, + "src": "869:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "864:14:16", + "src": "863:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1115,12 +1131,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6182, + "id": 8235, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6175, - "src": "854:4:16", + "referencedDeclaration": 8228, + "src": "853:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1136,32 +1152,32 @@ ], "expression": { "argumentTypes": null, - "id": 6180, + "id": 8233, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6171, - "src": "844:5:16", + "referencedDeclaration": 8224, + "src": "843:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6181, + "id": 8234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "844:9:16", + "referencedDeclaration": 12319, + "src": "843:9:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6183, + "id": 8236, "isConstant": false, "isLValue": false, "isPure": false, @@ -1169,27 +1185,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "844:15:16", + "src": "843:15:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6184, + "id": 8237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "844:19:16", + "referencedDeclaration": 12295, + "src": "843:19:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6188, + "id": 8241, "isConstant": false, "isLValue": false, "isPure": false, @@ -1197,27 +1213,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "844:35:16", + "src": "843:35:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6189, + "id": 8242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "844:39:16", + "referencedDeclaration": 12367, + "src": "843:39:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6202, + "id": 8255, "isConstant": false, "isLValue": false, "isPure": false, @@ -1225,21 +1241,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "844:85:16", + "src": "843:86:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6179, - "id": 6203, + "functionReturnParameters": 8232, + "id": 8256, "nodeType": "Return", - "src": "837:92:16" + "src": "836:93:24" } ] }, "documentation": "@dev Do reverse conversion of `value` by `rate`(see `safeConversionByRate`).\n This a workaround avoids overflow in some case.", - "id": 6205, + "id": 8258, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1247,16 +1263,16 @@ "name": "safeReverseConversionByRate", "nodeType": "FunctionDefinition", "parameters": { - "id": 6176, + "id": 8229, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6171, + "id": 8224, "name": "value", "nodeType": "VariableDeclaration", - "scope": 6205, - "src": "762:10:16", + "scope": 8258, + "src": "761:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1264,10 +1280,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6170, + "id": 8223, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "762:4:16", + "src": "761:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1278,11 +1294,11 @@ }, { "constant": false, - "id": 6173, + "id": 8226, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 6205, - "src": "774:13:16", + "scope": 8258, + "src": "773:13:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1290,10 +1306,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6172, + "id": 8225, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "774:4:16", + "src": "773:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1304,11 +1320,11 @@ }, { "constant": false, - "id": 6175, + "id": 8228, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 6205, - "src": "789:9:16", + "scope": 8258, + "src": "788:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1316,10 +1332,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6174, + "id": 8227, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "789:4:16", + "src": "788:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1329,20 +1345,20 @@ "visibility": "internal" } ], - "src": "761:38:16" + "src": "760:38:24" }, "payable": false, "returnParameters": { - "id": 6179, + "id": 8232, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6178, + "id": 8231, "name": "", "nodeType": "VariableDeclaration", - "scope": 6205, - "src": "821:4:16", + "scope": 8258, + "src": "820:4:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1350,10 +1366,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6177, + "id": 8230, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "821:4:16", + "src": "820:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1363,30 +1379,30 @@ "visibility": "internal" } ], - "src": "820:6:16" + "src": "819:6:24" }, - "scope": 6324, - "src": "725:211:16", + "scope": 8378, + "src": "724:212:24", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6322, + "id": 8376, "nodeType": "Block", - "src": "1210:579:16", + "src": "1208:582:24", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 6217, + "id": 8270, "name": "fractionsSum", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1220:17:16", + "scope": 8377, + "src": "1218:17:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1394,10 +1410,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6216, + "id": 8269, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1220:4:16", + "src": "1218:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1407,10 +1423,10 @@ "visibility": "internal" } ], - "id": 6218, + "id": 8271, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "1220:17:16" + "src": "1218:17:24" }, { "expression": { @@ -1422,19 +1438,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6222, + "id": 8275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6220, + "id": 8273, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1255:1:16", + "referencedDeclaration": 8264, + "src": "1253:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1445,14 +1461,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6221, + "id": 8274, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1260:1:16", + "src": "1258:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1460,7 +1476,7 @@ }, "value": "0" }, - "src": "1255:6:16", + "src": "1253:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1474,18 +1490,18 @@ "typeString": "bool" } ], - "id": 6219, + "id": 8272, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10477, - "src": "1248:6:16", + "referencedDeclaration": 13430, + "src": "1246:6:24", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6223, + "id": 8276, "isConstant": false, "isLValue": false, "isPure": false, @@ -1493,15 +1509,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1248:14:16", + "src": "1246:14:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6224, + "id": 8277, "nodeType": "ExpressionStatement", - "src": "1248:14:16" + "src": "1246:14:24" }, { "condition": { @@ -1510,7 +1526,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 6231, + "id": 8284, "isConstant": false, "isLValue": false, "isPure": false, @@ -1521,19 +1537,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6227, + "id": 8280, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6225, + "id": 8278, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1284:1:16", + "referencedDeclaration": 8260, + "src": "1282:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1544,14 +1560,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6226, + "id": 8279, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1289:1:16", + "src": "1287:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1559,7 +1575,7 @@ }, "value": "0" }, - "src": "1284:6:16", + "src": "1282:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1573,19 +1589,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6230, + "id": 8283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6228, + "id": 8281, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6209, - "src": "1294:1:16", + "referencedDeclaration": 8262, + "src": "1292:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1596,14 +1612,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6229, + "id": 8282, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1299:1:16", + "src": "1297:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1611,42 +1627,42 @@ }, "value": "0" }, - "src": "1294:6:16", + "src": "1292:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1284:16:16", + "src": "1282:16:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6233, + "id": 8286, "nodeType": "IfStatement", - "src": "1281:28:16", + "src": "1279:28:24", "trueBody": { "expression": null, - "functionReturnParameters": 6215, - "id": 6232, + "functionReturnParameters": 8268, + "id": 8285, "nodeType": "Return", - "src": "1302:7:16" + "src": "1300:7:24" } }, { "assignments": [ - 6235 + 8288 ], "declarations": [ { "constant": false, - "id": 6235, + "id": 8288, "name": "maxA", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1319:9:16", + "scope": 8377, + "src": "1317:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1654,10 +1670,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6234, + "id": 8287, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1319:4:16", + "src": "1317:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1667,18 +1683,18 @@ "visibility": "internal" } ], - "id": 6240, + "id": 8293, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6238, + "id": 8291, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6209, - "src": "1344:1:16", + "referencedDeclaration": 8262, + "src": "1342:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1694,32 +1710,32 @@ ], "expression": { "argumentTypes": null, - "id": 6236, + "id": 8289, "name": "MAX_UINT", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6130, - "src": "1331:8:16", + "referencedDeclaration": 8184, + "src": "1329:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6237, + "id": 8290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "1331:12:16", + "referencedDeclaration": 12319, + "src": "1329:12:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6239, + "id": 8292, "isConstant": false, "isLValue": false, "isPure": false, @@ -1727,14 +1743,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1331:15:16", + "src": "1329:15:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1319:27:16" + "src": "1317:27:24" }, { "condition": { @@ -1743,19 +1759,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6243, + "id": 8296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6241, + "id": 8294, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1361:1:16", + "referencedDeclaration": 8260, + "src": "1359:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1765,39 +1781,39 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 6242, + "id": 8295, "name": "maxA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6235, - "src": "1366:4:16", + "referencedDeclaration": 8288, + "src": "1364:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1361:9:16", + "src": "1359:9:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6252, + "id": 8305, "nodeType": "IfStatement", - "src": "1357:37:16", + "src": "1355:37:24", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6249, + "id": 8302, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1392:1:16", + "referencedDeclaration": 8264, + "src": "1390:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1816,12 +1832,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6246, + "id": 8299, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6209, - "src": "1385:1:16", + "referencedDeclaration": 8262, + "src": "1383:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1837,32 +1853,32 @@ ], "expression": { "argumentTypes": null, - "id": 6244, + "id": 8297, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1379:1:16", + "referencedDeclaration": 8260, + "src": "1377:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6245, + "id": 8298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "1379:5:16", + "referencedDeclaration": 12295, + "src": "1377:5:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6247, + "id": 8300, "isConstant": false, "isLValue": false, "isPure": false, @@ -1870,27 +1886,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1379:8:16", + "src": "1377:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6248, + "id": 8301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "1379:12:16", + "referencedDeclaration": 12319, + "src": "1377:12:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6250, + "id": 8303, "isConstant": false, "isLValue": false, "isPure": false, @@ -1898,16 +1914,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1379:15:16", + "src": "1377:15:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6215, - "id": 6251, + "functionReturnParameters": 8268, + "id": 8304, "nodeType": "Return", - "src": "1372:22:16" + "src": "1370:22:24" } }, { @@ -1917,19 +1933,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6255, + "id": 8308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6253, + "id": 8306, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1408:1:16", + "referencedDeclaration": 8260, + "src": "1406:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1939,45 +1955,45 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6254, + "id": 8307, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1413:1:16", + "referencedDeclaration": 8264, + "src": "1411:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1408:6:16", + "src": "1406:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6258, + "id": 8311, "nodeType": "IfStatement", - "src": "1404:20:16", + "src": "1402:20:24", "trueBody": { "expression": { "argumentTypes": null, - "id": 6256, + "id": 8309, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6209, - "src": "1423:1:16", + "referencedDeclaration": 8262, + "src": "1421:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6215, - "id": 6257, + "functionReturnParameters": 8268, + "id": 8310, "nodeType": "Return", - "src": "1416:8:16" + "src": "1414:8:24" } }, { @@ -1987,19 +2003,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6261, + "id": 8314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6259, + "id": 8312, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6209, - "src": "1438:1:16", + "referencedDeclaration": 8262, + "src": "1436:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2009,65 +2025,65 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6260, + "id": 8313, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1443:1:16", + "referencedDeclaration": 8264, + "src": "1441:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1438:6:16", + "src": "1436:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6264, + "id": 8317, "nodeType": "IfStatement", - "src": "1434:20:16", + "src": "1432:20:24", "trueBody": { "expression": { "argumentTypes": null, - "id": 6262, + "id": 8315, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1453:1:16", + "referencedDeclaration": 8260, + "src": "1451:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6215, - "id": 6263, + "functionReturnParameters": 8268, + "id": 8316, "nodeType": "Return", - "src": "1446:8:16" + "src": "1444:8:24" } }, { "body": { - "id": 6310, + "id": 8364, "nodeType": "Block", - "src": "1480:252:16", + "src": "1478:255:24", "statements": [ { "assignments": [ - 6269 + 8322 ], "declarations": [ { "constant": false, - "id": 6269, + "id": 8322, "name": "aPart", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1494:10:16", + "scope": 8377, + "src": "1492:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2075,10 +2091,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6268, + "id": 8321, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1494:4:16", + "src": "1492:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2088,7 +2104,7 @@ "visibility": "internal" } ], - "id": 6276, + "id": 8329, "initialValue": { "argumentTypes": null, "condition": { @@ -2097,19 +2113,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6272, + "id": 8325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6270, + "id": 8323, "name": "maxA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6235, - "src": "1507:4:16", + "referencedDeclaration": 8288, + "src": "1505:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2119,18 +2135,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 6271, + "id": 8324, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1514:1:16", + "referencedDeclaration": 8260, + "src": "1512:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1507:8:16", + "src": "1505:8:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2138,32 +2154,32 @@ }, "falseExpression": { "argumentTypes": null, - "id": 6274, + "id": 8327, "name": "maxA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6235, - "src": "1522:4:16", + "referencedDeclaration": 8288, + "src": "1520:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6275, + "id": 8328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "1507:19:16", + "src": "1505:19:24", "trueExpression": { "argumentTypes": null, - "id": 6273, + "id": 8326, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1518:1:16", + "referencedDeclaration": 8260, + "src": "1516:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2175,20 +2191,20 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "1494:32:16" + "src": "1492:32:24" }, { "assignments": [ - 6278 + 8331 ], "declarations": [ { "constant": false, - "id": 6278, + "id": 8331, "name": "aPartByBProd", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1540:17:16", + "scope": 8377, + "src": "1538:17:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2196,10 +2212,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6277, + "id": 8330, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1540:4:16", + "src": "1538:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2209,18 +2225,18 @@ "visibility": "internal" } ], - "id": 6283, + "id": 8336, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6281, + "id": 8334, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6209, - "src": "1570:1:16", + "referencedDeclaration": 8262, + "src": "1568:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2236,32 +2252,32 @@ ], "expression": { "argumentTypes": null, - "id": 6279, + "id": 8332, "name": "aPart", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6269, - "src": "1560:5:16", + "referencedDeclaration": 8322, + "src": "1558:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6280, + "id": 8333, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "1560:9:16", + "referencedDeclaration": 12295, + "src": "1558:9:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6282, + "id": 8335, "isConstant": false, "isLValue": false, "isPure": false, @@ -2269,31 +2285,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1560:12:16", + "src": "1558:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1540:32:16" + "src": "1538:32:24" }, { "expression": { "argumentTypes": null, - "id": 6292, + "id": 8345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6284, + "id": 8337, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "1587:6:16", + "referencedDeclaration": 8267, + "src": "1585:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2309,12 +2325,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6289, + "id": 8342, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1624:1:16", + "referencedDeclaration": 8264, + "src": "1622:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2330,32 +2346,32 @@ ], "expression": { "argumentTypes": null, - "id": 6287, + "id": 8340, "name": "aPartByBProd", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6278, - "src": "1607:12:16", + "referencedDeclaration": 8331, + "src": "1605:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6288, + "id": 8341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "1607:16:16", + "referencedDeclaration": 12319, + "src": "1605:16:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6290, + "id": 8343, "isConstant": false, "isLValue": false, "isPure": false, @@ -2363,7 +2379,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1607:19:16", + "src": "1605:19:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2379,32 +2395,32 @@ ], "expression": { "argumentTypes": null, - "id": 6285, + "id": 8338, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "1596:6:16", + "referencedDeclaration": 8267, + "src": "1594:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6286, + "id": 8339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "1596:10:16", + "referencedDeclaration": 12367, + "src": "1594:10:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6291, + "id": 8344, "isConstant": false, "isLValue": false, "isPure": false, @@ -2412,38 +2428,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1596:31:16", + "src": "1594:31:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1587:40:16", + "src": "1585:40:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6293, + "id": 8346, "nodeType": "ExpressionStatement", - "src": "1587:40:16" + "src": "1585:40:24" }, { "expression": { "argumentTypes": null, - "id": 6301, + "id": 8355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6294, + "id": 8347, "name": "fractionsSum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6217, - "src": "1641:12:16", + "referencedDeclaration": 8270, + "src": "1639:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2456,44 +2472,64 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "arguments": [ + { + "argumentTypes": null, + "id": 8352, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8264, + "src": "1688:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8350, + "name": "aPartByBProd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8331, + "src": "1671:12:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mod", + "nodeType": "MemberAccess", + "referencedDeclaration": 12387, + "src": "1671:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - "id": 6299, + "id": 8353, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6297, - "name": "aPartByBProd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6278, - "src": "1673:12:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 6298, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1688:1:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1673:16:16", + "names": [], + "nodeType": "FunctionCall", + "src": "1671:19:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2509,32 +2545,32 @@ ], "expression": { "argumentTypes": null, - "id": 6295, + "id": 8348, "name": "fractionsSum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6217, - "src": "1656:12:16", + "referencedDeclaration": 8270, + "src": "1654:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6296, + "id": 8349, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "1656:16:16", + "referencedDeclaration": 12367, + "src": "1654:16:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6300, + "id": 8354, "isConstant": false, "isLValue": false, "isPure": false, @@ -2542,38 +2578,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1656:34:16", + "src": "1654:37:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1641:49:16", + "src": "1639:52:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6302, + "id": 8356, "nodeType": "ExpressionStatement", - "src": "1641:49:16" + "src": "1639:52:24" }, { "expression": { "argumentTypes": null, - "id": 6308, + "id": 8362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6303, + "id": 8357, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1705:1:16", + "referencedDeclaration": 8260, + "src": "1706:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2586,12 +2622,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6306, + "id": 8360, "name": "aPart", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6269, - "src": "1715:5:16", + "referencedDeclaration": 8322, + "src": "1716:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2607,32 +2643,32 @@ ], "expression": { "argumentTypes": null, - "id": 6304, + "id": 8358, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1709:1:16", + "referencedDeclaration": 8260, + "src": "1710:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6305, + "id": 8359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "1709:5:16", + "referencedDeclaration": 12343, + "src": "1710:5:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6307, + "id": 8361, "isConstant": false, "isLValue": false, "isPure": false, @@ -2640,21 +2676,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1709:12:16", + "src": "1710:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1705:16:16", + "src": "1706:16:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6309, + "id": 8363, "nodeType": "ExpressionStatement", - "src": "1705:16:16" + "src": "1706:16:24" } ] }, @@ -2664,19 +2700,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6267, + "id": 8320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6265, + "id": 8318, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1472:1:16", + "referencedDeclaration": 8260, + "src": "1470:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2687,14 +2723,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6266, + "id": 8319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1477:1:16", + "src": "1475:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2702,32 +2738,32 @@ }, "value": "0" }, - "src": "1472:6:16", + "src": "1470:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6311, + "id": 8365, "nodeType": "WhileStatement", - "src": "1465:267:16" + "src": "1463:270:24" }, { "expression": { "argumentTypes": null, - "id": 6320, + "id": 8374, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6312, + "id": 8366, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "1742:6:16", + "referencedDeclaration": 8267, + "src": "1743:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2743,12 +2779,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6317, + "id": 8371, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1779:1:16", + "referencedDeclaration": 8264, + "src": "1780:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2764,32 +2800,32 @@ ], "expression": { "argumentTypes": null, - "id": 6315, + "id": 8369, "name": "fractionsSum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6217, - "src": "1762:12:16", + "referencedDeclaration": 8270, + "src": "1763:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6316, + "id": 8370, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "1762:16:16", + "referencedDeclaration": 12319, + "src": "1763:16:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6318, + "id": 8372, "isConstant": false, "isLValue": false, "isPure": false, @@ -2797,7 +2833,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1762:19:16", + "src": "1763:19:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2813,32 +2849,32 @@ ], "expression": { "argumentTypes": null, - "id": 6313, + "id": 8367, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "1751:6:16", + "referencedDeclaration": 8267, + "src": "1752:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6314, + "id": 8368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "1751:10:16", + "referencedDeclaration": 12367, + "src": "1752:10:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6319, + "id": 8373, "isConstant": false, "isLValue": false, "isPure": false, @@ -2846,26 +2882,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1751:31:16", + "src": "1752:31:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1742:40:16", + "src": "1743:40:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6321, + "id": 8375, "nodeType": "ExpressionStatement", - "src": "1742:40:16" + "src": "1743:40:24" } ] }, "documentation": "@dev Doing multiplying `a` by `b` and then divide by `c`. In some case it avoids overflow.\n (2^256-1) * 2 / 2 = (2^256-1) - no overflow when (2^256-1) * 2", - "id": 6323, + "id": 8377, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2873,16 +2909,16 @@ "name": "safeMulDiv", "nodeType": "FunctionDefinition", "parameters": { - "id": 6212, + "id": 8265, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6207, + "id": 8260, "name": "a", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1151:6:16", + "scope": 8377, + "src": "1151:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2890,10 +2926,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6206, + "id": 8259, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1151:4:16", + "src": "1151:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2904,11 +2940,11 @@ }, { "constant": false, - "id": 6209, + "id": 8262, "name": "b", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1159:6:16", + "scope": 8377, + "src": "1159:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2916,10 +2952,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6208, + "id": 8261, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1159:4:16", + "src": "1159:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2930,11 +2966,11 @@ }, { "constant": false, - "id": 6211, + "id": 8264, "name": "c", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1167:6:16", + "scope": 8377, + "src": "1167:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2942,10 +2978,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6210, + "id": 8263, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1167:4:16", + "src": "1167:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2955,20 +2991,20 @@ "visibility": "internal" } ], - "src": "1150:24:16" + "src": "1150:24:24" }, "payable": false, "returnParameters": { - "id": 6215, + "id": 8268, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6214, + "id": 8267, "name": "result", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1197:11:16", + "scope": 8377, + "src": "1195:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2976,10 +3012,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6213, + "id": 8266, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1197:4:16", + "src": "1195:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2989,33 +3025,33 @@ "visibility": "internal" } ], - "src": "1196:13:16" + "src": "1194:13:24" }, - "scope": 6324, - "src": "1131:658:16", + "scope": 8378, + "src": "1131:659:24", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" } ], - "scope": 6325, - "src": "87:1704:16" + "scope": 8379, + "src": "87:1705:24" } ], - "src": "0:1792:16" + "src": "0:1793:24" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", "exportedSymbols": { "Utils": [ - 6324 + 8378 ] }, - "id": 6325, + "id": 8379, "nodeType": "SourceUnit", "nodes": [ { - "id": 6120, + "id": 8174, "literals": [ "solidity", "^", @@ -3023,16 +3059,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:16" + "src": "0:24:24" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 6121, + "id": 8175, "nodeType": "ImportDirective", - "scope": 6325, - "sourceUnit": 10049, - "src": "26:59:16", + "scope": 8379, + "sourceUnit": 12389, + "src": "26:59:24", "symbolAliases": [], "unitAlias": "" }, @@ -3042,34 +3078,34 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 6324, + "id": 8378, "linearizedBaseContracts": [ - 6324 + 8378 ], "name": "Utils", "nodeType": "ContractDefinition", "nodes": [ { - "id": 6124, + "id": 8178, "libraryName": { "contractScope": null, - "id": 6122, + "id": 8176, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "113:8:16", + "referencedDeclaration": 12388, + "src": "113:8:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "107:24:16", + "src": "107:24:24", "typeName": { - "id": 6123, + "id": 8177, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "126:4:16", + "src": "126:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3078,11 +3114,11 @@ }, { "constant": true, - "id": 6130, + "id": 8184, "name": "MAX_UINT", "nodeType": "VariableDeclaration", - "scope": 6324, - "src": "137:33:16", + "scope": 8378, + "src": "137:33:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3090,10 +3126,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6125, + "id": 8179, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "137:4:16", + "src": "137:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3104,7 +3140,7 @@ "arguments": [ { "argumentTypes": null, - "id": 6128, + "id": 8182, "isConstant": false, "isLValue": false, "isPure": true, @@ -3112,18 +3148,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "167:2:16", + "src": "167:2:24", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 6127, + "id": 8181, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "168:1:16", + "src": "168:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3144,20 +3180,20 @@ "typeString": "int_const -1" } ], - "id": 6126, + "id": 8180, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "162:4:16", + "src": "162:4:24", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 6129, + "id": 8183, "isConstant": false, "isLValue": false, "isPure": true, @@ -3165,7 +3201,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "162:8:16", + "src": "162:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3175,9 +3211,9 @@ }, { "body": { - "id": 6168, + "id": 8221, "nodeType": "Block", - "src": "438:121:16", + "src": "438:120:24", "statements": [ { "expression": { @@ -3192,7 +3228,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6164, + "id": 8217, "isConstant": false, "isLValue": false, "isPure": false, @@ -3200,14 +3236,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 6162, + "id": 8215, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "536:2:16", + "src": "535:2:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3219,18 +3255,18 @@ "operator": "**", "rightExpression": { "argumentTypes": null, - "id": 6163, + "id": 8216, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6134, - "src": "542:8:16", + "referencedDeclaration": 8188, + "src": "541:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "536:14:16", + "src": "535:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3249,12 +3285,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6159, + "id": 8212, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6136, - "src": "526:4:16", + "referencedDeclaration": 8190, + "src": "525:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3270,135 +3306,121 @@ ], "expression": { "argumentTypes": null, - "components": [ + "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6156, + "id": 8209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6151, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "496:5:16", + "hexValue": "3130", + "id": 8207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "505:2:24", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" }, "nodeType": "BinaryOperation", - "operator": "%", + "operator": "**", "rightExpression": { "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 6152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "505:2:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 6153, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6134, - "src": "511:8:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "505:14:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6155, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "504:16:16", + "id": 8208, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8188, + "src": "511:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "496:24:16", + "src": "505:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 6157, + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8186, + "src": "495:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mod", + "nodeType": "MemberAccess", + "referencedDeclaration": 12387, + "src": "495:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8210, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "495:26:16", + "names": [], + "nodeType": "FunctionCall", + "src": "495:25:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6158, + "id": 8211, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "495:30:16", + "referencedDeclaration": 12295, + "src": "495:29:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6160, + "id": 8213, "isConstant": false, "isLValue": false, "isPure": false, @@ -3406,27 +3428,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "495:36:16", + "src": "495:35:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6161, + "id": 8214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "495:40:16", + "referencedDeclaration": 12319, + "src": "495:39:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6165, + "id": 8218, "isConstant": false, "isLValue": false, "isPure": false, @@ -3434,7 +3456,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "495:56:16", + "src": "495:55:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3453,12 +3475,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6148, + "id": 8202, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6136, - "src": "485:4:16", + "referencedDeclaration": 8190, + "src": "485:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3481,7 +3503,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6145, + "id": 8199, "isConstant": false, "isLValue": false, "isPure": false, @@ -3489,14 +3511,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 6143, + "id": 8197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "465:2:16", + "src": "465:2:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3508,18 +3530,18 @@ "operator": "**", "rightExpression": { "argumentTypes": null, - "id": 6144, + "id": 8198, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6134, - "src": "471:8:16", + "referencedDeclaration": 8188, + "src": "471:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "465:14:16", + "src": "465:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3535,32 +3557,32 @@ ], "expression": { "argumentTypes": null, - "id": 6141, + "id": 8195, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "455:5:16", + "referencedDeclaration": 8186, + "src": "455:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6142, + "id": 8196, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "455:9:16", + "referencedDeclaration": 12319, + "src": "455:9:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6146, + "id": 8200, "isConstant": false, "isLValue": false, "isPure": false, @@ -3568,27 +3590,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "455:25:16", + "src": "455:25:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6147, + "id": 8201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "455:29:16", + "referencedDeclaration": 12295, + "src": "455:29:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6149, + "id": 8203, "isConstant": false, "isLValue": false, "isPure": false, @@ -3596,27 +3618,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "455:35:16", + "src": "455:35:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6150, + "id": 8204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "455:39:16", + "referencedDeclaration": 12367, + "src": "455:39:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6166, + "id": 8219, "isConstant": false, "isLValue": false, "isPure": false, @@ -3624,21 +3646,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "455:97:16", + "src": "455:96:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6140, - "id": 6167, + "functionReturnParameters": 8194, + "id": 8220, "nodeType": "Return", - "src": "448:104:16" + "src": "448:103:24" } ] }, "documentation": "@dev Do convert `value` with `decimals` as position of point to another by `rate`.\n This a workaround avoids overflow in some case.", - "id": 6169, + "id": 8222, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3646,16 +3668,16 @@ "name": "safeConversionByRate", "nodeType": "FunctionDefinition", "parameters": { - "id": 6137, + "id": 8191, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6132, + "id": 8186, "name": "value", "nodeType": "VariableDeclaration", - "scope": 6169, - "src": "373:10:16", + "scope": 8222, + "src": "373:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3663,10 +3685,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6131, + "id": 8185, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "373:4:16", + "src": "373:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3677,11 +3699,11 @@ }, { "constant": false, - "id": 6134, + "id": 8188, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 6169, - "src": "385:13:16", + "scope": 8222, + "src": "385:13:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3689,10 +3711,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6133, + "id": 8187, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "385:4:16", + "src": "385:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3703,11 +3725,11 @@ }, { "constant": false, - "id": 6136, + "id": 8190, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 6169, - "src": "400:9:16", + "scope": 8222, + "src": "400:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3715,10 +3737,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6135, + "id": 8189, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "400:4:16", + "src": "400:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3728,20 +3750,20 @@ "visibility": "internal" } ], - "src": "372:38:16" + "src": "372:38:24" }, "payable": false, "returnParameters": { - "id": 6140, + "id": 8194, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6139, + "id": 8193, "name": "", "nodeType": "VariableDeclaration", - "scope": 6169, - "src": "432:4:16", + "scope": 8222, + "src": "432:4:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3749,10 +3771,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6138, + "id": 8192, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "432:4:16", + "src": "432:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3762,19 +3784,19 @@ "visibility": "internal" } ], - "src": "431:6:16" + "src": "431:6:24" }, - "scope": 6324, - "src": "343:216:16", + "scope": 8378, + "src": "343:215:24", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6204, + "id": 8257, "nodeType": "Block", - "src": "827:109:16", + "src": "826:110:24", "statements": [ { "expression": { @@ -3785,12 +3807,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6200, + "id": 8253, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6175, - "src": "923:4:16", + "referencedDeclaration": 8228, + "src": "923:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3813,7 +3835,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6197, + "id": 8250, "isConstant": false, "isLValue": false, "isPure": false, @@ -3821,14 +3843,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 6195, + "id": 8248, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "903:2:16", + "src": "903:2:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3840,18 +3862,18 @@ "operator": "**", "rightExpression": { "argumentTypes": null, - "id": 6196, + "id": 8249, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6173, - "src": "909:8:16", + "referencedDeclaration": 8226, + "src": "909:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "903:14:16", + "src": "903:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3867,81 +3889,84 @@ ], "expression": { "argumentTypes": null, - "components": [ + "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 8245, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8228, + "src": "893:4:24", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 6192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6190, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6171, - "src": "885:5:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 6191, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6175, - "src": "893:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "885:12:16", + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8243, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8224, + "src": "883:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + "id": 8244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mod", + "nodeType": "MemberAccess", + "referencedDeclaration": 12387, + "src": "883:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } - ], - "id": 6193, + }, + "id": 8246, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "884:14:16", + "names": [], + "nodeType": "FunctionCall", + "src": "883:15:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6194, + "id": 8247, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "884:18:16", + "referencedDeclaration": 12295, + "src": "883:19:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6198, + "id": 8251, "isConstant": false, "isLValue": false, "isPure": false, @@ -3949,27 +3974,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "884:34:16", + "src": "883:35:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6199, + "id": 8252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "884:38:16", + "referencedDeclaration": 12319, + "src": "883:39:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6201, + "id": 8254, "isConstant": false, "isLValue": false, "isPure": false, @@ -3977,7 +4002,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "884:44:16", + "src": "883:45:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4000,7 +4025,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6187, + "id": 8240, "isConstant": false, "isLValue": false, "isPure": false, @@ -4008,14 +4033,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 6185, + "id": 8238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "864:2:16", + "src": "863:2:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -4027,18 +4052,18 @@ "operator": "**", "rightExpression": { "argumentTypes": null, - "id": 6186, + "id": 8239, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6173, - "src": "870:8:16", + "referencedDeclaration": 8226, + "src": "869:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "864:14:16", + "src": "863:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4057,12 +4082,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6182, + "id": 8235, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6175, - "src": "854:4:16", + "referencedDeclaration": 8228, + "src": "853:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4078,32 +4103,32 @@ ], "expression": { "argumentTypes": null, - "id": 6180, + "id": 8233, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6171, - "src": "844:5:16", + "referencedDeclaration": 8224, + "src": "843:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6181, + "id": 8234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "844:9:16", + "referencedDeclaration": 12319, + "src": "843:9:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6183, + "id": 8236, "isConstant": false, "isLValue": false, "isPure": false, @@ -4111,27 +4136,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "844:15:16", + "src": "843:15:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6184, + "id": 8237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "844:19:16", + "referencedDeclaration": 12295, + "src": "843:19:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6188, + "id": 8241, "isConstant": false, "isLValue": false, "isPure": false, @@ -4139,27 +4164,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "844:35:16", + "src": "843:35:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6189, + "id": 8242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "844:39:16", + "referencedDeclaration": 12367, + "src": "843:39:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6202, + "id": 8255, "isConstant": false, "isLValue": false, "isPure": false, @@ -4167,21 +4192,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "844:85:16", + "src": "843:86:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6179, - "id": 6203, + "functionReturnParameters": 8232, + "id": 8256, "nodeType": "Return", - "src": "837:92:16" + "src": "836:93:24" } ] }, "documentation": "@dev Do reverse conversion of `value` by `rate`(see `safeConversionByRate`).\n This a workaround avoids overflow in some case.", - "id": 6205, + "id": 8258, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4189,16 +4214,16 @@ "name": "safeReverseConversionByRate", "nodeType": "FunctionDefinition", "parameters": { - "id": 6176, + "id": 8229, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6171, + "id": 8224, "name": "value", "nodeType": "VariableDeclaration", - "scope": 6205, - "src": "762:10:16", + "scope": 8258, + "src": "761:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4206,10 +4231,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6170, + "id": 8223, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "762:4:16", + "src": "761:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4220,11 +4245,11 @@ }, { "constant": false, - "id": 6173, + "id": 8226, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 6205, - "src": "774:13:16", + "scope": 8258, + "src": "773:13:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4232,10 +4257,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6172, + "id": 8225, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "774:4:16", + "src": "773:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4246,11 +4271,11 @@ }, { "constant": false, - "id": 6175, + "id": 8228, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 6205, - "src": "789:9:16", + "scope": 8258, + "src": "788:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4258,10 +4283,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6174, + "id": 8227, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "789:4:16", + "src": "788:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4271,20 +4296,20 @@ "visibility": "internal" } ], - "src": "761:38:16" + "src": "760:38:24" }, "payable": false, "returnParameters": { - "id": 6179, + "id": 8232, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6178, + "id": 8231, "name": "", "nodeType": "VariableDeclaration", - "scope": 6205, - "src": "821:4:16", + "scope": 8258, + "src": "820:4:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4292,10 +4317,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6177, + "id": 8230, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "821:4:16", + "src": "820:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4305,30 +4330,30 @@ "visibility": "internal" } ], - "src": "820:6:16" + "src": "819:6:24" }, - "scope": 6324, - "src": "725:211:16", + "scope": 8378, + "src": "724:212:24", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6322, + "id": 8376, "nodeType": "Block", - "src": "1210:579:16", + "src": "1208:582:24", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 6217, + "id": 8270, "name": "fractionsSum", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1220:17:16", + "scope": 8377, + "src": "1218:17:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4336,10 +4361,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6216, + "id": 8269, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1220:4:16", + "src": "1218:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4349,10 +4374,10 @@ "visibility": "internal" } ], - "id": 6218, + "id": 8271, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "1220:17:16" + "src": "1218:17:24" }, { "expression": { @@ -4364,19 +4389,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6222, + "id": 8275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6220, + "id": 8273, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1255:1:16", + "referencedDeclaration": 8264, + "src": "1253:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4387,14 +4412,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6221, + "id": 8274, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1260:1:16", + "src": "1258:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4402,7 +4427,7 @@ }, "value": "0" }, - "src": "1255:6:16", + "src": "1253:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4416,18 +4441,18 @@ "typeString": "bool" } ], - "id": 6219, + "id": 8272, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10477, - "src": "1248:6:16", + "referencedDeclaration": 13430, + "src": "1246:6:24", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6223, + "id": 8276, "isConstant": false, "isLValue": false, "isPure": false, @@ -4435,15 +4460,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1248:14:16", + "src": "1246:14:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6224, + "id": 8277, "nodeType": "ExpressionStatement", - "src": "1248:14:16" + "src": "1246:14:24" }, { "condition": { @@ -4452,7 +4477,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 6231, + "id": 8284, "isConstant": false, "isLValue": false, "isPure": false, @@ -4463,19 +4488,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6227, + "id": 8280, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6225, + "id": 8278, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1284:1:16", + "referencedDeclaration": 8260, + "src": "1282:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4486,14 +4511,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6226, + "id": 8279, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1289:1:16", + "src": "1287:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4501,7 +4526,7 @@ }, "value": "0" }, - "src": "1284:6:16", + "src": "1282:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4515,19 +4540,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6230, + "id": 8283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6228, + "id": 8281, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6209, - "src": "1294:1:16", + "referencedDeclaration": 8262, + "src": "1292:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4538,14 +4563,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6229, + "id": 8282, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1299:1:16", + "src": "1297:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4553,42 +4578,42 @@ }, "value": "0" }, - "src": "1294:6:16", + "src": "1292:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1284:16:16", + "src": "1282:16:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6233, + "id": 8286, "nodeType": "IfStatement", - "src": "1281:28:16", + "src": "1279:28:24", "trueBody": { "expression": null, - "functionReturnParameters": 6215, - "id": 6232, + "functionReturnParameters": 8268, + "id": 8285, "nodeType": "Return", - "src": "1302:7:16" + "src": "1300:7:24" } }, { "assignments": [ - 6235 + 8288 ], "declarations": [ { "constant": false, - "id": 6235, + "id": 8288, "name": "maxA", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1319:9:16", + "scope": 8377, + "src": "1317:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4596,10 +4621,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6234, + "id": 8287, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1319:4:16", + "src": "1317:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4609,18 +4634,18 @@ "visibility": "internal" } ], - "id": 6240, + "id": 8293, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6238, + "id": 8291, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6209, - "src": "1344:1:16", + "referencedDeclaration": 8262, + "src": "1342:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4636,32 +4661,32 @@ ], "expression": { "argumentTypes": null, - "id": 6236, + "id": 8289, "name": "MAX_UINT", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6130, - "src": "1331:8:16", + "referencedDeclaration": 8184, + "src": "1329:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6237, + "id": 8290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "1331:12:16", + "referencedDeclaration": 12319, + "src": "1329:12:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6239, + "id": 8292, "isConstant": false, "isLValue": false, "isPure": false, @@ -4669,14 +4694,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1331:15:16", + "src": "1329:15:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1319:27:16" + "src": "1317:27:24" }, { "condition": { @@ -4685,19 +4710,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6243, + "id": 8296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6241, + "id": 8294, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1361:1:16", + "referencedDeclaration": 8260, + "src": "1359:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4707,39 +4732,39 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 6242, + "id": 8295, "name": "maxA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6235, - "src": "1366:4:16", + "referencedDeclaration": 8288, + "src": "1364:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1361:9:16", + "src": "1359:9:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6252, + "id": 8305, "nodeType": "IfStatement", - "src": "1357:37:16", + "src": "1355:37:24", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6249, + "id": 8302, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1392:1:16", + "referencedDeclaration": 8264, + "src": "1390:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4758,12 +4783,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6246, + "id": 8299, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6209, - "src": "1385:1:16", + "referencedDeclaration": 8262, + "src": "1383:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4779,32 +4804,32 @@ ], "expression": { "argumentTypes": null, - "id": 6244, + "id": 8297, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1379:1:16", + "referencedDeclaration": 8260, + "src": "1377:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6245, + "id": 8298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "1379:5:16", + "referencedDeclaration": 12295, + "src": "1377:5:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6247, + "id": 8300, "isConstant": false, "isLValue": false, "isPure": false, @@ -4812,27 +4837,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1379:8:16", + "src": "1377:8:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6248, + "id": 8301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "1379:12:16", + "referencedDeclaration": 12319, + "src": "1377:12:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6250, + "id": 8303, "isConstant": false, "isLValue": false, "isPure": false, @@ -4840,16 +4865,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1379:15:16", + "src": "1377:15:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6215, - "id": 6251, + "functionReturnParameters": 8268, + "id": 8304, "nodeType": "Return", - "src": "1372:22:16" + "src": "1370:22:24" } }, { @@ -4859,19 +4884,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6255, + "id": 8308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6253, + "id": 8306, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1408:1:16", + "referencedDeclaration": 8260, + "src": "1406:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4881,45 +4906,45 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6254, + "id": 8307, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1413:1:16", + "referencedDeclaration": 8264, + "src": "1411:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1408:6:16", + "src": "1406:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6258, + "id": 8311, "nodeType": "IfStatement", - "src": "1404:20:16", + "src": "1402:20:24", "trueBody": { "expression": { "argumentTypes": null, - "id": 6256, + "id": 8309, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6209, - "src": "1423:1:16", + "referencedDeclaration": 8262, + "src": "1421:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6215, - "id": 6257, + "functionReturnParameters": 8268, + "id": 8310, "nodeType": "Return", - "src": "1416:8:16" + "src": "1414:8:24" } }, { @@ -4929,19 +4954,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6261, + "id": 8314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6259, + "id": 8312, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6209, - "src": "1438:1:16", + "referencedDeclaration": 8262, + "src": "1436:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4951,65 +4976,65 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6260, + "id": 8313, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1443:1:16", + "referencedDeclaration": 8264, + "src": "1441:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1438:6:16", + "src": "1436:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6264, + "id": 8317, "nodeType": "IfStatement", - "src": "1434:20:16", + "src": "1432:20:24", "trueBody": { "expression": { "argumentTypes": null, - "id": 6262, + "id": 8315, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1453:1:16", + "referencedDeclaration": 8260, + "src": "1451:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6215, - "id": 6263, + "functionReturnParameters": 8268, + "id": 8316, "nodeType": "Return", - "src": "1446:8:16" + "src": "1444:8:24" } }, { "body": { - "id": 6310, + "id": 8364, "nodeType": "Block", - "src": "1480:252:16", + "src": "1478:255:24", "statements": [ { "assignments": [ - 6269 + 8322 ], "declarations": [ { "constant": false, - "id": 6269, + "id": 8322, "name": "aPart", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1494:10:16", + "scope": 8377, + "src": "1492:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5017,10 +5042,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6268, + "id": 8321, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1494:4:16", + "src": "1492:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5030,7 +5055,7 @@ "visibility": "internal" } ], - "id": 6276, + "id": 8329, "initialValue": { "argumentTypes": null, "condition": { @@ -5039,19 +5064,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6272, + "id": 8325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6270, + "id": 8323, "name": "maxA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6235, - "src": "1507:4:16", + "referencedDeclaration": 8288, + "src": "1505:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5061,18 +5086,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 6271, + "id": 8324, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1514:1:16", + "referencedDeclaration": 8260, + "src": "1512:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1507:8:16", + "src": "1505:8:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5080,32 +5105,32 @@ }, "falseExpression": { "argumentTypes": null, - "id": 6274, + "id": 8327, "name": "maxA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6235, - "src": "1522:4:16", + "referencedDeclaration": 8288, + "src": "1520:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6275, + "id": 8328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "1507:19:16", + "src": "1505:19:24", "trueExpression": { "argumentTypes": null, - "id": 6273, + "id": 8326, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1518:1:16", + "referencedDeclaration": 8260, + "src": "1516:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5117,20 +5142,20 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "1494:32:16" + "src": "1492:32:24" }, { "assignments": [ - 6278 + 8331 ], "declarations": [ { "constant": false, - "id": 6278, + "id": 8331, "name": "aPartByBProd", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1540:17:16", + "scope": 8377, + "src": "1538:17:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5138,10 +5163,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6277, + "id": 8330, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1540:4:16", + "src": "1538:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5151,18 +5176,18 @@ "visibility": "internal" } ], - "id": 6283, + "id": 8336, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6281, + "id": 8334, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6209, - "src": "1570:1:16", + "referencedDeclaration": 8262, + "src": "1568:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5178,32 +5203,32 @@ ], "expression": { "argumentTypes": null, - "id": 6279, + "id": 8332, "name": "aPart", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6269, - "src": "1560:5:16", + "referencedDeclaration": 8322, + "src": "1558:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6280, + "id": 8333, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 9989, - "src": "1560:9:16", + "referencedDeclaration": 12295, + "src": "1558:9:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6282, + "id": 8335, "isConstant": false, "isLValue": false, "isPure": false, @@ -5211,31 +5236,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1560:12:16", + "src": "1558:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1540:32:16" + "src": "1538:32:24" }, { "expression": { "argumentTypes": null, - "id": 6292, + "id": 8345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6284, + "id": 8337, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "1587:6:16", + "referencedDeclaration": 8267, + "src": "1585:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5251,12 +5276,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6289, + "id": 8342, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1624:1:16", + "referencedDeclaration": 8264, + "src": "1622:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5272,32 +5297,32 @@ ], "expression": { "argumentTypes": null, - "id": 6287, + "id": 8340, "name": "aPartByBProd", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6278, - "src": "1607:12:16", + "referencedDeclaration": 8331, + "src": "1605:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6288, + "id": 8341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "1607:16:16", + "referencedDeclaration": 12319, + "src": "1605:16:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6290, + "id": 8343, "isConstant": false, "isLValue": false, "isPure": false, @@ -5305,7 +5330,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1607:19:16", + "src": "1605:19:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5321,32 +5346,32 @@ ], "expression": { "argumentTypes": null, - "id": 6285, + "id": 8338, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "1596:6:16", + "referencedDeclaration": 8267, + "src": "1594:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6286, + "id": 8339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "1596:10:16", + "referencedDeclaration": 12367, + "src": "1594:10:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6291, + "id": 8344, "isConstant": false, "isLValue": false, "isPure": false, @@ -5354,38 +5379,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1596:31:16", + "src": "1594:31:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1587:40:16", + "src": "1585:40:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6293, + "id": 8346, "nodeType": "ExpressionStatement", - "src": "1587:40:16" + "src": "1585:40:24" }, { "expression": { "argumentTypes": null, - "id": 6301, + "id": 8355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6294, + "id": 8347, "name": "fractionsSum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6217, - "src": "1641:12:16", + "referencedDeclaration": 8270, + "src": "1639:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5398,44 +5423,64 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "arguments": [ + { + "argumentTypes": null, + "id": 8352, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8264, + "src": "1688:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8350, + "name": "aPartByBProd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8331, + "src": "1671:12:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mod", + "nodeType": "MemberAccess", + "referencedDeclaration": 12387, + "src": "1671:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - "id": 6299, + "id": 8353, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6297, - "name": "aPartByBProd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6278, - "src": "1673:12:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 6298, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1688:1:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1673:16:16", + "names": [], + "nodeType": "FunctionCall", + "src": "1671:19:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5451,32 +5496,32 @@ ], "expression": { "argumentTypes": null, - "id": 6295, + "id": 8348, "name": "fractionsSum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6217, - "src": "1656:12:16", + "referencedDeclaration": 8270, + "src": "1654:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6296, + "id": 8349, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "1656:16:16", + "referencedDeclaration": 12367, + "src": "1654:16:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6300, + "id": 8354, "isConstant": false, "isLValue": false, "isPure": false, @@ -5484,38 +5529,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1656:34:16", + "src": "1654:37:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1641:49:16", + "src": "1639:52:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6302, + "id": 8356, "nodeType": "ExpressionStatement", - "src": "1641:49:16" + "src": "1639:52:24" }, { "expression": { "argumentTypes": null, - "id": 6308, + "id": 8362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6303, + "id": 8357, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1705:1:16", + "referencedDeclaration": 8260, + "src": "1706:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5528,12 +5573,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6306, + "id": 8360, "name": "aPart", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6269, - "src": "1715:5:16", + "referencedDeclaration": 8322, + "src": "1716:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5549,32 +5594,32 @@ ], "expression": { "argumentTypes": null, - "id": 6304, + "id": 8358, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1709:1:16", + "referencedDeclaration": 8260, + "src": "1710:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6305, + "id": 8359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "1709:5:16", + "referencedDeclaration": 12343, + "src": "1710:5:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6307, + "id": 8361, "isConstant": false, "isLValue": false, "isPure": false, @@ -5582,21 +5627,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1709:12:16", + "src": "1710:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1705:16:16", + "src": "1706:16:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6309, + "id": 8363, "nodeType": "ExpressionStatement", - "src": "1705:16:16" + "src": "1706:16:24" } ] }, @@ -5606,19 +5651,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6267, + "id": 8320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6265, + "id": 8318, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6207, - "src": "1472:1:16", + "referencedDeclaration": 8260, + "src": "1470:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5629,14 +5674,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6266, + "id": 8319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1477:1:16", + "src": "1475:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5644,32 +5689,32 @@ }, "value": "0" }, - "src": "1472:6:16", + "src": "1470:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6311, + "id": 8365, "nodeType": "WhileStatement", - "src": "1465:267:16" + "src": "1463:270:24" }, { "expression": { "argumentTypes": null, - "id": 6320, + "id": 8374, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6312, + "id": 8366, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "1742:6:16", + "referencedDeclaration": 8267, + "src": "1743:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5685,12 +5730,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6317, + "id": 8371, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "1779:1:16", + "referencedDeclaration": 8264, + "src": "1780:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5706,32 +5751,32 @@ ], "expression": { "argumentTypes": null, - "id": 6315, + "id": 8369, "name": "fractionsSum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6217, - "src": "1762:12:16", + "referencedDeclaration": 8270, + "src": "1763:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6316, + "id": 8370, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 10003, - "src": "1762:16:16", + "referencedDeclaration": 12319, + "src": "1763:16:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6318, + "id": 8372, "isConstant": false, "isLValue": false, "isPure": false, @@ -5739,7 +5784,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1762:19:16", + "src": "1763:19:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5755,32 +5800,32 @@ ], "expression": { "argumentTypes": null, - "id": 6313, + "id": 8367, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "1751:6:16", + "referencedDeclaration": 8267, + "src": "1752:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6314, + "id": 8368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "1751:10:16", + "referencedDeclaration": 12367, + "src": "1752:10:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 6319, + "id": 8373, "isConstant": false, "isLValue": false, "isPure": false, @@ -5788,26 +5833,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1751:31:16", + "src": "1752:31:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1742:40:16", + "src": "1743:40:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6321, + "id": 8375, "nodeType": "ExpressionStatement", - "src": "1742:40:16" + "src": "1743:40:24" } ] }, "documentation": "@dev Doing multiplying `a` by `b` and then divide by `c`. In some case it avoids overflow.\n (2^256-1) * 2 / 2 = (2^256-1) - no overflow when (2^256-1) * 2", - "id": 6323, + "id": 8377, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5815,16 +5860,16 @@ "name": "safeMulDiv", "nodeType": "FunctionDefinition", "parameters": { - "id": 6212, + "id": 8265, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6207, + "id": 8260, "name": "a", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1151:6:16", + "scope": 8377, + "src": "1151:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5832,10 +5877,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6206, + "id": 8259, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1151:4:16", + "src": "1151:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5846,11 +5891,11 @@ }, { "constant": false, - "id": 6209, + "id": 8262, "name": "b", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1159:6:16", + "scope": 8377, + "src": "1159:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5858,10 +5903,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6208, + "id": 8261, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1159:4:16", + "src": "1159:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5872,11 +5917,11 @@ }, { "constant": false, - "id": 6211, + "id": 8264, "name": "c", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1167:6:16", + "scope": 8377, + "src": "1167:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5884,10 +5929,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6210, + "id": 8263, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1167:4:16", + "src": "1167:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5897,20 +5942,20 @@ "visibility": "internal" } ], - "src": "1150:24:16" + "src": "1150:24:24" }, "payable": false, "returnParameters": { - "id": 6215, + "id": 8268, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6214, + "id": 8267, "name": "result", "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "1197:11:16", + "scope": 8377, + "src": "1195:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5918,10 +5963,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6213, + "id": 8266, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1197:4:16", + "src": "1195:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5931,20 +5976,20 @@ "visibility": "internal" } ], - "src": "1196:13:16" + "src": "1194:13:24" }, - "scope": 6324, - "src": "1131:658:16", + "scope": 8378, + "src": "1131:659:24", "stateMutability": "pure", "superFunction": null, - "visibility": "internal" + "visibility": "public" } ], - "scope": 6325, - "src": "87:1704:16" + "scope": 8379, + "src": "87:1705:24" } ], - "src": "0:1792:16" + "src": "0:1793:24" }, "compiler": { "name": "solc", @@ -5954,10 +5999,10 @@ "4": { "events": {}, "links": {}, - "address": "0x3a1732ce8e94619c9daf43a86323077ce770b9f4", - "transactionHash": "0xdf70226c98727d7e1fc7f0096fac4039bac814817334ff263a66d60b218ae97c" + "address": "0x9666c128e3ab46e2e2480fa50e5294c54dad5621", + "transactionHash": "0x6370f1e917cfb27a748a8219a3ff5745ffa936191f3b58d34a45e02186ac195e" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:55:06.462Z" + "updatedAt": "2018-12-06T13:18:18.753Z" } \ No newline at end of file diff --git a/build/contracts/UtilsMock.json b/build/contracts/UtilsMock.json index 0b377c77..c06f08fb 100644 --- a/build/contracts/UtilsMock.json +++ b/build/contracts/UtilsMock.json @@ -83,24 +83,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610372806100206000396000f30060806040526004361061003d5763ffffffff60e060020a60003504166376ba78988114610042578063a5a55fcf14610072578063bda4e61914610090575b600080fd5b34801561004e57600080fd5b506100606004356024356044356100ae565b60408051918252519081900360200190f35b34801561007e57600080fd5b50610060600435602435604435610146565b34801561009c57600080fd5b506100606004356024356044356101aa565b600073__Utils_________________________________6376ba78988585856040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561011257600080fd5b505af4158015610126573d6000803e3d6000fd5b505050506040513d602081101561013c57600080fd5b5051949350505050565b600073__Utils_________________________________63a5a55fcf8585856040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561011257600080fd5b60006101b78484846101bf565b949350505050565b6000808080808515156101ce57fe5b8715806101d9575086155b156101e3576102dc565b6101f56000198863ffffffff6102e716565b92508288116102255761021e866102128a8a63ffffffff6102fe16565b9063ffffffff6102e716565b94506102dc565b85881415610235578694506102dc565b85871415610245578794506102dc565b87156102c657878311610258578261025a565b875b915061026c828863ffffffff6102fe16565b905061028e610281828863ffffffff6102e716565b869063ffffffff61032716565b94506102ad868281151561029e57fe5b8691900663ffffffff61032716565b93506102bf888363ffffffff61033416565b9750610245565b6102d9610281858863ffffffff6102e716565b94505b505050509392505050565b600081838115156102f457fe5b0490505b92915050565b600082151561030f575060006102f8565b5081810281838281151561031f57fe5b04146102f857fe5b818101828110156102f857fe5b60008282111561034057fe5b509003905600a165627a7a72305820a6beafef90694139e3e9aec12a9add4a8d3665ec7d97ff5dc27676ca240700a90029", - "deployedBytecode": "0x60806040526004361061003d5763ffffffff60e060020a60003504166376ba78988114610042578063a5a55fcf14610072578063bda4e61914610090575b600080fd5b34801561004e57600080fd5b506100606004356024356044356100ae565b60408051918252519081900360200190f35b34801561007e57600080fd5b50610060600435602435604435610146565b34801561009c57600080fd5b506100606004356024356044356101aa565b600073__Utils_________________________________6376ba78988585856040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561011257600080fd5b505af4158015610126573d6000803e3d6000fd5b505050506040513d602081101561013c57600080fd5b5051949350505050565b600073__Utils_________________________________63a5a55fcf8585856040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561011257600080fd5b60006101b78484846101bf565b949350505050565b6000808080808515156101ce57fe5b8715806101d9575086155b156101e3576102dc565b6101f56000198863ffffffff6102e716565b92508288116102255761021e866102128a8a63ffffffff6102fe16565b9063ffffffff6102e716565b94506102dc565b85881415610235578694506102dc565b85871415610245578794506102dc565b87156102c657878311610258578261025a565b875b915061026c828863ffffffff6102fe16565b905061028e610281828863ffffffff6102e716565b869063ffffffff61032716565b94506102ad868281151561029e57fe5b8691900663ffffffff61032716565b93506102bf888363ffffffff61033416565b9750610245565b6102d9610281858863ffffffff6102e716565b94505b505050509392505050565b600081838115156102f457fe5b0490505b92915050565b600082151561030f575060006102f8565b5081810281838281151561031f57fe5b04146102f857fe5b818101828110156102f857fe5b60008282111561034057fe5b509003905600a165627a7a72305820a6beafef90694139e3e9aec12a9add4a8d3665ec7d97ff5dc27676ca240700a90029", - "sourceMap": "58:509:22:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;58:509:22;;;;;;;", - "deployedSourceMap": "58:509:22:-;;;;;;;;;-1:-1:-1;;;58:509:22;;;;;;;;;;;;;;;;;;;;;;;84:168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;84:168:22;;;;;;;;;;;;;;;;;;;;;;;;;258:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;258:182:22;;;;;;;;;446:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;446:119:22;;;;;;;;;84:168;173:4;196:5;:26;223:5;230:8;240:4;196:49;;;;;-1:-1:-1;;;196:49:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;196:49:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;196:49:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;196:49:22;;84:168;-1:-1:-1;;;;84:168:22:o;258:182::-;354:4;377:5;:33;411:5;418:8;428:4;377:56;;;;;-1:-1:-1;;;377:56:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;446:119:22;510:4;533:25;550:1;553;556;533:16;:25::i;:::-;526:32;446:119;-1:-1:-1;;;;446:119:22:o;1131:658:16:-;1197:11;;;;;1255:6;;;1248:14;;;;1284:6;;;:16;;-1:-1:-1;1294:6:16;;1284:16;1281:28;;;1302:7;;1281:28;1331:15;-1:-1:-1;;1344:1:16;1331:15;:12;:15;:::i;:::-;1319:27;-1:-1:-1;1361:9:16;;;1357:37;;1379:15;1392:1;1379:8;:1;1385;1379:8;:5;:8;:::i;:::-;:12;:15;:12;:15;:::i;:::-;1372:22;;;;1357:37;1413:1;1408;:6;1404:20;;;1423:1;1416:8;;;;1404:20;1443:1;1438;:6;1434:20;;;1453:1;1446:8;;;;1434:20;1472:6;;1465:267;;1514:1;1507:4;:8;:19;;1522:4;1507:19;;;1518:1;1507:19;1494:32;-1:-1:-1;1560:12:16;1494:32;1570:1;1560:12;:9;:12;:::i;:::-;1540:32;-1:-1:-1;1596:31:16;1607:19;1540:32;1624:1;1607:19;:16;:19;:::i;:::-;1596:6;;:31;:10;:31;:::i;:::-;1587:40;;1656:34;1688:1;1673:12;:16;;;;;;;1656:12;;1673:16;;1656:34;:16;:34;:::i;:::-;1641:49;-1:-1:-1;1709:12:16;:1;1715:5;1709:12;:5;:12;:::i;:::-;1705:16;;1465:267;;;1751:31;1762:19;:12;1779:1;1762:19;:16;:19;:::i;1751:31::-;1742:40;;1131:658;;;;;;;;;;:::o;665:283:44:-;725:7;941:2;936;:7;;;;;;;;929:14;;665:283;;;;;:::o;203:380::-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:44;506:8;;485:36;-1:-1:-1;531:7:44;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;1238:128;1319:7;;;1339;;;;1332:15;;;1060:116;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:44;;;1060:116::o", + "bytecode": "0x608060405234801561001057600080fd5b5061023a806100206000396000f30060806040526004361061003d5763ffffffff60e060020a60003504166376ba78988114610042578063a5a55fcf14610072578063bda4e61914610090575b600080fd5b34801561004e57600080fd5b506100606004356024356044356100ae565b60408051918252519081900360200190f35b34801561007e57600080fd5b50610060600435602435604435610146565b34801561009c57600080fd5b506100606004356024356044356101aa565b600073__Utils_________________________________6376ba78988585856040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561011257600080fd5b505af4158015610126573d6000803e3d6000fd5b505050506040513d602081101561013c57600080fd5b5051949350505050565b600073__Utils_________________________________63a5a55fcf8585856040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561011257600080fd5b600073__Utils_________________________________63bda4e6198585856040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561011257600080fd00a165627a7a723058207c7a7ee5f57ae09abe4ef07e783efdb912664dc5e918a3732e828a40c81679210029", + "deployedBytecode": "0x60806040526004361061003d5763ffffffff60e060020a60003504166376ba78988114610042578063a5a55fcf14610072578063bda4e61914610090575b600080fd5b34801561004e57600080fd5b506100606004356024356044356100ae565b60408051918252519081900360200190f35b34801561007e57600080fd5b50610060600435602435604435610146565b34801561009c57600080fd5b506100606004356024356044356101aa565b600073__Utils_________________________________6376ba78988585856040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561011257600080fd5b505af4158015610126573d6000803e3d6000fd5b505050506040513d602081101561013c57600080fd5b5051949350505050565b600073__Utils_________________________________63a5a55fcf8585856040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561011257600080fd5b600073__Utils_________________________________63bda4e6198585856040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561011257600080fd00a165627a7a723058207c7a7ee5f57ae09abe4ef07e783efdb912664dc5e918a3732e828a40c81679210029", + "sourceMap": "58:509:31:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;58:509:31;;;;;;;", + "deployedSourceMap": "58:509:31:-;;;;;;;;;-1:-1:-1;;;58:509:31;;;;;;;;;;;;;;;;;;;;;;;84:168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;84:168:31;;;;;;;;;;;;;;;;;;;;;;;;;258:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;258:182:31;;;;;;;;;446:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;446:119:31;;;;;;;;;84:168;173:4;196:5;:26;223:5;230:8;240:4;196:49;;;;;-1:-1:-1;;;196:49:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;196:49:31;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;196:49:31;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;196:49:31;;84:168;-1:-1:-1;;;;84:168:31:o;258:182::-;354:4;377:5;:33;411:5;418:8;428:4;377:56;;;;;-1:-1:-1;;;377:56:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;446:119:31;510:4;533:5;:16;550:1;553;556;533:25;;;;;-1:-1:-1;;;533:25:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12", "source": "pragma solidity ^0.4.24;\n\nimport \"../../libs/Utils.sol\";\n\ncontract UtilsMock {\n\n function safeConversionByRate(uint value, uint decimals, uint rate) public pure returns (uint) {\n return Utils.safeConversionByRate(value, decimals, rate);\n }\n\n function safeReverseConversionByRate(uint value, uint decimals, uint rate) public pure returns (uint) {\n return Utils.safeReverseConversionByRate(value, decimals, rate);\n }\n\n function safeMulDiv(uint a, uint b, uint c) public pure returns(uint) {\n return Utils.safeMulDiv(a, b, c);\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/mocks/libs/Utils.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/mocks/libs/Utils.sol", "exportedSymbols": { "UtilsMock": [ - 7218 + 9452 ] }, - "id": 7219, + "id": 9453, "nodeType": "SourceUnit", "nodes": [ { - "id": 7159, + "id": 9393, "literals": [ "solidity", "^", @@ -108,16 +108,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:22" + "src": "0:24:31" }, { "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", "file": "../../libs/Utils.sol", - "id": 7160, + "id": 9394, "nodeType": "ImportDirective", - "scope": 7219, - "sourceUnit": 6325, - "src": "26:30:22", + "scope": 9453, + "sourceUnit": 8379, + "src": "26:30:31", "symbolAliases": [], "unitAlias": "" }, @@ -127,18 +127,18 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 7218, + "id": 9452, "linearizedBaseContracts": [ - 7218 + 9452 ], "name": "UtilsMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 7178, + "id": 9412, "nodeType": "Block", - "src": "179:73:22", + "src": "179:73:31", "statements": [ { "expression": { @@ -146,12 +146,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7173, + "id": 9407, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7162, - "src": "223:5:22", + "referencedDeclaration": 9396, + "src": "223:5:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -159,12 +159,12 @@ }, { "argumentTypes": null, - "id": 7174, + "id": 9408, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7164, - "src": "230:8:22", + "referencedDeclaration": 9398, + "src": "230:8:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -172,12 +172,12 @@ }, { "argumentTypes": null, - "id": 7175, + "id": 9409, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7166, - "src": "240:4:22", + "referencedDeclaration": 9400, + "src": "240:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -201,32 +201,32 @@ ], "expression": { "argumentTypes": null, - "id": 7171, + "id": 9405, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "196:5:22", + "referencedDeclaration": 8378, + "src": "196:5:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 7172, + "id": 9406, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6169, - "src": "196:26:22", + "referencedDeclaration": 8222, + "src": "196:26:31", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 7176, + "id": 9410, "isConstant": false, "isLValue": false, "isPure": false, @@ -234,21 +234,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "196:49:22", + "src": "196:49:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 7170, - "id": 7177, + "functionReturnParameters": 9404, + "id": 9411, "nodeType": "Return", - "src": "189:56:22" + "src": "189:56:31" } ] }, "documentation": null, - "id": 7179, + "id": 9413, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -256,16 +256,16 @@ "name": "safeConversionByRate", "nodeType": "FunctionDefinition", "parameters": { - "id": 7167, + "id": 9401, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7162, + "id": 9396, "name": "value", "nodeType": "VariableDeclaration", - "scope": 7179, - "src": "114:10:22", + "scope": 9413, + "src": "114:10:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -273,10 +273,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7161, + "id": 9395, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "114:4:22", + "src": "114:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -287,11 +287,11 @@ }, { "constant": false, - "id": 7164, + "id": 9398, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 7179, - "src": "126:13:22", + "scope": 9413, + "src": "126:13:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -299,10 +299,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7163, + "id": 9397, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "126:4:22", + "src": "126:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -313,11 +313,11 @@ }, { "constant": false, - "id": 7166, + "id": 9400, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 7179, - "src": "141:9:22", + "scope": 9413, + "src": "141:9:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -325,10 +325,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7165, + "id": 9399, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "141:4:22", + "src": "141:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -338,20 +338,20 @@ "visibility": "internal" } ], - "src": "113:38:22" + "src": "113:38:31" }, "payable": false, "returnParameters": { - "id": 7170, + "id": 9404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7169, + "id": 9403, "name": "", "nodeType": "VariableDeclaration", - "scope": 7179, - "src": "173:4:22", + "scope": 9413, + "src": "173:4:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -359,10 +359,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7168, + "id": 9402, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "173:4:22", + "src": "173:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -372,19 +372,19 @@ "visibility": "internal" } ], - "src": "172:6:22" + "src": "172:6:31" }, - "scope": 7218, - "src": "84:168:22", + "scope": 9452, + "src": "84:168:31", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7197, + "id": 9431, "nodeType": "Block", - "src": "360:80:22", + "src": "360:80:31", "statements": [ { "expression": { @@ -392,12 +392,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7192, + "id": 9426, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7181, - "src": "411:5:22", + "referencedDeclaration": 9415, + "src": "411:5:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -405,12 +405,12 @@ }, { "argumentTypes": null, - "id": 7193, + "id": 9427, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7183, - "src": "418:8:22", + "referencedDeclaration": 9417, + "src": "418:8:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -418,12 +418,12 @@ }, { "argumentTypes": null, - "id": 7194, + "id": 9428, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7185, - "src": "428:4:22", + "referencedDeclaration": 9419, + "src": "428:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -447,32 +447,32 @@ ], "expression": { "argumentTypes": null, - "id": 7190, + "id": 9424, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "377:5:22", + "referencedDeclaration": 8378, + "src": "377:5:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 7191, + "id": 9425, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeReverseConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6205, - "src": "377:33:22", + "referencedDeclaration": 8258, + "src": "377:33:31", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 7195, + "id": 9429, "isConstant": false, "isLValue": false, "isPure": false, @@ -480,21 +480,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "377:56:22", + "src": "377:56:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 7189, - "id": 7196, + "functionReturnParameters": 9423, + "id": 9430, "nodeType": "Return", - "src": "370:63:22" + "src": "370:63:31" } ] }, "documentation": null, - "id": 7198, + "id": 9432, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -502,16 +502,16 @@ "name": "safeReverseConversionByRate", "nodeType": "FunctionDefinition", "parameters": { - "id": 7186, + "id": 9420, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7181, + "id": 9415, "name": "value", "nodeType": "VariableDeclaration", - "scope": 7198, - "src": "295:10:22", + "scope": 9432, + "src": "295:10:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -519,10 +519,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7180, + "id": 9414, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "295:4:22", + "src": "295:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -533,11 +533,11 @@ }, { "constant": false, - "id": 7183, + "id": 9417, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 7198, - "src": "307:13:22", + "scope": 9432, + "src": "307:13:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -545,10 +545,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7182, + "id": 9416, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "307:4:22", + "src": "307:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -559,11 +559,11 @@ }, { "constant": false, - "id": 7185, + "id": 9419, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 7198, - "src": "322:9:22", + "scope": 9432, + "src": "322:9:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -571,10 +571,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7184, + "id": 9418, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "322:4:22", + "src": "322:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -584,20 +584,20 @@ "visibility": "internal" } ], - "src": "294:38:22" + "src": "294:38:31" }, "payable": false, "returnParameters": { - "id": 7189, + "id": 9423, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7188, + "id": 9422, "name": "", "nodeType": "VariableDeclaration", - "scope": 7198, - "src": "354:4:22", + "scope": 9432, + "src": "354:4:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -605,10 +605,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7187, + "id": 9421, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "354:4:22", + "src": "354:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -618,19 +618,19 @@ "visibility": "internal" } ], - "src": "353:6:22" + "src": "353:6:31" }, - "scope": 7218, - "src": "258:182:22", + "scope": 9452, + "src": "258:182:31", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7216, + "id": 9450, "nodeType": "Block", - "src": "516:49:22", + "src": "516:49:31", "statements": [ { "expression": { @@ -638,12 +638,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7211, + "id": 9445, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7200, - "src": "550:1:22", + "referencedDeclaration": 9434, + "src": "550:1:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -651,12 +651,12 @@ }, { "argumentTypes": null, - "id": 7212, + "id": 9446, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7202, - "src": "553:1:22", + "referencedDeclaration": 9436, + "src": "553:1:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -664,12 +664,12 @@ }, { "argumentTypes": null, - "id": 7213, + "id": 9447, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7204, - "src": "556:1:22", + "referencedDeclaration": 9438, + "src": "556:1:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -693,32 +693,32 @@ ], "expression": { "argumentTypes": null, - "id": 7209, + "id": 9443, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "533:5:22", + "referencedDeclaration": 8378, + "src": "533:5:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 7210, + "id": 9444, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeMulDiv", "nodeType": "MemberAccess", - "referencedDeclaration": 6323, - "src": "533:16:22", + "referencedDeclaration": 8377, + "src": "533:16:31", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 7214, + "id": 9448, "isConstant": false, "isLValue": false, "isPure": false, @@ -726,21 +726,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "533:25:22", + "src": "533:25:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 7208, - "id": 7215, + "functionReturnParameters": 9442, + "id": 9449, "nodeType": "Return", - "src": "526:32:22" + "src": "526:32:31" } ] }, "documentation": null, - "id": 7217, + "id": 9451, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -748,16 +748,16 @@ "name": "safeMulDiv", "nodeType": "FunctionDefinition", "parameters": { - "id": 7205, + "id": 9439, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7200, + "id": 9434, "name": "a", "nodeType": "VariableDeclaration", - "scope": 7217, - "src": "466:6:22", + "scope": 9451, + "src": "466:6:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -765,10 +765,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7199, + "id": 9433, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "466:4:22", + "src": "466:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -779,11 +779,11 @@ }, { "constant": false, - "id": 7202, + "id": 9436, "name": "b", "nodeType": "VariableDeclaration", - "scope": 7217, - "src": "474:6:22", + "scope": 9451, + "src": "474:6:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -791,10 +791,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7201, + "id": 9435, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "474:4:22", + "src": "474:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -805,11 +805,11 @@ }, { "constant": false, - "id": 7204, + "id": 9438, "name": "c", "nodeType": "VariableDeclaration", - "scope": 7217, - "src": "482:6:22", + "scope": 9451, + "src": "482:6:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -817,10 +817,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7203, + "id": 9437, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "482:4:22", + "src": "482:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -830,20 +830,20 @@ "visibility": "internal" } ], - "src": "465:24:22" + "src": "465:24:31" }, "payable": false, "returnParameters": { - "id": 7208, + "id": 9442, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7207, + "id": 9441, "name": "", "nodeType": "VariableDeclaration", - "scope": 7217, - "src": "510:4:22", + "scope": 9451, + "src": "510:4:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -851,10 +851,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7206, + "id": 9440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "510:4:22", + "src": "510:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -864,33 +864,33 @@ "visibility": "internal" } ], - "src": "509:6:22" + "src": "509:6:31" }, - "scope": 7218, - "src": "446:119:22", + "scope": 9452, + "src": "446:119:31", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 7219, - "src": "58:509:22" + "scope": 9453, + "src": "58:509:31" } ], - "src": "0:568:22" + "src": "0:568:31" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/mocks/libs/Utils.sol", "exportedSymbols": { "UtilsMock": [ - 7218 + 9452 ] }, - "id": 7219, + "id": 9453, "nodeType": "SourceUnit", "nodes": [ { - "id": 7159, + "id": 9393, "literals": [ "solidity", "^", @@ -898,16 +898,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:22" + "src": "0:24:31" }, { "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", "file": "../../libs/Utils.sol", - "id": 7160, + "id": 9394, "nodeType": "ImportDirective", - "scope": 7219, - "sourceUnit": 6325, - "src": "26:30:22", + "scope": 9453, + "sourceUnit": 8379, + "src": "26:30:31", "symbolAliases": [], "unitAlias": "" }, @@ -917,18 +917,18 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 7218, + "id": 9452, "linearizedBaseContracts": [ - 7218 + 9452 ], "name": "UtilsMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 7178, + "id": 9412, "nodeType": "Block", - "src": "179:73:22", + "src": "179:73:31", "statements": [ { "expression": { @@ -936,12 +936,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7173, + "id": 9407, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7162, - "src": "223:5:22", + "referencedDeclaration": 9396, + "src": "223:5:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -949,12 +949,12 @@ }, { "argumentTypes": null, - "id": 7174, + "id": 9408, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7164, - "src": "230:8:22", + "referencedDeclaration": 9398, + "src": "230:8:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -962,12 +962,12 @@ }, { "argumentTypes": null, - "id": 7175, + "id": 9409, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7166, - "src": "240:4:22", + "referencedDeclaration": 9400, + "src": "240:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -991,32 +991,32 @@ ], "expression": { "argumentTypes": null, - "id": 7171, + "id": 9405, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "196:5:22", + "referencedDeclaration": 8378, + "src": "196:5:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 7172, + "id": 9406, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6169, - "src": "196:26:22", + "referencedDeclaration": 8222, + "src": "196:26:31", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 7176, + "id": 9410, "isConstant": false, "isLValue": false, "isPure": false, @@ -1024,21 +1024,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "196:49:22", + "src": "196:49:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 7170, - "id": 7177, + "functionReturnParameters": 9404, + "id": 9411, "nodeType": "Return", - "src": "189:56:22" + "src": "189:56:31" } ] }, "documentation": null, - "id": 7179, + "id": 9413, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1046,16 +1046,16 @@ "name": "safeConversionByRate", "nodeType": "FunctionDefinition", "parameters": { - "id": 7167, + "id": 9401, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7162, + "id": 9396, "name": "value", "nodeType": "VariableDeclaration", - "scope": 7179, - "src": "114:10:22", + "scope": 9413, + "src": "114:10:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1063,10 +1063,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7161, + "id": 9395, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "114:4:22", + "src": "114:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1077,11 +1077,11 @@ }, { "constant": false, - "id": 7164, + "id": 9398, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 7179, - "src": "126:13:22", + "scope": 9413, + "src": "126:13:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1089,10 +1089,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7163, + "id": 9397, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "126:4:22", + "src": "126:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1103,11 +1103,11 @@ }, { "constant": false, - "id": 7166, + "id": 9400, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 7179, - "src": "141:9:22", + "scope": 9413, + "src": "141:9:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1115,10 +1115,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7165, + "id": 9399, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "141:4:22", + "src": "141:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1128,20 +1128,20 @@ "visibility": "internal" } ], - "src": "113:38:22" + "src": "113:38:31" }, "payable": false, "returnParameters": { - "id": 7170, + "id": 9404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7169, + "id": 9403, "name": "", "nodeType": "VariableDeclaration", - "scope": 7179, - "src": "173:4:22", + "scope": 9413, + "src": "173:4:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1149,10 +1149,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7168, + "id": 9402, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "173:4:22", + "src": "173:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1162,19 +1162,19 @@ "visibility": "internal" } ], - "src": "172:6:22" + "src": "172:6:31" }, - "scope": 7218, - "src": "84:168:22", + "scope": 9452, + "src": "84:168:31", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7197, + "id": 9431, "nodeType": "Block", - "src": "360:80:22", + "src": "360:80:31", "statements": [ { "expression": { @@ -1182,12 +1182,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7192, + "id": 9426, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7181, - "src": "411:5:22", + "referencedDeclaration": 9415, + "src": "411:5:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1195,12 +1195,12 @@ }, { "argumentTypes": null, - "id": 7193, + "id": 9427, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7183, - "src": "418:8:22", + "referencedDeclaration": 9417, + "src": "418:8:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1208,12 +1208,12 @@ }, { "argumentTypes": null, - "id": 7194, + "id": 9428, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7185, - "src": "428:4:22", + "referencedDeclaration": 9419, + "src": "428:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1237,32 +1237,32 @@ ], "expression": { "argumentTypes": null, - "id": 7190, + "id": 9424, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "377:5:22", + "referencedDeclaration": 8378, + "src": "377:5:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 7191, + "id": 9425, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeReverseConversionByRate", "nodeType": "MemberAccess", - "referencedDeclaration": 6205, - "src": "377:33:22", + "referencedDeclaration": 8258, + "src": "377:33:31", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 7195, + "id": 9429, "isConstant": false, "isLValue": false, "isPure": false, @@ -1270,21 +1270,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "377:56:22", + "src": "377:56:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 7189, - "id": 7196, + "functionReturnParameters": 9423, + "id": 9430, "nodeType": "Return", - "src": "370:63:22" + "src": "370:63:31" } ] }, "documentation": null, - "id": 7198, + "id": 9432, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1292,16 +1292,16 @@ "name": "safeReverseConversionByRate", "nodeType": "FunctionDefinition", "parameters": { - "id": 7186, + "id": 9420, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7181, + "id": 9415, "name": "value", "nodeType": "VariableDeclaration", - "scope": 7198, - "src": "295:10:22", + "scope": 9432, + "src": "295:10:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1309,10 +1309,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7180, + "id": 9414, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "295:4:22", + "src": "295:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1323,11 +1323,11 @@ }, { "constant": false, - "id": 7183, + "id": 9417, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 7198, - "src": "307:13:22", + "scope": 9432, + "src": "307:13:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1335,10 +1335,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7182, + "id": 9416, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "307:4:22", + "src": "307:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1349,11 +1349,11 @@ }, { "constant": false, - "id": 7185, + "id": 9419, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 7198, - "src": "322:9:22", + "scope": 9432, + "src": "322:9:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1361,10 +1361,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7184, + "id": 9418, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "322:4:22", + "src": "322:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1374,20 +1374,20 @@ "visibility": "internal" } ], - "src": "294:38:22" + "src": "294:38:31" }, "payable": false, "returnParameters": { - "id": 7189, + "id": 9423, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7188, + "id": 9422, "name": "", "nodeType": "VariableDeclaration", - "scope": 7198, - "src": "354:4:22", + "scope": 9432, + "src": "354:4:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1395,10 +1395,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7187, + "id": 9421, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "354:4:22", + "src": "354:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1408,19 +1408,19 @@ "visibility": "internal" } ], - "src": "353:6:22" + "src": "353:6:31" }, - "scope": 7218, - "src": "258:182:22", + "scope": 9452, + "src": "258:182:31", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 7216, + "id": 9450, "nodeType": "Block", - "src": "516:49:22", + "src": "516:49:31", "statements": [ { "expression": { @@ -1428,12 +1428,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7211, + "id": 9445, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7200, - "src": "550:1:22", + "referencedDeclaration": 9434, + "src": "550:1:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1441,12 +1441,12 @@ }, { "argumentTypes": null, - "id": 7212, + "id": 9446, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7202, - "src": "553:1:22", + "referencedDeclaration": 9436, + "src": "553:1:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1454,12 +1454,12 @@ }, { "argumentTypes": null, - "id": 7213, + "id": 9447, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7204, - "src": "556:1:22", + "referencedDeclaration": 9438, + "src": "556:1:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1483,32 +1483,32 @@ ], "expression": { "argumentTypes": null, - "id": 7209, + "id": 9443, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "533:5:22", + "referencedDeclaration": 8378, + "src": "533:5:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", + "typeIdentifier": "t_type$_t_contract$_Utils_$8378_$", "typeString": "type(library Utils)" } }, - "id": 7210, + "id": 9444, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeMulDiv", "nodeType": "MemberAccess", - "referencedDeclaration": 6323, - "src": "533:16:22", + "referencedDeclaration": 8377, + "src": "533:16:31", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 7214, + "id": 9448, "isConstant": false, "isLValue": false, "isPure": false, @@ -1516,21 +1516,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "533:25:22", + "src": "533:25:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 7208, - "id": 7215, + "functionReturnParameters": 9442, + "id": 9449, "nodeType": "Return", - "src": "526:32:22" + "src": "526:32:31" } ] }, "documentation": null, - "id": 7217, + "id": 9451, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1538,16 +1538,16 @@ "name": "safeMulDiv", "nodeType": "FunctionDefinition", "parameters": { - "id": 7205, + "id": 9439, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7200, + "id": 9434, "name": "a", "nodeType": "VariableDeclaration", - "scope": 7217, - "src": "466:6:22", + "scope": 9451, + "src": "466:6:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1555,10 +1555,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7199, + "id": 9433, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "466:4:22", + "src": "466:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1569,11 +1569,11 @@ }, { "constant": false, - "id": 7202, + "id": 9436, "name": "b", "nodeType": "VariableDeclaration", - "scope": 7217, - "src": "474:6:22", + "scope": 9451, + "src": "474:6:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1581,10 +1581,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7201, + "id": 9435, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "474:4:22", + "src": "474:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1595,11 +1595,11 @@ }, { "constant": false, - "id": 7204, + "id": 9438, "name": "c", "nodeType": "VariableDeclaration", - "scope": 7217, - "src": "482:6:22", + "scope": 9451, + "src": "482:6:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1607,10 +1607,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7203, + "id": 9437, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "482:4:22", + "src": "482:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1620,20 +1620,20 @@ "visibility": "internal" } ], - "src": "465:24:22" + "src": "465:24:31" }, "payable": false, "returnParameters": { - "id": 7208, + "id": 9442, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7207, + "id": 9441, "name": "", "nodeType": "VariableDeclaration", - "scope": 7217, - "src": "510:4:22", + "scope": 9451, + "src": "510:4:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1641,10 +1641,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7206, + "id": 9440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "510:4:22", + "src": "510:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1654,20 +1654,20 @@ "visibility": "internal" } ], - "src": "509:6:22" + "src": "509:6:31" }, - "scope": 7218, - "src": "446:119:22", + "scope": 9452, + "src": "446:119:31", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 7219, - "src": "58:509:22" + "scope": 9453, + "src": "58:509:31" } ], - "src": "0:568:22" + "src": "0:568:31" }, "compiler": { "name": "solc", @@ -1675,5 +1675,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:55:06.464Z" + "updatedAt": "2018-12-06T13:18:18.790Z" } \ No newline at end of file diff --git a/build/contracts/Versionable.json b/build/contracts/Versionable.json index 87748a6f..390a7086 100644 --- a/build/contracts/Versionable.json +++ b/build/contracts/Versionable.json @@ -29,22 +29,22 @@ ], "bytecode": "0x608060405234801561001057600080fd5b506040516020806100cc83398101604052516000556099806100336000396000f300608060405260043610603e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166354fd4d5081146043575b600080fd5b348015604e57600080fd5b5060556067565b60408051918252519081900360200190f35b600054815600a165627a7a72305820e3002d640782f820601bf88eed64a696d4b75acc0b6c32a1dc33605c453310ea0029", "deployedBytecode": "0x608060405260043610603e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166354fd4d5081146043575b600080fd5b348015604e57600080fd5b5060556067565b60408051918252519081900360200190f35b600054815600a165627a7a72305820e3002d640782f820601bf88eed64a696d4b75acc0b6c32a1dc33605c453310ea0029", - "sourceMap": "26:124:37:-;;;79:69;8:9:-1;5:2;;;30:1;27;20:12;5:2;79:69:37;;;;;;;;;;;;;123:7;:18;26:124;;;;;;", - "deployedSourceMap": "26:124:37:-;;;;;;;;;;;;;;;;;;;;;;;53:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:37;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "sourceMap": "26:124:48:-;;;79:69;8:9:-1;5:2;;;30:1;27;20:12;5:2;79:69:48;;;;;;;;;;;;;123:7;:18;26:124;;;;;;", + "deployedSourceMap": "26:124:48:-;;;;;;;;;;;;;;;;;;;;;;;53:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:48;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.24;\n\ncontract Versionable {\n uint public version;\n\n constructor(uint _version) public {\n version = _version;\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "exportedSymbols": { "Versionable": [ - 9516 + 11833 ] }, - "id": 9517, + "id": 11834, "nodeType": "SourceUnit", "nodes": [ { - "id": 9503, + "id": 11820, "literals": [ "solidity", "^", @@ -52,7 +52,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:37" + "src": "0:24:48" }, { "baseContracts": [], @@ -60,20 +60,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 9516, + "id": 11833, "linearizedBaseContracts": [ - 9516 + 11833 ], "name": "Versionable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 9505, + "id": 11822, "name": "version", "nodeType": "VariableDeclaration", - "scope": 9516, - "src": "53:19:37", + "scope": 11833, + "src": "53:19:48", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -81,10 +81,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9504, + "id": 11821, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "53:4:37", + "src": "53:4:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -95,26 +95,26 @@ }, { "body": { - "id": 9514, + "id": 11831, "nodeType": "Block", - "src": "113:35:37", + "src": "113:35:48", "statements": [ { "expression": { "argumentTypes": null, - "id": 9512, + "id": 11829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 9510, + "id": 11827, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9505, - "src": "123:7:37", + "referencedDeclaration": 11822, + "src": "123:7:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -124,31 +124,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 9511, + "id": 11828, "name": "_version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9507, - "src": "133:8:37", + "referencedDeclaration": 11824, + "src": "133:8:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "123:18:37", + "src": "123:18:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9513, + "id": 11830, "nodeType": "ExpressionStatement", - "src": "123:18:37" + "src": "123:18:48" } ] }, "documentation": null, - "id": 9515, + "id": 11832, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -156,16 +156,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 9508, + "id": 11825, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9507, + "id": 11824, "name": "_version", "nodeType": "VariableDeclaration", - "scope": 9515, - "src": "91:13:37", + "scope": 11832, + "src": "91:13:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -173,10 +173,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9506, + "id": 11823, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "91:4:37", + "src": "91:4:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -186,40 +186,40 @@ "visibility": "internal" } ], - "src": "90:15:37" + "src": "90:15:48" }, "payable": false, "returnParameters": { - "id": 9509, + "id": 11826, "nodeType": "ParameterList", "parameters": [], - "src": "113:0:37" + "src": "113:0:48" }, - "scope": 9516, - "src": "79:69:37", + "scope": 11833, + "src": "79:69:48", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 9517, - "src": "26:124:37" + "scope": 11834, + "src": "26:124:48" } ], - "src": "0:151:37" + "src": "0:151:48" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "exportedSymbols": { "Versionable": [ - 9516 + 11833 ] }, - "id": 9517, + "id": 11834, "nodeType": "SourceUnit", "nodes": [ { - "id": 9503, + "id": 11820, "literals": [ "solidity", "^", @@ -227,7 +227,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:37" + "src": "0:24:48" }, { "baseContracts": [], @@ -235,20 +235,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 9516, + "id": 11833, "linearizedBaseContracts": [ - 9516 + 11833 ], "name": "Versionable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 9505, + "id": 11822, "name": "version", "nodeType": "VariableDeclaration", - "scope": 9516, - "src": "53:19:37", + "scope": 11833, + "src": "53:19:48", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -256,10 +256,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9504, + "id": 11821, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "53:4:37", + "src": "53:4:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -270,26 +270,26 @@ }, { "body": { - "id": 9514, + "id": 11831, "nodeType": "Block", - "src": "113:35:37", + "src": "113:35:48", "statements": [ { "expression": { "argumentTypes": null, - "id": 9512, + "id": 11829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 9510, + "id": 11827, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9505, - "src": "123:7:37", + "referencedDeclaration": 11822, + "src": "123:7:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -299,31 +299,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 9511, + "id": 11828, "name": "_version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9507, - "src": "133:8:37", + "referencedDeclaration": 11824, + "src": "133:8:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "123:18:37", + "src": "123:18:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9513, + "id": 11830, "nodeType": "ExpressionStatement", - "src": "123:18:37" + "src": "123:18:48" } ] }, "documentation": null, - "id": 9515, + "id": 11832, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -331,16 +331,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 9508, + "id": 11825, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9507, + "id": 11824, "name": "_version", "nodeType": "VariableDeclaration", - "scope": 9515, - "src": "91:13:37", + "scope": 11832, + "src": "91:13:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -348,10 +348,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9506, + "id": 11823, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "91:4:37", + "src": "91:4:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -361,27 +361,27 @@ "visibility": "internal" } ], - "src": "90:15:37" + "src": "90:15:48" }, "payable": false, "returnParameters": { - "id": 9509, + "id": 11826, "nodeType": "ParameterList", "parameters": [], - "src": "113:0:37" + "src": "113:0:48" }, - "scope": 9516, - "src": "79:69:37", + "scope": 11833, + "src": "79:69:48", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 9517, - "src": "26:124:37" + "scope": 11834, + "src": "26:124:48" } ], - "src": "0:151:37" + "src": "0:151:48" }, "compiler": { "name": "solc", @@ -389,5 +389,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.346Z" + "updatedAt": "2018-12-06T13:14:33.229Z" } \ No newline at end of file diff --git a/build/contracts/VersionsLedger.json b/build/contracts/VersionsLedger.json index fbfa544f..6818653b 100644 --- a/build/contracts/VersionsLedger.json +++ b/build/contracts/VersionsLedger.json @@ -1,6 +1,20 @@ { "contractName": "VersionsLedger", "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [ @@ -20,15 +34,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [ @@ -51,7 +56,7 @@ { "constant": true, "inputs": [], - "name": "owner", + "name": "primary", "outputs": [ { "name": "", @@ -62,20 +67,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [ @@ -99,29 +90,12 @@ "anonymous": false, "inputs": [ { - "indexed": true, - "name": "previousOwner", - "type": "address" - } - ], - "name": "OwnershipRenounced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", + "indexed": false, + "name": "recipient", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "PrimaryTransferred", "type": "event" }, { @@ -189,24 +163,24 @@ "type": "function" } ], - "bytecode": "0x608060405260008054600160a060020a031916331790556105f9806100256000396000f3006080604052600436106100a35763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633b5f842b81146100a8578063558614c7146100dc5780636d0cc8951461010a578063715018a61461016f57806387aee00e146101865780638da5cb5b146101b0578063a39fac12146101c5578063e39a7518146101da578063f2fde38b146101fe578063f53749071461021f575b600080fd5b3480156100b457600080fd5b506100c0600435610240565b60408051600160a060020a039092168252519081900360200190f35b3480156100e857600080fd5b506100f161025b565b6040805192835290151560208301528051918290030190f35b34801561011657600080fd5b5061011f610295565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561015b578181015183820152602001610143565b505050509050019250505060405180910390f35b34801561017b57600080fd5b506101846102ed565b005b34801561019257600080fd5b5061019e600435610359565b60408051918252519081900360200190f35b3480156101bc57600080fd5b506100c0610378565b3480156101d157600080fd5b5061011f610387565b3480156101e657600080fd5b50610184600160a060020a0360043516602435610451565b34801561020a57600080fd5b50610184600160a060020a036004351661051b565b34801561022b57600080fd5b5061019e600160a060020a036004351661053e565b600260205260009081526040902054600160a060020a031681565b6001546000908190151561026e57610291565b50600180548190600019810190811061028357fe5b906000526020600020015491505b9091565b606060018054806020026020016040519081016040528092919081815260200182805480156102e357602002820191906000526020600020905b8154815260200190600101908083116102cf575b5050505050905090565b600054600160a060020a0316331461030457600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600180548290811061036757fe5b600091825260209091200154905081565b600054600160a060020a031681565b6001546060908190600090151561039d5761044c565b6001546040805182815260208084028201019091529080156103c9578160200160208202803883390190505b509150600090505b60015481101561044857600260006001838154811015156103ee57fe5b9060005260206000200154815260200190815260200160002060009054906101000a9004600160a060020a0316828281518110151561042957fe5b600160a060020a039092166020928302909101909101526001016103d1565b8192505b505090565b60008054600160a060020a0316331461046957600080fd5b600082815260026020526040902054600160a060020a03161561048b57600080fd5b61049361025b565b5090508181106104a257600080fd5b50600180548082019091557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60181905560008181526002602090815260408083208054600160a060020a0390961673ffffffffffffffffffffffffffffffffffffffff1990961686179055938252600390529190912055565b600054600160a060020a0316331461053257600080fd5b61053b81610550565b50565b60036020526000908152604090205481565b600160a060020a038116151561056557600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058208896162ad429942fd27be272bd9067c159d41b69a469d4b160877feb9ba64ec80029", - "deployedBytecode": "0x6080604052600436106100a35763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633b5f842b81146100a8578063558614c7146100dc5780636d0cc8951461010a578063715018a61461016f57806387aee00e146101865780638da5cb5b146101b0578063a39fac12146101c5578063e39a7518146101da578063f2fde38b146101fe578063f53749071461021f575b600080fd5b3480156100b457600080fd5b506100c0600435610240565b60408051600160a060020a039092168252519081900360200190f35b3480156100e857600080fd5b506100f161025b565b6040805192835290151560208301528051918290030190f35b34801561011657600080fd5b5061011f610295565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561015b578181015183820152602001610143565b505050509050019250505060405180910390f35b34801561017b57600080fd5b506101846102ed565b005b34801561019257600080fd5b5061019e600435610359565b60408051918252519081900360200190f35b3480156101bc57600080fd5b506100c0610378565b3480156101d157600080fd5b5061011f610387565b3480156101e657600080fd5b50610184600160a060020a0360043516602435610451565b34801561020a57600080fd5b50610184600160a060020a036004351661051b565b34801561022b57600080fd5b5061019e600160a060020a036004351661053e565b600260205260009081526040902054600160a060020a031681565b6001546000908190151561026e57610291565b50600180548190600019810190811061028357fe5b906000526020600020015491505b9091565b606060018054806020026020016040519081016040528092919081815260200182805480156102e357602002820191906000526020600020905b8154815260200190600101908083116102cf575b5050505050905090565b600054600160a060020a0316331461030457600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600180548290811061036757fe5b600091825260209091200154905081565b600054600160a060020a031681565b6001546060908190600090151561039d5761044c565b6001546040805182815260208084028201019091529080156103c9578160200160208202803883390190505b509150600090505b60015481101561044857600260006001838154811015156103ee57fe5b9060005260206000200154815260200190815260200160002060009054906101000a9004600160a060020a0316828281518110151561042957fe5b600160a060020a039092166020928302909101909101526001016103d1565b8192505b505090565b60008054600160a060020a0316331461046957600080fd5b600082815260026020526040902054600160a060020a03161561048b57600080fd5b61049361025b565b5090508181106104a257600080fd5b50600180548082019091557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60181905560008181526002602090815260408083208054600160a060020a0390961673ffffffffffffffffffffffffffffffffffffffff1990961686179055938252600390529190912055565b600054600160a060020a0316331461053257600080fd5b61053b81610550565b50565b60036020526000908152604090205481565b600160a060020a038116151561056557600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058208896162ad429942fd27be272bd9067c159d41b69a469d4b160877feb9ba64ec80029", - "sourceMap": "213:1206:38:-;;;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;213:1206:38;;;;;;", - "deployedSourceMap": "213:1206:38:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;359:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;359:48:38;;;;;;;;;-1:-1:-1;;;;;359:48:38;;;;;;;;;;;;;;1223:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1223:194:38;;;;;;;;;;;;;;;;;;;;;;;;;;;812:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;812:84:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;812:84:38;;;;;;;;;;;;;;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;;;281:22:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;281:22:38;;;;;;;;;;;;;;;;;;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;902:315:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;902:315:38;;;;468:338;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;468:338:38;-1:-1:-1;;;;;468:338:38;;;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;-1:-1:-1;;;;;1274:103:45;;;;;413:48:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;413:48:38;-1:-1:-1;;;;;413:48:38;;;;;359;;;;;;;;;;;;-1:-1:-1;;;;;359:48:38;;:::o;1223:194::-;1310:8;:15;1270:12;;;;1310:20;1306:33;;;1332:7;;1306:33;-1:-1:-1;1357:4:38;1390:15;;1357:4;;-1:-1:-1;;1390:19:38;;;1381:29;;;;;;;;;;;;;;1371:39;;1223:194;;;:::o;812:84::-;856:6;881:8;874:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;812:84;:::o;1001:111:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1077:5;;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;;1105:1;1089:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;281:22:38:-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:22:38;:::o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;902:315:38:-;972:8;:15;947:9;;;;1083:6;;972:20;968:33;;;994:7;;968:33;1051:8;:15;1037:30;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;1037:30:38;;1011:56;;1092:1;1083:10;;1078:109;1099:8;:15;1095:19;;1078:109;;;1147:16;:29;1164:8;1173:1;1164:11;;;;;;;;;;;;;;;;;;1147:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1147:29:38;1135:6;1142:1;1135:9;;;;;;;;;;-1:-1:-1;;;;;1135:41:38;;;:9;;;;;;;;;;:41;1116:3;;1078:109;;;1204:6;1197:13;;902:315;;;;:::o;468:338::-;607:10;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;592:1:38;555:25;;;:16;:25;;;;;;-1:-1:-1;;;;;555:25:38;:39;547:48;;;;;;623:16;:14;:16::i;:::-;-1:-1:-1;606:33:38;-1:-1:-1;658:15:38;;;650:24;;;;;;-1:-1:-1;685:8:38;27:10:-1;;23:18;;;45:23;;;685:22:38;;;;;-1:-1:-1;717:25:38;;;:16;685:22;717:25;;;;;;;:36;;-1:-1:-1;;;;;717:36:38;;;-1:-1:-1;;717:36:38;;;;;;;763:26;;;:16;:26;;;;;;:36;468:338::o;1274:103:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;413:48:38:-;;;;;;;;;;;;;:::o;1512:171:45:-;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;;1617:38;;;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o", - "source": "pragma solidity ^0.4.24;\n\n// https://semver.org. Version represent as decimal number, 4 decimals per part, max 9999 9999 9999\n// 1.1.1 => 100010001\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\ncontract VersionsLedger is Ownable {\n // all versions in net\n uint[] public versions;\n\n // used only one main address to map version\n mapping(uint => address) public addressByVersion;\n mapping(address => uint) public versionByAddress;\n\n function setVersion(address _address, uint version) public onlyOwner {\n require(addressByVersion[version] == address(0));\n\n (uint lastV, ) = getLastVersion();\n\n require(lastV < version);\n\n versions.push(version);\n addressByVersion[version] = _address;\n versionByAddress[_address] = version;\n }\n\n function getVersions() public view returns (uint[]) {\n return versions;\n }\n\n function getAddresses() public view returns (address[]) {\n if (versions.length == 0) return;\n\n address[] memory result = new address[](versions.length);\n\n for (uint i = 0; i < versions.length; i++) {\n result[i] = addressByVersion[versions[i]];\n }\n\n return result;\n }\n\n function getLastVersion() public view returns (uint version, bool found) {\n if (versions.length == 0) return;\n\n found = true;\n version = versions[versions.length - 1];\n }\n}\n", + "bytecode": "0x6080604081905260008054600160a060020a031916331790819055600160a060020a031681527f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d990602090a16105608061005a6000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632348238c811461009d5780633b5f842b146100c0578063558614c7146100f45780636d0cc8951461012257806387aee00e14610187578063a39fac12146101b1578063c6dbdf61146101c6578063e39a7518146101db578063f5374907146101ff575b600080fd5b3480156100a957600080fd5b506100be600160a060020a0360043516610220565b005b3480156100cc57600080fd5b506100d86004356102b3565b60408051600160a060020a039092168252519081900360200190f35b34801561010057600080fd5b506101096102ce565b6040805192835290151560208301528051918290030190f35b34801561012e57600080fd5b50610137610308565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561017357818101518382015260200161015b565b505050509050019250505060405180910390f35b34801561019357600080fd5b5061019f600435610360565b60408051918252519081900360200190f35b3480156101bd57600080fd5b5061013761037f565b3480156101d257600080fd5b506100d8610449565b3480156101e757600080fd5b506100be600160a060020a0360043516602435610458565b34801561020b57600080fd5b5061019f600160a060020a0360043516610522565b600054600160a060020a0316331461023757600080fd5b600160a060020a038116151561024c57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600260205260009081526040902054600160a060020a031681565b600154600090819015156102e157610304565b5060018054819060001981019081106102f657fe5b906000526020600020015491505b9091565b6060600180548060200260200160405190810160405280929190818152602001828054801561035657602002820191906000526020600020905b815481526020019060010190808311610342575b5050505050905090565b600180548290811061036e57fe5b600091825260209091200154905081565b6001546060908190600090151561039557610444565b6001546040805182815260208084028201019091529080156103c1578160200160208202803883390190505b509150600090505b60015481101561044057600260006001838154811015156103e657fe5b9060005260206000200154815260200190815260200160002060009054906101000a9004600160a060020a0316828281518110151561042157fe5b600160a060020a039092166020928302909101909101526001016103c9565b8192505b505090565b600054600160a060020a031690565b60008054600160a060020a0316331461047057600080fd5b600082815260026020526040902054600160a060020a03161561049257600080fd5b61049a6102ce565b5090508181106104a957600080fd5b50600180548082019091557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60181905560008181526002602090815260408083208054600160a060020a0390961673ffffffffffffffffffffffffffffffffffffffff1990961686179055938252600390529190912055565b600360205260009081526040902054815600a165627a7a72305820ae54d7af49a5284c534f72d3edbc9ad29914fa3befa7aa3b891e34207dab36510029", + "deployedBytecode": "0x6080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632348238c811461009d5780633b5f842b146100c0578063558614c7146100f45780636d0cc8951461012257806387aee00e14610187578063a39fac12146101b1578063c6dbdf61146101c6578063e39a7518146101db578063f5374907146101ff575b600080fd5b3480156100a957600080fd5b506100be600160a060020a0360043516610220565b005b3480156100cc57600080fd5b506100d86004356102b3565b60408051600160a060020a039092168252519081900360200190f35b34801561010057600080fd5b506101096102ce565b6040805192835290151560208301528051918290030190f35b34801561012e57600080fd5b50610137610308565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561017357818101518382015260200161015b565b505050509050019250505060405180910390f35b34801561019357600080fd5b5061019f600435610360565b60408051918252519081900360200190f35b3480156101bd57600080fd5b5061013761037f565b3480156101d257600080fd5b506100d8610449565b3480156101e757600080fd5b506100be600160a060020a0360043516602435610458565b34801561020b57600080fd5b5061019f600160a060020a0360043516610522565b600054600160a060020a0316331461023757600080fd5b600160a060020a038116151561024c57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600260205260009081526040902054600160a060020a031681565b600154600090819015156102e157610304565b5060018054819060001981019081106102f657fe5b906000526020600020015491505b9091565b6060600180548060200260200160405190810160405280929190818152602001828054801561035657602002820191906000526020600020905b815481526020019060010190808311610342575b5050505050905090565b600180548290811061036e57fe5b600091825260209091200154905081565b6001546060908190600090151561039557610444565b6001546040805182815260208084028201019091529080156103c1578160200160208202803883390190505b509150600090505b60015481101561044057600260006001838154811015156103e657fe5b9060005260206000200154815260200190815260200160002060009054906101000a9004600160a060020a0316828281518110151561042157fe5b600160a060020a039092166020928302909101909101526001016103c9565b8192505b505090565b600054600160a060020a031690565b60008054600160a060020a0316331461047057600080fd5b600082815260026020526040902054600160a060020a03161561049257600080fd5b61049a6102ce565b5090508181106104a957600080fd5b50600180548082019091557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60181905560008181526002602090815260408083208054600160a060020a0390961673ffffffffffffffffffffffffffffffffffffffff1990961686179055938252600390529190912055565b600360205260009081526040902054815600a165627a7a72305820ae54d7af49a5284c534f72d3edbc9ad29914fa3befa7aa3b891e34207dab36510029", + "sourceMap": "215:1210:49:-;;;;;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;-1:-1:-1;;;;;436:8:55;417:28;;;;;;;215:1210:49;;;;;;", + "deployedSourceMap": "215:1210:49:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;-1:-1:-1;;;;;855:171:55;;;;;;;363:48:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;363:48:49;;;;;;;;;-1:-1:-1;;;;;363:48:49;;;;;;;;;;;;;;1229:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1229:194:49;;;;;;;;;;;;;;;;;;;;;;;;;;;818:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;818:84:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;818:84:49;;;;;;;;;;;;;;;;;285:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;285:22:49;;;;;;;;;;;;;;;;;;;;;908:315;;8:9:-1;5:2;;;30:1;27;20:12;5:2;908:315:49;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;472:340:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;472:340:49;-1:-1:-1;;;;;472:340:49;;;;;;;417:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;417:48:49;-1:-1:-1;;;;;417:48:49;;;;;855:171:55;586:8;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;363:48:49:-;;;;;;;;;;;;-1:-1:-1;;;;;363:48:49;;:::o;1229:194::-;1316:8;:15;1276:12;;;;1316:20;1312:33;;;1338:7;;1312:33;-1:-1:-1;1363:4:49;1396:15;;1363:4;;-1:-1:-1;;1396:19:49;;;1387:29;;;;;;;;;;;;;;1377:39;;1229:194;;;:::o;818:84::-;862:6;887:8;880:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;818:84;:::o;285:22::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;285:22:49;:::o;908:315::-;978:8;:15;953:9;;;;1089:6;;978:20;974:33;;;1000:7;;974:33;1057:8;:15;1043:30;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;1043:30:49;;1017:56;;1098:1;1089:10;;1084:109;1105:8;:15;1101:19;;1084:109;;;1153:16;:29;1170:8;1179:1;1170:11;;;;;;;;;;;;;;;;;;1153:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1153:29:49;1141:6;1148:1;1141:9;;;;;;;;;;-1:-1:-1;;;;;1141:41:49;;;:9;;;;;;;;;;:41;1122:3;;1084:109;;;1210:6;1203:13;;908:315;;;;:::o;664:75:55:-;704:7;726:8;-1:-1:-1;;;;;726:8:55;664:75;:::o;472:340:49:-;613:10;586:8:55;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;598:1:49;561:25;;;:16;:25;;;;;;-1:-1:-1;;;;;561:25:49;:39;553:48;;;;;;629:16;:14;:16::i;:::-;-1:-1:-1;612:33:49;-1:-1:-1;664:15:49;;;656:24;;;;;;-1:-1:-1;691:8:49;27:10:-1;;23:18;;;45:23;;;691:22:49;;;;;-1:-1:-1;723:25:49;;;:16;691:22;723:25;;;;;;;:36;;-1:-1:-1;;;;;723:36:49;;;-1:-1:-1;;723:36:49;;;;;;;769:26;;;:16;:26;;;;;;:36;472:340::o;417:48::-;;;;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\n// https://semver.org. Version represent as decimal number, 4 decimals per part, max 9999 9999 9999\n// 1.1.1 => 100010001\nimport \"openzeppelin-solidity/contracts/ownership/Secondary.sol\";\n\ncontract VersionsLedger is Secondary {\n // all versions in net\n uint[] public versions;\n\n // used only one main address to map version\n mapping(uint => address) public addressByVersion;\n mapping(address => uint) public versionByAddress;\n\n function setVersion(address _address, uint version) public onlyPrimary {\n require(addressByVersion[version] == address(0));\n\n (uint lastV, ) = getLastVersion();\n\n require(lastV < version);\n\n versions.push(version);\n addressByVersion[version] = _address;\n versionByAddress[_address] = version;\n }\n\n function getVersions() public view returns (uint[]) {\n return versions;\n }\n\n function getAddresses() public view returns (address[]) {\n if (versions.length == 0) return;\n\n address[] memory result = new address[](versions.length);\n\n for (uint i = 0; i < versions.length; i++) {\n result[i] = addressByVersion[versions[i]];\n }\n\n return result;\n }\n\n function getLastVersion() public view returns (uint version, bool found) {\n if (versions.length == 0) return;\n\n found = true;\n version = versions[versions.length - 1];\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/versioning/VersionsLedger.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/versioning/VersionsLedger.sol", "exportedSymbols": { "VersionsLedger": [ - 9667 + 11984 ] }, - "id": 9668, + "id": 11985, "nodeType": "SourceUnit", "nodes": [ { - "id": 9518, + "id": 11835, "literals": [ "solidity", "^", @@ -214,16 +188,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:38" + "src": "0:24:49" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 9519, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 11836, "nodeType": "ImportDirective", - "scope": 9668, - "sourceUnit": 10135, - "src": "148:63:38", + "scope": 11985, + "sourceUnit": 12454, + "src": "148:65:49", "symbolAliases": [], "unitAlias": "" }, @@ -233,42 +207,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 9520, - "name": "Ownable", + "id": 11837, + "name": "Secondary", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "240:7:38", + "referencedDeclaration": 12453, + "src": "242:9:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" } }, - "id": 9521, + "id": 11838, "nodeType": "InheritanceSpecifier", - "src": "240:7:38" + "src": "242:9:49" } ], "contractDependencies": [ - 10134 + 12453 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 9667, + "id": 11984, "linearizedBaseContracts": [ - 9667, - 10134 + 11984, + 12453 ], "name": "VersionsLedger", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 9524, + "id": 11841, "name": "versions", "nodeType": "VariableDeclaration", - "scope": 9667, - "src": "281:22:38", + "scope": 11984, + "src": "285:22:49", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -277,19 +251,19 @@ }, "typeName": { "baseType": { - "id": 9522, + "id": 11839, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "281:4:38", + "src": "285:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9523, + "id": 11840, "length": null, "nodeType": "ArrayTypeName", - "src": "281:6:38", + "src": "285:6:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -300,11 +274,11 @@ }, { "constant": false, - "id": 9528, + "id": 11845, "name": "addressByVersion", "nodeType": "VariableDeclaration", - "scope": 9667, - "src": "359:48:38", + "scope": 11984, + "src": "363:48:49", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -312,28 +286,28 @@ "typeString": "mapping(uint256 => address)" }, "typeName": { - "id": 9527, + "id": 11844, "keyType": { - "id": 9525, + "id": 11842, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "367:4:38", + "src": "371:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "359:24:38", + "src": "363:24:49", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" }, "valueType": { - "id": 9526, + "id": 11843, "name": "address", "nodeType": "ElementaryTypeName", - "src": "375:7:38", + "src": "379:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -345,11 +319,11 @@ }, { "constant": false, - "id": 9532, + "id": 11849, "name": "versionByAddress", "nodeType": "VariableDeclaration", - "scope": 9667, - "src": "413:48:38", + "scope": 11984, + "src": "417:48:49", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -357,28 +331,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 9531, + "id": 11848, "keyType": { - "id": 9529, + "id": 11846, "name": "address", "nodeType": "ElementaryTypeName", - "src": "421:7:38", + "src": "425:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "413:24:38", + "src": "417:24:49", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 9530, + "id": 11847, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "432:4:38", + "src": "436:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -390,9 +364,9 @@ }, { "body": { - "id": 9580, + "id": 11897, "nodeType": "Block", - "src": "537:269:38", + "src": "543:269:49", "statements": [ { "expression": { @@ -404,7 +378,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9548, + "id": 11865, "isConstant": false, "isLValue": false, "isPure": false, @@ -413,26 +387,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9542, + "id": 11859, "name": "addressByVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9528, - "src": "555:16:38", + "referencedDeclaration": 11845, + "src": "561:16:49", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 9544, + "id": 11861, "indexExpression": { "argumentTypes": null, - "id": 9543, + "id": 11860, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9536, - "src": "572:7:38", + "referencedDeclaration": 11853, + "src": "578:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -443,7 +417,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "555:25:38", + "src": "561:25:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -457,14 +431,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9546, + "id": 11863, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "592:1:38", + "src": "598:1:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -480,20 +454,20 @@ "typeString": "int_const 0" } ], - "id": 9545, + "id": 11862, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "584:7:38", + "src": "590:7:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9547, + "id": 11864, "isConstant": false, "isLValue": false, "isPure": true, @@ -501,13 +475,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "584:10:38", + "src": "590:10:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "555:39:38", + "src": "561:39:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -521,21 +495,21 @@ "typeString": "bool" } ], - "id": 9541, + "id": 11858, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "547:7:38", + "referencedDeclaration": 13444, + "src": "553:7:49", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9549, + "id": 11866, "isConstant": false, "isLValue": false, "isPure": false, @@ -543,29 +517,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "547:48:38", + "src": "553:48:49", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9550, + "id": 11867, "nodeType": "ExpressionStatement", - "src": "547:48:38" + "src": "553:48:49" }, { "assignments": [ - 9552, + 11869, null ], "declarations": [ { "constant": false, - "id": 9552, + "id": 11869, "name": "lastV", "nodeType": "VariableDeclaration", - "scope": 9581, - "src": "607:10:38", + "scope": 11898, + "src": "613:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -573,10 +547,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9551, + "id": 11868, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "607:4:38", + "src": "613:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -587,24 +561,24 @@ }, null ], - "id": 9555, + "id": 11872, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 9553, + "id": 11870, "name": "getLastVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9666, - "src": "623:14:38", + "referencedDeclaration": 11983, + "src": "629:14:49", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view returns (uint256,bool)" } }, - "id": 9554, + "id": 11871, "isConstant": false, "isLValue": false, "isPure": false, @@ -612,14 +586,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "623:16:38", + "src": "629:16:49", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "606:33:38" + "src": "612:33:49" }, { "expression": { @@ -631,19 +605,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9559, + "id": 11876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9557, + "id": 11874, "name": "lastV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9552, - "src": "658:5:38", + "referencedDeclaration": 11869, + "src": "664:5:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -653,18 +627,18 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 9558, + "id": 11875, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9536, - "src": "666:7:38", + "referencedDeclaration": 11853, + "src": "672:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "658:15:38", + "src": "664:15:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -678,21 +652,21 @@ "typeString": "bool" } ], - "id": 9556, + "id": 11873, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "650:7:38", + "referencedDeclaration": 13444, + "src": "656:7:49", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9560, + "id": 11877, "isConstant": false, "isLValue": false, "isPure": false, @@ -700,15 +674,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "650:24:38", + "src": "656:24:49", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9561, + "id": 11878, "nodeType": "ExpressionStatement", - "src": "650:24:38" + "src": "656:24:49" }, { "expression": { @@ -716,12 +690,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9565, + "id": 11882, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9536, - "src": "699:7:38", + "referencedDeclaration": 11853, + "src": "705:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -737,18 +711,18 @@ ], "expression": { "argumentTypes": null, - "id": 9562, + "id": 11879, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "685:8:38", + "referencedDeclaration": 11841, + "src": "691:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9564, + "id": 11881, "isConstant": false, "isLValue": false, "isPure": false, @@ -756,13 +730,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "685:13:38", + "src": "691:13:49", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) returns (uint256)" } }, - "id": 9566, + "id": 11883, "isConstant": false, "isLValue": false, "isPure": false, @@ -770,20 +744,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "685:22:38", + "src": "691:22:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9567, + "id": 11884, "nodeType": "ExpressionStatement", - "src": "685:22:38" + "src": "691:22:49" }, { "expression": { "argumentTypes": null, - "id": 9572, + "id": 11889, "isConstant": false, "isLValue": false, "isPure": false, @@ -792,26 +766,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9568, + "id": 11885, "name": "addressByVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9528, - "src": "717:16:38", + "referencedDeclaration": 11845, + "src": "723:16:49", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 9570, + "id": 11887, "indexExpression": { "argumentTypes": null, - "id": 9569, + "id": 11886, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9536, - "src": "734:7:38", + "referencedDeclaration": 11853, + "src": "740:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -822,7 +796,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "717:25:38", + "src": "723:25:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -832,31 +806,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 9571, + "id": 11888, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9534, - "src": "745:8:38", + "referencedDeclaration": 11851, + "src": "751:8:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "717:36:38", + "src": "723:36:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 9573, + "id": 11890, "nodeType": "ExpressionStatement", - "src": "717:36:38" + "src": "723:36:49" }, { "expression": { "argumentTypes": null, - "id": 9578, + "id": 11895, "isConstant": false, "isLValue": false, "isPure": false, @@ -865,26 +839,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9574, + "id": 11891, "name": "versionByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9532, - "src": "763:16:38", + "referencedDeclaration": 11849, + "src": "769:16:49", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 9576, + "id": 11893, "indexExpression": { "argumentTypes": null, - "id": 9575, + "id": 11892, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9534, - "src": "780:8:38", + "referencedDeclaration": 11851, + "src": "786:8:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -895,7 +869,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "763:26:38", + "src": "769:26:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -905,68 +879,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 9577, + "id": 11894, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9536, - "src": "792:7:38", + "referencedDeclaration": 11853, + "src": "798:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "763:36:38", + "src": "769:36:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9579, + "id": 11896, "nodeType": "ExpressionStatement", - "src": "763:36:38" + "src": "769:36:49" } ] }, "documentation": null, - "id": 9581, + "id": 11898, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 9539, + "id": 11856, "modifierName": { "argumentTypes": null, - "id": 9538, - "name": "onlyOwner", + "id": 11855, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "527:9:38", + "referencedDeclaration": 12420, + "src": "531:11:49", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "527:9:38" + "src": "531:11:49" } ], "name": "setVersion", "nodeType": "FunctionDefinition", "parameters": { - "id": 9537, + "id": 11854, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9534, + "id": 11851, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 9581, - "src": "488:16:38", + "scope": 11898, + "src": "492:16:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -974,10 +948,10 @@ "typeString": "address" }, "typeName": { - "id": 9533, + "id": 11850, "name": "address", "nodeType": "ElementaryTypeName", - "src": "488:7:38", + "src": "492:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -988,11 +962,11 @@ }, { "constant": false, - "id": 9536, + "id": 11853, "name": "version", "nodeType": "VariableDeclaration", - "scope": 9581, - "src": "506:12:38", + "scope": 11898, + "src": "510:12:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1000,10 +974,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9535, + "id": 11852, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "506:4:38", + "src": "510:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1013,50 +987,50 @@ "visibility": "internal" } ], - "src": "487:32:38" + "src": "491:32:49" }, "payable": false, "returnParameters": { - "id": 9540, + "id": 11857, "nodeType": "ParameterList", "parameters": [], - "src": "537:0:38" + "src": "543:0:49" }, - "scope": 9667, - "src": "468:338:38", + "scope": 11984, + "src": "472:340:49", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9589, + "id": 11906, "nodeType": "Block", - "src": "864:32:38", + "src": "870:32:49", "statements": [ { "expression": { "argumentTypes": null, - "id": 9587, + "id": 11904, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "881:8:38", + "referencedDeclaration": 11841, + "src": "887:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "functionReturnParameters": 9586, - "id": 9588, + "functionReturnParameters": 11903, + "id": 11905, "nodeType": "Return", - "src": "874:15:38" + "src": "880:15:49" } ] }, "documentation": null, - "id": 9590, + "id": 11907, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1064,23 +1038,23 @@ "name": "getVersions", "nodeType": "FunctionDefinition", "parameters": { - "id": 9582, + "id": 11899, "nodeType": "ParameterList", "parameters": [], - "src": "832:2:38" + "src": "838:2:49" }, "payable": false, "returnParameters": { - "id": 9586, + "id": 11903, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9585, + "id": 11902, "name": "", "nodeType": "VariableDeclaration", - "scope": 9590, - "src": "856:6:38", + "scope": 11907, + "src": "862:6:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1089,19 +1063,19 @@ }, "typeName": { "baseType": { - "id": 9583, + "id": 11900, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "856:4:38", + "src": "862:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9584, + "id": 11901, "length": null, "nodeType": "ArrayTypeName", - "src": "856:6:38", + "src": "862:6:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -1111,19 +1085,19 @@ "visibility": "internal" } ], - "src": "855:8:38" + "src": "861:8:49" }, - "scope": 9667, - "src": "812:84:38", + "scope": 11984, + "src": "818:84:49", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9638, + "id": 11955, "nodeType": "Block", - "src": "958:259:38", + "src": "964:259:49", "statements": [ { "condition": { @@ -1132,7 +1106,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9599, + "id": 11916, "isConstant": false, "isLValue": false, "isPure": false, @@ -1141,18 +1115,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9596, + "id": 11913, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "972:8:38", + "referencedDeclaration": 11841, + "src": "978:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9597, + "id": 11914, "isConstant": false, "isLValue": true, "isPure": false, @@ -1160,7 +1134,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "972:15:38", + "src": "978:15:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1171,14 +1145,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9598, + "id": 11915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "991:1:38", + "src": "997:1:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1186,36 +1160,36 @@ }, "value": "0" }, - "src": "972:20:38", + "src": "978:20:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9601, + "id": 11918, "nodeType": "IfStatement", - "src": "968:33:38", + "src": "974:33:49", "trueBody": { "expression": null, - "functionReturnParameters": 9595, - "id": 9600, + "functionReturnParameters": 11912, + "id": 11917, "nodeType": "Return", - "src": "994:7:38" + "src": "1000:7:49" } }, { "assignments": [ - 9605 + 11922 ], "declarations": [ { "constant": false, - "id": 9605, + "id": 11922, "name": "result", "nodeType": "VariableDeclaration", - "scope": 9639, - "src": "1011:23:38", + "scope": 11956, + "src": "1017:23:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1224,19 +1198,19 @@ }, "typeName": { "baseType": { - "id": 9603, + "id": 11920, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1011:7:38", + "src": "1017:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 9604, + "id": 11921, "length": null, "nodeType": "ArrayTypeName", - "src": "1011:9:38", + "src": "1017:9:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1246,7 +1220,7 @@ "visibility": "internal" } ], - "id": 9612, + "id": 11929, "initialValue": { "argumentTypes": null, "arguments": [ @@ -1254,18 +1228,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9609, + "id": 11926, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "1051:8:38", + "referencedDeclaration": 11841, + "src": "1057:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9610, + "id": 11927, "isConstant": false, "isLValue": true, "isPure": false, @@ -1273,7 +1247,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1051:15:38", + "src": "1057:15:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1287,39 +1261,39 @@ "typeString": "uint256" } ], - "id": 9608, + "id": 11925, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "1037:13:38", + "src": "1043:13:49", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 9606, + "id": 11923, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1041:7:38", + "src": "1047:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 9607, + "id": 11924, "length": null, "nodeType": "ArrayTypeName", - "src": "1041:9:38", + "src": "1047:9:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 9611, + "id": 11928, "isConstant": false, "isLValue": false, "isPure": false, @@ -1327,25 +1301,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1037:30:38", + "src": "1043:30:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "1011:56:38" + "src": "1017:56:49" }, { "body": { - "id": 9634, + "id": 11951, "nodeType": "Block", - "src": "1121:66:38", + "src": "1127:66:49", "statements": [ { "expression": { "argumentTypes": null, - "id": 9632, + "id": 11949, "isConstant": false, "isLValue": false, "isPure": false, @@ -1354,26 +1328,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9624, + "id": 11941, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9605, - "src": "1135:6:38", + "referencedDeclaration": 11922, + "src": "1141:6:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 9626, + "id": 11943, "indexExpression": { "argumentTypes": null, - "id": 9625, + "id": 11942, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9614, - "src": "1142:1:38", + "referencedDeclaration": 11931, + "src": "1148:1:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1384,7 +1358,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1135:9:38", + "src": "1141:9:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1396,42 +1370,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9627, + "id": 11944, "name": "addressByVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9528, - "src": "1147:16:38", + "referencedDeclaration": 11845, + "src": "1153:16:49", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 9631, + "id": 11948, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9628, + "id": 11945, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "1164:8:38", + "referencedDeclaration": 11841, + "src": "1170:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9630, + "id": 11947, "indexExpression": { "argumentTypes": null, - "id": 9629, + "id": 11946, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9614, - "src": "1173:1:38", + "referencedDeclaration": 11931, + "src": "1179:1:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1442,7 +1416,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1164:11:38", + "src": "1170:11:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1453,21 +1427,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1147:29:38", + "src": "1153:29:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1135:41:38", + "src": "1141:41:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 9633, + "id": 11950, "nodeType": "ExpressionStatement", - "src": "1135:41:38" + "src": "1141:41:49" } ] }, @@ -1477,19 +1451,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9620, + "id": 11937, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9617, + "id": 11934, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9614, - "src": "1095:1:38", + "referencedDeclaration": 11931, + "src": "1101:1:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1501,18 +1475,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9618, + "id": 11935, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "1099:8:38", + "referencedDeclaration": 11841, + "src": "1105:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9619, + "id": 11936, "isConstant": false, "isLValue": true, "isPure": false, @@ -1520,31 +1494,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1099:15:38", + "src": "1105:15:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1095:19:38", + "src": "1101:19:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 9635, + "id": 11952, "initializationExpression": { "assignments": [ - 9614 + 11931 ], "declarations": [ { "constant": false, - "id": 9614, + "id": 11931, "name": "i", "nodeType": "VariableDeclaration", - "scope": 9639, - "src": "1083:6:38", + "scope": 11956, + "src": "1089:6:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1552,10 +1526,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9613, + "id": 11930, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1083:4:38", + "src": "1089:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1565,18 +1539,18 @@ "visibility": "internal" } ], - "id": 9616, + "id": 11933, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 9615, + "id": 11932, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1092:1:38", + "src": "1098:1:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1585,12 +1559,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1083:10:38" + "src": "1089:10:49" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 9622, + "id": 11939, "isConstant": false, "isLValue": false, "isPure": false, @@ -1598,15 +1572,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1116:3:38", + "src": "1122:3:49", "subExpression": { "argumentTypes": null, - "id": 9621, + "id": 11938, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9614, - "src": "1116:1:38", + "referencedDeclaration": 11931, + "src": "1122:1:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1617,36 +1591,36 @@ "typeString": "uint256" } }, - "id": 9623, + "id": 11940, "nodeType": "ExpressionStatement", - "src": "1116:3:38" + "src": "1122:3:49" }, "nodeType": "ForStatement", - "src": "1078:109:38" + "src": "1084:109:49" }, { "expression": { "argumentTypes": null, - "id": 9636, + "id": 11953, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9605, - "src": "1204:6:38", + "referencedDeclaration": 11922, + "src": "1210:6:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 9595, - "id": 9637, + "functionReturnParameters": 11912, + "id": 11954, "nodeType": "Return", - "src": "1197:13:38" + "src": "1203:13:49" } ] }, "documentation": null, - "id": 9639, + "id": 11956, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1654,23 +1628,23 @@ "name": "getAddresses", "nodeType": "FunctionDefinition", "parameters": { - "id": 9591, + "id": 11908, "nodeType": "ParameterList", "parameters": [], - "src": "923:2:38" + "src": "929:2:49" }, "payable": false, "returnParameters": { - "id": 9595, + "id": 11912, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9594, + "id": 11911, "name": "", "nodeType": "VariableDeclaration", - "scope": 9639, - "src": "947:9:38", + "scope": 11956, + "src": "953:9:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1679,19 +1653,19 @@ }, "typeName": { "baseType": { - "id": 9592, + "id": 11909, "name": "address", "nodeType": "ElementaryTypeName", - "src": "947:7:38", + "src": "953:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 9593, + "id": 11910, "length": null, "nodeType": "ArrayTypeName", - "src": "947:9:38", + "src": "953:9:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1701,19 +1675,19 @@ "visibility": "internal" } ], - "src": "946:11:38" + "src": "952:11:49" }, - "scope": 9667, - "src": "902:315:38", + "scope": 11984, + "src": "908:315:49", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9665, + "id": 11982, "nodeType": "Block", - "src": "1296:121:38", + "src": "1302:121:49", "statements": [ { "condition": { @@ -1722,7 +1696,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9649, + "id": 11966, "isConstant": false, "isLValue": false, "isPure": false, @@ -1731,18 +1705,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9646, + "id": 11963, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "1310:8:38", + "referencedDeclaration": 11841, + "src": "1316:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9647, + "id": 11964, "isConstant": false, "isLValue": true, "isPure": false, @@ -1750,7 +1724,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1310:15:38", + "src": "1316:15:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1761,14 +1735,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9648, + "id": 11965, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1329:1:38", + "src": "1335:1:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1776,40 +1750,40 @@ }, "value": "0" }, - "src": "1310:20:38", + "src": "1316:20:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9651, + "id": 11968, "nodeType": "IfStatement", - "src": "1306:33:38", + "src": "1312:33:49", "trueBody": { "expression": null, - "functionReturnParameters": 9645, - "id": 9650, + "functionReturnParameters": 11962, + "id": 11967, "nodeType": "Return", - "src": "1332:7:38" + "src": "1338:7:49" } }, { "expression": { "argumentTypes": null, - "id": 9654, + "id": 11971, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 9652, + "id": 11969, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9644, - "src": "1349:5:38", + "referencedDeclaration": 11961, + "src": "1355:5:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1820,14 +1794,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 9653, + "id": 11970, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1357:4:38", + "src": "1363:4:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1835,32 +1809,32 @@ }, "value": "true" }, - "src": "1349:12:38", + "src": "1355:12:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 9655, + "id": 11972, "nodeType": "ExpressionStatement", - "src": "1349:12:38" + "src": "1355:12:49" }, { "expression": { "argumentTypes": null, - "id": 9663, + "id": 11980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 9656, + "id": 11973, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9642, - "src": "1371:7:38", + "referencedDeclaration": 11959, + "src": "1377:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1872,25 +1846,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9657, + "id": 11974, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "1381:8:38", + "referencedDeclaration": 11841, + "src": "1387:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9662, + "id": 11979, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9661, + "id": 11978, "isConstant": false, "isLValue": false, "isPure": false, @@ -1899,18 +1873,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9658, + "id": 11975, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "1390:8:38", + "referencedDeclaration": 11841, + "src": "1396:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9659, + "id": 11976, "isConstant": false, "isLValue": true, "isPure": false, @@ -1918,7 +1892,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1390:15:38", + "src": "1396:15:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1929,14 +1903,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 9660, + "id": 11977, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1408:1:38", + "src": "1414:1:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1944,7 +1918,7 @@ }, "value": "1" }, - "src": "1390:19:38", + "src": "1396:19:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1955,26 +1929,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1381:29:38", + "src": "1387:29:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1371:39:38", + "src": "1377:39:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9664, + "id": 11981, "nodeType": "ExpressionStatement", - "src": "1371:39:38" + "src": "1377:39:49" } ] }, "documentation": null, - "id": 9666, + "id": 11983, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1982,23 +1956,23 @@ "name": "getLastVersion", "nodeType": "FunctionDefinition", "parameters": { - "id": 9640, + "id": 11957, "nodeType": "ParameterList", "parameters": [], - "src": "1246:2:38" + "src": "1252:2:49" }, "payable": false, "returnParameters": { - "id": 9645, + "id": 11962, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9642, + "id": 11959, "name": "version", "nodeType": "VariableDeclaration", - "scope": 9666, - "src": "1270:12:38", + "scope": 11983, + "src": "1276:12:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2006,10 +1980,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9641, + "id": 11958, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1270:4:38", + "src": "1276:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2020,11 +1994,11 @@ }, { "constant": false, - "id": 9644, + "id": 11961, "name": "found", "nodeType": "VariableDeclaration", - "scope": 9666, - "src": "1284:10:38", + "scope": 11983, + "src": "1290:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2032,10 +2006,10 @@ "typeString": "bool" }, "typeName": { - "id": 9643, + "id": 11960, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1284:4:38", + "src": "1290:4:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2045,33 +2019,33 @@ "visibility": "internal" } ], - "src": "1269:26:38" + "src": "1275:26:49" }, - "scope": 9667, - "src": "1223:194:38", + "scope": 11984, + "src": "1229:194:49", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 9668, - "src": "213:1206:38" + "scope": 11985, + "src": "215:1210:49" } ], - "src": "0:1420:38" + "src": "0:1426:49" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/versioning/VersionsLedger.sol", "exportedSymbols": { "VersionsLedger": [ - 9667 + 11984 ] }, - "id": 9668, + "id": 11985, "nodeType": "SourceUnit", "nodes": [ { - "id": 9518, + "id": 11835, "literals": [ "solidity", "^", @@ -2079,16 +2053,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:38" + "src": "0:24:49" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 9519, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 11836, "nodeType": "ImportDirective", - "scope": 9668, - "sourceUnit": 10135, - "src": "148:63:38", + "scope": 11985, + "sourceUnit": 12454, + "src": "148:65:49", "symbolAliases": [], "unitAlias": "" }, @@ -2098,42 +2072,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 9520, - "name": "Ownable", + "id": 11837, + "name": "Secondary", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "240:7:38", + "referencedDeclaration": 12453, + "src": "242:9:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" } }, - "id": 9521, + "id": 11838, "nodeType": "InheritanceSpecifier", - "src": "240:7:38" + "src": "242:9:49" } ], "contractDependencies": [ - 10134 + 12453 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 9667, + "id": 11984, "linearizedBaseContracts": [ - 9667, - 10134 + 11984, + 12453 ], "name": "VersionsLedger", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 9524, + "id": 11841, "name": "versions", "nodeType": "VariableDeclaration", - "scope": 9667, - "src": "281:22:38", + "scope": 11984, + "src": "285:22:49", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2142,19 +2116,19 @@ }, "typeName": { "baseType": { - "id": 9522, + "id": 11839, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "281:4:38", + "src": "285:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9523, + "id": 11840, "length": null, "nodeType": "ArrayTypeName", - "src": "281:6:38", + "src": "285:6:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2165,11 +2139,11 @@ }, { "constant": false, - "id": 9528, + "id": 11845, "name": "addressByVersion", "nodeType": "VariableDeclaration", - "scope": 9667, - "src": "359:48:38", + "scope": 11984, + "src": "363:48:49", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2177,28 +2151,28 @@ "typeString": "mapping(uint256 => address)" }, "typeName": { - "id": 9527, + "id": 11844, "keyType": { - "id": 9525, + "id": 11842, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "367:4:38", + "src": "371:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "359:24:38", + "src": "363:24:49", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" }, "valueType": { - "id": 9526, + "id": 11843, "name": "address", "nodeType": "ElementaryTypeName", - "src": "375:7:38", + "src": "379:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2210,11 +2184,11 @@ }, { "constant": false, - "id": 9532, + "id": 11849, "name": "versionByAddress", "nodeType": "VariableDeclaration", - "scope": 9667, - "src": "413:48:38", + "scope": 11984, + "src": "417:48:49", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2222,28 +2196,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 9531, + "id": 11848, "keyType": { - "id": 9529, + "id": 11846, "name": "address", "nodeType": "ElementaryTypeName", - "src": "421:7:38", + "src": "425:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "413:24:38", + "src": "417:24:49", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 9530, + "id": 11847, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "432:4:38", + "src": "436:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2255,9 +2229,9 @@ }, { "body": { - "id": 9580, + "id": 11897, "nodeType": "Block", - "src": "537:269:38", + "src": "543:269:49", "statements": [ { "expression": { @@ -2269,7 +2243,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 9548, + "id": 11865, "isConstant": false, "isLValue": false, "isPure": false, @@ -2278,26 +2252,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9542, + "id": 11859, "name": "addressByVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9528, - "src": "555:16:38", + "referencedDeclaration": 11845, + "src": "561:16:49", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 9544, + "id": 11861, "indexExpression": { "argumentTypes": null, - "id": 9543, + "id": 11860, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9536, - "src": "572:7:38", + "referencedDeclaration": 11853, + "src": "578:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2308,7 +2282,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "555:25:38", + "src": "561:25:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2322,14 +2296,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 9546, + "id": 11863, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "592:1:38", + "src": "598:1:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2345,20 +2319,20 @@ "typeString": "int_const 0" } ], - "id": 9545, + "id": 11862, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "584:7:38", + "src": "590:7:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 9547, + "id": 11864, "isConstant": false, "isLValue": false, "isPure": true, @@ -2366,13 +2340,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "584:10:38", + "src": "590:10:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "555:39:38", + "src": "561:39:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2386,21 +2360,21 @@ "typeString": "bool" } ], - "id": 9541, + "id": 11858, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "547:7:38", + "referencedDeclaration": 13444, + "src": "553:7:49", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9549, + "id": 11866, "isConstant": false, "isLValue": false, "isPure": false, @@ -2408,29 +2382,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "547:48:38", + "src": "553:48:49", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9550, + "id": 11867, "nodeType": "ExpressionStatement", - "src": "547:48:38" + "src": "553:48:49" }, { "assignments": [ - 9552, + 11869, null ], "declarations": [ { "constant": false, - "id": 9552, + "id": 11869, "name": "lastV", "nodeType": "VariableDeclaration", - "scope": 9581, - "src": "607:10:38", + "scope": 11898, + "src": "613:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2438,10 +2412,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9551, + "id": 11868, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "607:4:38", + "src": "613:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2452,24 +2426,24 @@ }, null ], - "id": 9555, + "id": 11872, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 9553, + "id": 11870, "name": "getLastVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9666, - "src": "623:14:38", + "referencedDeclaration": 11983, + "src": "629:14:49", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view returns (uint256,bool)" } }, - "id": 9554, + "id": 11871, "isConstant": false, "isLValue": false, "isPure": false, @@ -2477,14 +2451,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "623:16:38", + "src": "629:16:49", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "606:33:38" + "src": "612:33:49" }, { "expression": { @@ -2496,19 +2470,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9559, + "id": 11876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9557, + "id": 11874, "name": "lastV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9552, - "src": "658:5:38", + "referencedDeclaration": 11869, + "src": "664:5:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2518,18 +2492,18 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 9558, + "id": 11875, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9536, - "src": "666:7:38", + "referencedDeclaration": 11853, + "src": "672:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "658:15:38", + "src": "664:15:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2543,21 +2517,21 @@ "typeString": "bool" } ], - "id": 9556, + "id": 11873, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "650:7:38", + "referencedDeclaration": 13444, + "src": "656:7:49", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9560, + "id": 11877, "isConstant": false, "isLValue": false, "isPure": false, @@ -2565,15 +2539,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "650:24:38", + "src": "656:24:49", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9561, + "id": 11878, "nodeType": "ExpressionStatement", - "src": "650:24:38" + "src": "656:24:49" }, { "expression": { @@ -2581,12 +2555,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9565, + "id": 11882, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9536, - "src": "699:7:38", + "referencedDeclaration": 11853, + "src": "705:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2602,18 +2576,18 @@ ], "expression": { "argumentTypes": null, - "id": 9562, + "id": 11879, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "685:8:38", + "referencedDeclaration": 11841, + "src": "691:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9564, + "id": 11881, "isConstant": false, "isLValue": false, "isPure": false, @@ -2621,13 +2595,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "685:13:38", + "src": "691:13:49", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) returns (uint256)" } }, - "id": 9566, + "id": 11883, "isConstant": false, "isLValue": false, "isPure": false, @@ -2635,20 +2609,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "685:22:38", + "src": "691:22:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9567, + "id": 11884, "nodeType": "ExpressionStatement", - "src": "685:22:38" + "src": "691:22:49" }, { "expression": { "argumentTypes": null, - "id": 9572, + "id": 11889, "isConstant": false, "isLValue": false, "isPure": false, @@ -2657,26 +2631,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9568, + "id": 11885, "name": "addressByVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9528, - "src": "717:16:38", + "referencedDeclaration": 11845, + "src": "723:16:49", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 9570, + "id": 11887, "indexExpression": { "argumentTypes": null, - "id": 9569, + "id": 11886, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9536, - "src": "734:7:38", + "referencedDeclaration": 11853, + "src": "740:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2687,7 +2661,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "717:25:38", + "src": "723:25:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2697,31 +2671,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 9571, + "id": 11888, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9534, - "src": "745:8:38", + "referencedDeclaration": 11851, + "src": "751:8:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "717:36:38", + "src": "723:36:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 9573, + "id": 11890, "nodeType": "ExpressionStatement", - "src": "717:36:38" + "src": "723:36:49" }, { "expression": { "argumentTypes": null, - "id": 9578, + "id": 11895, "isConstant": false, "isLValue": false, "isPure": false, @@ -2730,26 +2704,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9574, + "id": 11891, "name": "versionByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9532, - "src": "763:16:38", + "referencedDeclaration": 11849, + "src": "769:16:49", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 9576, + "id": 11893, "indexExpression": { "argumentTypes": null, - "id": 9575, + "id": 11892, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9534, - "src": "780:8:38", + "referencedDeclaration": 11851, + "src": "786:8:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2760,7 +2734,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "763:26:38", + "src": "769:26:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2770,68 +2744,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 9577, + "id": 11894, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9536, - "src": "792:7:38", + "referencedDeclaration": 11853, + "src": "798:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "763:36:38", + "src": "769:36:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9579, + "id": 11896, "nodeType": "ExpressionStatement", - "src": "763:36:38" + "src": "769:36:49" } ] }, "documentation": null, - "id": 9581, + "id": 11898, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 9539, + "id": 11856, "modifierName": { "argumentTypes": null, - "id": 9538, - "name": "onlyOwner", + "id": 11855, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "527:9:38", + "referencedDeclaration": 12420, + "src": "531:11:49", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "527:9:38" + "src": "531:11:49" } ], "name": "setVersion", "nodeType": "FunctionDefinition", "parameters": { - "id": 9537, + "id": 11854, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9534, + "id": 11851, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 9581, - "src": "488:16:38", + "scope": 11898, + "src": "492:16:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2839,10 +2813,10 @@ "typeString": "address" }, "typeName": { - "id": 9533, + "id": 11850, "name": "address", "nodeType": "ElementaryTypeName", - "src": "488:7:38", + "src": "492:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2853,11 +2827,11 @@ }, { "constant": false, - "id": 9536, + "id": 11853, "name": "version", "nodeType": "VariableDeclaration", - "scope": 9581, - "src": "506:12:38", + "scope": 11898, + "src": "510:12:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2865,10 +2839,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9535, + "id": 11852, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "506:4:38", + "src": "510:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2878,50 +2852,50 @@ "visibility": "internal" } ], - "src": "487:32:38" + "src": "491:32:49" }, "payable": false, "returnParameters": { - "id": 9540, + "id": 11857, "nodeType": "ParameterList", "parameters": [], - "src": "537:0:38" + "src": "543:0:49" }, - "scope": 9667, - "src": "468:338:38", + "scope": 11984, + "src": "472:340:49", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9589, + "id": 11906, "nodeType": "Block", - "src": "864:32:38", + "src": "870:32:49", "statements": [ { "expression": { "argumentTypes": null, - "id": 9587, + "id": 11904, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "881:8:38", + "referencedDeclaration": 11841, + "src": "887:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "functionReturnParameters": 9586, - "id": 9588, + "functionReturnParameters": 11903, + "id": 11905, "nodeType": "Return", - "src": "874:15:38" + "src": "880:15:49" } ] }, "documentation": null, - "id": 9590, + "id": 11907, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2929,23 +2903,23 @@ "name": "getVersions", "nodeType": "FunctionDefinition", "parameters": { - "id": 9582, + "id": 11899, "nodeType": "ParameterList", "parameters": [], - "src": "832:2:38" + "src": "838:2:49" }, "payable": false, "returnParameters": { - "id": 9586, + "id": 11903, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9585, + "id": 11902, "name": "", "nodeType": "VariableDeclaration", - "scope": 9590, - "src": "856:6:38", + "scope": 11907, + "src": "862:6:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2954,19 +2928,19 @@ }, "typeName": { "baseType": { - "id": 9583, + "id": 11900, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "856:4:38", + "src": "862:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9584, + "id": 11901, "length": null, "nodeType": "ArrayTypeName", - "src": "856:6:38", + "src": "862:6:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2976,19 +2950,19 @@ "visibility": "internal" } ], - "src": "855:8:38" + "src": "861:8:49" }, - "scope": 9667, - "src": "812:84:38", + "scope": 11984, + "src": "818:84:49", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9638, + "id": 11955, "nodeType": "Block", - "src": "958:259:38", + "src": "964:259:49", "statements": [ { "condition": { @@ -2997,7 +2971,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9599, + "id": 11916, "isConstant": false, "isLValue": false, "isPure": false, @@ -3006,18 +2980,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9596, + "id": 11913, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "972:8:38", + "referencedDeclaration": 11841, + "src": "978:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9597, + "id": 11914, "isConstant": false, "isLValue": true, "isPure": false, @@ -3025,7 +2999,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "972:15:38", + "src": "978:15:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3036,14 +3010,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9598, + "id": 11915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "991:1:38", + "src": "997:1:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3051,36 +3025,36 @@ }, "value": "0" }, - "src": "972:20:38", + "src": "978:20:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9601, + "id": 11918, "nodeType": "IfStatement", - "src": "968:33:38", + "src": "974:33:49", "trueBody": { "expression": null, - "functionReturnParameters": 9595, - "id": 9600, + "functionReturnParameters": 11912, + "id": 11917, "nodeType": "Return", - "src": "994:7:38" + "src": "1000:7:49" } }, { "assignments": [ - 9605 + 11922 ], "declarations": [ { "constant": false, - "id": 9605, + "id": 11922, "name": "result", "nodeType": "VariableDeclaration", - "scope": 9639, - "src": "1011:23:38", + "scope": 11956, + "src": "1017:23:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3089,19 +3063,19 @@ }, "typeName": { "baseType": { - "id": 9603, + "id": 11920, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1011:7:38", + "src": "1017:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 9604, + "id": 11921, "length": null, "nodeType": "ArrayTypeName", - "src": "1011:9:38", + "src": "1017:9:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -3111,7 +3085,7 @@ "visibility": "internal" } ], - "id": 9612, + "id": 11929, "initialValue": { "argumentTypes": null, "arguments": [ @@ -3119,18 +3093,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9609, + "id": 11926, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "1051:8:38", + "referencedDeclaration": 11841, + "src": "1057:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9610, + "id": 11927, "isConstant": false, "isLValue": true, "isPure": false, @@ -3138,7 +3112,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1051:15:38", + "src": "1057:15:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3152,39 +3126,39 @@ "typeString": "uint256" } ], - "id": 9608, + "id": 11925, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "1037:13:38", + "src": "1043:13:49", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 9606, + "id": 11923, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1041:7:38", + "src": "1047:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 9607, + "id": 11924, "length": null, "nodeType": "ArrayTypeName", - "src": "1041:9:38", + "src": "1047:9:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 9611, + "id": 11928, "isConstant": false, "isLValue": false, "isPure": false, @@ -3192,25 +3166,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1037:30:38", + "src": "1043:30:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "1011:56:38" + "src": "1017:56:49" }, { "body": { - "id": 9634, + "id": 11951, "nodeType": "Block", - "src": "1121:66:38", + "src": "1127:66:49", "statements": [ { "expression": { "argumentTypes": null, - "id": 9632, + "id": 11949, "isConstant": false, "isLValue": false, "isPure": false, @@ -3219,26 +3193,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9624, + "id": 11941, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9605, - "src": "1135:6:38", + "referencedDeclaration": 11922, + "src": "1141:6:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 9626, + "id": 11943, "indexExpression": { "argumentTypes": null, - "id": 9625, + "id": 11942, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9614, - "src": "1142:1:38", + "referencedDeclaration": 11931, + "src": "1148:1:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3249,7 +3223,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1135:9:38", + "src": "1141:9:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3261,42 +3235,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9627, + "id": 11944, "name": "addressByVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9528, - "src": "1147:16:38", + "referencedDeclaration": 11845, + "src": "1153:16:49", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 9631, + "id": 11948, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9628, + "id": 11945, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "1164:8:38", + "referencedDeclaration": 11841, + "src": "1170:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9630, + "id": 11947, "indexExpression": { "argumentTypes": null, - "id": 9629, + "id": 11946, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9614, - "src": "1173:1:38", + "referencedDeclaration": 11931, + "src": "1179:1:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3307,7 +3281,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1164:11:38", + "src": "1170:11:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3318,21 +3292,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1147:29:38", + "src": "1153:29:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1135:41:38", + "src": "1141:41:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 9633, + "id": 11950, "nodeType": "ExpressionStatement", - "src": "1135:41:38" + "src": "1141:41:49" } ] }, @@ -3342,19 +3316,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9620, + "id": 11937, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9617, + "id": 11934, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9614, - "src": "1095:1:38", + "referencedDeclaration": 11931, + "src": "1101:1:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3366,18 +3340,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9618, + "id": 11935, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "1099:8:38", + "referencedDeclaration": 11841, + "src": "1105:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9619, + "id": 11936, "isConstant": false, "isLValue": true, "isPure": false, @@ -3385,31 +3359,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1099:15:38", + "src": "1105:15:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1095:19:38", + "src": "1101:19:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 9635, + "id": 11952, "initializationExpression": { "assignments": [ - 9614 + 11931 ], "declarations": [ { "constant": false, - "id": 9614, + "id": 11931, "name": "i", "nodeType": "VariableDeclaration", - "scope": 9639, - "src": "1083:6:38", + "scope": 11956, + "src": "1089:6:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3417,10 +3391,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9613, + "id": 11930, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1083:4:38", + "src": "1089:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3430,18 +3404,18 @@ "visibility": "internal" } ], - "id": 9616, + "id": 11933, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 9615, + "id": 11932, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1092:1:38", + "src": "1098:1:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3450,12 +3424,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1083:10:38" + "src": "1089:10:49" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 9622, + "id": 11939, "isConstant": false, "isLValue": false, "isPure": false, @@ -3463,15 +3437,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1116:3:38", + "src": "1122:3:49", "subExpression": { "argumentTypes": null, - "id": 9621, + "id": 11938, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9614, - "src": "1116:1:38", + "referencedDeclaration": 11931, + "src": "1122:1:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3482,36 +3456,36 @@ "typeString": "uint256" } }, - "id": 9623, + "id": 11940, "nodeType": "ExpressionStatement", - "src": "1116:3:38" + "src": "1122:3:49" }, "nodeType": "ForStatement", - "src": "1078:109:38" + "src": "1084:109:49" }, { "expression": { "argumentTypes": null, - "id": 9636, + "id": 11953, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9605, - "src": "1204:6:38", + "referencedDeclaration": 11922, + "src": "1210:6:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 9595, - "id": 9637, + "functionReturnParameters": 11912, + "id": 11954, "nodeType": "Return", - "src": "1197:13:38" + "src": "1203:13:49" } ] }, "documentation": null, - "id": 9639, + "id": 11956, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3519,23 +3493,23 @@ "name": "getAddresses", "nodeType": "FunctionDefinition", "parameters": { - "id": 9591, + "id": 11908, "nodeType": "ParameterList", "parameters": [], - "src": "923:2:38" + "src": "929:2:49" }, "payable": false, "returnParameters": { - "id": 9595, + "id": 11912, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9594, + "id": 11911, "name": "", "nodeType": "VariableDeclaration", - "scope": 9639, - "src": "947:9:38", + "scope": 11956, + "src": "953:9:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3544,19 +3518,19 @@ }, "typeName": { "baseType": { - "id": 9592, + "id": 11909, "name": "address", "nodeType": "ElementaryTypeName", - "src": "947:7:38", + "src": "953:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 9593, + "id": 11910, "length": null, "nodeType": "ArrayTypeName", - "src": "947:9:38", + "src": "953:9:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -3566,19 +3540,19 @@ "visibility": "internal" } ], - "src": "946:11:38" + "src": "952:11:49" }, - "scope": 9667, - "src": "902:315:38", + "scope": 11984, + "src": "908:315:49", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9665, + "id": 11982, "nodeType": "Block", - "src": "1296:121:38", + "src": "1302:121:49", "statements": [ { "condition": { @@ -3587,7 +3561,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9649, + "id": 11966, "isConstant": false, "isLValue": false, "isPure": false, @@ -3596,18 +3570,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9646, + "id": 11963, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "1310:8:38", + "referencedDeclaration": 11841, + "src": "1316:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9647, + "id": 11964, "isConstant": false, "isLValue": true, "isPure": false, @@ -3615,7 +3589,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1310:15:38", + "src": "1316:15:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3626,14 +3600,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9648, + "id": 11965, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1329:1:38", + "src": "1335:1:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3641,40 +3615,40 @@ }, "value": "0" }, - "src": "1310:20:38", + "src": "1316:20:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9651, + "id": 11968, "nodeType": "IfStatement", - "src": "1306:33:38", + "src": "1312:33:49", "trueBody": { "expression": null, - "functionReturnParameters": 9645, - "id": 9650, + "functionReturnParameters": 11962, + "id": 11967, "nodeType": "Return", - "src": "1332:7:38" + "src": "1338:7:49" } }, { "expression": { "argumentTypes": null, - "id": 9654, + "id": 11971, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 9652, + "id": 11969, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9644, - "src": "1349:5:38", + "referencedDeclaration": 11961, + "src": "1355:5:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3685,14 +3659,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 9653, + "id": 11970, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1357:4:38", + "src": "1363:4:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3700,32 +3674,32 @@ }, "value": "true" }, - "src": "1349:12:38", + "src": "1355:12:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 9655, + "id": 11972, "nodeType": "ExpressionStatement", - "src": "1349:12:38" + "src": "1355:12:49" }, { "expression": { "argumentTypes": null, - "id": 9663, + "id": 11980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 9656, + "id": 11973, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9642, - "src": "1371:7:38", + "referencedDeclaration": 11959, + "src": "1377:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3737,25 +3711,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9657, + "id": 11974, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "1381:8:38", + "referencedDeclaration": 11841, + "src": "1387:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9662, + "id": 11979, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9661, + "id": 11978, "isConstant": false, "isLValue": false, "isPure": false, @@ -3764,18 +3738,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9658, + "id": 11975, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9524, - "src": "1390:8:38", + "referencedDeclaration": 11841, + "src": "1396:8:49", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 9659, + "id": 11976, "isConstant": false, "isLValue": true, "isPure": false, @@ -3783,7 +3757,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1390:15:38", + "src": "1396:15:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3794,14 +3768,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 9660, + "id": 11977, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1408:1:38", + "src": "1414:1:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3809,7 +3783,7 @@ }, "value": "1" }, - "src": "1390:19:38", + "src": "1396:19:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3820,26 +3794,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1381:29:38", + "src": "1387:29:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1371:39:38", + "src": "1377:39:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9664, + "id": 11981, "nodeType": "ExpressionStatement", - "src": "1371:39:38" + "src": "1377:39:49" } ] }, "documentation": null, - "id": 9666, + "id": 11983, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3847,23 +3821,23 @@ "name": "getLastVersion", "nodeType": "FunctionDefinition", "parameters": { - "id": 9640, + "id": 11957, "nodeType": "ParameterList", "parameters": [], - "src": "1246:2:38" + "src": "1252:2:49" }, "payable": false, "returnParameters": { - "id": 9645, + "id": 11962, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9642, + "id": 11959, "name": "version", "nodeType": "VariableDeclaration", - "scope": 9666, - "src": "1270:12:38", + "scope": 11983, + "src": "1276:12:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3871,10 +3845,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9641, + "id": 11958, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1270:4:38", + "src": "1276:4:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3885,11 +3859,11 @@ }, { "constant": false, - "id": 9644, + "id": 11961, "name": "found", "nodeType": "VariableDeclaration", - "scope": 9666, - "src": "1284:10:38", + "scope": 11983, + "src": "1290:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3897,10 +3871,10 @@ "typeString": "bool" }, "typeName": { - "id": 9643, + "id": 11960, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1284:4:38", + "src": "1290:4:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3910,20 +3884,20 @@ "visibility": "internal" } ], - "src": "1269:26:38" + "src": "1275:26:49" }, - "scope": 9667, - "src": "1223:194:38", + "scope": 11984, + "src": "1229:194:49", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 9668, - "src": "213:1206:38" + "scope": 11985, + "src": "215:1210:49" } ], - "src": "0:1420:38" + "src": "0:1426:49" }, "compiler": { "name": "solc", @@ -3944,5 +3918,5 @@ } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:56:22.045Z" + "updatedAt": "2018-12-06T13:20:48.544Z" } \ No newline at end of file diff --git a/build/contracts/W12Crowdsale.json b/build/contracts/W12Crowdsale.json index 5673aa73..fac9c4e8 100644 --- a/build/contracts/W12Crowdsale.json +++ b/build/contracts/W12Crowdsale.json @@ -15,6 +15,39 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], @@ -71,15 +104,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [], @@ -139,14 +163,23 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], - "name": "owner", + "name": "price", "outputs": [ { "name": "", - "type": "address" + "type": "uint256" } ], "payable": false, @@ -156,11 +189,11 @@ { "constant": true, "inputs": [], - "name": "price", + "name": "fund", "outputs": [ { "name": "", - "type": "uint256" + "type": "address" } ], "payable": false, @@ -170,7 +203,7 @@ { "constant": true, "inputs": [], - "name": "fund", + "name": "primary", "outputs": [ { "name": "", @@ -181,6 +214,34 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -220,20 +281,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [], @@ -369,16 +416,28 @@ "name": "UnsoldTokenReturned", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, { "anonymous": false, "inputs": [ { "indexed": true, - "name": "previousOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipRenounced", + "name": "ProjectOwnerAdded", "type": "event" }, { @@ -386,18 +445,93 @@ "inputs": [ { "indexed": true, - "name": "previousOwner", + "name": "account", "type": "address" - }, + } + ], + "name": "ProjectOwnerRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": true, - "name": "newOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "AdminRemoved", "type": "event" }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -825,24 +959,24 @@ "type": "function" } ], - "bytecode": "0x608060405260016002553480156200001657600080fd5b506040516101408062004f0e83398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015161012090990151600088905560018054600160a060020a03191633179055969895969495939492939192909190600160a060020a03891615156200009857600080fd5b600160a060020a0388161515620000ae57600080fd5b620000c7846401000000006200430d6200020b82021704565b8015620000ec57506064620000ea8564010000000062004b626200024882021704565b105b1515620000f857600080fd5b62000111836401000000006200430d6200020b82021704565b80156200013657506064620001348464010000000062004b626200024882021704565b105b15156200014257600080fd5b600160a060020a03821615156200015857600080fd5b600160a060020a03851615156200016e57600080fd5b600160a060020a03811615156200018457600080fd5b6200019987876401000000006200029a810204565b60038054600160a060020a0319908116600160a060020a039a8b16179091556004805482169a8a169a909a17909955600893909355600b80548916948816949094179093556009556005805487169286169290921790915560068054909516931692909217909255506200033f915050565b600062000220640100000000620002e5810204565b82101580156200024257506200023e640100000000620002ea810204565b8211155b92915050565b60006200025e826401000000006200020b810204565b15156200026a57600080fd5b620002426200028164010000000062000307810204565b8390600a0a6401000000006200475b6200030c82021704565b60008211620002a857600080fd5b600160a060020a0381161515620002be57600080fd5b600791909155600a8054600160a060020a031916600160a060020a03909216919091179055565b600090565b6000620002ff64010000000062000322810204565b600a0a905090565b600290565b600081838115156200031a57fe5b049392505050565b60006200033764010000000062000307810204565b600201905090565b614bbf806200034f6000396000f3006080604052600436106101b35763ffffffff60e060020a60003504166307f5d63381146101b857806311eb8c9f146101c857806313096a41146101f457806314f66d3414610225578063208853c9146102535780632442e1cb1461027d5780632e325020146103b35780632fbe5990146104a4578063313602d4146104b95780633baba4d7146104ce5780634090cb64146104e357806343f48fbd146104f857806354fd4d501461050d578063550fd742146105225780635641f3c314610587578063564566a81461059c578063715018a6146105b1578063792c02ea146105c65780638119c065146105db578063845ddcb2146105f05780638abdf5aa146106395780638aea2af81461064e5780638da5cb5b146106a15780638edd6eb6146106b6578063a035b1fe146106cb578063a4fd6f56146106e0578063b1356488146106f5578063b60d428814610723578063d250185c14610738578063d5b226231461076a578063d6d65f3d146107c6578063daa4cf88146107db578063e89e4ed6146107f0578063e93b054014610808578063f2fde38b14610820578063f6cf09dc14610841578063fc0c546a14610871575b600080fd5b6101c6600435602435610886565b005b3480156101d457600080fd5b506101e0600435610a8d565b604080519115158252519081900360200190f35b34801561020057600080fd5b50610209610aa6565b60408051600160a060020a039092168252519081900360200190f35b34801561023157600080fd5b5061023a610ab5565b6040805192835290151560208301528051918290030190f35b34801561025f57600080fd5b5061026b600435610ae8565b60408051918252519081900360200190f35b34801561028957600080fd5b50610295600435610bde565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103125781810151838201526020016102fa565b50505050905090810190601f16801561033f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561037257818101518382015260200161035a565b50505050905090810190601f16801561039f5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156103bf57600080fd5b506103cb600435610e0b565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561044b578181015183820152602001610433565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561048a578181015183820152602001610472565b505050509050019850505050505050505060405180910390f35b3480156104b057600080fd5b5061026b610fb1565b3480156104c557600080fd5b506101c6610fb7565b3480156104da57600080fd5b5061026b611166565b3480156104ef57600080fd5b5061020961116d565b34801561050457600080fd5b5061020961117c565b34801561051957600080fd5b5061026b61118b565b34801561052e57600080fd5b50610537611191565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561057357818101518382015260200161055b565b505050509050019250505060405180910390f35b34801561059357600080fd5b506102096111a2565b3480156105a857600080fd5b506101e06111b1565b3480156105bd57600080fd5b506101c66111c7565b3480156105d257600080fd5b5061026b611235565b3480156105e757600080fd5b5061020961123b565b3480156105fc57600080fd5b5061060860043561124a565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561064557600080fd5b5061026b611290565b34801561065a57600080fd5b50610669600435602435611296565b604051808260a080838360005b8381101561068e578181015183820152602001610676565b5050505090500191505060405180910390f35b3480156106ad57600080fd5b50610209611721565b3480156106c257600080fd5b50610209611730565b3480156106d757600080fd5b5061026b61173f565b3480156106ec57600080fd5b506101e0611745565b34801561070157600080fd5b5061070a61178c565b6040805163ffffffff9092168252519081900360200190f35b34801561072f57600080fd5b506102096117d3565b34801561074457600080fd5b506107536004356024356117e2565b604080518251815290819083908083836020610676565b34801561077657600080fd5b506101c6602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a435918201910135611801565b3480156107d257600080fd5b5061023a611b2f565b3480156107e757600080fd5b5061023a611baa565b3480156107fc57600080fd5b50610295600435611c2d565b34801561081457600080fd5b506101c6600435611d9b565b34801561082c57600080fd5b506101c6600160a060020a0360043516611e09565b34801561084d57600080fd5b5061085c600435602435611e29565b60405181518152808260808083836020610676565b34801561087d57600080fd5b506102096122a9565b60006108906148a8565b6108986148c7565b6002546001146108a757600080fd5b600280556108b36111b1565b151561092057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b846109296122b8565b146109be576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b15801561097e57600080fd5b505af1158015610992573d6000803e3d6000fd5b505050506040513d60208110156109a857600080fd5b5051600160a060020a031614156109be57600080fd5b6109c6611baa565b5092506109d38585611296565b805160208201519193506109e6916117e2565b90506109f281866122dc565b610a268282600e86815481101515610a0657fe5b600091825260209091206002600590920201015463ffffffff1688612414565b610a3182828761253d565b8151602080840151606080860151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a250506001600255505050565b6000610aa0600c8363ffffffff6127fb16565b92915050565b600454600160a060020a031681565b600f5460009081901580610ace5750610acc611745565b155b15610ad857610ae4565b5050600f546000190160015b9091565b600080600080610af6611baa565b92509250811515610b0657610bd6565b600e805484908110610b1457fe5b90600052602060002090600502019050610bd38582600301805480602002602001604051908101604052809291908181526020018280548015610b7657602002820191906000526020600020905b815481526020019060010190808311610b62575b505050505083600401805480602002602001604051908101604052809291908181526020018280548015610bc957602002820191906000526020600020905b815481526020019060010190808311610bb5575b5050505050612814565b93505b505050919050565b600080600080606080600f87815481101515610bf657fe5b6000918252602090912060059091020154600f805463ffffffff9092169189908110610c1e57fe5b906000526020600020906005020160010154600f89815481101515610c3f57fe5b6000918252602090912060026005909202010154600f805463ffffffff909216918b908110610c6a57fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600f8b815481101515610c9b57fe5b9060005260206000209060050201600301600f8c815481101515610cbb57fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d615780601f10610d3657610100808354040283529160200191610d61565b820191906000526020600020905b815481529060010190602001808311610d4457829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295975086945092508401905082828015610def5780601f10610dc457610100808354040283529160200191610def565b820191906000526020600020905b815481529060010190602001808311610dd257829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600e87815481101515610e2357fe5b6000918252602090912060059091020154600e805463ffffffff9092169189908110610e4b57fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600e89815481101515610e7c57fe5b906000526020600020906005020160010154600e8a815481101515610e9d57fe5b6000918252602090912060026005909202010154600e805463ffffffff909216918c908110610ec857fe5b9060005260206000209060050201600301600e8c815481101515610ee857fe5b906000526020600020906005020160040181805480602002602001604051908101604052809291908181526020018280548015610f4457602002820191906000526020600020905b815481526020019060010190808311610f30575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610def57602002820191906000526020600020905b815481526020019060010190808311610f82575050505050905095509550955095509550955091939550919395565b60095481565b600154600090600160a060020a03163314610fd157600080fd5b610fd9611745565b1515610fe457600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050506040513d602081101561107457600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156110ea57600080fd5b505af11580156110fe573d6000803e3d6000fd5b505050506040513d602081101561111457600080fd5b5051151561112157600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600f545b90565b600354600160a060020a031690565b600654600160a060020a031681565b60005481565b606061119d600c612873565b905090565b600a54600160a060020a031681565b6000806111bc611baa565b9150508091505b5090565b600154600160a060020a031633146111de57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600e5490565b600b54600160a060020a031681565b600e80548290811061125857fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60085481565b61129e6148a8565b6000806112a9611baa565b915091508015156112b957611719565b846112c26122b8565b1461134f576006546040805160e060020a63cfec719f028152600481018890529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561131857600080fd5b505af115801561132c573d6000803e3d6000fd5b505050506040513d602081101561134257600080fd5b5051151561134f57611719565b6117168585600e8581548110151561136357fe5b906000526020600020906005020160010154600e8681548110151561138457fe5b90600052602060002090600502016003018054806020026020016040519081016040528092919081815260200182805480156113df57602002820191906000526020600020905b8154815260200190600101908083116113cb575b5050505050600e878154811015156113f357fe5b906000526020600020906005020160040180548060200260200160405190810160405280929190818152602001828054801561144e57602002820191906000526020600020905b81548152602001906001019080831161143a575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156114b957600080fd5b505af11580156114cd573d6000803e3d6000fd5b505050506040513d60208110156114e357600080fd5b50516007546003546040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b505050506040513d602081101561155c57600080fd5b505160ff168d61156a6122b8565b1461167c57600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115d557600080fd5b505af11580156115e9573d6000803e3d6000fd5b505050506040513d60208110156115ff57600080fd5b50516040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561164857600080fd5b505af115801561165c573d6000803e3d6000fd5b505050506040513d602081101561167257600080fd5b505160ff1661167f565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156116e557600080fd5b505af11580156116f9573d6000803e3d6000fd5b505050506040513d602081101561170f57600080fd5b50516128d0565b92505b505092915050565b600154600160a060020a031681565b600554600160a060020a031690565b60075481565b600e54600090158061119d5750600e8054429190600019810190811061176757fe5b6000918252602090912060059091020154640100000000900463ffffffff1610919050565b600e54600090811061179d57600080fd5b600e805460001981019081106117af57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600554600160a060020a031681565b6117ea6148c7565b6117fa8383600854600954612d0e565b9392505050565b600154600090600160a060020a0316331461181b57600080fd5b600e54600010156118585742600e600081548110151561183757fe5b600091825260209091206005909102015463ffffffff161161185857600080fd5b8b151561186457600080fd5b60ff8c111561187257600080fd5b60ff88111561188057600080fd5b60028604881461188f57600080fd5b6002840488111561189f57600080fd5b8115156118ab57600080fd5b5060005b8181101561195757600654600160a060020a0316637d20abf88484848181106118d457fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b15801561191857600080fd5b505af115801561192c573d6000803e3d6000fd5b505050506040513d602081101561194257600080fd5b5051151561194f57600080fd5b6001016118af565b6119f08d8d808060200260200160405190810160405280939291908181526020016000905b828210156119b8576040805160c0818101909252908084028701906006908390839080828437505050918352505060019091019060200161197c565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612d59945050505050565b611ab78989808060200260200160405190810160405280939291908181526020016000905b82821015611a51576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611a15565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750613262945050505050565b611af783838080602002602001604051908101604052809392919081815260200183836020028082843750600c9594505063ffffffff6137c01692505050565b6040517f072792b04aecd99b2250bc76fb25f9bca793c3b7383cb4c7255a7a01e8f5a12e90600090a150505050505050505050505050565b600f5460009081901580611b485750611b46611745565b155b15611b5257610ae4565b5060015b600f546000190182108015611b9a5750600f805483908110611b7457fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610ae457600190910190611b56565b60008080805b600e54821015611c1f57600e805483908110611bc857fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611c03575080544264010000000090910463ffffffff16115b15611c145781600193509350611c27565b600190910190611bb0565b600093508392505b50509091565b600f805482908110611c3b57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611d015780601f10611cd657610100808354040283529160200191611d01565b820191906000526020600020905b815481529060010190602001808311611ce457829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015611d915780601f10611d6657610100808354040283529160200191611d91565b820191906000526020600020905b815481529060010190602001808311611d7457829003601f168201915b5050505050905086565b600154600160a060020a03163314611db257600080fd5b600e5460001015611def5742600e6000815481101515611dce57fe5b600091825260209091206005909102015463ffffffff1611611def57600080fd5b600a54611e06908290600160a060020a0316613891565b50565b600154600160a060020a03163314611e2057600080fd5b611e06816138e7565b611e316148e2565b600080611e3c611baa565b91509150801515611e4c57611719565b84611e556122b8565b14611ee2576006546040805160e060020a63cfec719f028152600481018890529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611eab57600080fd5b505af1158015611ebf573d6000803e3d6000fd5b505050506040513d6020811015611ed557600080fd5b50511515611ee257611719565b6117168585600e85815481101515611ef657fe5b906000526020600020906005020160010154600e86815481101515611f1757fe5b9060005260206000209060050201600301805480602002602001604051908101604052809291908181526020018280548015611f7257602002820191906000526020600020905b815481526020019060010190808311611f5e575b5050505050600e87815481101515611f8657fe5b9060005260206000209060050201600401805480602002602001604051908101604052809291908181526020018280548015611fe157602002820191906000526020600020905b815481526020019060010190808311611fcd575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561204c57600080fd5b505af1158015612060573d6000803e3d6000fd5b505050506040513d602081101561207657600080fd5b50516007546003546040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b1580156120c557600080fd5b505af11580156120d9573d6000803e3d6000fd5b505050506040513d60208110156120ef57600080fd5b505160ff168d6120fd6122b8565b1461220f57600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561216857600080fd5b505af115801561217c573d6000803e3d6000fd5b505050506040513d602081101561219257600080fd5b50516040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b1580156121db57600080fd5b505af11580156121ef573d6000803e3d6000fd5b505050506040513d602081101561220557600080fd5b505160ff16612212565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561227857600080fd5b505af115801561228c573d6000803e3d6000fd5b505050506040513d60208110156122a257600080fd5b5051613965565b600354600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b6006546040805160e060020a63cfec719f0281526004810184905290516124109285928592600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561233557600080fd5b505af1158015612349573d6000803e3d6000fd5b505050506040513d602081101561235f57600080fd5b505161236c5760006123ea565b6006546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156123bd57600080fd5b505af11580156123d1573d6000803e3d6000fd5b505050506040513d60208110156123e757600080fd5b50515b600354600454600b54600a54600160a060020a0393841693928316929182169116613bda565b5050565b6006546040805160e060020a63cfec719f028152600481018490529051612537928792879287928792600160a060020a039091169163cfec719f916024808201926020929091908290030181600087803b15801561247157600080fd5b505af1158015612485573d6000803e3d6000fd5b505050506040513d602081101561249b57600080fd5b50516124a8576000612526565b6006546040805160e460020a630b12e441028152600481018990529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156124f957600080fd5b505af115801561250d573d6000803e3d6000fd5b505050506040513d602081101561252357600080fd5b50515b600354600160a060020a0316613f69565b50505050565b6125456122b8565b81141561261957600554600160a060020a031663d0baf2f561257d84600160200201518660015b60200201519063ffffffff61425916565b855160208601513391908690612595908a600161256c565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b1580156125fb57600080fd5b505af115801561260f573d6000803e3d6000fd5b50505050506127f6565b6006546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561266a57600080fd5b505af115801561267e573d6000803e3d6000fd5b505050506040513d602081101561269457600080fd5b5051600554600160a060020a039182169163a9059cbb91166126c08560015b602002015187600161256c565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561271257600080fd5b505af1158015612726573d6000803e3d6000fd5b505050506040513d602081101561273c57600080fd5b5051151561274957600080fd5b600554600160a060020a031663d0baf2f533856000602002015184612777876001602002015189600161256c565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b1580156127dd57600080fd5b505af11580156127f1573d6000803e3d6000fd5b505050505b505050565b6000908152600191909101602052604090205460ff1690565b6000805b835181101561286b57838181518110151561282f57fe5b60209081029091010151851061285e57828181518110151561284d57fe5b906020019060200201519150612863565b61286b565b600101612818565b509392505050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156128c457602002820191906000526020600020905b815481526001909101906020018083116128af575b50505050509050919050565b6128d86148a8565b60006128e98c8c8989878a8a61426b565b15156128f457600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561295657600080fd5b505af415801561296a573d6000803e3d6000fd5b505050506040513d602081101561298057600080fd5b50516040830181905286111561299557600080fd5b6129a88260025b60200201518a8a612814565b905060008a116129b85785612a3e565b612a3e8a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612a0357600080fd5b505af4158015612a17573d6000803e3d6000fd5b505050506040513d6020811015612a2d57600080fd5b50518891900363ffffffff6142c316565b82600460200201818152505073__Utils_________________________________63a5a55fcf612af5612aea8473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ab257600080fd5b505af4158015612ac6573d6000803e3d6000fd5b505050506040513d6020811015612adc57600080fd5b50519063ffffffff6142ec16565b6040860151906142f9565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612b4357600080fd5b505af4158015612b57573d6000803e3d6000fd5b505050506040513d6020811015612b6d57600080fd5b5051808352831015612c2c576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015612bf757600080fd5b505af4158015612c0b573d6000803e3d6000fd5b505050506040513d6020811015612c2157600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612c9557600080fd5b505af4158015612ca9573d6000803e3d6000fd5b505050506040513d6020811015612cbf57600080fd5b5051602083018190521580612cd357508151155b15612cea5760008083526020830181905260408301525b6020820151612cfa908c90614259565b6060830152509a9950505050505050505050565b612d166148c7565b6000831115612d3257612d2f858463ffffffff6142f916565b81525b6000821115612d5157612d4b848363ffffffff6142f916565b60208201525b949350505050565b600f54600090811015612db657825183906000198101908110612d7857fe5b6020908102919091018101510151600f80546000908110612d9557fe5b600091825260209091206005909102015463ffffffff1611612db657600080fd5b612dc2600e6000614901565b5060005b82518160ff16101561323457825163ffffffff90849060ff8416908110612de957fe5b6020908102919091010151511115612e0057600080fd5b825163ffffffff90849060ff8416908110612e1757fe5b60209081029190910181015101511115612e3057600080fd5b825163ffffffff90849060ff8416908110612e4757fe5b6020908102919091010151606001511115612e6157600080fd5b825160ff908490838316908110612e7457fe5b6020908102919091010151608001511115612e8e57600080fd5b825160ff908490838316908110612ea157fe5b602090810291909101015160a001511115612ebb57600080fd5b42838260ff16815181101515612ecd57fe5b60209081029190910101515111612ee357600080fd5b828160ff16815181101515612ef457fe5b60209081029190910181015101518351849060ff8416908110612f1357fe5b60209081029190910101515110612f2957600080fd5b60008160ff161115612f8057828160ff16815181101515612f4657fe5b6020908102919091010151518351849060ff600019850116908110612f6757fe5b60209081029190910181015101511115612f8057600080fd5b612fab838260ff16815181101515612f9457fe5b6020908102909101015160025b602002015161430d565b1515612fb657600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ffd57600080fd5b505af4158015613011573d6000803e3d6000fd5b505050506040513d602081101561302757600080fd5b50518351849060ff841690811061303a57fe5b6020908102919091010151604001511061305357600080fd5b600e60c060405190810160405280858460ff1681518110151561307257fe5b6020908102919091018101515163ffffffff1682528651910190869060ff861690811061309b57fe5b602090810290910101516001602002015163ffffffff168152602001858460ff168151811015156130c857fe5b60209081029091010151600260200201518152602001858460ff168151811015156130ef57fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff0000000019166401000000009187169190910217825560408601519382019390935560608501516002820180549094169416939093179091556080830151805191946131ba92600385019290910190614922565b5060a082015180516131d6916004840191602090910190614922565b5050505061322c6001600e8054905003848360ff168151811015156131f757fe5b6020908102919091010151608001518551869060ff861690811061321757fe5b602090810291909101015160a0015185614332565b600101612dc6565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600e8054905011156132cf5788600081518110151561328857fe5b602090810291909101015151600e805460001981019081106132a657fe5b6000918252602090912060059091020154640100000000900463ffffffff16106132cf57600080fd5b6132db600f6000614969565b600095506000945060009350600092505b88518360ff16101561370e57885163ffffffff908a9060ff861690811061330f57fe5b602090810291909101015151111561332657600080fd5b885163ffffffff908a9060ff861690811061333d57fe5b6020908102919091018101510151111561335657600080fd5b885163ffffffff908a9060ff861690811061336d57fe5b602090810291909101015160400151111561338757600080fd5b42898460ff1681518110151561339957fe5b602090810291909101015151116133af57600080fd5b888360ff168151811015156133c057fe5b60209081029190910101515189518a9060ff86169081106133dd57fe5b6020908102919091018101510151116133f557600080fd5b888360ff1681518110151561340657fe5b602090810291909101810151015189518a9060ff861690811061342557fe5b6020908102919091010151604001511161343e57600080fd5b60008360ff16111561349557888360ff1681518110151561345b57fe5b60209081029190910101515189518a9060ff60001987011690811061347c57fe5b6020908102919091010151604001511061349557600080fd5b6134ba898460ff168151811015156134a957fe5b602090810290910101516003612fa1565b15156134c557600080fd5b6134f78689878151811015156134d757fe5b9060200190602002015163ffffffff168961469f9092919063ffffffff16565b9150613529888681518110151561350a57fe5b9060200190602002015163ffffffff16876142ec90919063ffffffff16565b95506135408689876001018151811015156134d757fe5b9050613556888660010181518110151561350a57fe5b955061356985600263ffffffff6142ec16565b9450613595898460ff1681518110151561357f57fe5b60209081029190910101516060015185906142ec565b9350600f60c0604051908101604052808b8660ff168151811015156135b657fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff88169081106135df57fe5b602090810290910101516003602002015181526020018b8660ff1681518110151561360657fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff1681518110151561363357fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff00000000199390951693169290921716919091179055608083015180516136e2926003850192019061498a565b5060a082015180516136fe91600484019160209091019061498a565b5050600190940193506132ec9050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561375557600080fd5b505af4158015613769573d6000803e3d6000fd5b505050506040513d602081101561377f57600080fd5b5051841461378c57600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b815460009015613823575060005b825481101561382357600083600101600085600001848154811015156137f057fe5b60009182526020808320919091015483528201929092526040019020805460ff19169115159190911790556001016137ce565b815161383590849060208501906149f7565b508151156127f6575060005b81518110156127f6576001836001016000848481518110151561386057fe5b6020908102919091018101518252810191909152604001600020805460ff1916911515919091179055600101613841565b6000821161389e57600080fd5b600160a060020a03811615156138b357600080fd5b600791909155600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156138fc57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b61396d6148e2565b600061397e8c8c8989878a8a61426b565b151561398957600080fd5b8a83101561399557829a505b8a825260008a116139a657856139f1565b6139f18a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612a0357600080fd5b60608301819052604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018e90526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015613a7157600080fd5b505af4158015613a85573d6000803e3d6000fd5b505050506040513d6020811015613a9b57600080fd5b505160408301819052861115613ab057600080fd5b613abb82600261299c565b905073__Utils_________________________________63a5a55fcf836002602002015186613b3b613b2e8673__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ab257600080fd5b8c9063ffffffff6142f916565b6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015613b8057600080fd5b505af4158015613b94573d6000803e3d6000fd5b505050506040513d6020811015613baa57600080fd5b5051602083018190521515613bcb5760008083526020830181905260408301525b509a9950505050505050505050565b600160a060020a0383161515613bef57600080fd5b600160a060020a0384161515613c0457600080fd5b600160a060020a0382161515613c1957600080fd5b600160a060020a0381161515613c2e57600080fd5b60208701516000108015613c495750613c456122b8565b8614155b15613c6357600160a060020a0385161515613c6357600080fd5b865160001015613dc1578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b158015613ce457600080fd5b505af1158015613cf8573d6000803e3d6000fd5b505050506040513d6020811015613d0e57600080fd5b50511515613d1b57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b158015613d8a57600080fd5b505af1158015613d9e573d6000803e3d6000fd5b505050506040513d6020811015613db457600080fd5b50511515613dc157600080fd5b6020870151600010156127f157613dd66122b8565b861415613e1c576020870151604051600160a060020a0383169180156108fc02916000818181858888f19350505050158015613e16573d6000803e3d6000fd5b506127f1565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b158015613e8857600080fd5b505af1158015613e9c573d6000803e3d6000fd5b505050506040513d6020811015613eb257600080fd5b50511015613ebf57600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b158015613f3257600080fd5b505af1158015613f46573d6000803e3d6000fd5b505050506040513d6020811015613f5c57600080fd5b505115156127f157600080fd5b600160a060020a0381161515613f7e57600080fd5b85511515613f8b57600080fd5b60208601511515613f9b57600080fd5b8451865111613fa957600080fd5b6020808601519087015111613fbd57600080fd5b613fc56122b8565b831415613fdd576020860151341015613fdd57600080fd5b613fe56122b8565b831461415857600160a060020a038216151561400057600080fd5b61400b8560016126b3565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b15801561407257600080fd5b505af1158015614086573d6000803e3d6000fd5b505050506040513d602081101561409c57600080fd5b505110156140a957600080fd5b600160a060020a0382166323b872dd33306140cd89600160200201518b600161256c565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561412157600080fd5b505af1158015614135573d6000803e3d6000fd5b505050506040513d602081101561414b57600080fd5b5051151561415857600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b1580156141ce57600080fd5b505af11580156141e2573d6000803e3d6000fd5b505050506040513d60208110156141f857600080fd5b5051151561420557600080fd5b6060860151600010156142515761421a6122b8565b831415614251576060860151604051339180156108fc02916000818181858888f193505050501580156127f1573d6000803e3d6000fd5b505050505050565b60008282111561426557fe5b50900390565b6000808711801561427c5750600086115b80156142885750600085115b8015614297575082600a0a8410155b90506142a16122b8565b8814156142b8578080156142b55750816012145b90505b979650505050505050565b60006117fa6142d0614720565b6142e0858563ffffffff61473216565b9063ffffffff61475b16565b81810182811015610aa057fe5b60006117fa8383614308614720565b614770565b600061431761488c565b8210158015610aa05750614329614720565b90911115919050565b606080600060ff8616158015614349575060ff8516155b156143d757604080516000815260208101909152600e805460ff8a1690811061436e57fe5b90600052602060002090600502016003019080519060200190614392929190614922565b50604080516000815260208101909152600e805460ff8a169081106143b357fe5b90600052602060002090600502016004019080519060200190613e16929190614922565b835160ff861611156143e857600080fd5b60ff808616908716106143fa57600080fd5b600186161561440857600080fd5b600185161561441657600080fd5b600260ff878703160460ff1660405190808252806020026020018201604052801561444b578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015614483578160200160208202803883390190505b509150600090505b8460ff168660ff161015614626576144bf848760010160ff168151811015156144b057fe5b9060200190602002015161430d565b15156144ca57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561451157600080fd5b505af4158015614525573d6000803e3d6000fd5b505050506040513d602081101561453b57600080fd5b50518451859060ff60018a011690811061455157fe5b602090810290910101511061456557600080fd5b60008111156145ae57838660ff1681518110151561457f57fe5b90602001906020020151836001830381518110151561459a57fe5b60209081029091010151106145ae57600080fd5b838660ff168151811015156145bf57fe5b9060200190602002015183828151811015156145d757fe5b602090810290910101528351849060ff60018901169081106145f557fe5b90602001906020020151828281518110151561460d57fe5b602090810290910101526002959095019460010161448b565b82600e8860ff1681548110151561463957fe5b9060005260206000209060050201600301908051906020019061465d929190614922565b5081600e8860ff1681548110151561467157fe5b90600052602060002090600502016004019080519060200190614695929190614922565b5050505050505050565b6060808284018551101515156146b457600080fd5b821580156146cd57604051915060208201604052614717565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156147065780518352602092830192016146ee565b5050858452601f01601f1916604052505b50949350505050565b600061472a614891565b600a0a905090565b600082151561474357506000610aa0565b5081810281838281151561475357fe5b0414610aa057fe5b6000818381151561476857fe5b049392505050565b60008080808085151561477f57fe5b87158061478a575086155b1561479457614881565b6147a66000198863ffffffff61475b16565b92508288116147ca576147c3866142e08a8a63ffffffff61473216565b9450614881565b858814156147da57869450614881565b858714156147ea57879450614881565b871561486b578783116147fd57826147ff565b875b9150614811828863ffffffff61473216565b9050614833614826828863ffffffff61475b16565b869063ffffffff6142ec16565b9450614852868281151561484357fe5b8691900663ffffffff6142ec16565b9350614864888363ffffffff61425916565b97506147ea565b61487e614826858863ffffffff61475b16565b94505b505050509392505050565b600090565b600061489b6148a3565b600201905090565b600290565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b6080604051908101604052806004906020820280388339509192915050565b5080546000825560050290600052602060002090810190611e069190614a34565b82805482825590600052602060002090810192821561495d579160200282015b8281111561495d578251825591602001919060010190614942565b506111c3929150614a8d565b5080546000825560050290600052602060002090810190611e069190614aa7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106149cb57805160ff191683800117855561495d565b8280016001018555821561495d579182018281111561495d578251825591602001919060010190614942565b82805482825590600052602060002090810192821561495d579160200282015b8281111561495d5782518255602090920191600190910190614a17565b61116a91905b808211156111c357805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff19169055614a766003830182614b00565b614a84600483016000614b00565b50600501614a3a565b61116a91905b808211156111c35760008155600101614a93565b61116a91905b808211156111c357805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff19169055614ae96003830182614b1e565b614af7600483016000614b1e565b50600501614aad565b5080546000825590600052602060002090810190611e069190614a8d565b50805460018160011615610100020316600290046000825580601f10614b445750611e06565b601f016020900490600052602060002090810190611e069190614a8d565b6000614b6d8261430d565b1515614b7857600080fd5b610aa0614b836148a3565b8390600a0a63ffffffff61475b165600a165627a7a72305820938dc08c061efee504c137c642d16f82d63109e65a90ce6e561fb602a775adc90029", - "deployedBytecode": "0x6080604052600436106101b35763ffffffff60e060020a60003504166307f5d63381146101b857806311eb8c9f146101c857806313096a41146101f457806314f66d3414610225578063208853c9146102535780632442e1cb1461027d5780632e325020146103b35780632fbe5990146104a4578063313602d4146104b95780633baba4d7146104ce5780634090cb64146104e357806343f48fbd146104f857806354fd4d501461050d578063550fd742146105225780635641f3c314610587578063564566a81461059c578063715018a6146105b1578063792c02ea146105c65780638119c065146105db578063845ddcb2146105f05780638abdf5aa146106395780638aea2af81461064e5780638da5cb5b146106a15780638edd6eb6146106b6578063a035b1fe146106cb578063a4fd6f56146106e0578063b1356488146106f5578063b60d428814610723578063d250185c14610738578063d5b226231461076a578063d6d65f3d146107c6578063daa4cf88146107db578063e89e4ed6146107f0578063e93b054014610808578063f2fde38b14610820578063f6cf09dc14610841578063fc0c546a14610871575b600080fd5b6101c6600435602435610886565b005b3480156101d457600080fd5b506101e0600435610a8d565b604080519115158252519081900360200190f35b34801561020057600080fd5b50610209610aa6565b60408051600160a060020a039092168252519081900360200190f35b34801561023157600080fd5b5061023a610ab5565b6040805192835290151560208301528051918290030190f35b34801561025f57600080fd5b5061026b600435610ae8565b60408051918252519081900360200190f35b34801561028957600080fd5b50610295600435610bde565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103125781810151838201526020016102fa565b50505050905090810190601f16801561033f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561037257818101518382015260200161035a565b50505050905090810190601f16801561039f5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156103bf57600080fd5b506103cb600435610e0b565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561044b578181015183820152602001610433565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561048a578181015183820152602001610472565b505050509050019850505050505050505060405180910390f35b3480156104b057600080fd5b5061026b610fb1565b3480156104c557600080fd5b506101c6610fb7565b3480156104da57600080fd5b5061026b611166565b3480156104ef57600080fd5b5061020961116d565b34801561050457600080fd5b5061020961117c565b34801561051957600080fd5b5061026b61118b565b34801561052e57600080fd5b50610537611191565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561057357818101518382015260200161055b565b505050509050019250505060405180910390f35b34801561059357600080fd5b506102096111a2565b3480156105a857600080fd5b506101e06111b1565b3480156105bd57600080fd5b506101c66111c7565b3480156105d257600080fd5b5061026b611235565b3480156105e757600080fd5b5061020961123b565b3480156105fc57600080fd5b5061060860043561124a565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561064557600080fd5b5061026b611290565b34801561065a57600080fd5b50610669600435602435611296565b604051808260a080838360005b8381101561068e578181015183820152602001610676565b5050505090500191505060405180910390f35b3480156106ad57600080fd5b50610209611721565b3480156106c257600080fd5b50610209611730565b3480156106d757600080fd5b5061026b61173f565b3480156106ec57600080fd5b506101e0611745565b34801561070157600080fd5b5061070a61178c565b6040805163ffffffff9092168252519081900360200190f35b34801561072f57600080fd5b506102096117d3565b34801561074457600080fd5b506107536004356024356117e2565b604080518251815290819083908083836020610676565b34801561077657600080fd5b506101c6602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a435918201910135611801565b3480156107d257600080fd5b5061023a611b2f565b3480156107e757600080fd5b5061023a611baa565b3480156107fc57600080fd5b50610295600435611c2d565b34801561081457600080fd5b506101c6600435611d9b565b34801561082c57600080fd5b506101c6600160a060020a0360043516611e09565b34801561084d57600080fd5b5061085c600435602435611e29565b60405181518152808260808083836020610676565b34801561087d57600080fd5b506102096122a9565b60006108906148a8565b6108986148c7565b6002546001146108a757600080fd5b600280556108b36111b1565b151561092057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b846109296122b8565b146109be576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b15801561097e57600080fd5b505af1158015610992573d6000803e3d6000fd5b505050506040513d60208110156109a857600080fd5b5051600160a060020a031614156109be57600080fd5b6109c6611baa565b5092506109d38585611296565b805160208201519193506109e6916117e2565b90506109f281866122dc565b610a268282600e86815481101515610a0657fe5b600091825260209091206002600590920201015463ffffffff1688612414565b610a3182828761253d565b8151602080840151606080860151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a250506001600255505050565b6000610aa0600c8363ffffffff6127fb16565b92915050565b600454600160a060020a031681565b600f5460009081901580610ace5750610acc611745565b155b15610ad857610ae4565b5050600f546000190160015b9091565b600080600080610af6611baa565b92509250811515610b0657610bd6565b600e805484908110610b1457fe5b90600052602060002090600502019050610bd38582600301805480602002602001604051908101604052809291908181526020018280548015610b7657602002820191906000526020600020905b815481526020019060010190808311610b62575b505050505083600401805480602002602001604051908101604052809291908181526020018280548015610bc957602002820191906000526020600020905b815481526020019060010190808311610bb5575b5050505050612814565b93505b505050919050565b600080600080606080600f87815481101515610bf657fe5b6000918252602090912060059091020154600f805463ffffffff9092169189908110610c1e57fe5b906000526020600020906005020160010154600f89815481101515610c3f57fe5b6000918252602090912060026005909202010154600f805463ffffffff909216918b908110610c6a57fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600f8b815481101515610c9b57fe5b9060005260206000209060050201600301600f8c815481101515610cbb57fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d615780601f10610d3657610100808354040283529160200191610d61565b820191906000526020600020905b815481529060010190602001808311610d4457829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295975086945092508401905082828015610def5780601f10610dc457610100808354040283529160200191610def565b820191906000526020600020905b815481529060010190602001808311610dd257829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600e87815481101515610e2357fe5b6000918252602090912060059091020154600e805463ffffffff9092169189908110610e4b57fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600e89815481101515610e7c57fe5b906000526020600020906005020160010154600e8a815481101515610e9d57fe5b6000918252602090912060026005909202010154600e805463ffffffff909216918c908110610ec857fe5b9060005260206000209060050201600301600e8c815481101515610ee857fe5b906000526020600020906005020160040181805480602002602001604051908101604052809291908181526020018280548015610f4457602002820191906000526020600020905b815481526020019060010190808311610f30575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610def57602002820191906000526020600020905b815481526020019060010190808311610f82575050505050905095509550955095509550955091939550919395565b60095481565b600154600090600160a060020a03163314610fd157600080fd5b610fd9611745565b1515610fe457600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050506040513d602081101561107457600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156110ea57600080fd5b505af11580156110fe573d6000803e3d6000fd5b505050506040513d602081101561111457600080fd5b5051151561112157600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600f545b90565b600354600160a060020a031690565b600654600160a060020a031681565b60005481565b606061119d600c612873565b905090565b600a54600160a060020a031681565b6000806111bc611baa565b9150508091505b5090565b600154600160a060020a031633146111de57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600e5490565b600b54600160a060020a031681565b600e80548290811061125857fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60085481565b61129e6148a8565b6000806112a9611baa565b915091508015156112b957611719565b846112c26122b8565b1461134f576006546040805160e060020a63cfec719f028152600481018890529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561131857600080fd5b505af115801561132c573d6000803e3d6000fd5b505050506040513d602081101561134257600080fd5b5051151561134f57611719565b6117168585600e8581548110151561136357fe5b906000526020600020906005020160010154600e8681548110151561138457fe5b90600052602060002090600502016003018054806020026020016040519081016040528092919081815260200182805480156113df57602002820191906000526020600020905b8154815260200190600101908083116113cb575b5050505050600e878154811015156113f357fe5b906000526020600020906005020160040180548060200260200160405190810160405280929190818152602001828054801561144e57602002820191906000526020600020905b81548152602001906001019080831161143a575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156114b957600080fd5b505af11580156114cd573d6000803e3d6000fd5b505050506040513d60208110156114e357600080fd5b50516007546003546040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b505050506040513d602081101561155c57600080fd5b505160ff168d61156a6122b8565b1461167c57600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115d557600080fd5b505af11580156115e9573d6000803e3d6000fd5b505050506040513d60208110156115ff57600080fd5b50516040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561164857600080fd5b505af115801561165c573d6000803e3d6000fd5b505050506040513d602081101561167257600080fd5b505160ff1661167f565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156116e557600080fd5b505af11580156116f9573d6000803e3d6000fd5b505050506040513d602081101561170f57600080fd5b50516128d0565b92505b505092915050565b600154600160a060020a031681565b600554600160a060020a031690565b60075481565b600e54600090158061119d5750600e8054429190600019810190811061176757fe5b6000918252602090912060059091020154640100000000900463ffffffff1610919050565b600e54600090811061179d57600080fd5b600e805460001981019081106117af57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600554600160a060020a031681565b6117ea6148c7565b6117fa8383600854600954612d0e565b9392505050565b600154600090600160a060020a0316331461181b57600080fd5b600e54600010156118585742600e600081548110151561183757fe5b600091825260209091206005909102015463ffffffff161161185857600080fd5b8b151561186457600080fd5b60ff8c111561187257600080fd5b60ff88111561188057600080fd5b60028604881461188f57600080fd5b6002840488111561189f57600080fd5b8115156118ab57600080fd5b5060005b8181101561195757600654600160a060020a0316637d20abf88484848181106118d457fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b15801561191857600080fd5b505af115801561192c573d6000803e3d6000fd5b505050506040513d602081101561194257600080fd5b5051151561194f57600080fd5b6001016118af565b6119f08d8d808060200260200160405190810160405280939291908181526020016000905b828210156119b8576040805160c0818101909252908084028701906006908390839080828437505050918352505060019091019060200161197c565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612d59945050505050565b611ab78989808060200260200160405190810160405280939291908181526020016000905b82821015611a51576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611a15565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750613262945050505050565b611af783838080602002602001604051908101604052809392919081815260200183836020028082843750600c9594505063ffffffff6137c01692505050565b6040517f072792b04aecd99b2250bc76fb25f9bca793c3b7383cb4c7255a7a01e8f5a12e90600090a150505050505050505050505050565b600f5460009081901580611b485750611b46611745565b155b15611b5257610ae4565b5060015b600f546000190182108015611b9a5750600f805483908110611b7457fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610ae457600190910190611b56565b60008080805b600e54821015611c1f57600e805483908110611bc857fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611c03575080544264010000000090910463ffffffff16115b15611c145781600193509350611c27565b600190910190611bb0565b600093508392505b50509091565b600f805482908110611c3b57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611d015780601f10611cd657610100808354040283529160200191611d01565b820191906000526020600020905b815481529060010190602001808311611ce457829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015611d915780601f10611d6657610100808354040283529160200191611d91565b820191906000526020600020905b815481529060010190602001808311611d7457829003601f168201915b5050505050905086565b600154600160a060020a03163314611db257600080fd5b600e5460001015611def5742600e6000815481101515611dce57fe5b600091825260209091206005909102015463ffffffff1611611def57600080fd5b600a54611e06908290600160a060020a0316613891565b50565b600154600160a060020a03163314611e2057600080fd5b611e06816138e7565b611e316148e2565b600080611e3c611baa565b91509150801515611e4c57611719565b84611e556122b8565b14611ee2576006546040805160e060020a63cfec719f028152600481018890529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611eab57600080fd5b505af1158015611ebf573d6000803e3d6000fd5b505050506040513d6020811015611ed557600080fd5b50511515611ee257611719565b6117168585600e85815481101515611ef657fe5b906000526020600020906005020160010154600e86815481101515611f1757fe5b9060005260206000209060050201600301805480602002602001604051908101604052809291908181526020018280548015611f7257602002820191906000526020600020905b815481526020019060010190808311611f5e575b5050505050600e87815481101515611f8657fe5b9060005260206000209060050201600401805480602002602001604051908101604052809291908181526020018280548015611fe157602002820191906000526020600020905b815481526020019060010190808311611fcd575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561204c57600080fd5b505af1158015612060573d6000803e3d6000fd5b505050506040513d602081101561207657600080fd5b50516007546003546040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b1580156120c557600080fd5b505af11580156120d9573d6000803e3d6000fd5b505050506040513d60208110156120ef57600080fd5b505160ff168d6120fd6122b8565b1461220f57600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561216857600080fd5b505af115801561217c573d6000803e3d6000fd5b505050506040513d602081101561219257600080fd5b50516040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b1580156121db57600080fd5b505af11580156121ef573d6000803e3d6000fd5b505050506040513d602081101561220557600080fd5b505160ff16612212565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561227857600080fd5b505af115801561228c573d6000803e3d6000fd5b505050506040513d60208110156122a257600080fd5b5051613965565b600354600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b6006546040805160e060020a63cfec719f0281526004810184905290516124109285928592600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561233557600080fd5b505af1158015612349573d6000803e3d6000fd5b505050506040513d602081101561235f57600080fd5b505161236c5760006123ea565b6006546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156123bd57600080fd5b505af11580156123d1573d6000803e3d6000fd5b505050506040513d60208110156123e757600080fd5b50515b600354600454600b54600a54600160a060020a0393841693928316929182169116613bda565b5050565b6006546040805160e060020a63cfec719f028152600481018490529051612537928792879287928792600160a060020a039091169163cfec719f916024808201926020929091908290030181600087803b15801561247157600080fd5b505af1158015612485573d6000803e3d6000fd5b505050506040513d602081101561249b57600080fd5b50516124a8576000612526565b6006546040805160e460020a630b12e441028152600481018990529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156124f957600080fd5b505af115801561250d573d6000803e3d6000fd5b505050506040513d602081101561252357600080fd5b50515b600354600160a060020a0316613f69565b50505050565b6125456122b8565b81141561261957600554600160a060020a031663d0baf2f561257d84600160200201518660015b60200201519063ffffffff61425916565b855160208601513391908690612595908a600161256c565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b1580156125fb57600080fd5b505af115801561260f573d6000803e3d6000fd5b50505050506127f6565b6006546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561266a57600080fd5b505af115801561267e573d6000803e3d6000fd5b505050506040513d602081101561269457600080fd5b5051600554600160a060020a039182169163a9059cbb91166126c08560015b602002015187600161256c565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561271257600080fd5b505af1158015612726573d6000803e3d6000fd5b505050506040513d602081101561273c57600080fd5b5051151561274957600080fd5b600554600160a060020a031663d0baf2f533856000602002015184612777876001602002015189600161256c565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b1580156127dd57600080fd5b505af11580156127f1573d6000803e3d6000fd5b505050505b505050565b6000908152600191909101602052604090205460ff1690565b6000805b835181101561286b57838181518110151561282f57fe5b60209081029091010151851061285e57828181518110151561284d57fe5b906020019060200201519150612863565b61286b565b600101612818565b509392505050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156128c457602002820191906000526020600020905b815481526001909101906020018083116128af575b50505050509050919050565b6128d86148a8565b60006128e98c8c8989878a8a61426b565b15156128f457600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561295657600080fd5b505af415801561296a573d6000803e3d6000fd5b505050506040513d602081101561298057600080fd5b50516040830181905286111561299557600080fd5b6129a88260025b60200201518a8a612814565b905060008a116129b85785612a3e565b612a3e8a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612a0357600080fd5b505af4158015612a17573d6000803e3d6000fd5b505050506040513d6020811015612a2d57600080fd5b50518891900363ffffffff6142c316565b82600460200201818152505073__Utils_________________________________63a5a55fcf612af5612aea8473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ab257600080fd5b505af4158015612ac6573d6000803e3d6000fd5b505050506040513d6020811015612adc57600080fd5b50519063ffffffff6142ec16565b6040860151906142f9565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612b4357600080fd5b505af4158015612b57573d6000803e3d6000fd5b505050506040513d6020811015612b6d57600080fd5b5051808352831015612c2c576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015612bf757600080fd5b505af4158015612c0b573d6000803e3d6000fd5b505050506040513d6020811015612c2157600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612c9557600080fd5b505af4158015612ca9573d6000803e3d6000fd5b505050506040513d6020811015612cbf57600080fd5b5051602083018190521580612cd357508151155b15612cea5760008083526020830181905260408301525b6020820151612cfa908c90614259565b6060830152509a9950505050505050505050565b612d166148c7565b6000831115612d3257612d2f858463ffffffff6142f916565b81525b6000821115612d5157612d4b848363ffffffff6142f916565b60208201525b949350505050565b600f54600090811015612db657825183906000198101908110612d7857fe5b6020908102919091018101510151600f80546000908110612d9557fe5b600091825260209091206005909102015463ffffffff1611612db657600080fd5b612dc2600e6000614901565b5060005b82518160ff16101561323457825163ffffffff90849060ff8416908110612de957fe5b6020908102919091010151511115612e0057600080fd5b825163ffffffff90849060ff8416908110612e1757fe5b60209081029190910181015101511115612e3057600080fd5b825163ffffffff90849060ff8416908110612e4757fe5b6020908102919091010151606001511115612e6157600080fd5b825160ff908490838316908110612e7457fe5b6020908102919091010151608001511115612e8e57600080fd5b825160ff908490838316908110612ea157fe5b602090810291909101015160a001511115612ebb57600080fd5b42838260ff16815181101515612ecd57fe5b60209081029190910101515111612ee357600080fd5b828160ff16815181101515612ef457fe5b60209081029190910181015101518351849060ff8416908110612f1357fe5b60209081029190910101515110612f2957600080fd5b60008160ff161115612f8057828160ff16815181101515612f4657fe5b6020908102919091010151518351849060ff600019850116908110612f6757fe5b60209081029190910181015101511115612f8057600080fd5b612fab838260ff16815181101515612f9457fe5b6020908102909101015160025b602002015161430d565b1515612fb657600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ffd57600080fd5b505af4158015613011573d6000803e3d6000fd5b505050506040513d602081101561302757600080fd5b50518351849060ff841690811061303a57fe5b6020908102919091010151604001511061305357600080fd5b600e60c060405190810160405280858460ff1681518110151561307257fe5b6020908102919091018101515163ffffffff1682528651910190869060ff861690811061309b57fe5b602090810290910101516001602002015163ffffffff168152602001858460ff168151811015156130c857fe5b60209081029091010151600260200201518152602001858460ff168151811015156130ef57fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff0000000019166401000000009187169190910217825560408601519382019390935560608501516002820180549094169416939093179091556080830151805191946131ba92600385019290910190614922565b5060a082015180516131d6916004840191602090910190614922565b5050505061322c6001600e8054905003848360ff168151811015156131f757fe5b6020908102919091010151608001518551869060ff861690811061321757fe5b602090810291909101015160a0015185614332565b600101612dc6565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600e8054905011156132cf5788600081518110151561328857fe5b602090810291909101015151600e805460001981019081106132a657fe5b6000918252602090912060059091020154640100000000900463ffffffff16106132cf57600080fd5b6132db600f6000614969565b600095506000945060009350600092505b88518360ff16101561370e57885163ffffffff908a9060ff861690811061330f57fe5b602090810291909101015151111561332657600080fd5b885163ffffffff908a9060ff861690811061333d57fe5b6020908102919091018101510151111561335657600080fd5b885163ffffffff908a9060ff861690811061336d57fe5b602090810291909101015160400151111561338757600080fd5b42898460ff1681518110151561339957fe5b602090810291909101015151116133af57600080fd5b888360ff168151811015156133c057fe5b60209081029190910101515189518a9060ff86169081106133dd57fe5b6020908102919091018101510151116133f557600080fd5b888360ff1681518110151561340657fe5b602090810291909101810151015189518a9060ff861690811061342557fe5b6020908102919091010151604001511161343e57600080fd5b60008360ff16111561349557888360ff1681518110151561345b57fe5b60209081029190910101515189518a9060ff60001987011690811061347c57fe5b6020908102919091010151604001511061349557600080fd5b6134ba898460ff168151811015156134a957fe5b602090810290910101516003612fa1565b15156134c557600080fd5b6134f78689878151811015156134d757fe5b9060200190602002015163ffffffff168961469f9092919063ffffffff16565b9150613529888681518110151561350a57fe5b9060200190602002015163ffffffff16876142ec90919063ffffffff16565b95506135408689876001018151811015156134d757fe5b9050613556888660010181518110151561350a57fe5b955061356985600263ffffffff6142ec16565b9450613595898460ff1681518110151561357f57fe5b60209081029190910101516060015185906142ec565b9350600f60c0604051908101604052808b8660ff168151811015156135b657fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff88169081106135df57fe5b602090810290910101516003602002015181526020018b8660ff1681518110151561360657fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff1681518110151561363357fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff00000000199390951693169290921716919091179055608083015180516136e2926003850192019061498a565b5060a082015180516136fe91600484019160209091019061498a565b5050600190940193506132ec9050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561375557600080fd5b505af4158015613769573d6000803e3d6000fd5b505050506040513d602081101561377f57600080fd5b5051841461378c57600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b815460009015613823575060005b825481101561382357600083600101600085600001848154811015156137f057fe5b60009182526020808320919091015483528201929092526040019020805460ff19169115159190911790556001016137ce565b815161383590849060208501906149f7565b508151156127f6575060005b81518110156127f6576001836001016000848481518110151561386057fe5b6020908102919091018101518252810191909152604001600020805460ff1916911515919091179055600101613841565b6000821161389e57600080fd5b600160a060020a03811615156138b357600080fd5b600791909155600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156138fc57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b61396d6148e2565b600061397e8c8c8989878a8a61426b565b151561398957600080fd5b8a83101561399557829a505b8a825260008a116139a657856139f1565b6139f18a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612a0357600080fd5b60608301819052604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018e90526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015613a7157600080fd5b505af4158015613a85573d6000803e3d6000fd5b505050506040513d6020811015613a9b57600080fd5b505160408301819052861115613ab057600080fd5b613abb82600261299c565b905073__Utils_________________________________63a5a55fcf836002602002015186613b3b613b2e8673__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ab257600080fd5b8c9063ffffffff6142f916565b6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015613b8057600080fd5b505af4158015613b94573d6000803e3d6000fd5b505050506040513d6020811015613baa57600080fd5b5051602083018190521515613bcb5760008083526020830181905260408301525b509a9950505050505050505050565b600160a060020a0383161515613bef57600080fd5b600160a060020a0384161515613c0457600080fd5b600160a060020a0382161515613c1957600080fd5b600160a060020a0381161515613c2e57600080fd5b60208701516000108015613c495750613c456122b8565b8614155b15613c6357600160a060020a0385161515613c6357600080fd5b865160001015613dc1578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b158015613ce457600080fd5b505af1158015613cf8573d6000803e3d6000fd5b505050506040513d6020811015613d0e57600080fd5b50511515613d1b57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b158015613d8a57600080fd5b505af1158015613d9e573d6000803e3d6000fd5b505050506040513d6020811015613db457600080fd5b50511515613dc157600080fd5b6020870151600010156127f157613dd66122b8565b861415613e1c576020870151604051600160a060020a0383169180156108fc02916000818181858888f19350505050158015613e16573d6000803e3d6000fd5b506127f1565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b158015613e8857600080fd5b505af1158015613e9c573d6000803e3d6000fd5b505050506040513d6020811015613eb257600080fd5b50511015613ebf57600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b158015613f3257600080fd5b505af1158015613f46573d6000803e3d6000fd5b505050506040513d6020811015613f5c57600080fd5b505115156127f157600080fd5b600160a060020a0381161515613f7e57600080fd5b85511515613f8b57600080fd5b60208601511515613f9b57600080fd5b8451865111613fa957600080fd5b6020808601519087015111613fbd57600080fd5b613fc56122b8565b831415613fdd576020860151341015613fdd57600080fd5b613fe56122b8565b831461415857600160a060020a038216151561400057600080fd5b61400b8560016126b3565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b15801561407257600080fd5b505af1158015614086573d6000803e3d6000fd5b505050506040513d602081101561409c57600080fd5b505110156140a957600080fd5b600160a060020a0382166323b872dd33306140cd89600160200201518b600161256c565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561412157600080fd5b505af1158015614135573d6000803e3d6000fd5b505050506040513d602081101561414b57600080fd5b5051151561415857600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b1580156141ce57600080fd5b505af11580156141e2573d6000803e3d6000fd5b505050506040513d60208110156141f857600080fd5b5051151561420557600080fd5b6060860151600010156142515761421a6122b8565b831415614251576060860151604051339180156108fc02916000818181858888f193505050501580156127f1573d6000803e3d6000fd5b505050505050565b60008282111561426557fe5b50900390565b6000808711801561427c5750600086115b80156142885750600085115b8015614297575082600a0a8410155b90506142a16122b8565b8814156142b8578080156142b55750816012145b90505b979650505050505050565b60006117fa6142d0614720565b6142e0858563ffffffff61473216565b9063ffffffff61475b16565b81810182811015610aa057fe5b60006117fa8383614308614720565b614770565b600061431761488c565b8210158015610aa05750614329614720565b90911115919050565b606080600060ff8616158015614349575060ff8516155b156143d757604080516000815260208101909152600e805460ff8a1690811061436e57fe5b90600052602060002090600502016003019080519060200190614392929190614922565b50604080516000815260208101909152600e805460ff8a169081106143b357fe5b90600052602060002090600502016004019080519060200190613e16929190614922565b835160ff861611156143e857600080fd5b60ff808616908716106143fa57600080fd5b600186161561440857600080fd5b600185161561441657600080fd5b600260ff878703160460ff1660405190808252806020026020018201604052801561444b578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015614483578160200160208202803883390190505b509150600090505b8460ff168660ff161015614626576144bf848760010160ff168151811015156144b057fe5b9060200190602002015161430d565b15156144ca57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561451157600080fd5b505af4158015614525573d6000803e3d6000fd5b505050506040513d602081101561453b57600080fd5b50518451859060ff60018a011690811061455157fe5b602090810290910101511061456557600080fd5b60008111156145ae57838660ff1681518110151561457f57fe5b90602001906020020151836001830381518110151561459a57fe5b60209081029091010151106145ae57600080fd5b838660ff168151811015156145bf57fe5b9060200190602002015183828151811015156145d757fe5b602090810290910101528351849060ff60018901169081106145f557fe5b90602001906020020151828281518110151561460d57fe5b602090810290910101526002959095019460010161448b565b82600e8860ff1681548110151561463957fe5b9060005260206000209060050201600301908051906020019061465d929190614922565b5081600e8860ff1681548110151561467157fe5b90600052602060002090600502016004019080519060200190614695929190614922565b5050505050505050565b6060808284018551101515156146b457600080fd5b821580156146cd57604051915060208201604052614717565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156147065780518352602092830192016146ee565b5050858452601f01601f1916604052505b50949350505050565b600061472a614891565b600a0a905090565b600082151561474357506000610aa0565b5081810281838281151561475357fe5b0414610aa057fe5b6000818381151561476857fe5b049392505050565b60008080808085151561477f57fe5b87158061478a575086155b1561479457614881565b6147a66000198863ffffffff61475b16565b92508288116147ca576147c3866142e08a8a63ffffffff61473216565b9450614881565b858814156147da57869450614881565b858714156147ea57879450614881565b871561486b578783116147fd57826147ff565b875b9150614811828863ffffffff61473216565b9050614833614826828863ffffffff61475b16565b869063ffffffff6142ec16565b9450614852868281151561484357fe5b8691900663ffffffff6142ec16565b9350614864888363ffffffff61425916565b97506147ea565b61487e614826858863ffffffff61475b16565b94505b505050509392505050565b600090565b600061489b6148a3565b600201905090565b600290565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b6080604051908101604052806004906020820280388339509192915050565b5080546000825560050290600052602060002090810190611e069190614a34565b82805482825590600052602060002090810192821561495d579160200282015b8281111561495d578251825591602001919060010190614942565b506111c3929150614a8d565b5080546000825560050290600052602060002090810190611e069190614aa7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106149cb57805160ff191683800117855561495d565b8280016001018555821561495d579182018281111561495d578251825591602001919060010190614942565b82805482825590600052602060002090810192821561495d579160200282015b8281111561495d5782518255602090920191600190910190614a17565b61116a91905b808211156111c357805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff19169055614a766003830182614b00565b614a84600483016000614b00565b50600501614a3a565b61116a91905b808211156111c35760008155600101614a93565b61116a91905b808211156111c357805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff19169055614ae96003830182614b1e565b614af7600483016000614b1e565b50600501614aad565b5080546000825590600052602060002090810190611e069190614a8d565b50805460018160011615610100020316600290046000825580601f10614b445750611e06565b601f016020900490600052602060002090810190611e069190614a8d565b6000614b6d8261430d565b1515614b7857600080fd5b610aa0614b836148a3565b8390600a0a63ffffffff61475b165600a165627a7a72305820938dc08c061efee504c137c642d16f82d63109e65a90ce6e561fb602a775adc90029", - "sourceMap": "667:17098:5:-;;;487:1:41;657:51;;1948:983:5;8:9:-1;5:2;;;30:1;27;20:12;5:2;1948:983:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:7:37;:18;;;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;1948:983:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;2286:26:5;;;;2278:35;;;;;;-1:-1:-1;;;;;2331:20:5;;;;2323:29;;;;;;2370:23;:11;:21;;;;;;:23;:::i;:::-;:58;;;;-1:-1:-1;2425:3:5;2397:25;:11;:23;;;;;;:25;:::i;:::-;:31;2370:58;2362:67;;;;;;;;2447:33;:21;:31;;;;;;:33;:::i;:::-;:78;;;;-1:-1:-1;2522:3:5;2484:35;:21;:33;;;;;;:35;:::i;:::-;:41;2447:78;2439:87;;;;;;;;-1:-1:-1;;;;;2544:19:5;;;;2536:28;;;;;;-1:-1:-1;;;;;2582:19:5;;;;2574:28;;;;;;-1:-1:-1;;;;;2620:20:5;;;;2612:29;;;;;;2652:39;2668:6;2676:14;2652:15;;;;:39;:::i;:::-;2702:5;:23;;-1:-1:-1;;;;;;2702:23:5;;;-1:-1:-1;;;;;2702:23:5;;;;;;;2735:11;:33;;;;;;;;;;;;;;2778:10;:24;;;;2812:4;:12;;;;;;;;;;;;;;2834:20;:44;2888:4;:12;;;;;;;;;;;;;;-1:-1:-1;2910:14:5;;;;;;;;;;;;;;-1:-1:-1;667:17098:5;;-1:-1:-1;;667:17098:5;672:107:13;723:4;752:5;:3;;;;:5;:::i;:::-;746:2;:11;;:26;;;;-1:-1:-1;767:5:13;:3;;;;:5;:::i;:::-;761:2;:11;;746:26;739:33;672:107;-1:-1:-1;;672:107:13:o;924:139::-;977:4;1001:13;1011:2;1001:9;;;;:13;:::i;:::-;993:22;;;;;;;;1033:23;1046:9;:7;;;;:9;:::i;:::-;1033:2;;1040;:15;1033:6;;;;;;:23;:::i;4693:219:5:-;4791:1;4782:10;;4774:19;;;;;;-1:-1:-1;;;;;4811:28:5;;;;4803:37;;;;;;4851:5;:14;;;;4875:13;:30;;-1:-1:-1;;;;;;4875:30:5;-1:-1:-1;;;;;4875:30:5;;;;;;;;;4693:219::o;297:55:13:-;333:4;297:55;:::o;357:65::-;393:4;414:5;:3;;;;:5;:::i;:::-;408:2;:11;401:18;;357:65;:::o;161:59::-;216:1;161:59;:::o;665:283:44:-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;225:67:13:-;261:4;280:9;:7;;;;:9;:::i;:::-;276:1;:13;269:20;;225:67;:::o;667:17098:5:-;;;;;;;", - "deployedSourceMap": "667:17098:5:-;;;;;;;;-1:-1:-1;;;667:17098:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12140:654;;;;;;;;;;14325:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14325:135:5;;;;;;;;;;;;;;;;;;;;;;;918:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;918:24:5;;;;;;;;-1:-1:-1;;;;;918:24:5;;;;;;;;;;;;;;4482:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4482:205:5;;;;;;;;;;;;;;;;;;;;;;;;;;;16339:310;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16339:310:5;;;;;;;;;;;;;;;;;;;;;3137:388;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3137:388:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3137:388:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3137:388:5;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3137:388:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3531:359;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3531:359:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3531:359:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3531:359:5;;;;;;;;;;;;;;;;;;;;;;;1050:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1050:32:5;;;;16992:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16992:240:5;;;;3033:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3033:98:5;;;;14036:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14036:81:5;;;;974:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;974:19:5;;;;53::37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:37;;;;14208:111:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14208:111:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14208:111:5;;;;;;;;;;;;;;;;;1088:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1088:28:5;;;;17375:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17375:130:5;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;2937:90:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2937:90:5;;;;1122:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1122:19:5;;;;1223:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1223:21:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1022:22:5;;;;14466:823;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14466:823:5;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14466:823:5;;;;;;;;;;;;;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;14123:79:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14123:79:5;;;;999:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;999:17:5;;;;17238:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17238:131:5;;;;3896:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3896:147:5;;;;;;;;;;;;;;;;;;;;;;;948:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;948:20:5;;;;16160:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16160:173:5;;;;;;;;;;;84:18:-1;;64:39;;16160:173:5;;;;;;;;52:2:-1;8:100;;5119:1380:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5119:1380:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4129:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4129:347:5;;;;16655:331;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16655:331:5;;;;1250:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1250:29:5;;;;;4918:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4918:126:5;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;;;-1:-1:-1;;;;;1274:103:45;;;15295:859:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15295:859:5;;;;;;;;;;84:18:-1;;64:39;;15295:859:5;;;;;;52:2:-1;8:100;;892:20:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;892:20:5;;;;12140:654;12380:10;12443:22;;:::i;:::-;12504:18;;:::i;:::-;1128:14:41;;487:1;1128:39;1120:48;;;;;;584:1;1174:40;;17702:14:5;:12;:14::i;:::-;17694:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12284:6;12249:31;:29;:31::i;:::-;:41;12245:124;;12314:5;;:29;;;-1:-1:-1;;;;;12314:29:5;;;;;;;;;;-1:-1:-1;;;;;;;12314:5:5;;:21;;:29;;;;;;;;;;;;;;-1:-1:-1;12314:5:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;12314:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12314:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12314:29:5;-1:-1:-1;;;;;12314:43:5;;;12306:52;;;;;;12410:22;:20;:22::i;:::-;12379:53;;;12468:26;12479:6;12487;12468:10;:26::i;:::-;12532:10;;;12544;;;12443:51;;-1:-1:-1;12525:30:5;;:6;:30::i;:::-;12504:51;;12566:25;12579:3;12584:6;12566:12;:25::i;:::-;12601:62;12619:7;12628:3;12633:6;12640:5;12633:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;;;12656:6;12601:17;:62::i;:::-;12673:37;12689:7;12698:3;12703:6;12673:15;:37::i;:::-;12752:10;;;12764;;;;12776;;;;;12726:61;;;;;;;;;;;;;;;;;;;;;;12740:10;;12726:61;;;;;;;;;-1:-1:-1;;487:1:41;1227:14;:38;-1:-1:-1;;;12140:654:5:o;14325:135::-;14397:4;14420:33;:14;14445:7;14420:33;:24;:33;:::i;:::-;14413:40;14325:135;-1:-1:-1;;14325:135:5:o;918:24::-;;;-1:-1:-1;;;;;918:24:5;;:::o;4482:205::-;4574:10;:17;4536:10;;;;4574:22;;:36;;;4601:9;:7;:9::i;:::-;4600:10;4574:36;4570:49;;;4612:7;;4570:49;-1:-1:-1;;4659:10:5;:17;-1:-1:-1;;4659:21:5;4637:4;4482:205;;;:::o;16339:310::-;16399:10;16422;16434;16510:19;16448:22;:20;:22::i;:::-;16421:49;;;;16486:5;16485:6;16481:19;;;16493:7;;16481:19;16532:6;:13;;16539:5;;16532:13;;;;;;;;;;;;;;;;16510:35;;16563:79;16591:5;16598;:22;;16563:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16622:5;:19;;16563:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;:79::i;:::-;16556:86;;16339:310;;;;;;;:::o;3137:388::-;3192:6;3200:4;3206:6;3214;3222:5;3229;3267:10;3278:5;3267:17;;;;;;;;;;;;;;;;;;;;;;;:25;3306:10;:17;;3267:25;;;;;3317:5;;3306:17;;;;;;;;;;;;;;;;:32;;;3352:10;3363:5;3352:17;;;;;;;;;;;;;;;;;;:29;:17;;;;;:29;;3395:10;:17;;3352:29;;;;;3406:5;;3395:17;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;3443:10;3454:5;3443:17;;;;;;;;;;;;;;;;;;;;:22;;3479:10;3490:5;3479:17;;;;;;;;;;;;;;;;;;;;:29;;3246:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3246:272:5;;;;;;;;;;;;;-1:-1:-1;;3246:272:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3246:272:5;;-1:-1:-1;3246:272:5;-1:-1:-1;3246:272:5;;;-1:-1:-1;3246:272:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3137:388;;;;;;;:::o;3531:359::-;3582:6;3590;3598:4;3604:6;3612;3620;3659;3666:5;3659:13;;;;;;;;;;;;;;;;;;;;;;;:23;3696:6;:13;;3659:23;;;;;3703:5;;3696:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;3731:6;3738:5;3731:13;;;;;;;;;;;;;;;;;;;;:22;;;3767:6;3774:5;3767:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;3802:6;:13;;3767:21;;;;;3809:5;;3802:13;;;;;;;;;;;;;;;;:30;;3846:6;3853:5;3846:13;;;;;;;;;;;;;;;;;;;;:27;;3638:245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3531:359;;;;;;;:::o;1050:32::-;;;;:::o;16992:240::-;719:5:45;;17082:11:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;17061:9:5;:7;:9::i;:::-;17053:18;;;;;;;;17096:5;;:30;;;;;;17120:4;17096:30;;;;;;-1:-1:-1;;;;;17096:5:5;;;;:15;;:30;;;;;;;;;;;;;;;-1:-1:-1;17096:5:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;17096:30:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17096:30:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17096:30:5;17145:5;;;17160;17145:29;;;;;;-1:-1:-1;;;;;17160:5:5;;;17145:29;;;;;;;;;;;;17096:30;;-1:-1:-1;17145:5:5;;;:14;;:29;;;;;17096:30;;17145:29;;;;;;;;-1:-1:-1;17145:5:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;17145:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17145:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17145:29:5;17137:38;;;;;;;;17211:5;;17191:34;;;;;;;;-1:-1:-1;;;;;17211:5:5;;;;17191:34;;;;;;;;;16992:240;:::o;3033:98::-;3107:10;:17;3033:98;;:::o;14036:81::-;14105:5;;-1:-1:-1;;;;;14105:5:5;;14036:81::o;974:19::-;;;-1:-1:-1;;;;;974:19:5;;:::o;53::37:-;;;;:::o;14208:111:5:-;14263:9;14291:21;:14;:19;:21::i;:::-;14284:28;;14208:111;:::o;1088:28::-;;;-1:-1:-1;;;;;1088:28:5;;:::o;17375:130::-;17420:4;17439:10;17453:22;:20;:22::i;:::-;17436:39;;;17493:5;17486:12;;17375:130;;;:::o;1001:111:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;2937:90:5:-;3007:6;:13;2937:90;:::o;1122:19::-;;;-1:-1:-1;;;;;1122:19:5;;:::o;1223:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1223:21:5;;;;;;;;;;:::o;1022:22::-;;;;:::o;14466:823::-;14536:7;;:::i;:::-;14556:10;14568;14582:22;:20;:22::i;:::-;14555:49;;;;14620:5;14619:6;14615:19;;;14627:7;;14615:19;14683:6;14648:31;:29;:31::i;:::-;:41;14644:138;;14710:5;;:21;;;-1:-1:-1;;;;;14710:21:5;;;;;;;;;;-1:-1:-1;;;;;14710:5:5;;;;-1:-1:-1;;14710:21:5;;;;;;;;;;;;;;;-1:-1:-1;14710:5:5;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;14710:21:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14710:21:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14710:21:5;14709:22;14705:67;;;14751:7;;14705:67;14799:483;14839:6;14859;14879;14886:5;14879:13;;;;;;;;;;;;;;;;;;;;:22;;;14915:6;14922:5;14915:13;;;;;;;;;;;;;;;;;;;;:30;;14799:483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14959:6;14966:5;14959:13;;;;;;;;;;;;;;;;;;;;:27;;14799:483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15000:5;;;;;;;;;-1:-1:-1;;;;;15000:5:5;-1:-1:-1;;;;;15000:9:5;;15010:6;15000:17;;;;;-1:-1:-1;;;15000:17:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15000:17:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15000:17:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15000:17:5;15031:5;;15055;;:16;;;-1:-1:-1;;;;;15055:16:5;;;;-1:-1:-1;;;;;15055:5:5;;;;-1:-1:-1;;15055:16:5;;;;;15000:17;;15055:16;;;;;;;;:5;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;15055:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15055:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15055:16:5;15050:22;;15121:6;15086:31;:29;:31::i;:::-;:41;:142;;15186:5;;;;;;;;;-1:-1:-1;;;;;15186:5:5;-1:-1:-1;;;;;15186:21:5;;15208:6;15186:29;;;;;-1:-1:-1;;;15186:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15186:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15186:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15186:29:5;15172:55;;;-1:-1:-1;;;;;15172:55:5;;;;-1:-1:-1;;;;;15172:53:5;;;;-1:-1:-1;;15172:55:5;;;;;15186:29;;15172:55;;;;;;;;;:53;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;15172:55:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15172:55:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15172:55:5;15167:61;;15086:142;;;15146:2;15086:142;15242:5;;:30;;;;;;15266:4;15242:30;;;;;;-1:-1:-1;;;;;15242:5:5;;;;:15;;:30;;;;;;;;;;;;;;;-1:-1:-1;15242:5:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;15242:30:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15242:30:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15242:30:5;14799:26;:483::i;:::-;14792:490;;14466:823;;;;;;;:::o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;14123:79:5:-;14191:4;;-1:-1:-1;;;;;14191:4:5;;14123:79::o;999:17::-;;;;:::o;17238:131::-;17301:6;:13;17278:4;;17301:18;;:61;;-1:-1:-1;17323:6:5;17330:13;;17359:3;;17323:6;-1:-1:-1;;17330:17:5;;;17323:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:39;;17238:131;-1:-1:-1;17238:131:5:o;3896:147::-;3967:6;:13;3941:6;;3967:17;-1:-1:-1;3959:26:5;;;;;;4003:6;4010:13;;-1:-1:-1;;4010:17:5;;;4003:25;;;;;;;;;;;;;;;;;;;:33;;;;;;;3896:147;-1:-1:-1;3896:147:5:o;948:20::-;;;-1:-1:-1;;;;;948:20:5;;:::o;16160:173::-;16225:7;;:::i;:::-;16251:75;16274:11;16287:4;16293:10;;16305:20;;16251:22;:75::i;:::-;16244:82;16160:173;-1:-1:-1;;;16160:173:5:o;5119:1380::-;719:5:45;;6018:6:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;17552:6:5;:13;17568:1;-1:-1:-1;17548:82:5;;;17615:3;17593:6;17600:1;17593:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;17585:34;;;;;;5515:30;;;5507:39;;;;;;5564;;;;5556:48;;;;;;5676:43;;;;5668:52;;;;;;5818:1;5771:37;:48;5738:81;;5730:90;;;;;;5912:1;5871:31;:42;5838:75;;;5830:84;;;;;;5971:30;;;5963:39;;;;;;-1:-1:-1;6027:1:5;6013:125;6030:29;;;6013:125;;;6088:5;;-1:-1:-1;;;;;6088:5:5;:15;6104:18;;6123:1;6104:21;;;;;;;6088:38;;;;;;-1:-1:-1;;;6088:38:5;;;6104:21;;;;;;;;;6088:38;;;;;;;;;;6104:21;;-1:-1:-1;6088:38:5;;;;;;;-1:-1:-1;6088:38:5;;;;5:2:-1;;;;30:1;27;20:12;5:2;6088:38:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6088:38:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6088:38:5;6080:47;;;;;;;;6061:3;;6013:125;;;6148:89;6172:18;;6148:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6148:89:5;;;-1:-1:-1;;6148:89:5;;;;;;;;;;;;;;;6204:23;;6148:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6148:10:5;;-1:-1:-1;;;;;6148:89:5:i;:::-;6248:156;6276:22;;6248:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6248:156:5;;;-1:-1:-1;;6248:156:5;;;;;;;;;;;;;;;6312:37;;6248:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6248:156:5;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6363:31:5;;-1:-1:-1;6363:31:5;;-1:-1:-1;6363:31:5;;-1:-1:-1;6248:156:5;;6363:31;;;;6248:156;;-1:-1:-1;6248:14:5;;-1:-1:-1;;;;;6248:156:5:i;:::-;6415:41;6437:18;;6415:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6415:14:5;;:41;-1:-1:-1;;6415:41:5;:21;:41;;-1:-1:-1;;;6415:41:5:i;:::-;6472:20;;;;;;;5119:1380;;;;;;;;;;;;;:::o;4129:347::-;4223:10;:17;4186:10;;;;4223:22;;:36;;;4250:9;:7;:9::i;:::-;4249:10;4223:36;4220:48;;;4261:7;;4220:48;-1:-1:-1;4286:4:5;4356:114;4370:10;:17;-1:-1:-1;;4370:21:5;4362:29;;:74;;;;-1:-1:-1;4402:10:5;:17;;4413:5;;4402:17;;;;;;;;;;;;;;;;;;;:34;;;;;;;;4395:3;:41;;4362:74;4356:114;;;4452:7;;;;;4356:114;;16655:331;16708:10;;;;16742:210;16762:6;:13;16758:17;;16742:210;;;16818:6;:9;;16825:1;;16818:9;;;;;;;;;;;;;;;;;;;16846:15;;16818:9;;-1:-1:-1;16865:3:5;16846:15;;;;:22;;;;:45;;-1:-1:-1;16872:13:5;;16888:3;16872:13;;;;;;:19;16846:45;16842:100;;;16919:1;16922:4;16911:16;;;;;;16842:100;16777:3;;;;;16742:210;;;16970:1;;-1:-1:-1;16970:1:5;;-1:-1:-1;16655:331:5;;;;;:::o;1250:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1250:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1250:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1250:29:5;;;;;;;;;;;-1:-1:-1;;1250:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1250:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4918:126::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;17552:6:5;:13;17568:1;-1:-1:-1;17548:82:5;;;17615:3;17593:6;17600:1;17593:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;17585:34;;;;;;5023:13;;4999:38;;5015:6;;-1:-1:-1;;;;;5023:13:5;4999:15;:38::i;:::-;4918:126;:::o;1274:103:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;15295:859:5:-;15383:7;;:::i;:::-;15403:10;15415;15429:22;:20;:22::i;:::-;15402:49;;;;15467:5;15466:6;15462:19;;;15474:7;;15462:19;15530:6;15495:31;:29;:31::i;:::-;:41;15491:138;;15557:5;;:21;;;-1:-1:-1;;;;;15557:21:5;;;;;;;;;;-1:-1:-1;;;;;15557:5:5;;;;-1:-1:-1;;15557:21:5;;;;;;;;;;;;;;;-1:-1:-1;15557:5:5;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;15557:21:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15557:21:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15557:21:5;15556:22;15552:67;;;15598:7;;15552:67;15646:501;15699:6;15719:11;15744:6;15751:5;15744:13;;;;;;;;;;;;;;;;;;;;:22;;;15780:6;15787:5;15780:13;;;;;;;;;;;;;;;;;;;;:30;;15646:501;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15824:6;15831:5;15824:13;;;;;;;;;;;;;;;;;;;;:27;;15646:501;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15865:5;;;;;;;;;-1:-1:-1;;;;;15865:5:5;-1:-1:-1;;;;;15865:9:5;;15875:6;15865:17;;;;;-1:-1:-1;;;15865:17:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15865:17:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15865:17:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15865:17:5;15896:5;;15920;;:16;;;-1:-1:-1;;;;;15920:16:5;;;;-1:-1:-1;;;;;15920:5:5;;;;-1:-1:-1;;15920:16:5;;;;;15865:17;;15920:16;;;;;;;;:5;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;15920:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15920:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15920:16:5;15915:22;;15986:6;15951:31;:29;:31::i;:::-;:41;:142;;16051:5;;;;;;;;;-1:-1:-1;;;;;16051:5:5;-1:-1:-1;;;;;16051:21:5;;16073:6;16051:29;;;;;-1:-1:-1;;;16051:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16051:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16051:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16051:29:5;16037:55;;;-1:-1:-1;;;;;16037:55:5;;;;-1:-1:-1;;;;;16037:53:5;;;;-1:-1:-1;;16037:55:5;;;;;16051:29;;16037:55;;;;;;;;;:53;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;16037:55:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16037:55:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16037:55:5;16032:61;;15951:142;;;16011:2;15951:142;16107:5;;:30;;;;;;16131:4;16107:30;;;;;;-1:-1:-1;;;;;16107:5:5;;;;:15;;:30;;;;;;;;;;;;;;;-1:-1:-1;16107:5:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;16107:30:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16107:30:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16107:30:5;15646:39;:501::i;892:20::-;;;-1:-1:-1;;;;;892:20:5;;:::o;319:78:15:-;381:14;319:78;:::o;12800:343:5:-;12953:5;;:21;;;-1:-1:-1;;;;;12953:21:5;;;;;;;;;;12871:265;;12915:4;;12953:21;;-1:-1:-1;;;;;12953:5:5;;;;-1:-1:-1;;12953:21:5;;;;;;;;;;;;;;;-1:-1:-1;12953:5:5;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;12953:21:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12953:21:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12953:21:5;:66;;13017:1;12953:66;;;12977:5;;:29;;;-1:-1:-1;;;;;12977:29:5;;;;;;;;;;-1:-1:-1;;;;;12977:5:5;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;12977:5:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;12977:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12977:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12977:29:5;12953:66;13041:5;;13069:11;;13095:4;;13113:13;;-1:-1:-1;;;;;13041:5:5;;;;13069:11;;;;13095:4;;;;13113:13;12871:30;:265::i;:::-;12800:343;;:::o;13149:351::-;13389:5;;:21;;;-1:-1:-1;;;;;13389:21:5;;;;;;;;;;13259:234;;13308:8;;13330:4;;13348:7;;13389:21;;-1:-1:-1;;;;;13389:5:5;;;;-1:-1:-1;;13389:21:5;;;;;;;;;;;;;;;-1:-1:-1;13389:5:5;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;13389:21:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13389:21:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13389:21:5;:66;;13453:1;13389:66;;;13413:5;;:29;;;-1:-1:-1;;;;;13413:29:5;;;;;;;;;;-1:-1:-1;;;;;13413:5:5;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;13413:5:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;13413:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13413:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13413:29:5;13389:66;13477:5;;-1:-1:-1;;;;;13477:5:5;13259:35;:234::i;:::-;13149:351;;;;:::o;13506:524::-;13612:31;:29;:31::i;:::-;13602:41;;13598:426;;;13659:4;;13701:7;;;;-1:-1:-1;;;;;13659:4:5;;;;:19;;13685:24;;:8;-1:-1:-1;13685:11:5;;;;;;:24;:15;:24;:::i;:::-;13723:11;;;13760:7;;;13711:10;;13723:11;13736:6;;13744:24;;13723:8;13765:1;13744:11;;:24;13770:11;;;;;13659:123;;;;;-1:-1:-1;;;13659:123:5;;;-1:-1:-1;;;;;13659:123:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13659:123:5;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;13659:123:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13659:123:5;;;;;13598:426;;;13827:5;;:29;;;-1:-1:-1;;;;;13827:29:5;;;;;;;;;;-1:-1:-1;;;;;13827:5:5;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;13827:5:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;13827:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13827:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13827:29:5;13875:4;;-1:-1:-1;;;;;13821:45:5;;;;;;13875:4;13882:24;13898:4;-1:-1:-1;13898:7:5;;;;;13882:8;13891:1;13882:11;;:24;13821:86;;;-1:-1:-1;;;13821:86:5;;;;;;-1:-1:-1;;;;;13821:86:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13821:86:5;;;;5:2:-1;;;;30:1;27;20:12;5:2;13821:86:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13821:86:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13821:86:5;13813:95;;;;;;;;13922:4;;13954:11;;;13991:7;;;-1:-1:-1;;;;;13922:4:5;;;;:19;;13942:10;;13967:6;;13975:24;;13954:8;-1:-1:-1;13975:11:5;;:24;14001:11;;;;;13922:91;;;;;-1:-1:-1;;;13922:91:5;;;-1:-1:-1;;;;;13922:91:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13922:91:5;;;;;;;-1:-1:-1;13922:91:5;;;;5:2:-1;;;;30:1;27;20:12;5:2;13922:91:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13922:91:5;;;;13598:426;13506:524;;;:::o;628:140:12:-;712:4;735:26;;;:17;;;;;:26;;;;;;;;;628:140::o;8921:337:15:-;9020:10;;9042:210;9063:16;:23;9059:1;:27;9042:210;;;9120:16;9137:1;9120:19;;;;;;;;;;;;;;;;;;;9111:28;;9107:135;;9167:13;9181:1;9167:16;;;;;;;;;;;;;;;;;;9159:24;;9107:135;;;9222:5;;9107:135;9088:3;;9042:210;;;8921:337;;;;;;:::o;774:111:12:-;836:9;864:8;:14;;857:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;774:111;;;:::o;1975:1980:15:-;2315:14;;:::i;:::-;2826:10;2353:218;2384:6;2404:13;2431;2458:12;2484:22;2520:13;2547:14;2353:17;:218::i;:::-;2345:227;;;;;;;;2614:118;;;;;;;;;;;;;;;;;;;;;;;;;;:5;;:26;;:118;;;;;;;;;;;;;;:5;:118;;;5:2:-1;;;;30:1;27;20:12;5:2;2614:118:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2614:118:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2614:118:15;2602:9;;;:130;;;2789:25;-1:-1:-1;2789:25:15;2781:34;;;;;;2839:52;2848:6;2855:1;2848:9;;;;;2859:16;2877:13;2839:8;:52::i;:::-;2826:65;;2945:1;2934:8;:12;:100;;3022:12;2934:100;;;2961:46;2998:8;2982:7;:11;:13;;;;;-1:-1:-1;;;2982:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2982:13:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2982:13:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2982:13:15;2961:12;;2982:24;;2961:46;:20;:46;:::i;:::-;2922:6;2929:1;2922:9;;;:112;;;;;3075:5;:33;3122:47;3144:24;3162:5;3144:7;:11;:13;;;;;-1:-1:-1;;;3144:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3144:13:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3144:13:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3144:13:15;;:24;:17;:24;:::i;:::-;3122:9;;;;;:21;:47::i;:::-;3183:13;3210:6;3217:1;3210:9;;;;3075:154;;;;;-1:-1:-1;;;3075:154:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3075:154:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3075:154:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3075:154:15;3063:166;;;3288:34;;3284:263;;;3465:9;;;;3350:138;;;;;;3472:1;3350:138;;;;;;;;;;;;;;;;;;;:5;;:26;;:138;;;;;3465:9;;3350:138;;;;;;;:5;:138;;;5:2:-1;;;;30:1;27;20:12;5:2;3350:138:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3350:138:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3350:138:15;3338:9;;;:150;3502:34;;;3284:263;3632:9;;;;;3585:121;;;;;;;;;;;;;;;;;;;;;;;;;;:5;;:33;;:121;;;;;3632:9;;3585:121;;;;;;;:5;:121;;;5:2:-1;;;;30:1;27;20:12;5:2;3585:121:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3585:121:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3585:121:15;3573:9;;;:133;;;3754:14;;:32;;-1:-1:-1;3772:9:15;;:14;3754:32;3750:130;;;3814:1;3802:13;;;:9;3829;;:13;;;3856:9;;;:13;3750:130;3938:9;;;;3920:28;;:13;;:17;:28::i;:::-;3908:9;;;:40;-1:-1:-1;3908:6:15;1975:1980;-1:-1:-1;;;;;;;;;;1975:1980:15:o;6564:265::-;6661:14;;:::i;:::-;6702:1;6691:8;:12;6687:63;;;6717:33;:11;6741:8;6717:33;:23;:33;:::i;:::-;6705:45;;6687:63;6778:1;6764:11;:15;6760:62;;;6793:29;:4;6810:11;6793:29;:16;:29;:::i;:::-;6781:9;;;:41;6760:62;6564:265;;;;;;:::o;6900:1641:5:-;6989:10;:17;7231:7;;6989:21;-1:-1:-1;6985:207:5;;;7155:17;;;;-1:-1:-1;;7155:21:5;;;7144:33;;;;;;;;;;;;;;;;;:36;;7120:10;:13;;7131:1;;7120:13;;;;;;;;;;;;;;;;;;;:21;;;:60;7112:69;;;;;;7202:13;7209:6;;7202:13;:::i;:::-;-1:-1:-1;7241:1:5;7226:1278;7248:10;:17;7244:1;:21;;;7226:1278;;;7324:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:30;;7316:39;;;;;;7377:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:30;;7369:39;;;;;;7430:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:30;;7422:39;;;;;;7483:13;;:29;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:29;;7475:38;;;;;;7535:13;;:29;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:29;;7527:38;;;;;;7634:3;7615:10;7626:1;7615:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;7607:31;;;;;;7679:10;7690:1;7679:13;;;;;;;;;;;;;;;;;;;;;;;:16;;7660:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:35;7652:44;;;;;;7719:1;7715;:5;;;7711:93;;;7772:10;7783:1;7772:13;;;;;;;;;;;;;;;;;;;;;;:16;7748:17;;;;-1:-1:-1;;7759:5:5;;7748:17;;;;;;;;;;;;;;;;;;;;:20;;:40;;7740:49;;;;;;7856:28;:10;7867:1;7856:13;;;;;;;;;;;;;;;;;;;;;7870:1;7856:16;;;;;:26;:28::i;:::-;7848:37;;;;;;;;7926:7;:11;:13;;;;;-1:-1:-1;;;7926:13:5;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7926:13:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7926:13:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7926:13:5;7907;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:32;7899:41;;;;;;7955:6;7967:315;;;;;;;;;8009:10;8020:1;8009:13;;;;;;;;;;;;;;;;;;;;;;;:16;7967:315;;;;8060:13;;7967:315;;;8060:10;;:13;;;;;;;;;;;;;;;;;;;8074:1;8060:16;;;;7967:315;;;;;;8105:10;8116:1;8105:13;;;;;;;;;;;;;;;;;;;;;8119:1;8105:16;;;;7967:315;;;;8155:10;8166:1;8155:13;;;;;;;;;;;;;;;;;;;;;;;:16;;;;;7967:315;;;;;;8208:13;;;8219:1;8208:13;;;;;;;;7967:315;;;;;;;8254:13;;;;;;;;;;7967:315;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;;7955:328:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7955:328:5;;;-1:-1:-1;;7955:328:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7955:328:5;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8298:195;8362:1;8346:6;:13;;;;:17;8388:10;8399:1;8388:13;;;;;;;;;;;;;;;;;;;;;;:16;;;8429:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;8464:15;8298:24;:195::i;:::-;7267:3;;7226:1278;;;8519:15;;;;;;;6900:1641;;;:::o;10332:1802::-;10632:11;10657:6;10677:18;10715:7;11346:17;11471:24;10505:1;10489:6;:13;;;;:17;10485:109;;;10566:10;10577:1;10566:13;;;;;;;;;;;;;;;;;;;;:16;10530:6;10537:13;;-1:-1:-1;;10537:17:5;;;10530:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:52;10522:61;;;;;;10604:17;10611:10;;10604:17;:::i;:::-;10646:1;10632:15;;10666:1;10657:10;;10698:1;10677:22;;10725:1;10715:11;;10710:1333;10732:10;:17;10728:1;:21;;;10710:1333;;;10808:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:31;;10800:40;;;;;;10862:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:31;;10854:40;;;;;;10916:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:31;;10908:40;;;;;;11017:3;10998:10;11009:1;10998:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;10990:31;;;;;;11062:10;11073:1;11062:13;;;;;;;;;;;;;;;;;;;;;;:16;11043:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:35;11035:44;;;;;;11120:10;11131:1;11120:13;;;;;;;;;;;;;;;;;;;;;;;:16;;11101:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:35;11093:44;;;;;;11160:1;11156;:5;;;11152:92;;;11212:10;11223:1;11212:13;;;;;;;;;;;;;;;;;;;;;;:16;11189:17;;;;-1:-1:-1;;11200:5:5;;11189:17;;;;;;;;;;;;;;;;;;;:20;;;:39;11181:48;;;;;;11302:28;:10;11313:1;11302:13;;;;;;;;;;;;;;;;;;;;;11316:1;11302:16;;:28;11294:37;;;;;;;;11366:46;11393:6;11401:7;11409:1;11401:10;;;;;;;;;;;;;;;;;;11366:46;;:20;:26;;:46;;;;;:::i;:::-;11346:66;;11435:22;11446:7;11454:1;11446:10;;;;;;;;;;;;;;;;;;11435:22;;:6;:10;;:22;;;;:::i;:::-;11426:31;;11498:50;11525:6;11533:7;11541:1;11545;11541:5;11533:14;;;;;;;;;11498:50;11471:77;;11571:26;11582:7;11590:1;11594;11590:5;11582:14;;;;;;;;;11571:26;11562:35;-1:-1:-1;11615:8:5;:1;11621;11615:8;:5;:8;:::i;:::-;11611:12;;11654:35;11672:10;11683:1;11672:13;;;;;;;;;;;;;;;;;;;;;;:16;;;11654:13;;:17;:35::i;:::-;11638:51;;11704:10;11720:311;;;;;;;;;11764:10;11775:1;11764:13;;;;;;;;;;;;;;;;;;;;;;;:16;11720:311;;;;11815:13;;11720:311;;;11815:10;;:13;;;;;;;;;;;;;;;;;;;11829:1;11815:16;;;;11720:311;;;;11869:10;11880:1;11869:13;;;;;;;;;;;;;;;;;;;;;11883:1;11869:16;;;;11720:311;;;;;;11929:10;11940:1;11929:13;;;;;;;;;;;;;;;;;;;;;11943:1;11929:16;;;;;;;;;11720:311;;;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;11704:328:5;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11704:328:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11704:328:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11704:328:5;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;10751:3:5;;;;;-1:-1:-1;10710:1333:5;;-1:-1:-1;10710:1333:5;;12078:7;:11;:13;;;;;-1:-1:-1;;;12078:13:5;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12078:13:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12078:13:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12078:13:5;12061:30;;12053:39;;;;;;12108:19;;;;;;;10332:1802;;;;;;;;;:::o;152:470:12:-;251:21;;230:6;;251:26;247:177;;-1:-1:-1;302:1:12;293:121;309:21;;305:25;;293:121;;;394:5;355:8;:17;;:36;373:8;:14;;388:1;373:17;;;;;;;;;;;;;;;;;;;;;;;355:36;;;;;;;;;;;;:44;;-1:-1:-1;;355:44:12;;;;;;;;;;-1:-1:-1;332:3:12;293:121;;;434:22;;;;:8;;:22;;;;;:::i;:::-;-1:-1:-1;471:12:12;;:17;467:149;;-1:-1:-1;513:1:12;504:102;520:5;:12;516:1;:16;504:102;;;587:4;557:8;:17;;:27;575:5;581:1;575:8;;;;;;;;;;;;;;;;;;;;;557:27;;;;;;;;;;-1:-1:-1;557:27:12;:34;;-1:-1:-1;;557:34:12;;;;;;;;;;-1:-1:-1;534:3:12;504:102;;4693:219:5;4791:1;4782:10;;4774:19;;;;;;-1:-1:-1;;;;;4811:28:5;;;;4803:37;;;;;;4851:5;:14;;;;4875:13;:30;;-1:-1:-1;;4875:30:5;-1:-1:-1;;;;;4875:30:5;;;;;;;;;4693:219::o;1512:171:45:-;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o;4967:1591:15:-;5319:14;;:::i;:::-;6129:10;5357:216;5388:6;5408:11;5433:13;5460:12;5486:22;5522:13;5549:14;5357:17;:216::i;:::-;5349:225;;;;;;;;5614:11;5589:22;:36;5585:103;;;5655:22;5641:36;;5585:103;5716:23;;;5723:1;5782:12;;:100;;5870:12;5782:100;;;5809:46;5846:8;5830:7;:11;:13;;;;;-1:-1:-1;;;5830:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5809:46:15;5770:9;;;:112;;;5924:111;;;;;;;;;;;;;;;;;;;;;;;;;;:5;;:26;;:111;;;;;5770:9;;5924:111;;;;;;;:5;:111;;;5:2:-1;;;;30:1;27;20:12;5:2;5924:111:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5924:111:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5924:111:15;5912:9;;;:123;;;6092:25;-1:-1:-1;6092:25:15;6084:34;;;;;;6142:52;6151:6;6158:1;6151:9;;6142:52;6129:65;-1:-1:-1;6217:5:15;:33;6264:6;6271:1;6264:9;;;;6287:14;6315:51;6341:24;6359:5;6341:7;:11;:13;;;;;-1:-1:-1;;;6341:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;6341:24:15;6315:13;;:51;:25;:51;:::i;:::-;6217:159;;;;;-1:-1:-1;;;6217:159:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6217:159:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6217:159:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6217:159:15;6205:9;;;:171;;;6424:14;6420:132;;;6466:1;6454:13;;;:9;6481;;:13;;;6508:9;;;:13;6420:132;4967:1591;;;;;;;;;;;;;:::o;6835:1052::-;-1:-1:-1;;;;;7074:25:15;;;;7066:34;;;;;;-1:-1:-1;;;;;7118:19:15;;;;7110:28;;;;;;-1:-1:-1;;;;;7156:23:15;;;;7148:32;;;;;;-1:-1:-1;;;;;7198:27:15;;;;7190:36;;;;;;7241:7;;;;7251:1;-1:-1:-1;7241:37:15;;;;;7266:12;:10;:12::i;:::-;7256:22;;;7241:37;7237:102;;;-1:-1:-1;;;;;7302:25:15;;;;7294:34;;;;;;7353:7;;7363:1;-1:-1:-1;7349:181:15;;;7446:7;;7388:66;;;;;;-1:-1:-1;;;;;7388:66:15;;;;;;;;;;;;;;;;;;;;;;;:31;;;;;;:66;;;;;7446:7;;7388:66;;;;;;;;-1:-1:-1;7388:31:15;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;7388:66:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7388:66:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7388:66:15;7380:75;;;;;;;;7510:7;;7477:41;;;;;;-1:-1:-1;;;;;7477:41:15;;;;;;;;;;;;;;;;:21;;;;;;:41;;;;;7510:7;;7477:41;;;;;;;;-1:-1:-1;7477:21:15;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;7477:41:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7477:41:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7477:41:15;7469:50;;;;;;;;7544:7;;;;7554:1;-1:-1:-1;7540:341:15;;;7585:12;:10;:12::i;:::-;7575:22;;7571:300;;;7640:7;;;;7617:31;;-1:-1:-1;;;;;7617:22:15;;;:31;;;;;;;;;7640:7;7617:22;:31;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7617:31:15;7571:300;;;7754:7;;;;;7695:55;;;;;;7724:10;7695:55;;;;7744:4;7695:55;;;;;;7754:7;;-1:-1:-1;;;;;7695:28:15;;;;;:55;;;;;7754:7;7695:55;;;;;;-1:-1:-1;7695:28:15;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;7695:55:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7695:55:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7695:55:15;:66;;7687:75;;;;;;7847:7;;;;;7788:67;;;;;;7820:10;7788:67;;;;-1:-1:-1;;;;;7788:67:15;;;;;;;;;;;;;;;;:31;;;;;;:67;;;;;;;;;;-1:-1:-1;7788:31:15;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;7788:67:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7788:67:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7788:67:15;7780:76;;;;;;;7893:1022;-1:-1:-1;;;;;8100:19:15;;;;8092:28;;;;;;8138:11;;:16;;8130:25;;;;;;8173:11;;;;:16;;8165:25;;;;;;8222:7;;8208:11;;:21;8200:30;;;;;;8262:7;;;;;8248:11;;;;:21;8240:30;;;;;;8295:12;:10;:12::i;:::-;8285:22;;8281:86;;;8344:11;;;;8331:9;:24;;8323:33;;;;;;8391:12;:10;:12::i;:::-;8381:22;;8377:300;;-1:-1:-1;;;;;8427:25:15;;;;8419:34;;;;;;8534:24;8550:4;8555:1;8550:7;;8534:24;8475:55;;;;;;8504:10;8475:55;;;;8524:4;8475:55;;;;;;-1:-1:-1;;;;;8475:28:15;;;;;:55;;;;;;;;;;;;;;-1:-1:-1;8475:28:15;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;8475:55:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8475:55:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8475:55:15;:83;;8467:92;;;;;;8656:7;;;;-1:-1:-1;;;;;8581:31:15;;;;;8613:10;;8633:4;;8640:24;;:8;-1:-1:-1;8640:11:15;;:24;8581:84;;;;;;-1:-1:-1;;;8581:84:15;;;-1:-1:-1;;;;;8581:84:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8581:84:15;;;;5:2:-1;;;;30:1;27;20:12;5:2;8581:84:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8581:84:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8581:84:15;8573:93;;;;;;;;8738:11;;8695:64;;;;;;8726:10;8695:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:30:15;;;;;:64;;;;;8738:11;;8695:64;;;;;;;-1:-1:-1;8695:30:15;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;8695:64:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8695:64:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8695:64:15;8687:73;;;;;;;;8775:11;;;;8789:1;-1:-1:-1;8771:138:15;;;8820:12;:10;:12::i;:::-;8810:22;;8806:93;;;8872:11;;;;8852:32;;:10;;:32;;;;;;;;;8872:11;8852:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;8806:93:15;7893:1022;;;;;;:::o;1060:116:44:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:44;;;1060:116::o;403:526:15:-;652:11;693:1;684:6;:10;:43;;;;;726:1;710:13;:17;684:43;:75;;;;;758:1;743:12;:16;684:75;:136;;;;;807:13;801:2;:19;775:22;:45;;684:136;675:145;;845:12;:10;:12::i;:::-;835:22;;831:92;;;882:6;:30;;;;;892:14;910:2;892:20;882:30;873:39;;831:92;403:526;;;;;;;;;:::o;428:109:13:-;486:4;509:21;524:5;:3;:5::i;:::-;509:10;:2;516;509:10;:6;:10;:::i;:::-;:14;:21;:14;:21;:::i;1238:128:44:-;1319:7;;;1339;;;;1332:15;;;543:123:13;605:4;628:31;645:2;649;653:5;:3;:5::i;:::-;628:16;:31::i;672:107::-;723:4;752:5;:3;:5::i;:::-;746:2;:11;;:26;;;;;767:5;:3;:5::i;:::-;761:11;;;;;672:107;-1:-1:-1;672:107:13:o;8713:1196:5:-;9172:24;;9301:6;8836:10;;;;:22;;;;-1:-1:-1;8850:8:5;;;;8836:22;8832:187;;;8912:13;;;8923:1;8912:13;;;;;;;;8874:6;:18;;;;;;;;;;;;;;;;;;;;;;:35;;:51;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8974:13:5;;;8985:1;8974:13;;;;;;;;8939:6;:18;;;;;;;;;;;;;;;;;;;;;;:32;;:48;;;;;;;;;;;;:::i;8832:187::-;9044:22;;9037:29;;;;;9029:38;;;;;;9085:11;;;;;;;;9077:20;;;;;;9115:9;;;:14;9107:23;;;;;;9148:7;;;:12;9140:21;;;;;;9226:1;9210:17;9211:11;;;9210:17;;9199:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9199:29:5;-1:-1:-1;9172:56:5;-1:-1:-1;9289:1:5;9273:17;9274:11;;;9273:17;;9262:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9262:29:5;;9238:53;;9310:1;9301:10;;9322:470;9337:3;9329:11;;:5;:11;;;9322:470;;;9391:38;:15;9407:5;9415:1;9407:9;9391:26;;;;;;;;;;;;;;;;;;;;:36;:38::i;:::-;9383:47;;;;;;;;9481:7;:11;:13;;;;;-1:-1:-1;;;9481:13:5;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9481:13:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9481:13:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9481:13:5;9452:26;;:15;;:26;9476:1;9468:9;;9452:26;;;;;;;;;;;;;;;;;:42;9444:51;;;;;;9548:1;9544;:5;9540:95;;;9597:15;9613:5;9597:22;;;;;;;;;;;;;;;;;;;;9577:10;9592:1;9588;:5;9577:17;;;;;;;;;;;;;;;;;;;:42;9569:51;;;;;;9665:15;9681:5;9665:22;;;;;;;;;;;;;;;;;;;;9649:10;9660:1;9649:13;;;;;;;;;;;;;;;;;;:38;9714:26;;:15;;:26;9738:1;9730:9;;9714:26;;;;;;;;;;;;;;;;9701:7;9709:1;9701:10;;;;;;;;;;;;;;;;;;:39;9780:1;9771:10;;;;;9754:3;;9322:470;;;9840:10;9802:6;9809:10;9802:18;;;;;;;;;;;;;;;;;;;;;;:35;;:48;;;;;;;;;;;;:::i;:::-;;9895:7;9860:6;9867:10;9860:18;;;;;;;;;;;;;;;;;;;;;;:32;;:42;;;;;;;;;;;;:::i;:::-;;8713:1196;;;;;;;:::o;9374:2465:50:-;9454:5;9526:22;9506:7;9497:6;:16;9479:6;:13;:35;;9471:44;;;;;;;;9589:15;;9617:1967;;;;11725:4;11719:11;11706:24;;11776:4;11765:9;11761:20;11755:4;11748:34;9582:2214;;9617:1967;9799:4;9793:11;9780:24;;10458:2;10449:7;10445:16;10840:9;10833:17;10827:4;10823:28;10811:9;10800;10796:25;10792:60;10888:7;10884:2;10880:16;11140:6;11126:9;11119:17;11113:4;11109:28;11097:9;11089:6;11085:22;11081:57;11077:70;10914:425;11173:3;11169:2;11166:11;10914:425;;;11311:9;;11300:21;;11214:4;11206:13;;;;11246;10914:425;;;-1:-1:-1;;11357:26:50;;;11565:2;11548:11;-1:-1:-1;;11544:25:50;11538:4;11531:39;-1:-1:-1;9582:2214:50;-1:-1:-1;11823:9:50;9374:2465;-1:-1:-1;;;;9374:2465:50:o;357:65:13:-;393:4;414:5;:3;:5::i;:::-;408:2;:11;401:18;;357:65;:::o;203:380:44:-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:44;506:8;;485:36;-1:-1:-1;531:7:44;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;665:283;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;1131:658:16:-;1197:11;;;;;1255:6;;;1248:14;;;;1284:6;;;:16;;-1:-1:-1;1294:6:16;;1284:16;1281:28;;;1302:7;;1281:28;1331:15;-1:-1:-1;;1344:1:16;1331:12;:15::i;:::-;1319:27;-1:-1:-1;1361:9:16;;;1357:37;;1379:15;1392:1;1379:8;:1;1385;1379:8;:5;:8;:::i;:15::-;1372:22;;;;1357:37;1413:1;1408;:6;1404:20;;;1423:1;1416:8;;;;1404:20;1443:1;1438;:6;1434:20;;;1453:1;1446:8;;;;1434:20;1472:6;;1465:267;;1514:1;1507:4;:8;:19;;1522:4;1507:19;;;1518:1;1507:19;1494:32;-1:-1:-1;1560:12:16;1494:32;1570:1;1560:12;:9;:12;:::i;:::-;1540:32;-1:-1:-1;1596:31:16;1607:19;1540:32;1624:1;1607:19;:16;:19;:::i;:::-;1596:6;;:31;:10;:31;:::i;:::-;1587:40;;1656:34;1688:1;1673:12;:16;;;;;;;1656:12;;1673:16;;1656:34;:16;:34;:::i;:::-;1641:49;-1:-1:-1;1709:12:16;:1;1715:5;1709:12;:5;:12;:::i;:::-;1705:16;;1465:267;;;1751:31;1762:19;:12;1779:1;1762:19;:16;:19;:::i;1751:31::-;1742:40;;1131:658;;;;;;;;;;:::o;297:55:13:-;333:4;297:55;:::o;225:67::-;261:4;280:9;:7;:9::i;:::-;276:1;:13;269:20;;225:67;:::o;161:59::-;216:1;161:59;:::o;667:17098:5:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;667:17098:5;;;-1:-1:-1;;667:17098:5:o;:::-;;;;;;;;;;;;;;;105:10:-1;667:17098:5;88:34:-1;-1:-1;667:17098:5;;;-1:-1:-1;;667:17098:5:o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;667:17098:5;;;-1:-1:-1;;667:17098:5:o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;667:17098:5;;;-1:-1:-1;667:17098:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;667:17098:5;;;-1:-1:-1;;667:17098:5;;;;;;;;;;-1:-1:-1;;667:17098:5;;;;;;;-1:-1:-1;667:17098:5;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;667:17098:5;;;-1:-1:-1;;667:17098:5;;;;;;;;;;-1:-1:-1;;667:17098:5;;;;;;;-1:-1:-1;667:17098:5;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;924:139:13:-;977:4;1001:13;1011:2;1001:9;:13::i;:::-;993:22;;;;;;;;1033:23;1046:9;:7;:9::i;:::-;1033:2;;1040;:15;1033:23;:6;:23;:::i", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/ReentrancyGuard.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol\";\nimport \"solidity-bytes-utils/contracts/BytesLib.sol\";\nimport \"./IW12Crowdsale.sol\";\nimport \"./IW12Fund.sol\";\nimport \"../rates/IRates.sol\";\nimport \"../libs/Percent.sol\";\nimport \"../libs/PaymentMethods.sol\";\nimport \"../libs/PurchaseProcessing.sol\";\nimport \"../versioning/Versionable.sol\";\nimport \"../token/IWToken.sol\";\n\ncontract W12Crowdsale is Versionable, IW12Crowdsale, Ownable, ReentrancyGuard {\n using SafeMath for uint;\n using Percent for uint;\n using BytesLib for bytes;\n using PaymentMethods for PaymentMethods.Methods;\n\n IWToken public token;\n ERC20 public originToken;\n IW12Fund public fund;\n IRates public rates;\n uint public price;\n uint public serviceFee;\n uint public WTokenSaleFeePercent;\n address public serviceWallet;\n address public swap;\n\n // list of payment methods\n PaymentMethods.Methods paymentMethods;\n\n Stage[] public stages;\n Milestone[] public milestones;\n\n struct Stage {\n uint32 startDate;\n uint32 endDate;\n uint discount;\n uint32 vesting;\n uint[] volumeBoundaries;\n uint[] volumeBonuses;\n }\n\n struct Milestone {\n uint32 endDate;\n uint tranchePercent;\n uint32 voteEndDate;\n uint32 withdrawalWindow;\n bytes name;\n bytes description;\n }\n\n event TokenPurchase(address indexed buyer, uint tokensBought, uint cost, uint change);\n event StagesUpdated();\n event StageUpdated(uint index);\n event MilestonesUpdated();\n event CrowdsaleSetUpDone();\n event UnsoldTokenReturned(address indexed owner, uint amount);\n\n constructor (\n uint version,\n address _originToken,\n address _token,\n uint _price,\n address _serviceWallet,\n address _swap,\n uint _serviceFee,\n uint _WTokenSaleFeePercent,\n IW12Fund _fund,\n IRates _rates\n )\n Versionable(version) public\n {\n require(_originToken != address(0));\n require(_token != address(0));\n require(_serviceFee.isPercent() && _serviceFee.fromPercent() < 100);\n require(_WTokenSaleFeePercent.isPercent() && _WTokenSaleFeePercent.fromPercent() < 100);\n require(_fund != address(0));\n require(_swap != address(0));\n require(_rates != address(0));\n\n __setParameters(_price, _serviceWallet);\n\n token = IWToken(_token);\n originToken = ERC20(_originToken);\n serviceFee = _serviceFee;\n swap = _swap;\n WTokenSaleFeePercent = _WTokenSaleFeePercent;\n fund = _fund;\n rates = _rates;\n }\n\n function stagesLength() external view returns (uint) {\n return stages.length;\n }\n\n function milestonesLength() external view returns (uint) {\n return milestones.length;\n }\n\n function getMilestone(uint index) public view returns (uint32, uint, uint32, uint32, bytes, bytes) {\n return (\n milestones[index].endDate,\n milestones[index].tranchePercent,\n milestones[index].voteEndDate,\n milestones[index].withdrawalWindow,\n milestones[index].name,\n milestones[index].description\n );\n }\n\n function getStage(uint index) public view returns (uint32, uint32, uint, uint32, uint[], uint[]) {\n return (\n stages[index].startDate,\n stages[index].endDate,\n stages[index].discount,\n stages[index].vesting,\n stages[index].volumeBoundaries,\n stages[index].volumeBonuses\n );\n }\n\n function getEndDate() external view returns (uint32) {\n require(stages.length > 0);\n\n return stages[stages.length - 1].endDate;\n }\n\n /**\n * @dev Returns index of active milestone or last milestone\n */\n function getCurrentMilestoneIndex() public view returns (uint index, bool found) {\n if(milestones.length == 0 || !isEnded()) return;\n\n found = true;\n\n // from withdrawalWindow begins next milestone\n while(index < milestones.length - 1 && now >= milestones[index].withdrawalWindow) {\n index++;\n }\n }\n\n function getLastMilestoneIndex() public view returns (uint index, bool found) {\n if (milestones.length == 0 || !isEnded()) return;\n\n found = true;\n index = milestones.length - 1;\n }\n\n function __setParameters(uint _price, address _serviceWallet) internal {\n require(_price > 0);\n require(_serviceWallet != address(0));\n\n price = _price;\n serviceWallet = _serviceWallet;\n }\n\n function setParameters(uint _price) external onlyOwner beforeSaleStart {\n __setParameters(_price, serviceWallet);\n }\n\n /**\n * @dev Setup all crowdsale parameters at a time\n */\n function setup(\n uint[6][] parametersOfStages,\n uint[] bonusConditionsOfStages,\n uint[4][] parametersOfMilestones,\n uint32[] nameAndDescriptionsOffsetOfMilestones,\n bytes nameAndDescriptionsOfMilestones,\n bytes32[] paymentMethodsList\n )\n external onlyOwner beforeSaleStart\n {\n // primary check of parameters of stages\n require(parametersOfStages.length != 0);\n require(parametersOfStages.length <= uint8(- 1));\n\n // primary check of parameters of milestones\n require(parametersOfMilestones.length <= uint8(- 1));\n require(parametersOfMilestones.length == nameAndDescriptionsOffsetOfMilestones.length / 2);\n require(parametersOfMilestones.length <= nameAndDescriptionsOfMilestones.length / 2);\n\n // check payment methods list\n require(paymentMethodsList.length != 0);\n\n for (uint i = 0; i < paymentMethodsList.length; i++) {\n require(rates.hasSymbol(paymentMethodsList[i]));\n }\n\n _setStages(\n parametersOfStages,\n bonusConditionsOfStages\n );\n\n _setMilestones(\n parametersOfMilestones,\n nameAndDescriptionsOffsetOfMilestones,\n nameAndDescriptionsOfMilestones\n );\n\n paymentMethods.update(paymentMethodsList);\n\n emit CrowdsaleSetUpDone();\n }\n\n /**\n * @dev Update stages\n * @param parameters List of primary parameters:\n * [\n * uint32 startDate,\n * uint32 endDate,\n * uint discount,\n * uint32 vesting,\n * uint8 startIndexOfBonusConditions\n * uint8 endIndexOfBonusConditions\n * ],\n * @param bonusConditions List of bonus conditions:\n * [uint boundary, uint bonus, ...]\n */\n function _setStages(uint[6][] parameters, uint[] bonusConditions) internal {\n if (milestones.length > 0) {\n // end date of firs milestone must be greater then end date of last stage\n require(milestones[0].endDate > parameters[parameters.length - 1][1]);\n }\n\n delete stages;\n\n for (uint8 i = 0; i < parameters.length; i++) {\n // check overflow\n require(parameters[i][0] <= uint32(-1));\n require(parameters[i][1] <= uint32(-1));\n require(parameters[i][3] <= uint32(-1));\n require(parameters[i][4] <= uint8(-1));\n require(parameters[i][5] <= uint8(-1));\n\n // check dates\n require(parameters[i][0] > now);\n require(parameters[i][0] < parameters[i][1]);\n\n if (i > 0) {\n require(parameters[i - 1][1] <= parameters[i][0]);\n }\n\n // check discount\n require(parameters[i][2].isPercent());\n require(parameters[i][2] < Percent.MAX());\n\n stages.push(Stage({\n startDate: uint32(parameters[i][0]),\n endDate: uint32(parameters[i][1]),\n discount: parameters[i][2],\n vesting: uint32(parameters[i][3]),\n volumeBoundaries: new uint[](0),\n volumeBonuses: new uint[](0)\n }));\n\n _setStageBonusConditions(\n uint8(stages.length - 1),\n uint8(parameters[i][4]),\n uint8(parameters[i][5]),\n bonusConditions\n );\n }\n\n emit StagesUpdated();\n }\n\n /**\n * @dev Set stage bonus conditions by stage index\n * @param bonusConditions List of bonus conditions:\n * [uint boundary, uint bonus, ...]\n */\n function _setStageBonusConditions(uint8 stageIndex, uint8 start, uint8 end, uint[] bonusConditions) internal {\n if (start == 0 && end == 0) {\n stages[stageIndex].volumeBoundaries = new uint[](0);\n stages[stageIndex].volumeBonuses = new uint[](0);\n\n return;\n }\n\n require(end <= bonusConditions.length);\n require(start < end);\n require(start % 2 == 0);\n require(end % 2 == 0);\n\n uint[] memory boundaries = new uint[]((end - start) / 2);\n uint[] memory bonuses = new uint[]((end - start) / 2);\n uint k = 0;\n\n while (start < end) {\n // check bonus\n require(bonusConditions[start + 1].isPercent());\n require(bonusConditions[start + 1] < Percent.MAX());\n\n // check boundary\n if (k > 0) {\n require(boundaries[k - 1] < bonusConditions[start]);\n }\n\n boundaries[k] = bonusConditions[start];\n bonuses[k] = bonusConditions[start + 1];\n k++;\n start += 2;\n }\n\n stages[stageIndex].volumeBoundaries = boundaries;\n stages[stageIndex].volumeBonuses = bonuses;\n }\n\n /**\n * @dev Update milestones\n * @param parameters List of primary parameters:\n * [\n * uint32 endDate,\n * uint32 voteEndDate,\n * uint32 withdrawalWindow,\n * uint tranchPercent\n * ]\n * @param offsets Offsets of names and descriptions in namesAndDescriptions:\n * [uint32 offset1, uint32 offset2, ...]\n * @param namesAndDescriptions Names and descriptions\n */\n function _setMilestones(\n uint[4][] parameters,\n uint32[] offsets,\n bytes namesAndDescriptions\n )\n internal\n {\n if (stages.length > 0) {\n require(stages[stages.length - 1].endDate < parameters[0][0]);\n }\n\n delete milestones;\n\n uint offset = 0;\n uint k = 0;\n uint totalPercents = 0;\n\n for (uint8 i = 0; i < parameters.length; i++) {\n // check overflow\n require(parameters[i][0] <= uint32(- 1));\n require(parameters[i][1] <= uint32(- 1));\n require(parameters[i][2] <= uint32(- 1));\n\n // check dates\n require(parameters[i][0] > now);\n require(parameters[i][1] > parameters[i][0]);\n require(parameters[i][2] > parameters[i][1]);\n\n if (i > 0) {\n require(parameters[i - 1][2] < parameters[i][0]);\n }\n\n // check tranch percent\n require(parameters[i][3].isPercent());\n\n bytes memory name = namesAndDescriptions.slice(offset, offsets[k]);\n offset = offset.add(offsets[k]);\n bytes memory description = namesAndDescriptions.slice(offset, offsets[k + 1]);\n offset = offset.add(offsets[k + 1]);\n k = k.add(2);\n\n totalPercents = totalPercents.add(parameters[i][3]);\n\n milestones.push(Milestone({\n endDate: uint32(parameters[i][0]),\n tranchePercent: parameters[i][3],\n voteEndDate: uint32(parameters[i][1]),\n withdrawalWindow: uint32(parameters[i][2]),\n name: name,\n description: description\n }));\n }\n\n require(totalPercents == Percent.MAX());\n\n emit MilestonesUpdated();\n }\n\n function buyTokens(bytes32 method, uint amount) payable public nonReentrant onlyWhenSaleActive {\n if (PurchaseProcessing.METHOD_ETH() != method) {\n require(rates.getTokenAddress(method) != address(0));\n }\n\n (uint index, /*bool found*/) = getCurrentStageIndex();\n\n uint[5] memory invoice = getInvoice(method, amount);\n uint[2] memory fee = getFee(invoice[0], invoice[1]);\n\n _transferFee(fee, method);\n _transferPurchase(invoice, fee, stages[index].vesting, method);\n _recordPurchase(invoice, fee, method);\n\n emit TokenPurchase(msg.sender, invoice[0], invoice[1], invoice[3]);\n }\n\n function _transferFee(uint[2] _fee, bytes32 method) internal {\n PurchaseProcessing.transferFee(\n _fee,\n method,\n rates.isToken(method) ? rates.getTokenAddress(method) : address(0),\n address(token),\n address(originToken),\n swap,\n serviceWallet\n );\n }\n\n function _transferPurchase(uint[5] _invoice, uint[2] _fee, uint32 vesting, bytes32 method) internal {\n PurchaseProcessing.transferPurchase(\n _invoice,\n _fee,\n vesting,\n method,\n rates.isToken(method) ? rates.getTokenAddress(method) : address(0),\n address(token)\n );\n }\n\n function _recordPurchase(uint[5] _invoice, uint[2] _fee, bytes32 method) internal {\n if (method == PurchaseProcessing.METHOD_ETH()) {\n fund.recordPurchase.value(_invoice[1].sub(_fee[1]))(msg.sender, _invoice[0], method, _invoice[1].sub(_fee[1]), _invoice[2]);\n } else {\n require(ERC20(rates.getTokenAddress(method)).transfer(address(fund), _invoice[1].sub(_fee[1])));\n fund.recordPurchase(msg.sender, _invoice[0], method, _invoice[1].sub(_fee[1]), _invoice[2]);\n }\n }\n\n function getWToken() external view returns(IWToken) {\n return token;\n }\n\n function getFund() external view returns(IW12Fund) {\n return fund;\n }\n\n function getPaymentMethodsList() external view returns(bytes32[]) {\n return paymentMethods.list();\n }\n\n function isPaymentMethodAllowed(bytes32 _method) external view returns (bool) {\n return paymentMethods.isAllowed(_method);\n }\n\n function getInvoice(bytes32 method, uint amount) public view returns (uint[5]) {\n (uint index, bool found) = getCurrentStageIndex();\n\n if (!found) return;\n\n if (PurchaseProcessing.METHOD_ETH() != method) {\n if (!rates.isToken(method)) {\n return;\n }\n }\n\n return PurchaseProcessing.invoice(\n method,\n amount,\n stages[index].discount,\n stages[index].volumeBoundaries,\n stages[index].volumeBonuses,\n rates.get(method),\n price,\n uint(token.decimals()),\n PurchaseProcessing.METHOD_ETH() == method\n ? 18\n : uint(DetailedERC20(rates.getTokenAddress(method)).decimals()),\n token.balanceOf(address(this))\n );\n }\n\n function getInvoiceByTokenAmount(bytes32 method, uint tokenAmount) public view returns (uint[4]) {\n (uint index, bool found) = getCurrentStageIndex();\n\n if (!found) return;\n\n if (PurchaseProcessing.METHOD_ETH() != method) {\n if (!rates.isToken(method)) {\n return;\n }\n }\n\n return PurchaseProcessing.invoiceByTokenAmount(\n method,\n tokenAmount,\n stages[index].discount,\n stages[index].volumeBoundaries,\n stages[index].volumeBonuses,\n rates.get(method),\n price,\n uint(token.decimals()),\n PurchaseProcessing.METHOD_ETH() == method\n ? 18\n : uint(DetailedERC20(rates.getTokenAddress(method)).decimals()),\n token.balanceOf(address(this))\n );\n }\n\n function getFee(uint tokenAmount, uint cost) public view returns(uint[2]) {\n return PurchaseProcessing.fee(tokenAmount, cost, serviceFee, WTokenSaleFeePercent);\n }\n\n function getSaleVolumeBonus(uint value) public view returns(uint bonus) {\n (uint index, bool found) = getCurrentStageIndex();\n\n if (!found) return;\n\n Stage storage stage = stages[index];\n\n return PurchaseProcessing.getBonus(value, stage.volumeBoundaries, stage.volumeBonuses);\n }\n\n function getCurrentStageIndex() public view returns (uint index, bool found) {\n for(uint i = 0; i < stages.length; i++) {\n Stage storage stage = stages[i];\n\n if (stage.startDate <= now && stage.endDate > now) {\n return (i, true);\n }\n }\n\n return (0, false);\n }\n\n function claimRemainingTokens() external onlyOwner {\n require(isEnded());\n\n uint amount = token.balanceOf(address(this));\n\n require(token.transfer(owner, amount));\n\n emit UnsoldTokenReturned(owner, amount);\n }\n\n function isEnded() public view returns (bool) {\n return stages.length == 0 || stages[stages.length - 1].endDate < now;\n }\n\n function isSaleActive() public view returns (bool) {\n (, bool found) = getCurrentStageIndex();\n\n return found;\n }\n\n modifier beforeSaleStart() {\n if (stages.length > 0) {\n require(stages[0].startDate > now);\n }\n\n _;\n }\n\n modifier onlyWhenSaleActive() {\n require(isSaleActive(), \"Sale is not started yet\");\n\n _;\n }\n}\n", + "bytecode": "0x60806040523480156200001157600080fd5b5060405161014080620038f183398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015161012090990151969895969495939492939192909190896200007b336401000000006200047d810204565b6200008f33640100000000620004cf810204565b60025560038054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a16001600455600160a060020a0389161515620000fe57600080fd5b600160a060020a03881615156200011457600080fd5b8373__Percent_______________________________63520b006690916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156200018257600080fd5b505af415801562000197573d6000803e3d6000fd5b505050506040513d6020811015620001ae57600080fd5b5051801562000258575060648473__Percent_______________________________630fe9114790916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156200022857600080fd5b505af41580156200023d573d6000803e3d6000fd5b505050506040513d60208110156200025457600080fd5b5051105b15156200026457600080fd5b8273__Percent_______________________________63520b006690916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015620002d257600080fd5b505af4158015620002e7573d6000803e3d6000fd5b505050506040513d6020811015620002fe57600080fd5b50518015620003a8575060648373__Percent_______________________________630fe9114790916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156200037857600080fd5b505af41580156200038d573d6000803e3d6000fd5b505050506040513d6020811015620003a457600080fd5b5051105b1515620003b457600080fd5b600160a060020a0382161515620003ca57600080fd5b600160a060020a0385161515620003e057600080fd5b600160a060020a0381161515620003f657600080fd5b6200040b878764010000000062000521810204565b60058054600160a060020a0319908116600160a060020a039a8b16179091556006805482169a8a169a909a17909955600a93909355600d8054891694881694909417909355600b55600780548716928616929092179091556008805490951693169290921790925550620005ff915050565b620004986000826401000000006200320f6200056c82021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b620004ea6001826401000000006200320f6200056c82021704565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600082116200052f57600080fd5b600160a060020a03811615156200054557600080fd5b600991909155600c8054600160a060020a031916600160a060020a03909216919091179055565b600160a060020a03811615156200058257600080fd5b620005978282640100000000620005c7810204565b15620005a257600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620005df57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6132e2806200060f6000396000f3006080604052600436106102005763ffffffff60e060020a60003504166307f5d633811461020557806311eb8c9f1461021557806313096a411461024157806314f66d34146102725780631785f53c146102a0578063208853c9146102c15780632348238c146102eb5780632442e1cb1461030c57806324d7806c146104425780632e325020146104635780632fbe599014610554578063313602d4146105695780633baba4d71461057e5780633bcdb164146105935780634090cb64146105b457806343f48fbd146105c957806354fd4d50146105de578063550fd742146105f35780635641f3c314610658578063564566a81461066d5780637048027514610682578063792c02ea146106a35780638119c065146106b8578063845ddcb2146106cd5780638abdf5aa146107165780638aea2af81461072b5780638bad0c0a1461077e5780638edd6eb614610793578063a035b1fe146107a8578063a4fd6f56146107bd578063b1356488146107d2578063b60d428814610800578063c6dbdf6114610815578063d0934d611461082a578063d155790b1461083f578063d250185c14610860578063d5b2262314610892578063d6d65f3d146108ee578063d8e9ce6414610903578063daa4cf8814610924578063e89e4ed614610939578063e93b054014610951578063f6cf09dc14610969578063fc0c546a14610999575b600080fd5b6102136004356024356109ae565b005b34801561022157600080fd5b5061022d600435610b55565b604080519115158252519081900360200190f35b34801561024d57600080fd5b50610256610bfd565b60408051600160a060020a039092168252519081900360200190f35b34801561027e57600080fd5b50610287610c0c565b6040805192835290151560208301528051918290030190f35b3480156102ac57600080fd5b50610213600160a060020a0360043516610c3f565b3480156102cd57600080fd5b506102d9600435610c5f565b60408051918252519081900360200190f35b3480156102f757600080fd5b50610213600160a060020a0360043516610db6565b34801561031857600080fd5b50610324600435610e49565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103a1578181015183820152602001610389565b50505050905090810190601f1680156103ce5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156104015781810151838201526020016103e9565b50505050905090810190601f16801561042e5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561044e57600080fd5b5061022d600160a060020a0360043516611076565b34801561046f57600080fd5b5061047b60043561108e565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156104fb5781810151838201526020016104e3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561053a578181015183820152602001610522565b505050509050019850505050505050505060405180910390f35b34801561056057600080fd5b506102d9611234565b34801561057557600080fd5b5061021361123a565b34801561058a57600080fd5b506102d96113d5565b34801561059f57600080fd5b50610213600160a060020a03600435166113db565b3480156105c057600080fd5b506102566113f8565b3480156105d557600080fd5b50610256611407565b3480156105ea57600080fd5b506102d9611416565b3480156105ff57600080fd5b5061060861141c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561064457818101518382015260200161062c565b505050509050019250505060405180910390f35b34801561066457600080fd5b50610256611503565b34801561067957600080fd5b5061022d611512565b34801561068e57600080fd5b50610213600160a060020a0360043516611524565b3480156106af57600080fd5b506102d9611541565b3480156106c457600080fd5b50610256611547565b3480156106d957600080fd5b506106e5600435611556565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561072257600080fd5b506102d961159c565b34801561073757600080fd5b506107466004356024356115a2565b604051808260a080838360005b8381101561076b578181015183820152602001610753565b5050505090500191505060405180910390f35b34801561078a57600080fd5b50610213611854565b34801561079f57600080fd5b5061025661185f565b3480156107b457600080fd5b506102d961186e565b3480156107c957600080fd5b5061022d611874565b3480156107de57600080fd5b506107e76118bc565b6040805163ffffffff9092168252519081900360200190f35b34801561080c57600080fd5b50610256611903565b34801561082157600080fd5b50610256611912565b34801561083657600080fd5b50610213611921565b34801561084b57600080fd5b50610213600160a060020a036004351661192a565b34801561086c57600080fd5b5061087b600435602435611947565b604080518251815290819083908083836020610753565b34801561089e57600080fd5b50610213602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a4359182019101356119fd565b3480156108fa57600080fd5b50610287611d8e565b34801561090f57600080fd5b5061022d600160a060020a0360043516611e09565b34801561093057600080fd5b50610287611e1c565b34801561094557600080fd5b50610324600435611e9f565b34801561095d57600080fd5b5061021360043561200d565b34801561097557600080fd5b50610984600435602435612078565b60405181518152808260808083836020610753565b3480156109a557600080fd5b5061025661231d565b60006109b861325d565b6109c061327c565b60048054600101908190556109d3611512565b15156109de57600080fd5b856109e761232c565b14610a7c576008546040805160e460020a630b12e441028152600481018990529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b158015610a3c57600080fd5b505af1158015610a50573d6000803e3d6000fd5b505050506040513d6020811015610a6657600080fd5b5051600160a060020a03161415610a7c57600080fd5b610a84611e1c565b509350610a9186866115a2565b80516020820151919450610aa491611947565b9150610ab08287612350565b610ae48383601087815481101515610ac457fe5b600091825260209091206002600590920201015463ffffffff1689612542565b610aef838388612754565b8251602080850151606080870151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a26004548114610b4d57600080fd5b505050505050565b604080517f77df0856000000000000000000000000000000000000000000000000000000008152600e600482015260248101839052905160009173__PaymentMethods________________________916377df085691604480820192602092909190829003018186803b158015610bcb57600080fd5b505af4158015610bdf573d6000803e3d6000fd5b505050506040513d6020811015610bf557600080fd5b505192915050565b600654600160a060020a031681565b60115460009081901580610c255750610c23611874565b155b15610c2f57610c3b565b50506011546000190160015b9091565b610c4833611076565b1515610c5357600080fd5b610c5c81612a11565b50565b600080600080610c6d611e1c565b92509250811515610c7d57610dae565b6010805484908110610c8b57fe5b9060005260206000209060050201905073__PurchaseProcessing____________________63b8005df28683600301846004016040518463ffffffff1660e060020a0281526004018084815260200180602001806020018381038352858181548152602001915080548015610d1f57602002820191906000526020600020905b815481526020019060010190808311610d0b575b50508381038252848181548152602001915080548015610d5e57602002820191906000526020600020905b815481526020019060010190808311610d4a575b50509550505050505060206040518083038186803b158015610d7f57600080fd5b505af4158015610d93573d6000803e3d6000fd5b505050506040513d6020811015610da957600080fd5b505193505b505050919050565b600354600160a060020a03163314610dcd57600080fd5b600160a060020a0381161515610de257600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600080600080606080601187815481101515610e6157fe5b60009182526020909120600590910201546011805463ffffffff9092169189908110610e8957fe5b906000526020600020906005020160010154601189815481101515610eaa57fe5b60009182526020909120600260059092020101546011805463ffffffff909216918b908110610ed557fe5b906000526020600020906005020160020160049054906101000a900463ffffffff1660118b815481101515610f0657fe5b906000526020600020906005020160030160118c815481101515610f2657fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fcc5780601f10610fa157610100808354040283529160200191610fcc565b820191906000526020600020905b815481529060010190602001808311610faf57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529597508694509250840190508282801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b5050505050905095509550955095509550955091939550919395565b6000611088818363ffffffff612a5916565b92915050565b6000806000806060806010878154811015156110a657fe5b60009182526020909120600590910201546010805463ffffffff90921691899081106110ce57fe5b906000526020600020906005020160000160049054906101000a900463ffffffff166010898154811015156110ff57fe5b90600052602060002090600502016001015460108a81548110151561112057fe5b60009182526020909120600260059092020101546010805463ffffffff909216918c90811061114b57fe5b906000526020600020906005020160030160108c81548110151561116b57fe5b9060005260206000209060050201600401818054806020026020016040519081016040528092919081815260200182805480156111c757602002820191906000526020600020905b8154815260200190600101908083116111b3575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561105a57602002820191906000526020600020905b815481526020019060010190808311611205575050505050905095509550955095509550955091939550919395565b600b5481565b600061124533611e09565b151561125057600080fd5b611258611874565b151561126357600080fd5b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156112c957600080fd5b505af11580156112dd573d6000803e3d6000fd5b505050506040513d60208110156112f357600080fd5b5051600554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b15801561136557600080fd5b505af1158015611379573d6000803e3d6000fd5b505050506040513d602081101561138f57600080fd5b5051151561139c57600080fd5b60408051828152905133917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f8919081900360200190a250565b60115490565b6113e433611076565b15156113ef57600080fd5b610c5c81612a90565b600554600160a060020a031690565b600854600160a060020a031681565b60025481565b6060600e73__PaymentMethods________________________633b3d1a2290916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561147357600080fd5b505af4158015611487573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156114b057600080fd5b8101908080516401000000008111156114c857600080fd5b820160208101848111156114db57600080fd5b81518560208202830111640100000000821117156114f857600080fd5b509094505050505090565b600c54600160a060020a031681565b60008061151d611e1c565b9392505050565b61152d33611076565b151561153857600080fd5b610c5c81612ad8565b60105490565b600d54600160a060020a031681565b601080548290811061156457fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b600a5481565b6115aa61325d565b6000806115b561325d565b6115bd611e1c565b925092508115156115cd5761184b565b856115d661232c565b14611663576008546040805160e060020a63cfec719f028152600481018990529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561162c57600080fd5b505af1158015611640573d6000803e3d6000fd5b505050506040513d602081101561165657600080fd5b505115156116635761184b565b61166c86612b20565b905073__PurchaseProcessing____________________6391bfca31878760108781548110151561169957fe5b9060005260206000209060050201600101546010888154811015156116ba57fe5b90600052602060002090600502016003016010898154811015156116da57fe5b6000918252602082206004600590920201019088906020020151886001602002015189600260200201518a600360200201518b600460200201516040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a81815481526020019150805480156117a757602002820191906000526020600020905b815481526020019060010190808311611793575b505083810382528981815481526020019150805480156117e657602002820191906000526020600020905b8154815260200190600101908083116117d2575b50509c5050505050505050505050505060a06040518083038186803b15801561180e57600080fd5b505af4158015611822573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a081101561184757600080fd5b5093505b50505092915050565b61185d33612a11565b565b600754600160a060020a031690565b60095481565b60105460009015806118b7575060108054429190600019810190811061189657fe5b6000918252602090912060059091020154640100000000900463ffffffff16105b905090565b60105460009081106118cd57600080fd5b6010805460001981019081106118df57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600754600160a060020a031681565b600354600160a060020a031690565b61185d33612e17565b61193333611076565b151561193e57600080fd5b610c5c81612e17565b61194f61327c565b73__PurchaseProcessing____________________636cd5c0568484600a54600b546040518563ffffffff1660e060020a02815260040180858152602001848152602001838152602001828152602001945050505050604080518083038186803b1580156119bc57600080fd5b505af41580156119d0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060408110156119f557600080fd5b509392505050565b6000611a0833611e09565b1515611a1357600080fd5b60105460001015611a50574260106000815481101515611a2f57fe5b600091825260209091206005909102015463ffffffff1611611a5057600080fd5b8b1515611a5c57600080fd5b60ff8c1115611a6a57600080fd5b60ff881115611a7857600080fd5b600286048814611a8757600080fd5b60028404881115611a9757600080fd5b811515611aa357600080fd5b5060005b81811015611b4f57600854600160a060020a0316637d20abf8848484818110611acc57fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b158015611b1057600080fd5b505af1158015611b24573d6000803e3d6000fd5b505050506040513d6020811015611b3a57600080fd5b50511515611b4757600080fd5b600101611aa7565b611be88d8d808060200260200160405190810160405280939291908181526020016000905b82821015611bb0576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611b74565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612e5f945050505050565b611caf8989808060200260200160405190810160405280939291908181526020016000905b82821015611c49576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611c0d565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750612fa5945050505050565b604080517ff24950e2000000000000000000000000000000000000000000000000000000008152600e60048201818152602483019384526044830186905273__PaymentMethods________________________9363f24950e293889288929091606401846020850280828437820191505094505050505060006040518083038186803b158015611d3e57600080fd5b505af4158015611d52573d6000803e3d6000fd5b50506040517f072792b04aecd99b2250bc76fb25f9bca793c3b7383cb4c7255a7a01e8f5a12e925060009150a150505050505050505050505050565b60115460009081901580611da75750611da5611874565b155b15611db157610c3b565b5060015b6011546000190182108015611df957506011805483908110611dd357fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610c3b57600190910190611db5565b600061108860018363ffffffff612a5916565b60008080805b601054821015611e91576010805483908110611e3a57fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611e75575080544264010000000090910463ffffffff16115b15611e865781600193509350611e99565b600190910190611e22565b600093508392505b50509091565b6011805482908110611ead57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611f735780601f10611f4857610100808354040283529160200191611f73565b820191906000526020600020905b815481529060010190602001808311611f5657829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156120035780601f10611fd857610100808354040283529160200191612003565b820191906000526020600020905b815481529060010190602001808311611fe657829003601f168201915b5050505050905086565b600354600160a060020a0316331461202457600080fd5b6010546000101561206157426010600081548110151561204057fe5b600091825260209091206005909102015463ffffffff161161206157600080fd5b600c54610c5c908290600160a060020a0316613156565b612080613297565b60008061208b61325d565b612093611e1c565b925092508115156120a35761184b565b856120ac61232c565b14612139576008546040805160e060020a63cfec719f028152600481018990529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561210257600080fd5b505af1158015612116573d6000803e3d6000fd5b505050506040513d602081101561212c57600080fd5b505115156121395761184b565b61214286612b20565b905073__PurchaseProcessing____________________6391dab422878760108781548110151561216f57fe5b90600052602060002090600502016001015460108881548110151561219057fe5b90600052602060002090600502016003016010898154811015156121b057fe5b6000918252602082206004600590920201019088906020020151886001602002015189600260200201518a600360200201518b600460200201516040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a818154815260200191508054801561227d57602002820191906000526020600020905b815481526020019060010190808311612269575b505083810382528981815481526020019150805480156122bc57602002820191906000526020600020905b8154815260200190600101908083116122a8575b50509c5050505050505050505050505060806040518083038186803b1580156122e457600080fd5b505af41580156122f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250608081101561184757600080fd5b600554600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b6008546040805160e060020a63cfec719f02815260048101849052905173__PurchaseProcessing____________________92633676737c9286928692600160a060020a03169163cfec719f9160248083019260209291908290030181600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506040513d60208110156123e857600080fd5b50516123f5576000612473565b6008546040805160e460020a630b12e441028152600481018890529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561244657600080fd5b505af115801561245a573d6000803e3d6000fd5b505050506040513d602081101561247057600080fd5b50515b600554600654600d54600c546040805163ffffffff8a1660e060020a028152600160a060020a0395861695948516949384169390921691600401908190899080838360005b838110156124d05781810151838201526020016124b8565b50505050919091019788525050600160a060020a039485166020870152928416604080870191909152918416606086015283166080850152911660a08301525160c08083019350600092829003018186803b15801561252e57600080fd5b505af4158015610b4d573d6000803e3d6000fd5b6008546040805160e060020a63cfec719f02815260048101849052905173__PurchaseProcessing____________________92634bb1e9ff928892889288928892600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156125b757600080fd5b505af11580156125cb573d6000803e3d6000fd5b505050506040513d60208110156125e157600080fd5b50516125ee57600061266c565b6008546040805160e460020a630b12e441028152600481018a90529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561263f57600080fd5b505af1158015612653573d6000803e3d6000fd5b505050506040513d602081101561266957600080fd5b50515b60055460405160e060020a63ffffffff8916028152600160a060020a0390911690600401808760a080838360005b838110156126b257818101518382015260200161269a565b5050505090500186600260200280838360005b838110156126dd5781810151838201526020016126c5565b50505063ffffffff909816920191825250602081019490945250600160a060020a039182166040808501919091529116606083015251608080830195506000945090925090829003018186803b15801561273657600080fd5b505af415801561274a573d6000803e3d6000fd5b5050505050505050565b61275c61232c565b81141561283057600754600160a060020a031663d0baf2f561279484600160200201518660015b60200201519063ffffffff6131ac16565b8551602086015133919086906127ac908a6001612783565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b15801561281257600080fd5b505af1158015612826573d6000803e3d6000fd5b5050505050612a0c565b6008546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561288157600080fd5b505af1158015612895573d6000803e3d6000fd5b505050506040513d60208110156128ab57600080fd5b5051600754600160a060020a039182169163a9059cbb91166128d68560016020020151876001612783565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561292857600080fd5b505af115801561293c573d6000803e3d6000fd5b505050506040513d602081101561295257600080fd5b5051151561295f57600080fd5b600754600160a060020a031663d0baf2f53385600060200201518461298d8760016020020151896001612783565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b1580156129f357600080fd5b505af1158015612a07573d6000803e3d6000fd5b505050505b505050565b612a2260008263ffffffff6131c316565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515612a7057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b612aa160018263ffffffff61320f16565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b612ae960008263ffffffff61320f16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b612b2861325d565b600854604080517f8eaa6ac0000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691638eaa6ac0916024808201926020929091908290030181600087803b158015612b8f57600080fd5b505af1158015612ba3573d6000803e3d6000fd5b505050506040513d6020811015612bb957600080fd5b50518152600954602080830191909152600554604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263313ce567926004808401938290030181600087803b158015612c2357600080fd5b505af1158015612c37573d6000803e3d6000fd5b505050506040513d6020811015612c4d57600080fd5b505160ff16604082015281612c6061232c565b14612d73576008546040805160e460020a630b12e441028152600481018590529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612cb657600080fd5b505af1158015612cca573d6000803e3d6000fd5b505050506040513d6020811015612ce057600080fd5b5051604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b158015612d3f57600080fd5b505af1158015612d53573d6000803e3d6000fd5b505050506040513d6020811015612d6957600080fd5b505160ff16612d76565b60125b6060820152600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015612de157600080fd5b505af1158015612df5573d6000803e3d6000fd5b505050506040513d6020811015612e0b57600080fd5b50516080820152919050565b612e2860018263ffffffff6131c316565b604051600160a060020a038216907fa3bfdef3d8149bacf15b7b64199fca8228c0fd4f8fcdd11cc7871829baf319c390600090a250565b73__Crowdsale_____________________________63ae1c60546010601185856040518563ffffffff1660e060020a0281526004018085815260200184815260200180602001806020018381038352858181518152602001915080516000925b81841015612f015760208085028401015160c080838360005b83811015612ef0578181015183820152602001612ed8565b505050509050019260010192612ebf565b868103855287518152875160209182019450818901935002905080838360005b83811015612f39578181015183820152602001612f21565b50505050905001965050505050505060006040518083038186803b158015612f6057600080fd5b505af4158015612f74573d6000803e3d6000fd5b50506040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e6925060009150a15050565b73__Crowdsale_____________________________63e1231f1e601060118686866040518663ffffffff1660e060020a028152600401808681526020018581526020018060200180602001806020018481038452878181518152602001915080516000925b8184101561304c57602080850284010151608080838360005b8381101561303b578181015183820152602001613023565b50505050905001926001019261300a565b878103865289518152895160209182019450818b01935002905080838360005b8381101561308457818101518382015260200161306c565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156130c05781810151838201526020016130a8565b50505050905090810190601f1680156130ed5780820380516001836020036101000a031916815260200191505b509850505050505050505060006040518083038186803b15801561311057600080fd5b505af4158015613124573d6000803e3d6000fd5b50506040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca925060009150a1505050565b6000821161316357600080fd5b600160a060020a038116151561317857600080fd5b600991909155600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600080838311156131bc57600080fd5b5050900390565b600160a060020a03811615156131d857600080fd5b6131e28282612a59565b15156131ed57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a038116151561322457600080fd5b61322e8282612a59565b1561323857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b60806040519081016040528060049060208202803883395091929150505600a165627a7a723058205764eaf376f5cb24c4af6d62f551ccb0be08befceceb38c1563d18ddec1d03270029", + "deployedBytecode": "0x6080604052600436106102005763ffffffff60e060020a60003504166307f5d633811461020557806311eb8c9f1461021557806313096a411461024157806314f66d34146102725780631785f53c146102a0578063208853c9146102c15780632348238c146102eb5780632442e1cb1461030c57806324d7806c146104425780632e325020146104635780632fbe599014610554578063313602d4146105695780633baba4d71461057e5780633bcdb164146105935780634090cb64146105b457806343f48fbd146105c957806354fd4d50146105de578063550fd742146105f35780635641f3c314610658578063564566a81461066d5780637048027514610682578063792c02ea146106a35780638119c065146106b8578063845ddcb2146106cd5780638abdf5aa146107165780638aea2af81461072b5780638bad0c0a1461077e5780638edd6eb614610793578063a035b1fe146107a8578063a4fd6f56146107bd578063b1356488146107d2578063b60d428814610800578063c6dbdf6114610815578063d0934d611461082a578063d155790b1461083f578063d250185c14610860578063d5b2262314610892578063d6d65f3d146108ee578063d8e9ce6414610903578063daa4cf8814610924578063e89e4ed614610939578063e93b054014610951578063f6cf09dc14610969578063fc0c546a14610999575b600080fd5b6102136004356024356109ae565b005b34801561022157600080fd5b5061022d600435610b55565b604080519115158252519081900360200190f35b34801561024d57600080fd5b50610256610bfd565b60408051600160a060020a039092168252519081900360200190f35b34801561027e57600080fd5b50610287610c0c565b6040805192835290151560208301528051918290030190f35b3480156102ac57600080fd5b50610213600160a060020a0360043516610c3f565b3480156102cd57600080fd5b506102d9600435610c5f565b60408051918252519081900360200190f35b3480156102f757600080fd5b50610213600160a060020a0360043516610db6565b34801561031857600080fd5b50610324600435610e49565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103a1578181015183820152602001610389565b50505050905090810190601f1680156103ce5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156104015781810151838201526020016103e9565b50505050905090810190601f16801561042e5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561044e57600080fd5b5061022d600160a060020a0360043516611076565b34801561046f57600080fd5b5061047b60043561108e565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156104fb5781810151838201526020016104e3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561053a578181015183820152602001610522565b505050509050019850505050505050505060405180910390f35b34801561056057600080fd5b506102d9611234565b34801561057557600080fd5b5061021361123a565b34801561058a57600080fd5b506102d96113d5565b34801561059f57600080fd5b50610213600160a060020a03600435166113db565b3480156105c057600080fd5b506102566113f8565b3480156105d557600080fd5b50610256611407565b3480156105ea57600080fd5b506102d9611416565b3480156105ff57600080fd5b5061060861141c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561064457818101518382015260200161062c565b505050509050019250505060405180910390f35b34801561066457600080fd5b50610256611503565b34801561067957600080fd5b5061022d611512565b34801561068e57600080fd5b50610213600160a060020a0360043516611524565b3480156106af57600080fd5b506102d9611541565b3480156106c457600080fd5b50610256611547565b3480156106d957600080fd5b506106e5600435611556565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561072257600080fd5b506102d961159c565b34801561073757600080fd5b506107466004356024356115a2565b604051808260a080838360005b8381101561076b578181015183820152602001610753565b5050505090500191505060405180910390f35b34801561078a57600080fd5b50610213611854565b34801561079f57600080fd5b5061025661185f565b3480156107b457600080fd5b506102d961186e565b3480156107c957600080fd5b5061022d611874565b3480156107de57600080fd5b506107e76118bc565b6040805163ffffffff9092168252519081900360200190f35b34801561080c57600080fd5b50610256611903565b34801561082157600080fd5b50610256611912565b34801561083657600080fd5b50610213611921565b34801561084b57600080fd5b50610213600160a060020a036004351661192a565b34801561086c57600080fd5b5061087b600435602435611947565b604080518251815290819083908083836020610753565b34801561089e57600080fd5b50610213602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a4359182019101356119fd565b3480156108fa57600080fd5b50610287611d8e565b34801561090f57600080fd5b5061022d600160a060020a0360043516611e09565b34801561093057600080fd5b50610287611e1c565b34801561094557600080fd5b50610324600435611e9f565b34801561095d57600080fd5b5061021360043561200d565b34801561097557600080fd5b50610984600435602435612078565b60405181518152808260808083836020610753565b3480156109a557600080fd5b5061025661231d565b60006109b861325d565b6109c061327c565b60048054600101908190556109d3611512565b15156109de57600080fd5b856109e761232c565b14610a7c576008546040805160e460020a630b12e441028152600481018990529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b158015610a3c57600080fd5b505af1158015610a50573d6000803e3d6000fd5b505050506040513d6020811015610a6657600080fd5b5051600160a060020a03161415610a7c57600080fd5b610a84611e1c565b509350610a9186866115a2565b80516020820151919450610aa491611947565b9150610ab08287612350565b610ae48383601087815481101515610ac457fe5b600091825260209091206002600590920201015463ffffffff1689612542565b610aef838388612754565b8251602080850151606080870151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a26004548114610b4d57600080fd5b505050505050565b604080517f77df0856000000000000000000000000000000000000000000000000000000008152600e600482015260248101839052905160009173__PaymentMethods________________________916377df085691604480820192602092909190829003018186803b158015610bcb57600080fd5b505af4158015610bdf573d6000803e3d6000fd5b505050506040513d6020811015610bf557600080fd5b505192915050565b600654600160a060020a031681565b60115460009081901580610c255750610c23611874565b155b15610c2f57610c3b565b50506011546000190160015b9091565b610c4833611076565b1515610c5357600080fd5b610c5c81612a11565b50565b600080600080610c6d611e1c565b92509250811515610c7d57610dae565b6010805484908110610c8b57fe5b9060005260206000209060050201905073__PurchaseProcessing____________________63b8005df28683600301846004016040518463ffffffff1660e060020a0281526004018084815260200180602001806020018381038352858181548152602001915080548015610d1f57602002820191906000526020600020905b815481526020019060010190808311610d0b575b50508381038252848181548152602001915080548015610d5e57602002820191906000526020600020905b815481526020019060010190808311610d4a575b50509550505050505060206040518083038186803b158015610d7f57600080fd5b505af4158015610d93573d6000803e3d6000fd5b505050506040513d6020811015610da957600080fd5b505193505b505050919050565b600354600160a060020a03163314610dcd57600080fd5b600160a060020a0381161515610de257600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600080600080606080601187815481101515610e6157fe5b60009182526020909120600590910201546011805463ffffffff9092169189908110610e8957fe5b906000526020600020906005020160010154601189815481101515610eaa57fe5b60009182526020909120600260059092020101546011805463ffffffff909216918b908110610ed557fe5b906000526020600020906005020160020160049054906101000a900463ffffffff1660118b815481101515610f0657fe5b906000526020600020906005020160030160118c815481101515610f2657fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fcc5780601f10610fa157610100808354040283529160200191610fcc565b820191906000526020600020905b815481529060010190602001808311610faf57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529597508694509250840190508282801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b5050505050905095509550955095509550955091939550919395565b6000611088818363ffffffff612a5916565b92915050565b6000806000806060806010878154811015156110a657fe5b60009182526020909120600590910201546010805463ffffffff90921691899081106110ce57fe5b906000526020600020906005020160000160049054906101000a900463ffffffff166010898154811015156110ff57fe5b90600052602060002090600502016001015460108a81548110151561112057fe5b60009182526020909120600260059092020101546010805463ffffffff909216918c90811061114b57fe5b906000526020600020906005020160030160108c81548110151561116b57fe5b9060005260206000209060050201600401818054806020026020016040519081016040528092919081815260200182805480156111c757602002820191906000526020600020905b8154815260200190600101908083116111b3575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561105a57602002820191906000526020600020905b815481526020019060010190808311611205575050505050905095509550955095509550955091939550919395565b600b5481565b600061124533611e09565b151561125057600080fd5b611258611874565b151561126357600080fd5b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156112c957600080fd5b505af11580156112dd573d6000803e3d6000fd5b505050506040513d60208110156112f357600080fd5b5051600554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b15801561136557600080fd5b505af1158015611379573d6000803e3d6000fd5b505050506040513d602081101561138f57600080fd5b5051151561139c57600080fd5b60408051828152905133917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f8919081900360200190a250565b60115490565b6113e433611076565b15156113ef57600080fd5b610c5c81612a90565b600554600160a060020a031690565b600854600160a060020a031681565b60025481565b6060600e73__PaymentMethods________________________633b3d1a2290916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561147357600080fd5b505af4158015611487573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156114b057600080fd5b8101908080516401000000008111156114c857600080fd5b820160208101848111156114db57600080fd5b81518560208202830111640100000000821117156114f857600080fd5b509094505050505090565b600c54600160a060020a031681565b60008061151d611e1c565b9392505050565b61152d33611076565b151561153857600080fd5b610c5c81612ad8565b60105490565b600d54600160a060020a031681565b601080548290811061156457fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b600a5481565b6115aa61325d565b6000806115b561325d565b6115bd611e1c565b925092508115156115cd5761184b565b856115d661232c565b14611663576008546040805160e060020a63cfec719f028152600481018990529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561162c57600080fd5b505af1158015611640573d6000803e3d6000fd5b505050506040513d602081101561165657600080fd5b505115156116635761184b565b61166c86612b20565b905073__PurchaseProcessing____________________6391bfca31878760108781548110151561169957fe5b9060005260206000209060050201600101546010888154811015156116ba57fe5b90600052602060002090600502016003016010898154811015156116da57fe5b6000918252602082206004600590920201019088906020020151886001602002015189600260200201518a600360200201518b600460200201516040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a81815481526020019150805480156117a757602002820191906000526020600020905b815481526020019060010190808311611793575b505083810382528981815481526020019150805480156117e657602002820191906000526020600020905b8154815260200190600101908083116117d2575b50509c5050505050505050505050505060a06040518083038186803b15801561180e57600080fd5b505af4158015611822573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a081101561184757600080fd5b5093505b50505092915050565b61185d33612a11565b565b600754600160a060020a031690565b60095481565b60105460009015806118b7575060108054429190600019810190811061189657fe5b6000918252602090912060059091020154640100000000900463ffffffff16105b905090565b60105460009081106118cd57600080fd5b6010805460001981019081106118df57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600754600160a060020a031681565b600354600160a060020a031690565b61185d33612e17565b61193333611076565b151561193e57600080fd5b610c5c81612e17565b61194f61327c565b73__PurchaseProcessing____________________636cd5c0568484600a54600b546040518563ffffffff1660e060020a02815260040180858152602001848152602001838152602001828152602001945050505050604080518083038186803b1580156119bc57600080fd5b505af41580156119d0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060408110156119f557600080fd5b509392505050565b6000611a0833611e09565b1515611a1357600080fd5b60105460001015611a50574260106000815481101515611a2f57fe5b600091825260209091206005909102015463ffffffff1611611a5057600080fd5b8b1515611a5c57600080fd5b60ff8c1115611a6a57600080fd5b60ff881115611a7857600080fd5b600286048814611a8757600080fd5b60028404881115611a9757600080fd5b811515611aa357600080fd5b5060005b81811015611b4f57600854600160a060020a0316637d20abf8848484818110611acc57fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b158015611b1057600080fd5b505af1158015611b24573d6000803e3d6000fd5b505050506040513d6020811015611b3a57600080fd5b50511515611b4757600080fd5b600101611aa7565b611be88d8d808060200260200160405190810160405280939291908181526020016000905b82821015611bb0576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611b74565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612e5f945050505050565b611caf8989808060200260200160405190810160405280939291908181526020016000905b82821015611c49576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611c0d565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750612fa5945050505050565b604080517ff24950e2000000000000000000000000000000000000000000000000000000008152600e60048201818152602483019384526044830186905273__PaymentMethods________________________9363f24950e293889288929091606401846020850280828437820191505094505050505060006040518083038186803b158015611d3e57600080fd5b505af4158015611d52573d6000803e3d6000fd5b50506040517f072792b04aecd99b2250bc76fb25f9bca793c3b7383cb4c7255a7a01e8f5a12e925060009150a150505050505050505050505050565b60115460009081901580611da75750611da5611874565b155b15611db157610c3b565b5060015b6011546000190182108015611df957506011805483908110611dd357fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610c3b57600190910190611db5565b600061108860018363ffffffff612a5916565b60008080805b601054821015611e91576010805483908110611e3a57fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611e75575080544264010000000090910463ffffffff16115b15611e865781600193509350611e99565b600190910190611e22565b600093508392505b50509091565b6011805482908110611ead57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611f735780601f10611f4857610100808354040283529160200191611f73565b820191906000526020600020905b815481529060010190602001808311611f5657829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156120035780601f10611fd857610100808354040283529160200191612003565b820191906000526020600020905b815481529060010190602001808311611fe657829003601f168201915b5050505050905086565b600354600160a060020a0316331461202457600080fd5b6010546000101561206157426010600081548110151561204057fe5b600091825260209091206005909102015463ffffffff161161206157600080fd5b600c54610c5c908290600160a060020a0316613156565b612080613297565b60008061208b61325d565b612093611e1c565b925092508115156120a35761184b565b856120ac61232c565b14612139576008546040805160e060020a63cfec719f028152600481018990529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561210257600080fd5b505af1158015612116573d6000803e3d6000fd5b505050506040513d602081101561212c57600080fd5b505115156121395761184b565b61214286612b20565b905073__PurchaseProcessing____________________6391dab422878760108781548110151561216f57fe5b90600052602060002090600502016001015460108881548110151561219057fe5b90600052602060002090600502016003016010898154811015156121b057fe5b6000918252602082206004600590920201019088906020020151886001602002015189600260200201518a600360200201518b600460200201516040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a818154815260200191508054801561227d57602002820191906000526020600020905b815481526020019060010190808311612269575b505083810382528981815481526020019150805480156122bc57602002820191906000526020600020905b8154815260200190600101908083116122a8575b50509c5050505050505050505050505060806040518083038186803b1580156122e457600080fd5b505af41580156122f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250608081101561184757600080fd5b600554600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b6008546040805160e060020a63cfec719f02815260048101849052905173__PurchaseProcessing____________________92633676737c9286928692600160a060020a03169163cfec719f9160248083019260209291908290030181600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506040513d60208110156123e857600080fd5b50516123f5576000612473565b6008546040805160e460020a630b12e441028152600481018890529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561244657600080fd5b505af115801561245a573d6000803e3d6000fd5b505050506040513d602081101561247057600080fd5b50515b600554600654600d54600c546040805163ffffffff8a1660e060020a028152600160a060020a0395861695948516949384169390921691600401908190899080838360005b838110156124d05781810151838201526020016124b8565b50505050919091019788525050600160a060020a039485166020870152928416604080870191909152918416606086015283166080850152911660a08301525160c08083019350600092829003018186803b15801561252e57600080fd5b505af4158015610b4d573d6000803e3d6000fd5b6008546040805160e060020a63cfec719f02815260048101849052905173__PurchaseProcessing____________________92634bb1e9ff928892889288928892600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156125b757600080fd5b505af11580156125cb573d6000803e3d6000fd5b505050506040513d60208110156125e157600080fd5b50516125ee57600061266c565b6008546040805160e460020a630b12e441028152600481018a90529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561263f57600080fd5b505af1158015612653573d6000803e3d6000fd5b505050506040513d602081101561266957600080fd5b50515b60055460405160e060020a63ffffffff8916028152600160a060020a0390911690600401808760a080838360005b838110156126b257818101518382015260200161269a565b5050505090500186600260200280838360005b838110156126dd5781810151838201526020016126c5565b50505063ffffffff909816920191825250602081019490945250600160a060020a039182166040808501919091529116606083015251608080830195506000945090925090829003018186803b15801561273657600080fd5b505af415801561274a573d6000803e3d6000fd5b5050505050505050565b61275c61232c565b81141561283057600754600160a060020a031663d0baf2f561279484600160200201518660015b60200201519063ffffffff6131ac16565b8551602086015133919086906127ac908a6001612783565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b15801561281257600080fd5b505af1158015612826573d6000803e3d6000fd5b5050505050612a0c565b6008546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561288157600080fd5b505af1158015612895573d6000803e3d6000fd5b505050506040513d60208110156128ab57600080fd5b5051600754600160a060020a039182169163a9059cbb91166128d68560016020020151876001612783565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561292857600080fd5b505af115801561293c573d6000803e3d6000fd5b505050506040513d602081101561295257600080fd5b5051151561295f57600080fd5b600754600160a060020a031663d0baf2f53385600060200201518461298d8760016020020151896001612783565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b1580156129f357600080fd5b505af1158015612a07573d6000803e3d6000fd5b505050505b505050565b612a2260008263ffffffff6131c316565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515612a7057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b612aa160018263ffffffff61320f16565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b612ae960008263ffffffff61320f16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b612b2861325d565b600854604080517f8eaa6ac0000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691638eaa6ac0916024808201926020929091908290030181600087803b158015612b8f57600080fd5b505af1158015612ba3573d6000803e3d6000fd5b505050506040513d6020811015612bb957600080fd5b50518152600954602080830191909152600554604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263313ce567926004808401938290030181600087803b158015612c2357600080fd5b505af1158015612c37573d6000803e3d6000fd5b505050506040513d6020811015612c4d57600080fd5b505160ff16604082015281612c6061232c565b14612d73576008546040805160e460020a630b12e441028152600481018590529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612cb657600080fd5b505af1158015612cca573d6000803e3d6000fd5b505050506040513d6020811015612ce057600080fd5b5051604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b158015612d3f57600080fd5b505af1158015612d53573d6000803e3d6000fd5b505050506040513d6020811015612d6957600080fd5b505160ff16612d76565b60125b6060820152600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015612de157600080fd5b505af1158015612df5573d6000803e3d6000fd5b505050506040513d6020811015612e0b57600080fd5b50516080820152919050565b612e2860018263ffffffff6131c316565b604051600160a060020a038216907fa3bfdef3d8149bacf15b7b64199fca8228c0fd4f8fcdd11cc7871829baf319c390600090a250565b73__Crowdsale_____________________________63ae1c60546010601185856040518563ffffffff1660e060020a0281526004018085815260200184815260200180602001806020018381038352858181518152602001915080516000925b81841015612f015760208085028401015160c080838360005b83811015612ef0578181015183820152602001612ed8565b505050509050019260010192612ebf565b868103855287518152875160209182019450818901935002905080838360005b83811015612f39578181015183820152602001612f21565b50505050905001965050505050505060006040518083038186803b158015612f6057600080fd5b505af4158015612f74573d6000803e3d6000fd5b50506040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e6925060009150a15050565b73__Crowdsale_____________________________63e1231f1e601060118686866040518663ffffffff1660e060020a028152600401808681526020018581526020018060200180602001806020018481038452878181518152602001915080516000925b8184101561304c57602080850284010151608080838360005b8381101561303b578181015183820152602001613023565b50505050905001926001019261300a565b878103865289518152895160209182019450818b01935002905080838360005b8381101561308457818101518382015260200161306c565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156130c05781810151838201526020016130a8565b50505050905090810190601f1680156130ed5780820380516001836020036101000a031916815260200191505b509850505050505050505060006040518083038186803b15801561311057600080fd5b505af4158015613124573d6000803e3d6000fd5b50506040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca925060009150a1505050565b6000821161316357600080fd5b600160a060020a038116151561317857600080fd5b600991909155600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600080838311156131bc57600080fd5b5050900390565b600160a060020a03811615156131d857600080fd5b6131e28282612a59565b15156131ed57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a038116151561322457600080fd5b61322e8282612a59565b1561323857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b60806040519081016040528060049060208202803883395091929150505600a165627a7a723058205764eaf376f5cb24c4af6d62f551ccb0be08befceceb38c1563d18ddec1d03270029", + "sourceMap": "741:13625:11:-;;;1697:984;8:9:-1;5:2;;;30:1;27;20:12;5:2;1697:984:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;306:21:3;316:10;306:9;;;;:21;:::i;:::-;334:28:8;351:10;334:16;;;;:28;:::i;:::-;123:7:48;:18;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;417:28;;;-1:-1:-1;;;;;436:8:55;;;;417:28;;;;;;;;;;;;559:1:62;543:13;:17;-1:-1:-1;;;;;2035:26:11;;;;2027:35;;;;;;-1:-1:-1;;;;;2080:20:11;;;;2072:29;;;;;;2119:11;:21;;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2119:23:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2119:23:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2119:23:11;:58;;;;;2174:3;2146:11;:23;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2146:25:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2146:25:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2146:25:11;:31;2119:58;2111:67;;;;;;;;2196:21;:31;;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2196:33:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2196:33:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2196:33:11;:78;;;;;2271:3;2233:21;:33;;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2233:35:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2233:35:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2233:35:11;:41;2196:78;2188:87;;;;;;;;-1:-1:-1;;;;;2293:19:11;;;;2285:28;;;;;;-1:-1:-1;;;;;2331:19:11;;;;2323:28;;;;;;-1:-1:-1;;;;;2369:20:11;;;;2361:29;;;;;;2401:39;2417:6;2425:14;2401:15;;;;:39;:::i;:::-;2451:5;:23;;-1:-1:-1;;;;;;2451:23:11;;;-1:-1:-1;;;;;2451:23:11;;;;;;;2484:11;:34;;;;;;;;;;;;;;2528:10;:24;;;;2562:4;:12;;;;;;;;;;;;;;2584:20;:44;2638:4;:12;;;;;;;;;;;;;;2660:5;:14;;;;;;;;;;;;;;-1:-1:-1;741:13625:11;;-1:-1:-1;;741:13625:11;612:115:3;667:19;:6;678:7;667:10;;;;;;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;689:136:8:-;751:26;:13;769:7;751:17;;;;;;:26;:::i;:::-;792;;-1:-1:-1;;;;;792:26:8;;;;;;;;689:136;:::o;4863:219:11:-;4961:1;4952:10;;4944:19;;;;;;-1:-1:-1;;;;;4981:28:11;;;;4973:37;;;;;;5021:5;:14;;;;5045:13;:30;;-1:-1:-1;;;;;;5045:30:11;-1:-1:-1;;;;;5045:30:11;;;;;;;;;4863:219::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;741:13625:11:-;;;;;;;", + "deployedSourceMap": "741:13625:11:-;;;;;;;;-1:-1:-1;;;741:13625:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7980:654;;;;;;;;;;10175:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10175:135:11;;;;;;;;;;;;;;;;;;;;;;;1023:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1023:25:11;;;;;;;;-1:-1:-1;;;;;1023:25:11;;;;;;;;;;;;;;4652:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4652:205:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2782:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2782:95:11;;;-1:-1:-1;;;;;2782:95:11;;;12930:320;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12930:320:11;;;;;;;;;;;;;;;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;;;-1:-1:-1;;;;;855:171:55;;;3307:388:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3307:388:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3307:388:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3307:388:11;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3307:388:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;423:104:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;423:104:3;;;-1:-1:-1;;;;;423:104:3;;;3701:359:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3701:359:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3701:359:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3701:359:11;;;;;;;;;;;;;;;;;;;;;;;1156:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1156:32:11;;;;13603:257;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13603:257:11;;;;3203:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3203:98:11;;;;2883:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2883:103:11;;;-1:-1:-1;;;;;2883:103:11;;;9886:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9886:81:11;;;;1080:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1080:19:11;;;;53::48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:48;;;;10058:111:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10058:111:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10058:111:11;;;;;;;;;;;;;;;;;1194:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1194:28:11;;;;14003:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14003:130:11;;;;2687:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2687:89:11;;;-1:-1:-1;;;;;2687:89:11;;;3107:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3107:90:11;;;;1228:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1228:19:11;;;;1329:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1329:31:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1128:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1128:22:11;;;;10316:761;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10316:761:11;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10316:761:11;;;;;;;;;;;;;;;;533:73:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;533:73:3;;;;9973:79:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9973:79:11;;;;1105:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1105:17:11;;;;13866:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13866:131:11;;;;4066:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4066:147:11;;;;;;;;;;;;;;;;;;;;;;;1054:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1054:20:11;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;596:87:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;596:87:8;;;;2992:109:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2992:109:11;;;-1:-1:-1;;;;;2992:109:11;;;12751:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12751:173:11;;;;;;;;;;;84:18:-1;;64:39;;12751:173:11;;;;;;;;52:2:-1;8:100;;5291:1387:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5291:1387:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4299:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4299:347:11;;;;472:118:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;472:118:8;;;-1:-1:-1;;;;;472:118:8;;;13256:341:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13256:341:11;;;;1366:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1366:39:11;;;;;5088:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5088:128:11;;;;;11502:810;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11502:810:11;;;;;;;;;;84:18:-1;;64:39;;11502:810:11;;;;;;52:2:-1;8:100;;997:20:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;997:20:11;;;;7980:654;8220:10;8283:22;;:::i;:::-;8344:18;;:::i;:::-;954:13:62;:18;;971:1;954:18;;;;;14330:14:11;:12;:14::i;:::-;14322:23;;;;;;;;8124:6;8089:31;:29;:31::i;:::-;:41;8085:124;;8154:5;;:29;;;-1:-1:-1;;;;;8154:29:11;;;;;;;;;;-1:-1:-1;;;;;;;8154:5:11;;:21;;:29;;;;;;;;;;;;;;-1:-1:-1;8154:5:11;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8154:29:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8154:29:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8154:29:11;-1:-1:-1;;;;;8154:43:11;;;8146:52;;;;;;8250:22;:20;:22::i;:::-;8219:53;;;8308:26;8319:6;8327;8308:10;:26::i;:::-;8372:10;;;8384;;;8283:51;;-1:-1:-1;8365:30:11;;:6;:30::i;:::-;8344:51;;8406:25;8419:3;8424:6;8406:12;:25::i;:::-;8441:62;8459:7;8468:3;8473:6;8480:5;8473:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;;;8496:6;8441:17;:62::i;:::-;8513:37;8529:7;8538:3;8543:6;8513:15;:37::i;:::-;8592:10;;;8604;;;;8616;;;;;8566:61;;;;;;;;;;;;;;;;;;;;;;8580:10;;8566:61;;;;;;;;;1051:13:62;;1035:29;;1027:38;;;;;;7980:654:11;;;;;;:::o;10175:135::-;10270:33;;;;;;:14;:33;;;;;;;;;;;;10247:4;;10270:24;;;;:33;;;;;;;;;;;;;;;:24;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;10270:33:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10270:33:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10270:33:11;;10175:135;-1:-1:-1;;10175:135:11:o;1023:25::-;;;-1:-1:-1;;;;;1023:25:11;;:::o;4652:205::-;4744:10;:17;4706:10;;;;4744:22;;:36;;;4771:9;:7;:9::i;:::-;4770:10;4744:36;4740:49;;;4782:7;;4740:49;-1:-1:-1;;4829:10:11;:17;-1:-1:-1;;4829:21:11;4807:4;4652:205;;;:::o;2782:95::-;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;2848:22:11;2861:8;2848:12;:22::i;:::-;2782:95;:::o;12930:320::-;12990:10;13013;13025;13101:29;13039:22;:20;:22::i;:::-;13012:49;;;;13077:5;13076:6;13072:19;;;13084:7;;13072:19;13133:6;:13;;13140:5;;13133:13;;;;;;;;;;;;;;;;13101:45;;13164:18;:27;13192:5;13199;:22;;13223:5;:19;;13164:79;;;;;-1:-1:-1;;;13164:79:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13164:79:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13164:79:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13164:79:11;;-1:-1:-1;12930:320:11;;;;;;;:::o;855:171:55:-;586:8;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;3307:388:11:-;3362:6;3370:4;3376:6;3384;3392:5;3399;3437:10;3448:5;3437:17;;;;;;;;;;;;;;;;;;;;;;;:25;3476:10;:17;;3437:25;;;;;3487:5;;3476:17;;;;;;;;;;;;;;;;:32;;;3522:10;3533:5;3522:17;;;;;;;;;;;;;;;;;;:29;:17;;;;;:29;;3565:10;:17;;3522:29;;;;;3576:5;;3565:17;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;3613:10;3624:5;3613:17;;;;;;;;;;;;;;;;;;;;:22;;3649:10;3660:5;3649:17;;;;;;;;;;;;;;;;;;;;:29;;3416:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3416:272:11;;;;;;;;;;;;;-1:-1:-1;;3416:272:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3416:272:11;;-1:-1:-1;3416:272:11;-1:-1:-1;3416:272:11;;;-1:-1:-1;3416:272:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3307:388;;;;;;;:::o;423:104:3:-;478:4;501:19;478:4;512:7;501:19;:10;:19;:::i;:::-;494:26;423:104;-1:-1:-1;;423:104:3:o;3701:359:11:-;3752:6;3760;3768:4;3774:6;3782;3790;3829;3836:5;3829:13;;;;;;;;;;;;;;;;;;;;;;;:23;3866:6;:13;;3829:23;;;;;3873:5;;3866:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;3901:6;3908:5;3901:13;;;;;;;;;;;;;;;;;;;;:22;;;3937:6;3944:5;3937:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;3972:6;:13;;3937:21;;;;;3979:5;;3972:13;;;;;;;;;;;;;;;;:30;;4016:6;4023:5;4016:13;;;;;;;;;;;;;;;;;;;;:27;;3808:245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:359;;;;;;;:::o;1156:32::-;;;;:::o;13603:257::-;13700:11;421:26:8;436:10;421:14;:26::i;:::-;413:35;;;;;;;;13679:9:11;:7;:9::i;:::-;13671:18;;;;;;;;13714:5;;:30;;;;;;13738:4;13714:30;;;;;;-1:-1:-1;;;;;13714:5:11;;;;:15;;:30;;;;;;;;;;;;;;;-1:-1:-1;13714:5:11;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13714:30:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13714:30:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13714:30:11;13763:5;;:34;;;;;;13778:10;13763:34;;;;;;;;;;;;13714:30;;-1:-1:-1;;;;;;13763:5:11;;;;:14;;:34;;;;;13714:30;;13763:34;;;;;;;;-1:-1:-1;13763:5:11;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;13763:34:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13763:34:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13763:34:11;13755:43;;;;;;;;13814:39;;;;;;;;13834:10;;13814:39;;;;;;;;;;13603:257;:::o;3203:98::-;3277:10;:17;3203:98;:::o;2883:103::-;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;2953:26:11;2970:8;2953:16;:26::i;9886:81::-;9955:5;;-1:-1:-1;;;;;9955:5:11;;9886:81::o;1080:19::-;;;-1:-1:-1;;;;;1080:19:11;;:::o;53::48:-;;;;:::o;10058:111:11:-;10141:21;;;;;;:14;:21;;;;;;10113:9;;10141:19;;;;:21;;;;;-1:-1:-1;;10141:21:11;;;;;;;;:19;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;10141:21:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10141:21:11;;;;;;39:16:-1;36:1;17:17;2:54;101:4;10141:21:11;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;10141:21:11;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;10141:21:11;;-1:-1:-1;;;;;10058:111:11;:::o;1194:28::-;;;-1:-1:-1;;;;;1194:28:11;;:::o;14003:130::-;14048:4;14067:10;14081:22;:20;:22::i;:::-;14064:39;14003:130;-1:-1:-1;;;14003:130:11:o;2687:89::-;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;2750:19:11;2760:8;2750:9;:19::i;3107:90::-;3177:6;:13;3107:90;:::o;1228:19::-;;;-1:-1:-1;;;;;1228:19:11;;:::o;1329:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1329:31:11;;;;;;;;;;:::o;1128:22::-;;;;:::o;10316:761::-;10386:7;;:::i;:::-;10406:10;10418;10642:28;;:::i;:::-;10432:22;:20;:22::i;:::-;10405:49;;;;10470:5;10469:6;10465:19;;;10477:7;;10465:19;10533:6;10498:31;:29;:31::i;:::-;:41;10494:138;;10560:5;;:21;;;-1:-1:-1;;;;;10560:21:11;;;;;;;;;;-1:-1:-1;;;;;10560:5:11;;;;-1:-1:-1;;10560:21:11;;;;;;;;;;;;;;;-1:-1:-1;10560:5:11;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;10560:21:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10560:21:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10560:21:11;10559:22;10555:67;;;10601:7;;10555:67;10673:32;10698:6;10673:24;:32::i;:::-;10642:63;;10723:18;:26;10763:6;10783;10803;10810:5;10803:13;;;;;;;;;;;;;;;;;;;;:22;;;10839:6;10846:5;10839:13;;;;;;;;;;;;;;;;;;;;:30;;10883:6;10890:5;10883:13;;;;;;;;;;;;;;;;;:27;:13;;;;;:27;;10924:13;;:16;;;;10954:13;10968:1;10954:16;;;;10984:13;10998:1;10984:16;;;;11014:13;11028:1;11014:16;;;;11044:13;11058:1;11044:16;;;;10723:347;;;;;-1:-1:-1;;;10723:347:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10723:347:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10723:347:11;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:3;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;10723:347:11;-1:-1:-1;10316:761:11;;;;;;;;:::o;533:73:3:-;575:24;588:10;575:12;:24::i;:::-;533:73::o;9973:79:11:-;10041:4;;-1:-1:-1;;;;;10041:4:11;;9973:79::o;1105:17::-;;;;:::o;13866:131::-;13929:6;:13;13906:4;;13929:18;;:61;;-1:-1:-1;13951:6:11;13958:13;;13987:3;;13951:6;-1:-1:-1;;13958:17:11;;;13951:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:39;13929:61;13922:68;;13866:131;:::o;4066:147::-;4137:6;:13;4111:6;;4137:17;-1:-1:-1;4129:26:11;;;;;;4173:6;4180:13;;-1:-1:-1;;4180:17:11;;;4173:25;;;;;;;;;;;;;;;;;;;:33;;;;;;;4066:147;-1:-1:-1;4066:147:11:o;1054:20::-;;;-1:-1:-1;;;;;1054:20:11;;:::o;664:75:55:-;726:8;;-1:-1:-1;;;;;726:8:55;;664:75::o;596:87:8:-;645:31;665:10;645:19;:31::i;2992:109:11:-;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;3065:29:11;3085:8;3065:19;:29::i;12751:173::-;12816:7;;:::i;:::-;12884:10;;12896:20;;12842:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;;:22;;:75;;;;;;;;;;;;:18;:75;;;5:2:-1;;;;30:1;27;20:12;5:2;12842:75:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12842:75:11;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12842:75:11;12751:173;-1:-1:-1;;;12751:173:11:o;5291:1387::-;6197:6;421:26:8;436:10;421:14;:26::i;:::-;413:35;;;;;;;;14180:6:11;:13;14196:1;-1:-1:-1;14176:82:11;;;14243:3;14221:6;14228:1;14221:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;14213:34;;;;;;5694:30;;;5686:39;;;;;;5743;;;;5735:48;;;;;;5855:43;;;;5847:52;;;;;;5997:1;5950:37;:48;5917:81;;5909:90;;;;;;6091:1;6050:31;:42;6017:75;;;6009:84;;;;;;6150:30;;;6142:39;;;;;;-1:-1:-1;6206:1:11;6192:125;6209:29;;;6192:125;;;6267:5;;-1:-1:-1;;;;;6267:5:11;:15;6283:18;;6302:1;6283:21;;;;;;;6267:38;;;;;;-1:-1:-1;;;6267:38:11;;;6283:21;;;;;;;;;6267:38;;;;;;;;;;6283:21;;-1:-1:-1;6267:38:11;;;;;;;-1:-1:-1;6267:38:11;;;;5:2:-1;;;;30:1;27;20:12;5:2;6267:38:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6267:38:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6267:38:11;6259:47;;;;;;;;6240:3;;6192:125;;;6327:89;6351:18;;6327:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6327:89:11;;;-1:-1:-1;;6327:89:11;;;;;;;;;;;;;;;6383:23;;6327:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6327:10:11;;-1:-1:-1;;;;;6327:89:11:i;:::-;6427:156;6455:22;;6427:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6427:156:11;;;-1:-1:-1;;6427:156:11;;;;;;;;;;;;;;;6491:37;;6427:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6427:156:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6542:31:11;;-1:-1:-1;6542:31:11;;-1:-1:-1;6542:31:11;;-1:-1:-1;6427:156:11;;6542:31;;;;6427:156;;-1:-1:-1;6427:14:11;;-1:-1:-1;;;;;6427:156:11:i;:::-;6594:41;;;;;;:14;:41;;;;;;;;;;;;;;;;;;:21;;;;6616:18;;;;6594:41;;;;6616:18;6594:41;;;;6616:18;6594:41;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6594:41:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6651:20:11;;;;-1:-1:-1;6651:20:11;;-1:-1:-1;6651:20:11;5291:1387;;;;;;;;;;;;;:::o;4299:347::-;4393:10;:17;4356:10;;;;4393:22;;:36;;;4420:9;:7;:9::i;:::-;4419:10;4393:36;4390:48;;;4431:7;;4390:48;-1:-1:-1;4456:4:11;4526:114;4540:10;:17;-1:-1:-1;;4540:21:11;4532:29;;:74;;;;-1:-1:-1;4572:10:11;:17;;4583:5;;4572:17;;;;;;;;;;;;;;;;;;;:34;;;;;;;;4565:3;:41;;4532:74;4526:114;;;4622:7;;;;;4526:114;;472:118:8;534:4;557:26;:13;575:7;557:26;:17;:26;:::i;13256:341:11:-;13309:10;;;;13343:220;13363:6;:13;13359:17;;13343:220;;;13429:6;:9;;13436:1;;13429:9;;;;;;;;;;;;;;;;;;;13457:15;;13429:9;;-1:-1:-1;13476:3:11;13457:15;;;;:22;;;;:45;;-1:-1:-1;13483:13:11;;13499:3;13483:13;;;;;;:19;13457:45;13453:100;;;13530:1;13533:4;13522:16;;;;;;13453:100;13378:3;;;;;13343:220;;;13581:1;;-1:-1:-1;13581:1:11;;-1:-1:-1;13256:341:11;;;;;:::o;1366:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1366:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1366:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1366:39:11;;;;;;;;;;;-1:-1:-1;;1366:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1366:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5088:128::-;586:8:55;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;14180:6:11;:13;14196:1;-1:-1:-1;14176:82:11;;;14243:3;14221:6;14228:1;14221:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;14213:34;;;;;;5195:13;;5171:38;;5187:6;;-1:-1:-1;;;;;5195:13:11;5171:15;:38::i;11502:810::-;11590:7;;:::i;:::-;11610:10;11622;11846:28;;:::i;:::-;11636:22;:20;:22::i;:::-;11609:49;;;;11674:5;11673:6;11669:19;;;11681:7;;11669:19;11737:6;11702:31;:29;:31::i;:::-;:41;11698:138;;11764:5;;:21;;;-1:-1:-1;;;;;11764:21:11;;;;;;;;;;-1:-1:-1;;;;;11764:5:11;;;;-1:-1:-1;;11764:21:11;;;;;;;;;;;;;;;-1:-1:-1;11764:5:11;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;11764:21:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11764:21:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11764:21:11;11763:22;11759:67;;;11805:7;;11759:67;11877:45;11915:6;11877:37;:45::i;:::-;11846:76;;11940:18;:39;11993:6;12013:11;12038:6;12045:5;12038:13;;;;;;;;;;;;;;;;;;;;:22;;;12074:6;12081:5;12074:13;;;;;;;;;;;;;;;;;;;;:30;;12118:6;12125:5;12118:13;;;;;;;;;;;;;;;;;:27;:13;;;;;:27;;12159:13;;:16;;;;12189:13;12203:1;12189:16;;;;12219:13;12233:1;12219:16;;;;12249:13;12263:1;12249:16;;;;12279:13;12293:1;12279:16;;;;11940:365;;;;;-1:-1:-1;;;11940:365:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11940:365:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11940:365:11;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:3;8;5:12;2:2;;;30:1;27;20:12;997:20:11;;;-1:-1:-1;;;;;997:20:11;;:::o;320:78:22:-;382:14;320:78;:::o;8640:343:11:-;8793:5;;:21;;;-1:-1:-1;;;;;8793:21:11;;;;;;;;;;8711:18;;:30;;8755:4;;8793:21;;-1:-1:-1;;;;;8793:5:11;;-1:-1:-1;;8793:21:11;;;;;;;;;;;;;;-1:-1:-1;8793:5:11;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;8793:21:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8793:21:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8793:21:11;:66;;8857:1;8793:66;;;8817:5;;:29;;;-1:-1:-1;;;;;8817:29:11;;;;;;;;;;-1:-1:-1;;;;;8817:5:11;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;8817:5:11;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8817:29:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8817:29:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8817:29:11;8793:66;8881:5;;8909:11;;8935:4;;8953:13;;8711:265;;;-1:-1:-1;;;8711:265:11;;;;;;-1:-1:-1;;;;;8881:5:11;;;;8909:11;;;;8935:4;;;;8953:13;;;;8711:265;;;;;;;;;;8881:5;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;-1:-1;;;;8711:265:11;;;;;;;-1:-1:-1;;;;;;;8711:265:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8711:265:11;;;;;;;;;-1:-1:-1;;;8711:265:11;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;8711:265:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;8989:360:11;9229:5;;:21;;;-1:-1:-1;;;;;9229:21:11;;;;;;;;;;9099:18;;:35;;9148:8;;9170:4;;9188:7;;9229:21;;-1:-1:-1;;;;;9229:5:11;;;;-1:-1:-1;;9229:21:11;;;;;;;;;;;;;;;-1:-1:-1;9229:5:11;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;9229:21:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9229:21:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9229:21:11;:75;;9302:1;9229:75;;;9261:5;;:29;;;-1:-1:-1;;;;;9261:29:11;;;;;;;;;;-1:-1:-1;;;;;9261:5:11;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;9261:5:11;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;9261:29:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9261:29:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9261:29:11;9229:75;9326:5;;9099:243;;;;;-1:-1:-1;;;9099:243:11;;;-1:-1:-1;;;;;9326:5:11;;;;9099:243;;;;-1:-1:-1;;9099:243:11;;9326:5;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9099:243:11;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;-1:-1;;;;9099:243:11;;;;;;;;;;;;-1:-1:-1;;9099:243:11;;;;;;;-1:-1:-1;;;;;9099:243:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;9099:243:11;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;9099:243:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9099:243:11;;;;8989:360;;;;:::o;9355:525::-;9461:31;:29;:31::i;:::-;9451:41;;9447:427;;;9508:4;;9550:7;;;;-1:-1:-1;;;;;9508:4:11;;;;:19;;9534:24;;:8;-1:-1:-1;9534:11:11;;;;;;:24;:15;:24;:::i;:::-;9572:11;;;9609:7;;;9560:10;;9572:11;9585:6;;9593:24;;9572:8;9614:1;9593:11;;:24;9619:11;;;;;9508:123;;;;;-1:-1:-1;;;9508:123:11;;;-1:-1:-1;;;;;9508:123:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9508:123:11;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;9508:123:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9508:123:11;;;;;9447:427;;;9677:5;;:29;;;-1:-1:-1;;;;;9677:29:11;;;;;;;;;;-1:-1:-1;;;;;9677:5:11;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;9677:5:11;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;9677:29:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9677:29:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9677:29:11;9725:4;;9748:7;;;;-1:-1:-1;;;;;9670:46:11;;;;;;9725:4;;9732:24;;:8;-1:-1:-1;9732:11:11;;:24;9670:87;;;-1:-1:-1;;;9670:87:11;;;;;;-1:-1:-1;;;;;9670:87:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9670:87:11;;;;5:2:-1;;;;30:1;27;20:12;5:2;9670:87:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9670:87:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9670:87:11;9662:96;;;;;;;;9772:4;;9804:11;;;9841:7;;;-1:-1:-1;;;;;9772:4:11;;;;:19;;9792:10;;9817:6;;9825:24;;9804:8;-1:-1:-1;9825:11:11;;:24;9851:11;;;;;9772:91;;;;;-1:-1:-1;;;9772:91:11;;;-1:-1:-1;;;;;9772:91:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9772:91:11;;;;;;;-1:-1:-1;9772:91:11;;;;5:2:-1;;;;30:1;27;20:12;5:2;9772:91:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9772:91:11;;;;9447:427;9355:525;;;:::o;733:123:3:-;791:22;:6;805:7;791:22;:13;:22;:::i;:::-;828:21;;-1:-1:-1;;;;;828:21:3;;;;;;;;733:123;:::o;725:166:52:-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;689:136:8:-;751:26;:13;769:7;751:26;:17;:26;:::i;:::-;792;;-1:-1:-1;;;;;792:26:8;;;;;;;;689:136;:::o;612:115:3:-;667:19;:6;678:7;667:19;:10;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;11083:413:11:-;11155:14;;:::i;:::-;11193:5;;:17;;;;;;;;;;;;;;-1:-1:-1;;;;;11193:5:11;;;;:9;;:17;;;;;;;;;;;;;;;-1:-1:-1;11193:5:11;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;11193:17:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11193:17:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11193:17:11;11181:29;;11232:5;;11181:9;11220;;;:17;;;;11264:5;;:16;;;;;;;;-1:-1:-1;;;;;11264:5:11;;;;:14;;:16;;;;;;;;;;-1:-1:-1;11264:5:11;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;11264:16:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11264:16:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11264:16:11;11259:22;;11247:9;;;:34;11338:6;11303:31;:29;:31::i;:::-;:41;:134;;11395:5;;:29;;;-1:-1:-1;;;;;11395:29:11;;;;;;;;;;-1:-1:-1;;;;;11395:5:11;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;11395:5:11;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;11395:29:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11395:29:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11395:29:11;11381:55;;;;;;;;-1:-1:-1;;;;;11381:53:11;;;;;;:55;;;;;11395:29;;11381:55;;;;;;;;;:53;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;11381:55:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11381:55:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11381:55:11;11376:61;;11303:134;;;11359:2;11303:134;11291:9;;;:146;11459:5;;:30;;;;;;11483:4;11459:30;;;;;;-1:-1:-1;;;;;11459:5:11;;;;:15;;:30;;;;;11291:9;;11459:30;;;;;;;;-1:-1:-1;11459:5:11;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;11459:30:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11459:30:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11459:30:11;11447:9;;;:42;:6;11083:413;-1:-1:-1;11083:413:11:o;831:144:8:-;896:29;:13;917:7;896:29;:20;:29;:::i;:::-;940:28;;-1:-1:-1;;;;;940:28:8;;;;;;;;831:144;:::o;7079:191:11:-;7164:9;:19;7184:6;7192:10;7204;7216:15;7164:68;;;;;-1:-1:-1;;;7164:68:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7164:68:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7164:68:11;;;;-1:-1:-1;7164:68:11;;-1:-1:-1;7164:68:11;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7164:68:11;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7164:68:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7248:15:11;;;;-1:-1:-1;7248:15:11;;-1:-1:-1;7248:15:11;7079:191;;:::o;7693:281::-;7846:9;:23;7870:6;7878:10;7890;7902:7;7911:20;7846:86;;;;;-1:-1:-1;;;7846:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7846:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7846:86:11;;;;-1:-1:-1;7846:86:11;;-1:-1:-1;7846:86:11;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7846:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7846:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7846:86:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7948:19:11;;;;-1:-1:-1;7948:19:11;;-1:-1:-1;7948:19:11;7693:281;;;:::o;4863:219::-;4961:1;4952:10;;4944:19;;;;;;-1:-1:-1;;;;;4981:28:11;;;;4973:37;;;;;;5021:5;:14;;;;5045:13;:30;;-1:-1:-1;;5045:30:11;-1:-1:-1;;;;;5045:30:11;;;;;;;;;4863:219::o;1078:131:54:-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;477:170:52:-;-1:-1:-1;;;;;552:21:52;;;;544:30;;;;;;588:18;592:4;598:7;588:3;:18::i;:::-;580:27;;;;;;;;-1:-1:-1;;;;;614:20:52;637:5;614:20;;;;;;;;;;;:28;;-1:-1:-1;;614:28:52;;;477:170::o;244:167::-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;:18::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;-1:-1:-1;379:27:52;;;244:167::o;741:13625:11:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;741:13625:11;;;-1:-1:-1;;741:13625:11:o;:::-;;;;;;;;;;;;;;;105:10:-1;741:13625:11;88:34:-1;-1:-1;741:13625:11;;;-1:-1:-1;;741:13625:11:o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;741:13625:11;;;-1:-1:-1;;741:13625:11:o", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Secondary.sol\";\nimport \"openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"./IW12Crowdsale.sol\";\nimport \"./IW12Fund.sol\";\nimport \"../rates/IRates.sol\";\nimport \"../libs/Percent.sol\";\nimport \"../libs/PaymentMethods.sol\";\nimport \"../libs/PurchaseProcessing.sol\";\nimport \"../libs/Crowdsale.sol\";\nimport \"../versioning/Versionable.sol\";\nimport \"../token/IWToken.sol\";\nimport \"../access/roles/AdminRole.sol\";\nimport \"../access/roles/ProjectOwnerRole.sol\";\n\ncontract W12Crowdsale is IW12Crowdsale, AdminRole, ProjectOwnerRole, Versionable, Secondary, ReentrancyGuard {\n using SafeMath for uint;\n using SafeMath for uint8;\n using Percent for uint;\n using PaymentMethods for PaymentMethods.Methods;\n\n IWToken public token;\n IERC20 public originToken;\n IW12Fund public fund;\n IRates public rates;\n uint public price;\n uint public serviceFee;\n uint public WTokenSaleFeePercent;\n address public serviceWallet;\n address public swap;\n\n // list of payment methods\n PaymentMethods.Methods paymentMethods;\n\n Crowdsale.Stage[] public stages;\n Crowdsale.Milestone[] public milestones;\n\n event TokenPurchase(address indexed buyer, uint tokensBought, uint cost, uint change);\n event StagesUpdated();\n event StageUpdated(uint index);\n event MilestonesUpdated();\n event CrowdsaleSetUpDone();\n event UnsoldTokenReturned(address indexed owner, uint amount);\n\n constructor (\n uint version,\n address _originToken,\n address _token,\n uint _price,\n address _serviceWallet,\n address _swap,\n uint _serviceFee,\n uint _WTokenSaleFeePercent,\n IW12Fund _fund,\n IRates _rates\n )\n Versionable(version) public\n {\n require(_originToken != address(0));\n require(_token != address(0));\n require(_serviceFee.isPercent() && _serviceFee.fromPercent() < 100);\n require(_WTokenSaleFeePercent.isPercent() && _WTokenSaleFeePercent.fromPercent() < 100);\n require(_fund != address(0));\n require(_swap != address(0));\n require(_rates != address(0));\n\n __setParameters(_price, _serviceWallet);\n\n token = IWToken(_token);\n originToken = IERC20(_originToken);\n serviceFee = _serviceFee;\n swap = _swap;\n WTokenSaleFeePercent = _WTokenSaleFeePercent;\n fund = _fund;\n rates = _rates;\n }\n\n function addAdmin(address _account) public onlyAdmin {\n _addAdmin(_account);\n }\n\n function removeAdmin(address _account) public onlyAdmin {\n _removeAdmin(_account);\n }\n\n function addProjectOwner(address _account) public onlyAdmin {\n _addProjectOwner(_account);\n }\n\n function removeProjectOwner(address _account) public onlyAdmin {\n _removeProjectOwner(_account);\n }\n\n function stagesLength() external view returns (uint) {\n return stages.length;\n }\n\n function milestonesLength() external view returns (uint) {\n return milestones.length;\n }\n\n function getMilestone(uint index) public view returns (uint32, uint, uint32, uint32, bytes, bytes) {\n return (\n milestones[index].endDate,\n milestones[index].tranchePercent,\n milestones[index].voteEndDate,\n milestones[index].withdrawalWindow,\n milestones[index].name,\n milestones[index].description\n );\n }\n\n function getStage(uint index) public view returns (uint32, uint32, uint, uint32, uint[], uint[]) {\n return (\n stages[index].startDate,\n stages[index].endDate,\n stages[index].discount,\n stages[index].vesting,\n stages[index].volumeBoundaries,\n stages[index].volumeBonuses\n );\n }\n\n function getEndDate() external view returns (uint32) {\n require(stages.length > 0);\n\n return stages[stages.length - 1].endDate;\n }\n\n /**\n * @dev Returns index of active milestone or last milestone\n */\n function getCurrentMilestoneIndex() public view returns (uint index, bool found) {\n if(milestones.length == 0 || !isEnded()) return;\n\n found = true;\n\n // from withdrawalWindow begins next milestone\n while(index < milestones.length - 1 && now >= milestones[index].withdrawalWindow) {\n index++;\n }\n }\n\n function getLastMilestoneIndex() public view returns (uint index, bool found) {\n if (milestones.length == 0 || !isEnded()) return;\n\n found = true;\n index = milestones.length - 1;\n }\n\n function __setParameters(uint _price, address _serviceWallet) internal {\n require(_price > 0);\n require(_serviceWallet != address(0));\n\n price = _price;\n serviceWallet = _serviceWallet;\n }\n\n function setParameters(uint _price) external onlyPrimary beforeSaleStart {\n __setParameters(_price, serviceWallet);\n }\n\n /**\n * @dev Setup all crowdsale parameters at a time\n */\n function setup(\n uint[6][] parametersOfStages,\n uint[] bonusConditionsOfStages,\n uint[4][] parametersOfMilestones,\n uint32[] nameAndDescriptionsOffsetOfMilestones,\n bytes nameAndDescriptionsOfMilestones,\n bytes32[] paymentMethodsList\n )\n external onlyProjectOwner beforeSaleStart\n {\n // primary check of parameters of stages\n require(parametersOfStages.length != 0);\n require(parametersOfStages.length <= uint8(- 1));\n\n // primary check of parameters of milestones\n require(parametersOfMilestones.length <= uint8(- 1));\n require(parametersOfMilestones.length == nameAndDescriptionsOffsetOfMilestones.length / 2);\n require(parametersOfMilestones.length <= nameAndDescriptionsOfMilestones.length / 2);\n\n // check payment methods list\n require(paymentMethodsList.length != 0);\n\n for (uint i = 0; i < paymentMethodsList.length; i++) {\n require(rates.hasSymbol(paymentMethodsList[i]));\n }\n\n _setStages(\n parametersOfStages,\n bonusConditionsOfStages\n );\n\n _setMilestones(\n parametersOfMilestones,\n nameAndDescriptionsOffsetOfMilestones,\n nameAndDescriptionsOfMilestones\n );\n\n paymentMethods.update(paymentMethodsList);\n\n emit CrowdsaleSetUpDone();\n }\n\n /**\n * @dev Update stages\n * @param parameters List of primary parameters:\n * [\n * uint32 startDate,\n * uint32 endDate,\n * uint discount,\n * uint32 vesting,\n * uint8 startIndexOfBonusConditions\n * uint8 endIndexOfBonusConditions\n * ],\n * @param bonusConditions List of bonus conditions:\n * [uint boundary, uint bonus, ...]\n */\n function _setStages(uint[6][] parameters, uint[] bonusConditions) internal {\n Crowdsale.setStages(stages, milestones, parameters, bonusConditions);\n\n emit StagesUpdated();\n }\n\n /**\n * @dev Update milestones\n * @param parameters List of primary parameters:\n * [\n * uint32 endDate,\n * uint32 voteEndDate,\n * uint32 withdrawalWindow,\n * uint tranchPercent\n * ]\n * @param offsets Offsets of names and descriptions in namesAndDescriptions:\n * [uint32 offset1, uint32 offset2, ...]\n * @param namesAndDescriptions Names and descriptions\n */\n function _setMilestones(\n uint[4][] parameters,\n uint32[] offsets,\n bytes namesAndDescriptions\n )\n internal\n {\n Crowdsale.setMilestones(stages, milestones, parameters, offsets, namesAndDescriptions);\n\n emit MilestonesUpdated();\n }\n\n function buyTokens(bytes32 method, uint amount) payable public nonReentrant onlyWhenSaleActive {\n if (PurchaseProcessing.METHOD_ETH() != method) {\n require(rates.getTokenAddress(method) != address(0));\n }\n\n (uint index, /*bool found*/) = getCurrentStageIndex();\n\n uint[5] memory invoice = getInvoice(method, amount);\n uint[2] memory fee = getFee(invoice[0], invoice[1]);\n\n _transferFee(fee, method);\n _transferPurchase(invoice, fee, stages[index].vesting, method);\n _recordPurchase(invoice, fee, method);\n\n emit TokenPurchase(msg.sender, invoice[0], invoice[1], invoice[3]);\n }\n\n function _transferFee(uint[2] _fee, bytes32 method) internal {\n PurchaseProcessing.transferFee(\n _fee,\n method,\n rates.isToken(method) ? rates.getTokenAddress(method) : address(0),\n address(token),\n address(originToken),\n swap,\n serviceWallet\n );\n }\n\n function _transferPurchase(uint[5] _invoice, uint[2] _fee, uint32 vesting, bytes32 method) internal {\n PurchaseProcessing.transferPurchase(\n _invoice,\n _fee,\n vesting,\n method,\n rates.isToken(method) ? address(rates.getTokenAddress(method)) : address(0),\n address(token)\n );\n }\n\n function _recordPurchase(uint[5] _invoice, uint[2] _fee, bytes32 method) internal {\n if (method == PurchaseProcessing.METHOD_ETH()) {\n fund.recordPurchase.value(_invoice[1].sub(_fee[1]))(msg.sender, _invoice[0], method, _invoice[1].sub(_fee[1]), _invoice[2]);\n } else {\n require(IERC20(rates.getTokenAddress(method)).transfer(address(fund), _invoice[1].sub(_fee[1])));\n fund.recordPurchase(msg.sender, _invoice[0], method, _invoice[1].sub(_fee[1]), _invoice[2]);\n }\n }\n\n function getWToken() external view returns(IWToken) {\n return token;\n }\n\n function getFund() external view returns(IW12Fund) {\n return fund;\n }\n\n function getPaymentMethodsList() external view returns(bytes32[]) {\n return paymentMethods.list();\n }\n\n function isPaymentMethodAllowed(bytes32 _method) external view returns (bool) {\n return paymentMethods.isAllowed(_method);\n }\n\n function getInvoice(bytes32 method, uint amount) public view returns (uint[5]) {\n (uint index, bool found) = getCurrentStageIndex();\n\n if (!found) return;\n\n if (PurchaseProcessing.METHOD_ETH() != method) {\n if (!rates.isToken(method)) {\n return;\n }\n }\n\n uint[5] memory lastArguments = _getInvoiceLastArguments(method);\n\n return PurchaseProcessing.invoice(\n method,\n amount,\n stages[index].discount,\n stages[index].volumeBoundaries,\n stages[index].volumeBonuses,\n lastArguments[0],\n lastArguments[1],\n lastArguments[2],\n lastArguments[3],\n lastArguments[4]\n );\n }\n\n function _getInvoiceLastArguments(bytes32 method) internal view returns(uint[5] result) {\n result[0] = rates.get(method);\n result[1] = price;\n result[2] = uint(token.decimals());\n result[3] = PurchaseProcessing.METHOD_ETH() == method\n ? 18\n : uint(ERC20Detailed(rates.getTokenAddress(method)).decimals());\n result[4] = token.balanceOf(address(this));\n }\n\n function getInvoiceByTokenAmount(bytes32 method, uint tokenAmount) public view returns (uint[4]) {\n (uint index, bool found) = getCurrentStageIndex();\n\n if (!found) return;\n\n if (PurchaseProcessing.METHOD_ETH() != method) {\n if (!rates.isToken(method)) {\n return;\n }\n }\n\n uint[5] memory lastArguments = _getInvoiceByTokenAmountLastArguments(method);\n\n return PurchaseProcessing.invoiceByTokenAmount(\n method,\n tokenAmount,\n stages[index].discount,\n stages[index].volumeBoundaries,\n stages[index].volumeBonuses,\n lastArguments[0],\n lastArguments[1],\n lastArguments[2],\n lastArguments[3],\n lastArguments[4]\n );\n }\n\n function _getInvoiceByTokenAmountLastArguments(bytes32 method) internal view returns (uint[5] result) {\n result[0] = rates.get(method);\n result[1] = price;\n result[2] = uint(token.decimals());\n result[3] = PurchaseProcessing.METHOD_ETH() == method\n ? 18\n : uint(ERC20Detailed(rates.getTokenAddress(method)).decimals());\n result[4] = token.balanceOf(address(this));\n }\n\n function getFee(uint tokenAmount, uint cost) public view returns(uint[2]) {\n return PurchaseProcessing.fee(tokenAmount, cost, serviceFee, WTokenSaleFeePercent);\n }\n\n function getSaleVolumeBonus(uint value) public view returns(uint bonus) {\n (uint index, bool found) = getCurrentStageIndex();\n\n if (!found) return;\n\n Crowdsale.Stage storage stage = stages[index];\n\n return PurchaseProcessing.getBonus(value, stage.volumeBoundaries, stage.volumeBonuses);\n }\n\n function getCurrentStageIndex() public view returns (uint index, bool found) {\n for(uint i = 0; i < stages.length; i++) {\n Crowdsale.Stage storage stage = stages[i];\n\n if (stage.startDate <= now && stage.endDate > now) {\n return (i, true);\n }\n }\n\n return (0, false);\n }\n\n function claimRemainingTokens() external onlyProjectOwner {\n require(isEnded());\n\n uint amount = token.balanceOf(address(this));\n\n require(token.transfer(msg.sender, amount));\n\n emit UnsoldTokenReturned(msg.sender, amount);\n }\n\n function isEnded() public view returns (bool) {\n return stages.length == 0 || stages[stages.length - 1].endDate < now;\n }\n\n function isSaleActive() public view returns (bool) {\n (, bool found) = getCurrentStageIndex();\n\n return found;\n }\n\n modifier beforeSaleStart() {\n if (stages.length > 0) {\n require(stages[0].startDate > now);\n }\n\n _;\n }\n\n modifier onlyWhenSaleActive() {\n require(isSaleActive());\n\n _;\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", "exportedSymbols": { "W12Crowdsale": [ - 3279 + 3302 ] }, - "id": 3280, + "id": 3303, "nodeType": "SourceUnit", "nodes": [ { - "id": 1263, + "id": 1805, "literals": [ "solidity", "^", @@ -850,159 +984,181 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:5" + "src": "0:24:11" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1264, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 1806, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 10135, - "src": "26:63:5", + "scope": 3303, + "sourceUnit": 12454, + "src": "26:65:11", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 1265, + "absolutePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "file": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "id": 1807, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 9778, - "src": "90:61:5", + "scope": 3303, + "sourceUnit": 13259, + "src": "92:67:11", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1266, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 10049, - "src": "152:59:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 1267, + "id": 1808, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 10212, - "src": "212:63:5", + "scope": 3303, + "sourceUnit": 12389, + "src": "160:59:11", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "id": 1268, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 1809, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 10169, - "src": "276:71:5", + "scope": 3303, + "sourceUnit": 13084, + "src": "220:64:11", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", - "file": "solidity-bytes-utils/contracts/BytesLib.sol", - "id": 1269, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "id": 1810, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 10474, - "src": "348:53:5", + "scope": 3303, + "sourceUnit": 12987, + "src": "285:71:11", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "file": "./IW12Crowdsale.sol", - "id": 1270, + "id": 1811, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 1225, - "src": "402:29:5", + "scope": 3303, + "sourceUnit": 1761, + "src": "357:29:11", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", "file": "./IW12Fund.sol", - "id": 1271, + "id": 1812, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 1262, - "src": "432:24:5", + "scope": 3303, + "sourceUnit": 1804, + "src": "387:24:11", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "file": "../rates/IRates.sol", - "id": 1272, + "id": 1813, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 7280, - "src": "457:29:5", + "scope": 3303, + "sourceUnit": 10015, + "src": "412:29:11", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "file": "../libs/Percent.sol", - "id": 1273, + "id": 1814, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 5215, - "src": "487:29:5", + "scope": 3303, + "sourceUnit": 6432, + "src": "442:29:11", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/PaymentMethods.sol", "file": "../libs/PaymentMethods.sol", - "id": 1274, + "id": 1815, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 5070, - "src": "517:36:5", + "scope": 3303, + "sourceUnit": 6287, + "src": "472:36:11", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", "file": "../libs/PurchaseProcessing.sol", - "id": 1275, + "id": 1816, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 7270, + "src": "509:40:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Crowdsale.sol", + "file": "../libs/Crowdsale.sol", + "id": 1817, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 6119, - "src": "554:40:5", + "scope": 3303, + "sourceUnit": 5201, + "src": "550:31:11", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "../versioning/Versionable.sol", - "id": 1276, + "id": 1818, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 9517, - "src": "595:39:5", + "scope": 3303, + "sourceUnit": 11834, + "src": "582:39:11", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", "file": "../token/IWToken.sol", - "id": 1277, + "id": 1819, "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 7895, - "src": "635:30:5", + "scope": 3303, + "sourceUnit": 10486, + "src": "622:30:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/AdminRole.sol", + "file": "../access/roles/AdminRole.sol", + "id": 1820, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 1353, + "src": "653:39:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/ProjectOwnerRole.sol", + "file": "../access/roles/ProjectOwnerRole.sol", + "id": 1821, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 1620, + "src": "693:46:11", "symbolAliases": [], "unitAlias": "" }, @@ -1012,116 +1168,160 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1278, - "name": "Versionable", + "id": 1822, + "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "692:11:5", + "referencedDeclaration": 1760, + "src": "766:13:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", - "typeString": "contract Versionable" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, - "id": 1279, + "id": 1823, "nodeType": "InheritanceSpecifier", - "src": "692:11:5" + "src": "766:13:11" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 1280, - "name": "IW12Crowdsale", + "id": 1824, + "name": "AdminRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "705:13:5", + "referencedDeclaration": 1352, + "src": "781:9:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_contract$_AdminRole_$1352", + "typeString": "contract AdminRole" + } + }, + "id": 1825, + "nodeType": "InheritanceSpecifier", + "src": "781:9:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1826, + "name": "ProjectOwnerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1619, + "src": "792:16:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ProjectOwnerRole_$1619", + "typeString": "contract ProjectOwnerRole" + } + }, + "id": 1827, + "nodeType": "InheritanceSpecifier", + "src": "792:16:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1828, + "name": "Versionable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11833, + "src": "810:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Versionable_$11833", + "typeString": "contract Versionable" } }, - "id": 1281, + "id": 1829, "nodeType": "InheritanceSpecifier", - "src": "705:13:5" + "src": "810:11:11" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 1282, - "name": "Ownable", + "id": 1830, + "name": "Secondary", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "720:7:5", + "referencedDeclaration": 12453, + "src": "823:9:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" } }, - "id": 1283, + "id": 1831, "nodeType": "InheritanceSpecifier", - "src": "720:7:5" + "src": "823:9:11" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 1284, + "id": 1832, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9777, - "src": "729:15:5", + "referencedDeclaration": 13258, + "src": "834:15:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9777", + "typeIdentifier": "t_contract$_ReentrancyGuard_$13258", "typeString": "contract ReentrancyGuard" } }, - "id": 1285, + "id": 1833, "nodeType": "InheritanceSpecifier", - "src": "729:15:5" + "src": "834:15:11" } ], "contractDependencies": [ - 1224, - 9516, - 9777, - 10134 + 1352, + 1375, + 1421, + 1619, + 1760, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3279, + "id": 3302, "linearizedBaseContracts": [ - 3279, - 9777, - 10134, - 1224, - 9516 + 3302, + 13258, + 12453, + 11833, + 1619, + 1352, + 1760, + 1421, + 1375 ], "name": "W12Crowdsale", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1288, + "id": 1836, "libraryName": { "contractScope": null, - "id": 1286, + "id": 1834, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "757:8:5", + "referencedDeclaration": 12388, + "src": "862:8:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "751:24:5", + "src": "856:24:11", "typeName": { - "id": 1287, + "id": 1835, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "770:4:5", + "src": "875:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1129,110 +1329,110 @@ } }, { - "id": 1291, + "id": 1839, "libraryName": { "contractScope": null, - "id": 1289, - "name": "Percent", + "id": 1837, + "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5214, - "src": "786:7:5", + "referencedDeclaration": 12388, + "src": "891:8:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$5214", - "typeString": "library Percent" + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "780:23:5", + "src": "885:25:11", "typeName": { - "id": 1290, - "name": "uint", + "id": 1838, + "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "798:4:5", + "src": "904:5:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } } }, { - "id": 1294, + "id": 1842, "libraryName": { "contractScope": null, - "id": 1292, - "name": "BytesLib", + "id": 1840, + "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10473, - "src": "814:8:5", + "referencedDeclaration": 6431, + "src": "921:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_BytesLib_$10473", - "typeString": "library BytesLib" + "typeIdentifier": "t_contract$_Percent_$6431", + "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "808:25:5", + "src": "915:23:11", "typeName": { - "id": 1293, - "name": "bytes", + "id": 1841, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:5:5", + "src": "933:4:11", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } }, { - "id": 1297, + "id": 1845, "libraryName": { "contractScope": null, - "id": 1295, + "id": 1843, "name": "PaymentMethods", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5069, - "src": "844:14:5", + "referencedDeclaration": 6286, + "src": "949:14:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_PaymentMethods_$5069", + "typeIdentifier": "t_contract$_PaymentMethods_$6286", "typeString": "library PaymentMethods" } }, "nodeType": "UsingForDirective", - "src": "838:48:5", + "src": "943:48:11", "typeName": { "contractScope": null, - "id": 1296, + "id": 1844, "name": "PaymentMethods.Methods", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4962, - "src": "863:22:5", + "referencedDeclaration": 6179, + "src": "968:22:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" } } }, { "constant": false, - "id": 1299, + "id": 1847, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "892:20:5", + "scope": 3302, + "src": "997:20:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 1298, + "id": 1846, "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "892:7:5", + "referencedDeclaration": 10485, + "src": "997:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, @@ -1241,27 +1441,27 @@ }, { "constant": false, - "id": 1301, + "id": 1849, "name": "originToken", "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "918:24:5", + "scope": 3302, + "src": "1023:25:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1300, - "name": "ERC20", + "id": 1848, + "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "918:5:5", + "referencedDeclaration": 13083, + "src": "1023:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "value": null, @@ -1269,26 +1469,26 @@ }, { "constant": false, - "id": 1303, + "id": 1851, "name": "fund", "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "948:20:5", + "scope": 3302, + "src": "1054:20:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 1302, + "id": 1850, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "948:8:5", + "referencedDeclaration": 1803, + "src": "1054:8:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -1297,26 +1497,26 @@ }, { "constant": false, - "id": 1305, + "id": 1853, "name": "rates", "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "974:19:5", + "scope": 3302, + "src": "1080:19:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 1304, + "id": 1852, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "974:6:5", + "referencedDeclaration": 10014, + "src": "1080:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -1325,11 +1525,11 @@ }, { "constant": false, - "id": 1307, + "id": 1855, "name": "price", "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "999:17:5", + "scope": 3302, + "src": "1105:17:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1337,10 +1537,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1306, + "id": 1854, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "999:4:5", + "src": "1105:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1351,11 +1551,11 @@ }, { "constant": false, - "id": 1309, + "id": 1857, "name": "serviceFee", "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1022:22:5", + "scope": 3302, + "src": "1128:22:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1363,10 +1563,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1308, + "id": 1856, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1022:4:5", + "src": "1128:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1377,11 +1577,11 @@ }, { "constant": false, - "id": 1311, + "id": 1859, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1050:32:5", + "scope": 3302, + "src": "1156:32:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1389,10 +1589,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1310, + "id": 1858, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1050:4:5", + "src": "1156:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1403,11 +1603,11 @@ }, { "constant": false, - "id": 1313, + "id": 1861, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1088:28:5", + "scope": 3302, + "src": "1194:28:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1415,10 +1615,10 @@ "typeString": "address" }, "typeName": { - "id": 1312, + "id": 1860, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1088:7:5", + "src": "1194:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1429,11 +1629,11 @@ }, { "constant": false, - "id": 1315, + "id": 1863, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1122:19:5", + "scope": 3302, + "src": "1228:19:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1441,10 +1641,10 @@ "typeString": "address" }, "typeName": { - "id": 1314, + "id": 1862, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1122:7:5", + "src": "1228:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1455,26 +1655,26 @@ }, { "constant": false, - "id": 1317, + "id": 1865, "name": "paymentMethods", "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1179:37:5", + "scope": 3302, + "src": "1285:37:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage", + "typeIdentifier": "t_struct$_Methods_$6179_storage", "typeString": "struct PaymentMethods.Methods" }, "typeName": { "contractScope": null, - "id": 1316, + "id": 1864, "name": "PaymentMethods.Methods", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4962, - "src": "1179:22:5", + "referencedDeclaration": 6179, + "src": "1285:22:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", "typeString": "struct PaymentMethods.Methods" } }, @@ -1483,37 +1683,37 @@ }, { "constant": false, - "id": 1320, + "id": 1868, "name": "stages", "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1223:21:5", + "scope": 3302, + "src": "1329:31:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage[]" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 1318, - "name": "Stage", + "id": 1866, + "name": "Crowdsale.Stage", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1338, - "src": "1223:5:5", + "referencedDeclaration": 4449, + "src": "1329:15:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" } }, - "id": 1319, + "id": 1867, "length": null, "nodeType": "ArrayTypeName", - "src": "1223:7:5", + "src": "1329:17:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage_ptr", - "typeString": "struct W12Crowdsale.Stage[]" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" } }, "value": null, @@ -1521,414 +1721,60 @@ }, { "constant": false, - "id": 1323, + "id": 1871, "name": "milestones", "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1250:29:5", + "scope": 3302, + "src": "1366:39:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone[]" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 1321, - "name": "Milestone", + "id": 1869, + "name": "Crowdsale.Milestone", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1351, - "src": "1250:9:5", + "referencedDeclaration": 4462, + "src": "1366:19:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage_ptr", - "typeString": "struct W12Crowdsale.Milestone" + "typeIdentifier": "t_struct$_Milestone_$4462_storage_ptr", + "typeString": "struct Crowdsale.Milestone" } }, - "id": 1322, + "id": 1870, "length": null, "nodeType": "ArrayTypeName", - "src": "1250:11:5", + "src": "1366:21:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage_ptr", - "typeString": "struct W12Crowdsale.Milestone[]" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone[]" } }, "value": null, "visibility": "public" }, - { - "canonicalName": "W12Crowdsale.Stage", - "id": 1338, - "members": [ - { - "constant": false, - "id": 1325, - "name": "startDate", - "nodeType": "VariableDeclaration", - "scope": 1338, - "src": "1309:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1324, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1309:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1327, - "name": "endDate", - "nodeType": "VariableDeclaration", - "scope": 1338, - "src": "1335:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1326, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1335:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1329, - "name": "discount", - "nodeType": "VariableDeclaration", - "scope": 1338, - "src": "1359:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1328, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1359:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1331, - "name": "vesting", - "nodeType": "VariableDeclaration", - "scope": 1338, - "src": "1382:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1330, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1382:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1334, - "name": "volumeBoundaries", - "nodeType": "VariableDeclaration", - "scope": 1338, - "src": "1406:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1332, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1406:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1333, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1406:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1337, - "name": "volumeBonuses", - "nodeType": "VariableDeclaration", - "scope": 1338, - "src": "1439:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1335, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1439:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1336, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1439:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Stage", - "nodeType": "StructDefinition", - "scope": 3279, - "src": "1286:180:5", - "visibility": "public" - }, - { - "canonicalName": "W12Crowdsale.Milestone", - "id": 1351, - "members": [ - { - "constant": false, - "id": 1340, - "name": "endDate", - "nodeType": "VariableDeclaration", - "scope": 1351, - "src": "1499:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1339, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1499:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1342, - "name": "tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 1351, - "src": "1523:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1341, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1523:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1344, - "name": "voteEndDate", - "nodeType": "VariableDeclaration", - "scope": 1351, - "src": "1552:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1343, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1552:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1346, - "name": "withdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 1351, - "src": "1580:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1345, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1580:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1348, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1351, - "src": "1613:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1347, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1613:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1350, - "name": "description", - "nodeType": "VariableDeclaration", - "scope": 1351, - "src": "1633:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1349, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1633:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Milestone", - "nodeType": "StructDefinition", - "scope": 3279, - "src": "1472:185:5", - "visibility": "public" - }, { "anonymous": false, "documentation": null, - "id": 1361, + "id": 1881, "name": "TokenPurchase", "nodeType": "EventDefinition", "parameters": { - "id": 1360, + "id": 1880, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1353, + "id": 1873, "indexed": true, "name": "buyer", "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "1683:21:5", + "scope": 1881, + "src": "1432:21:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1936,10 +1782,10 @@ "typeString": "address" }, "typeName": { - "id": 1352, + "id": 1872, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1683:7:5", + "src": "1432:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1950,12 +1796,12 @@ }, { "constant": false, - "id": 1355, + "id": 1875, "indexed": false, "name": "tokensBought", "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "1706:17:5", + "scope": 1881, + "src": "1455:17:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1963,10 +1809,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1354, + "id": 1874, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1706:4:5", + "src": "1455:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1977,12 +1823,12 @@ }, { "constant": false, - "id": 1357, + "id": 1877, "indexed": false, "name": "cost", "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "1725:9:5", + "scope": 1881, + "src": "1474:9:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1990,10 +1836,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1356, + "id": 1876, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1725:4:5", + "src": "1474:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2004,12 +1850,12 @@ }, { "constant": false, - "id": 1359, + "id": 1879, "indexed": false, "name": "change", "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "1736:11:5", + "scope": 1881, + "src": "1485:11:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2017,10 +1863,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1358, + "id": 1878, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1736:4:5", + "src": "1485:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2030,42 +1876,42 @@ "visibility": "internal" } ], - "src": "1682:66:5" + "src": "1431:66:11" }, - "src": "1663:86:5" + "src": "1412:86:11" }, { "anonymous": false, "documentation": null, - "id": 1363, + "id": 1883, "name": "StagesUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 1362, + "id": 1882, "nodeType": "ParameterList", "parameters": [], - "src": "1773:2:5" + "src": "1522:2:11" }, - "src": "1754:22:5" + "src": "1503:22:11" }, { "anonymous": false, "documentation": null, - "id": 1367, + "id": 1887, "name": "StageUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 1366, + "id": 1886, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1365, + "id": 1885, "indexed": false, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1367, - "src": "1800:10:5", + "scope": 1887, + "src": "1549:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2073,10 +1919,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1364, + "id": 1884, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1800:4:5", + "src": "1549:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2086,56 +1932,56 @@ "visibility": "internal" } ], - "src": "1799:12:5" + "src": "1548:12:11" }, - "src": "1781:31:5" + "src": "1530:31:11" }, { "anonymous": false, "documentation": null, - "id": 1369, + "id": 1889, "name": "MilestonesUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 1368, + "id": 1888, "nodeType": "ParameterList", "parameters": [], - "src": "1840:2:5" + "src": "1589:2:11" }, - "src": "1817:26:5" + "src": "1566:26:11" }, { "anonymous": false, "documentation": null, - "id": 1371, + "id": 1891, "name": "CrowdsaleSetUpDone", "nodeType": "EventDefinition", "parameters": { - "id": 1370, + "id": 1890, "nodeType": "ParameterList", "parameters": [], - "src": "1872:2:5" + "src": "1621:2:11" }, - "src": "1848:27:5" + "src": "1597:27:11" }, { "anonymous": false, "documentation": null, - "id": 1377, + "id": 1897, "name": "UnsoldTokenReturned", "nodeType": "EventDefinition", "parameters": { - "id": 1376, + "id": 1896, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1373, + "id": 1893, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "1906:21:5", + "scope": 1897, + "src": "1655:21:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2143,10 +1989,10 @@ "typeString": "address" }, "typeName": { - "id": 1372, + "id": 1892, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1906:7:5", + "src": "1655:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2157,12 +2003,12 @@ }, { "constant": false, - "id": 1375, + "id": 1895, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "1929:11:5", + "scope": 1897, + "src": "1678:11:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2170,10 +2016,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1374, + "id": 1894, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1929:4:5", + "src": "1678:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2183,15 +2029,15 @@ "visibility": "internal" } ], - "src": "1905:36:5" + "src": "1654:36:11" }, - "src": "1880:62:5" + "src": "1629:62:11" }, { "body": { - "id": 1504, + "id": 2024, "nodeType": "Block", - "src": "2268:663:5", + "src": "2017:664:11", "statements": [ { "expression": { @@ -2203,19 +2049,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1408, + "id": 1928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1404, + "id": 1924, "name": "_originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1381, - "src": "2286:12:5", + "referencedDeclaration": 1901, + "src": "2035:12:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2229,14 +2075,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1406, + "id": 1926, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2310:1:5", + "src": "2059:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2252,20 +2098,20 @@ "typeString": "int_const 0" } ], - "id": 1405, + "id": 1925, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2302:7:5", + "src": "2051:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1407, + "id": 1927, "isConstant": false, "isLValue": false, "isPure": true, @@ -2273,13 +2119,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2302:10:5", + "src": "2051:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2286:26:5", + "src": "2035:26:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2293,21 +2139,21 @@ "typeString": "bool" } ], - "id": 1403, + "id": 1923, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2278:7:5", + "referencedDeclaration": 13444, + "src": "2027:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1409, + "id": 1929, "isConstant": false, "isLValue": false, "isPure": false, @@ -2315,15 +2161,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2278:35:5", + "src": "2027:35:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1410, + "id": 1930, "nodeType": "ExpressionStatement", - "src": "2278:35:5" + "src": "2027:35:11" }, { "expression": { @@ -2335,19 +2181,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1416, + "id": 1936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1412, + "id": 1932, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, - "src": "2331:6:5", + "referencedDeclaration": 1903, + "src": "2080:6:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2361,14 +2207,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1414, + "id": 1934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2349:1:5", + "src": "2098:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2384,20 +2230,20 @@ "typeString": "int_const 0" } ], - "id": 1413, + "id": 1933, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2341:7:5", + "src": "2090:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1415, + "id": 1935, "isConstant": false, "isLValue": false, "isPure": true, @@ -2405,13 +2251,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2341:10:5", + "src": "2090:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2331:20:5", + "src": "2080:20:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2425,21 +2271,21 @@ "typeString": "bool" } ], - "id": 1411, + "id": 1931, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2323:7:5", + "referencedDeclaration": 13444, + "src": "2072:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1417, + "id": 1937, "isConstant": false, "isLValue": false, "isPure": false, @@ -2447,15 +2293,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2323:29:5", + "src": "2072:29:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1418, + "id": 1938, "nodeType": "ExpressionStatement", - "src": "2323:29:5" + "src": "2072:29:11" }, { "expression": { @@ -2467,7 +2313,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1428, + "id": 1948, "isConstant": false, "isLValue": false, "isPure": false, @@ -2479,32 +2325,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 1420, + "id": 1940, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "2370:11:5", + "referencedDeclaration": 1911, + "src": "2119:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1421, + "id": 1941, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "2370:21:5", + "referencedDeclaration": 6386, + "src": "2119:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 1422, + "id": 1942, "isConstant": false, "isLValue": false, "isPure": false, @@ -2512,7 +2358,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2370:23:5", + "src": "2119:23:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2526,7 +2372,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1427, + "id": 1947, "isConstant": false, "isLValue": false, "isPure": false, @@ -2538,32 +2384,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 1423, + "id": 1943, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "2397:11:5", + "referencedDeclaration": 1911, + "src": "2146:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1424, + "id": 1944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "2397:23:5", + "referencedDeclaration": 6430, + "src": "2146:23:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 1425, + "id": 1945, "isConstant": false, "isLValue": false, "isPure": false, @@ -2571,7 +2417,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2397:25:5", + "src": "2146:25:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2582,14 +2428,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 1426, + "id": 1946, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2425:3:5", + "src": "2174:3:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -2597,13 +2443,13 @@ }, "value": "100" }, - "src": "2397:31:5", + "src": "2146:31:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2370:58:5", + "src": "2119:58:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2617,21 +2463,21 @@ "typeString": "bool" } ], - "id": 1419, + "id": 1939, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2362:7:5", + "referencedDeclaration": 13444, + "src": "2111:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1429, + "id": 1949, "isConstant": false, "isLValue": false, "isPure": false, @@ -2639,15 +2485,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2362:67:5", + "src": "2111:67:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1430, + "id": 1950, "nodeType": "ExpressionStatement", - "src": "2362:67:5" + "src": "2111:67:11" }, { "expression": { @@ -2659,7 +2505,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1440, + "id": 1960, "isConstant": false, "isLValue": false, "isPure": false, @@ -2671,32 +2517,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 1432, + "id": 1952, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "2447:21:5", + "referencedDeclaration": 1913, + "src": "2196:21:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1433, + "id": 1953, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "2447:31:5", + "referencedDeclaration": 6386, + "src": "2196:31:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 1434, + "id": 1954, "isConstant": false, "isLValue": false, "isPure": false, @@ -2704,7 +2550,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2447:33:5", + "src": "2196:33:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2718,7 +2564,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1439, + "id": 1959, "isConstant": false, "isLValue": false, "isPure": false, @@ -2730,32 +2576,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 1435, + "id": 1955, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "2484:21:5", + "referencedDeclaration": 1913, + "src": "2233:21:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1436, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "2484:33:5", + "referencedDeclaration": 6430, + "src": "2233:33:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 1437, + "id": 1957, "isConstant": false, "isLValue": false, "isPure": false, @@ -2763,7 +2609,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2484:35:5", + "src": "2233:35:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2774,14 +2620,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 1438, + "id": 1958, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2522:3:5", + "src": "2271:3:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -2789,13 +2635,13 @@ }, "value": "100" }, - "src": "2484:41:5", + "src": "2233:41:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2447:78:5", + "src": "2196:78:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2809,21 +2655,21 @@ "typeString": "bool" } ], - "id": 1431, + "id": 1951, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2439:7:5", + "referencedDeclaration": 13444, + "src": "2188:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1441, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": false, @@ -2831,15 +2677,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2439:87:5", + "src": "2188:87:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1442, + "id": 1962, "nodeType": "ExpressionStatement", - "src": "2439:87:5" + "src": "2188:87:11" }, { "expression": { @@ -2851,21 +2697,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1448, + "id": 1968, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1444, + "id": 1964, "name": "_fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "2544:5:5", + "referencedDeclaration": 1915, + "src": "2293:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -2877,14 +2723,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1446, + "id": 1966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2561:1:5", + "src": "2310:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2900,20 +2746,20 @@ "typeString": "int_const 0" } ], - "id": 1445, + "id": 1965, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2553:7:5", + "src": "2302:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1447, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": true, @@ -2921,13 +2767,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2553:10:5", + "src": "2302:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2544:19:5", + "src": "2293:19:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2941,21 +2787,21 @@ "typeString": "bool" } ], - "id": 1443, + "id": 1963, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2536:7:5", + "referencedDeclaration": 13444, + "src": "2285:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1449, + "id": 1969, "isConstant": false, "isLValue": false, "isPure": false, @@ -2963,15 +2809,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2536:28:5", + "src": "2285:28:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1450, + "id": 1970, "nodeType": "ExpressionStatement", - "src": "2536:28:5" + "src": "2285:28:11" }, { "expression": { @@ -2983,19 +2829,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1456, + "id": 1976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1452, + "id": 1972, "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1389, - "src": "2582:5:5", + "referencedDeclaration": 1909, + "src": "2331:5:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3009,14 +2855,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1454, + "id": 1974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2599:1:5", + "src": "2348:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3032,20 +2878,20 @@ "typeString": "int_const 0" } ], - "id": 1453, + "id": 1973, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2591:7:5", + "src": "2340:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1455, + "id": 1975, "isConstant": false, "isLValue": false, "isPure": true, @@ -3053,13 +2899,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2591:10:5", + "src": "2340:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2582:19:5", + "src": "2331:19:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3073,21 +2919,21 @@ "typeString": "bool" } ], - "id": 1451, + "id": 1971, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2574:7:5", + "referencedDeclaration": 13444, + "src": "2323:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1457, + "id": 1977, "isConstant": false, "isLValue": false, "isPure": false, @@ -3095,15 +2941,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2574:28:5", + "src": "2323:28:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1458, + "id": 1978, "nodeType": "ExpressionStatement", - "src": "2574:28:5" + "src": "2323:28:11" }, { "expression": { @@ -3115,21 +2961,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1464, + "id": 1984, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1460, + "id": 1980, "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1397, - "src": "2620:6:5", + "referencedDeclaration": 1917, + "src": "2369:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -3141,14 +2987,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1462, + "id": 1982, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2638:1:5", + "src": "2387:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3164,20 +3010,20 @@ "typeString": "int_const 0" } ], - "id": 1461, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2630:7:5", + "src": "2379:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1463, + "id": 1983, "isConstant": false, "isLValue": false, "isPure": true, @@ -3185,13 +3031,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2630:10:5", + "src": "2379:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2620:20:5", + "src": "2369:20:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3205,21 +3051,21 @@ "typeString": "bool" } ], - "id": 1459, + "id": 1979, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2612:7:5", + "referencedDeclaration": 13444, + "src": "2361:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1465, + "id": 1985, "isConstant": false, "isLValue": false, "isPure": false, @@ -3227,15 +3073,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2612:29:5", + "src": "2361:29:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1466, + "id": 1986, "nodeType": "ExpressionStatement", - "src": "2612:29:5" + "src": "2361:29:11" }, { "expression": { @@ -3243,12 +3089,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1468, + "id": 1988, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1385, - "src": "2668:6:5", + "referencedDeclaration": 1905, + "src": "2417:6:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3256,12 +3102,12 @@ }, { "argumentTypes": null, - "id": 1469, + "id": 1989, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1387, - "src": "2676:14:5", + "referencedDeclaration": 1907, + "src": "2425:14:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3279,18 +3125,18 @@ "typeString": "address" } ], - "id": 1467, + "id": 1987, "name": "__setParameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1733, - "src": "2652:15:5", + "referencedDeclaration": 2301, + "src": "2401:15:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 1470, + "id": 1990, "isConstant": false, "isLValue": false, "isPure": false, @@ -3298,34 +3144,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2652:39:5", + "src": "2401:39:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1471, + "id": 1991, "nodeType": "ExpressionStatement", - "src": "2652:39:5" + "src": "2401:39:11" }, { "expression": { "argumentTypes": null, - "id": 1476, + "id": 1996, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1472, + "id": 1992, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "2702:5:5", + "referencedDeclaration": 1847, + "src": "2451:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, @@ -3336,12 +3182,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1474, + "id": 1994, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, - "src": "2718:6:5", + "referencedDeclaration": 1903, + "src": "2467:6:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3355,18 +3201,18 @@ "typeString": "address" } ], - "id": 1473, + "id": 1993, "name": "IWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7894, - "src": "2710:7:5", + "referencedDeclaration": 10485, + "src": "2459:7:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWToken_$7894_$", + "typeIdentifier": "t_type$_t_contract$_IWToken_$10485_$", "typeString": "type(contract IWToken)" } }, - "id": 1475, + "id": 1995, "isConstant": false, "isLValue": false, "isPure": false, @@ -3374,41 +3220,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2710:15:5", + "src": "2459:15:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "src": "2702:23:5", + "src": "2451:23:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "id": 1477, + "id": 1997, "nodeType": "ExpressionStatement", - "src": "2702:23:5" + "src": "2451:23:11" }, { "expression": { "argumentTypes": null, - "id": 1482, + "id": 2002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1478, + "id": 1998, "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "2735:11:5", + "referencedDeclaration": 1849, + "src": "2484:11:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, "nodeType": "Assignment", @@ -3418,12 +3264,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1480, + "id": 2000, "name": "_originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1381, - "src": "2755:12:5", + "referencedDeclaration": 1901, + "src": "2505:12:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3437,18 +3283,18 @@ "typeString": "address" } ], - "id": 1479, - "name": "ERC20", + "id": 1999, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "2749:5:5", + "referencedDeclaration": 13083, + "src": "2498:6:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 1481, + "id": 2001, "isConstant": false, "isLValue": false, "isPure": false, @@ -3456,38 +3302,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2749:19:5", + "src": "2498:20:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "src": "2735:33:5", + "src": "2484:34:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 1483, + "id": 2003, "nodeType": "ExpressionStatement", - "src": "2735:33:5" + "src": "2484:34:11" }, { "expression": { "argumentTypes": null, - "id": 1486, + "id": 2006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1484, + "id": 2004, "name": "serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1309, - "src": "2778:10:5", + "referencedDeclaration": 1857, + "src": "2528:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3497,43 +3343,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1485, + "id": 2005, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "2791:11:5", + "referencedDeclaration": 1911, + "src": "2541:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2778:24:5", + "src": "2528:24:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1487, + "id": 2007, "nodeType": "ExpressionStatement", - "src": "2778:24:5" + "src": "2528:24:11" }, { "expression": { "argumentTypes": null, - "id": 1490, + "id": 2010, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1488, + "id": 2008, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1315, - "src": "2812:4:5", + "referencedDeclaration": 1863, + "src": "2562:4:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3543,43 +3389,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1489, + "id": 2009, "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1389, - "src": "2819:5:5", + "referencedDeclaration": 1909, + "src": "2569:5:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2812:12:5", + "src": "2562:12:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1491, + "id": 2011, "nodeType": "ExpressionStatement", - "src": "2812:12:5" + "src": "2562:12:11" }, { "expression": { "argumentTypes": null, - "id": 1494, + "id": 2014, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1492, + "id": 2012, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1311, - "src": "2834:20:5", + "referencedDeclaration": 1859, + "src": "2584:20:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3589,45 +3435,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1493, + "id": 2013, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "2857:21:5", + "referencedDeclaration": 1913, + "src": "2607:21:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2834:44:5", + "src": "2584:44:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1495, + "id": 2015, "nodeType": "ExpressionStatement", - "src": "2834:44:5" + "src": "2584:44:11" }, { "expression": { "argumentTypes": null, - "id": 1498, + "id": 2018, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1496, + "id": 2016, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1303, - "src": "2888:4:5", + "referencedDeclaration": 1851, + "src": "2638:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -3635,45 +3481,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1497, + "id": 2017, "name": "_fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "2895:5:5", + "referencedDeclaration": 1915, + "src": "2645:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, - "src": "2888:12:5", + "src": "2638:12:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, - "id": 1499, + "id": 2019, "nodeType": "ExpressionStatement", - "src": "2888:12:5" + "src": "2638:12:11" }, { "expression": { "argumentTypes": null, - "id": 1502, + "id": 2022, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1500, + "id": 2020, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "2910:5:5", + "referencedDeclaration": 1853, + "src": "2660:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -3681,31 +3527,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1501, + "id": 2021, "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1397, - "src": "2918:6:5", + "referencedDeclaration": 1917, + "src": "2668:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "src": "2910:14:5", + "src": "2660:14:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 1503, + "id": 2023, "nodeType": "ExpressionStatement", - "src": "2910:14:5" + "src": "2660:14:11" } ] }, "documentation": null, - "id": 1505, + "id": 2025, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -3714,49 +3560,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1400, + "id": 1920, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "2248:7:5", + "referencedDeclaration": 1899, + "src": "1997:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1401, + "id": 1921, "modifierName": { "argumentTypes": null, - "id": 1399, + "id": 1919, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "2236:11:5", + "referencedDeclaration": 11833, + "src": "1985:11:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "2236:20:5" + "src": "1985:20:11" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1398, + "id": 1918, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1379, + "id": 1899, "name": "version", "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "1970:12:5", + "scope": 2025, + "src": "1719:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3764,10 +3610,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1378, + "id": 1898, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1970:4:5", + "src": "1719:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3778,11 +3624,11 @@ }, { "constant": false, - "id": 1381, + "id": 1901, "name": "_originToken", "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "1992:20:5", + "scope": 2025, + "src": "1741:20:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3790,10 +3636,10 @@ "typeString": "address" }, "typeName": { - "id": 1380, + "id": 1900, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1992:7:5", + "src": "1741:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3804,11 +3650,11 @@ }, { "constant": false, - "id": 1383, + "id": 1903, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2022:14:5", + "scope": 2025, + "src": "1771:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3816,10 +3662,10 @@ "typeString": "address" }, "typeName": { - "id": 1382, + "id": 1902, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2022:7:5", + "src": "1771:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3830,11 +3676,11 @@ }, { "constant": false, - "id": 1385, + "id": 1905, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2046:11:5", + "scope": 2025, + "src": "1795:11:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3842,10 +3688,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1384, + "id": 1904, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2046:4:5", + "src": "1795:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3856,11 +3702,11 @@ }, { "constant": false, - "id": 1387, + "id": 1907, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2067:22:5", + "scope": 2025, + "src": "1816:22:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3868,10 +3714,10 @@ "typeString": "address" }, "typeName": { - "id": 1386, + "id": 1906, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2067:7:5", + "src": "1816:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3882,11 +3728,11 @@ }, { "constant": false, - "id": 1389, + "id": 1909, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2099:13:5", + "scope": 2025, + "src": "1848:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3894,10 +3740,10 @@ "typeString": "address" }, "typeName": { - "id": 1388, + "id": 1908, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2099:7:5", + "src": "1848:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3908,11 +3754,11 @@ }, { "constant": false, - "id": 1391, + "id": 1911, "name": "_serviceFee", "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2122:16:5", + "scope": 2025, + "src": "1871:16:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3920,10 +3766,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1390, + "id": 1910, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2122:4:5", + "src": "1871:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3934,11 +3780,11 @@ }, { "constant": false, - "id": 1393, + "id": 1913, "name": "_WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2148:26:5", + "scope": 2025, + "src": "1897:26:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3946,10 +3792,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1392, + "id": 1912, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2148:4:5", + "src": "1897:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3960,26 +3806,26 @@ }, { "constant": false, - "id": 1395, + "id": 1915, "name": "_fund", "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2184:14:5", + "scope": 2025, + "src": "1933:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 1394, + "id": 1914, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "2184:8:5", + "referencedDeclaration": 1803, + "src": "1933:8:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -3988,26 +3834,26 @@ }, { "constant": false, - "id": 1397, + "id": 1917, "name": "_rates", "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2208:13:5", + "scope": 2025, + "src": "1957:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 1396, + "id": 1916, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "2208:6:5", + "referencedDeclaration": 10014, + "src": "1957:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -4015,141 +3861,588 @@ "visibility": "internal" } ], - "src": "1960:267:5" + "src": "1709:267:11" }, "payable": false, "returnParameters": { - "id": 1402, + "id": 1922, "nodeType": "ParameterList", "parameters": [], - "src": "2268:0:5" + "src": "2017:0:11" }, - "scope": 3279, - "src": "1948:983:5", + "scope": 3302, + "src": "1697:984:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1513, + "id": 2036, "nodeType": "Block", - "src": "2990:37:5", + "src": "2740:36:11", "statements": [ { "expression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2033, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2027, + "src": "2760:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "argumentTypes": null, - "id": 1510, - "name": "stages", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2032, + "name": "_addAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3007:6:5", + "referencedDeclaration": 1335, + "src": "2750:9:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 1511, + "id": 2034, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3007:13:5", + "names": [], + "nodeType": "FunctionCall", + "src": "2750:19:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 1509, - "id": 1512, - "nodeType": "Return", - "src": "3000:20:5" + "id": 2035, + "nodeType": "ExpressionStatement", + "src": "2750:19:11" } ] }, "documentation": null, - "id": 1514, + "id": 2037, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "stagesLength", + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2030, + "modifierName": { + "argumentTypes": null, + "id": 2029, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2730:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2730:9:11" + } + ], + "name": "addAdmin", "nodeType": "FunctionDefinition", "parameters": { - "id": 1506, + "id": 2028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2027, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 2037, + "src": "2705:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2705:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2704:18:11" + }, + "payable": false, + "returnParameters": { + "id": 2031, "nodeType": "ParameterList", "parameters": [], - "src": "2958:2:5" + "src": "2740:0:11" + }, + "scope": 3302, + "src": "2687:89:11", + "stateMutability": "nonpayable", + "superFunction": 1366, + "visibility": "public" + }, + { + "body": { + "id": 2048, + "nodeType": "Block", + "src": "2838:39:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2045, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2039, + "src": "2861:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2044, + "name": "_removeAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1351, + "src": "2848:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2848:22:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2047, + "nodeType": "ExpressionStatement", + "src": "2848:22:11" + } + ] + }, + "documentation": null, + "id": 2049, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2042, + "modifierName": { + "argumentTypes": null, + "id": 2041, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2828:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2828:9:11" + } + ], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2039, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 2049, + "src": "2803:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2038, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2803:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2802:18:11" }, "payable": false, "returnParameters": { - "id": 1509, + "id": 2043, + "nodeType": "ParameterList", + "parameters": [], + "src": "2838:0:11" + }, + "scope": 3302, + "src": "2782:95:11", + "stateMutability": "nonpayable", + "superFunction": 1374, + "visibility": "public" + }, + { + "body": { + "id": 2060, + "nodeType": "Block", + "src": "2943:43:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2057, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2051, + "src": "2970:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2056, + "name": "_addProjectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1602, + "src": "2953:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2953:26:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2059, + "nodeType": "ExpressionStatement", + "src": "2953:26:11" + } + ] + }, + "documentation": null, + "id": 2061, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2054, + "modifierName": { + "argumentTypes": null, + "id": 2053, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2933:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2933:9:11" + } + ], + "name": "addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2052, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1508, - "name": "", + "id": 2051, + "name": "_account", "nodeType": "VariableDeclaration", - "scope": 1514, - "src": "2984:4:5", + "scope": 2061, + "src": "2908:16:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 1507, - "name": "uint", + "id": 2050, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "2984:4:5", + "src": "2908:7:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "2983:6:5" + "src": "2907:18:11" }, - "scope": 3279, - "src": "2937:90:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" + "payable": false, + "returnParameters": { + "id": 2055, + "nodeType": "ParameterList", + "parameters": [], + "src": "2943:0:11" + }, + "scope": 3302, + "src": "2883:103:11", + "stateMutability": "nonpayable", + "superFunction": 1412, + "visibility": "public" }, { "body": { - "id": 1522, + "id": 2072, "nodeType": "Block", - "src": "3090:41:5", + "src": "3055:46:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2069, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2063, + "src": "3085:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2068, + "name": "_removeProjectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "3065:19:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3065:29:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2071, + "nodeType": "ExpressionStatement", + "src": "3065:29:11" + } + ] + }, + "documentation": null, + "id": 2073, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2066, + "modifierName": { + "argumentTypes": null, + "id": 2065, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "3045:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3045:9:11" + } + ], + "name": "removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2064, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2063, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "3020:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2062, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3020:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3019:18:11" + }, + "payable": false, + "returnParameters": { + "id": 2067, + "nodeType": "ParameterList", + "parameters": [], + "src": "3055:0:11" + }, + "scope": 3302, + "src": "2992:109:11", + "stateMutability": "nonpayable", + "superFunction": 1420, + "visibility": "public" + }, + { + "body": { + "id": 2081, + "nodeType": "Block", + "src": "3160:37:11", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1519, - "name": "milestones", + "id": 2078, + "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3107:10:5", + "referencedDeclaration": 1868, + "src": "3177:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1520, + "id": 2079, "isConstant": false, "isLValue": true, "isPure": false, @@ -4157,21 +4450,118 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3107:17:5", + "src": "3177:13:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1518, - "id": 1521, + "functionReturnParameters": 2077, + "id": 2080, "nodeType": "Return", - "src": "3100:24:5" + "src": "3170:20:11" } ] }, "documentation": null, - "id": 1523, + "id": 2082, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "stagesLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2074, + "nodeType": "ParameterList", + "parameters": [], + "src": "3128:2:11" + }, + "payable": false, + "returnParameters": { + "id": 2077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2076, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2082, + "src": "3154:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2075, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3154:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3153:6:11" + }, + "scope": 3302, + "src": "3107:90:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2090, + "nodeType": "Block", + "src": "3260:41:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2087, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3277:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + } + }, + "id": 2088, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3277:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2086, + "id": 2089, + "nodeType": "Return", + "src": "3270:24:11" + } + ] + }, + "documentation": null, + "id": 2091, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4179,23 +4569,23 @@ "name": "milestonesLength", "nodeType": "FunctionDefinition", "parameters": { - "id": 1515, + "id": 2083, "nodeType": "ParameterList", "parameters": [], - "src": "3058:2:5" + "src": "3228:2:11" }, "payable": false, "returnParameters": { - "id": 1518, + "id": 2086, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1517, + "id": 2085, "name": "", "nodeType": "VariableDeclaration", - "scope": 1523, - "src": "3084:4:5", + "scope": 2091, + "src": "3254:4:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4203,10 +4593,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1516, + "id": 2084, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3084:4:5", + "src": "3254:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4216,19 +4606,19 @@ "visibility": "internal" } ], - "src": "3083:6:5" + "src": "3253:6:11" }, - "scope": 3279, - "src": "3033:98:5", + "scope": 3302, + "src": "3203:98:11", "stateMutability": "view", - "superFunction": 1187, + "superFunction": 1723, "visibility": "external" }, { "body": { - "id": 1566, + "id": 2134, "nodeType": "Block", - "src": "3236:289:5", + "src": "3406:289:11", "statements": [ { "expression": { @@ -4240,26 +4630,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1540, + "id": 2108, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3267:10:5", + "referencedDeclaration": 1871, + "src": "3437:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 1542, + "id": 2110, "indexExpression": { "argumentTypes": null, - "id": 1541, + "id": 2109, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3278:5:5", + "referencedDeclaration": 2093, + "src": "3448:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4270,21 +4660,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3267:17:5", + "src": "3437:17:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "id": 1543, + "id": 2111, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 1340, - "src": "3267:25:5", + "referencedDeclaration": 4451, + "src": "3437:25:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4296,26 +4686,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1544, + "id": 2112, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3306:10:5", + "referencedDeclaration": 1871, + "src": "3476:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 1546, + "id": 2114, "indexExpression": { "argumentTypes": null, - "id": 1545, + "id": 2113, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3317:5:5", + "referencedDeclaration": 2093, + "src": "3487:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4326,21 +4716,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3306:17:5", + "src": "3476:17:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "id": 1547, + "id": 2115, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tranchePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 1342, - "src": "3306:32:5", + "referencedDeclaration": 4453, + "src": "3476:32:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4352,26 +4742,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1548, + "id": 2116, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3352:10:5", + "referencedDeclaration": 1871, + "src": "3522:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 1550, + "id": 2118, "indexExpression": { "argumentTypes": null, - "id": 1549, + "id": 2117, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3363:5:5", + "referencedDeclaration": 2093, + "src": "3533:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4382,21 +4772,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3352:17:5", + "src": "3522:17:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "id": 1551, + "id": 2119, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voteEndDate", "nodeType": "MemberAccess", - "referencedDeclaration": 1344, - "src": "3352:29:5", + "referencedDeclaration": 4455, + "src": "3522:29:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4408,26 +4798,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1552, + "id": 2120, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3395:10:5", + "referencedDeclaration": 1871, + "src": "3565:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 1554, + "id": 2122, "indexExpression": { "argumentTypes": null, - "id": 1553, + "id": 2121, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3406:5:5", + "referencedDeclaration": 2093, + "src": "3576:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4438,21 +4828,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3395:17:5", + "src": "3565:17:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "id": 1555, + "id": 2123, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "withdrawalWindow", "nodeType": "MemberAccess", - "referencedDeclaration": 1346, - "src": "3395:34:5", + "referencedDeclaration": 4457, + "src": "3565:34:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4464,26 +4854,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1556, + "id": 2124, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3443:10:5", + "referencedDeclaration": 1871, + "src": "3613:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 1558, + "id": 2126, "indexExpression": { "argumentTypes": null, - "id": 1557, + "id": 2125, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3454:5:5", + "referencedDeclaration": 2093, + "src": "3624:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4494,21 +4884,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3443:17:5", + "src": "3613:17:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "id": 1559, + "id": 2127, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 1348, - "src": "3443:22:5", + "referencedDeclaration": 4459, + "src": "3613:22:11", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -4520,26 +4910,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1560, + "id": 2128, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3479:10:5", + "referencedDeclaration": 1871, + "src": "3649:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 1562, + "id": 2130, "indexExpression": { "argumentTypes": null, - "id": 1561, + "id": 2129, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3490:5:5", + "referencedDeclaration": 2093, + "src": "3660:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4550,49 +4940,49 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3479:17:5", + "src": "3649:17:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "id": 1563, + "id": 2131, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "description", "nodeType": "MemberAccess", - "referencedDeclaration": 1350, - "src": "3479:29:5", + "referencedDeclaration": 4461, + "src": "3649:29:11", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } } ], - "id": 1564, + "id": 2132, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3253:265:5", + "src": "3423:265:11", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_storage_$_t_bytes_storage_$", "typeString": "tuple(uint32,uint256,uint32,uint32,bytes storage ref,bytes storage ref)" } }, - "functionReturnParameters": 1539, - "id": 1565, + "functionReturnParameters": 2107, + "id": 2133, "nodeType": "Return", - "src": "3246:272:5" + "src": "3416:272:11" } ] }, "documentation": null, - "id": 1567, + "id": 2135, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4600,16 +4990,16 @@ "name": "getMilestone", "nodeType": "FunctionDefinition", "parameters": { - "id": 1526, + "id": 2094, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1525, + "id": 2093, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3159:10:5", + "scope": 2135, + "src": "3329:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4617,10 +5007,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1524, + "id": 2092, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3159:4:5", + "src": "3329:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4630,20 +5020,20 @@ "visibility": "internal" } ], - "src": "3158:12:5" + "src": "3328:12:11" }, "payable": false, "returnParameters": { - "id": 1539, + "id": 2107, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1528, + "id": 2096, "name": "", "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3192:6:5", + "scope": 2135, + "src": "3362:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4651,10 +5041,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1527, + "id": 2095, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3192:6:5", + "src": "3362:6:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4665,11 +5055,11 @@ }, { "constant": false, - "id": 1530, + "id": 2098, "name": "", "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3200:4:5", + "scope": 2135, + "src": "3370:4:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4677,10 +5067,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1529, + "id": 2097, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3200:4:5", + "src": "3370:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4691,11 +5081,11 @@ }, { "constant": false, - "id": 1532, + "id": 2100, "name": "", "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3206:6:5", + "scope": 2135, + "src": "3376:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4703,10 +5093,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1531, + "id": 2099, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3206:6:5", + "src": "3376:6:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4717,11 +5107,11 @@ }, { "constant": false, - "id": 1534, + "id": 2102, "name": "", "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3214:6:5", + "scope": 2135, + "src": "3384:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4729,10 +5119,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1533, + "id": 2101, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3214:6:5", + "src": "3384:6:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4743,11 +5133,11 @@ }, { "constant": false, - "id": 1536, + "id": 2104, "name": "", "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3222:5:5", + "scope": 2135, + "src": "3392:5:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4755,10 +5145,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1535, + "id": 2103, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3222:5:5", + "src": "3392:5:11", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4769,11 +5159,11 @@ }, { "constant": false, - "id": 1538, + "id": 2106, "name": "", "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3229:5:5", + "scope": 2135, + "src": "3399:5:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4781,10 +5171,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1537, + "id": 2105, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3229:5:5", + "src": "3399:5:11", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4794,19 +5184,19 @@ "visibility": "internal" } ], - "src": "3191:44:5" + "src": "3361:44:11" }, - "scope": 3279, - "src": "3137:388:5", + "scope": 3302, + "src": "3307:388:11", "stateMutability": "view", - "superFunction": 1149, + "superFunction": 1685, "visibility": "public" }, { "body": { - "id": 1612, + "id": 2180, "nodeType": "Block", - "src": "3628:262:5", + "src": "3798:262:11", "statements": [ { "expression": { @@ -4818,26 +5208,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1586, + "id": 2154, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3659:6:5", + "referencedDeclaration": 1868, + "src": "3829:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1588, + "id": 2156, "indexExpression": { "argumentTypes": null, - "id": 1587, + "id": 2155, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1569, - "src": "3666:5:5", + "referencedDeclaration": 2137, + "src": "3836:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4848,21 +5238,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3659:13:5", + "src": "3829:13:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 1589, + "id": 2157, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "startDate", "nodeType": "MemberAccess", - "referencedDeclaration": 1325, - "src": "3659:23:5", + "referencedDeclaration": 4436, + "src": "3829:23:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4874,26 +5264,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1590, + "id": 2158, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3696:6:5", + "referencedDeclaration": 1868, + "src": "3866:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1592, + "id": 2160, "indexExpression": { "argumentTypes": null, - "id": 1591, + "id": 2159, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1569, - "src": "3703:5:5", + "referencedDeclaration": 2137, + "src": "3873:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4904,21 +5294,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3696:13:5", + "src": "3866:13:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 1593, + "id": 2161, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 1327, - "src": "3696:21:5", + "referencedDeclaration": 4438, + "src": "3866:21:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4930,26 +5320,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1594, + "id": 2162, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3731:6:5", + "referencedDeclaration": 1868, + "src": "3901:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1596, + "id": 2164, "indexExpression": { "argumentTypes": null, - "id": 1595, + "id": 2163, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1569, - "src": "3738:5:5", + "referencedDeclaration": 2137, + "src": "3908:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4960,21 +5350,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3731:13:5", + "src": "3901:13:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 1597, + "id": 2165, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "discount", "nodeType": "MemberAccess", - "referencedDeclaration": 1329, - "src": "3731:22:5", + "referencedDeclaration": 4440, + "src": "3901:22:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4986,26 +5376,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1598, + "id": 2166, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3767:6:5", + "referencedDeclaration": 1868, + "src": "3937:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1600, + "id": 2168, "indexExpression": { "argumentTypes": null, - "id": 1599, + "id": 2167, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1569, - "src": "3774:5:5", + "referencedDeclaration": 2137, + "src": "3944:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5016,21 +5406,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3767:13:5", + "src": "3937:13:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 1601, + "id": 2169, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "vesting", "nodeType": "MemberAccess", - "referencedDeclaration": 1331, - "src": "3767:21:5", + "referencedDeclaration": 4442, + "src": "3937:21:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5042,26 +5432,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1602, + "id": 2170, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3802:6:5", + "referencedDeclaration": 1868, + "src": "3972:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1604, + "id": 2172, "indexExpression": { "argumentTypes": null, - "id": 1603, + "id": 2171, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1569, - "src": "3809:5:5", + "referencedDeclaration": 2137, + "src": "3979:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5072,21 +5462,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3802:13:5", + "src": "3972:13:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 1605, + "id": 2173, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "volumeBoundaries", "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "3802:30:5", + "referencedDeclaration": 4445, + "src": "3972:30:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -5098,26 +5488,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1606, + "id": 2174, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3846:6:5", + "referencedDeclaration": 1868, + "src": "4016:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1608, + "id": 2176, "indexExpression": { "argumentTypes": null, - "id": 1607, + "id": 2175, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1569, - "src": "3853:5:5", + "referencedDeclaration": 2137, + "src": "4023:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5128,49 +5518,49 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3846:13:5", + "src": "4016:13:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 1609, + "id": 2177, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "volumeBonuses", "nodeType": "MemberAccess", - "referencedDeclaration": 1337, - "src": "3846:27:5", + "referencedDeclaration": 4448, + "src": "4016:27:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } } ], - "id": 1610, + "id": 2178, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3645:238:5", + "src": "3815:238:11", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint32_$_t_array$_t_uint256_$dyn_storage_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "tuple(uint32,uint32,uint256,uint32,uint256[] storage ref,uint256[] storage ref)" } }, - "functionReturnParameters": 1585, - "id": 1611, + "functionReturnParameters": 2153, + "id": 2179, "nodeType": "Return", - "src": "3638:245:5" + "src": "3808:245:11" } ] }, "documentation": null, - "id": 1613, + "id": 2181, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5178,16 +5568,16 @@ "name": "getStage", "nodeType": "FunctionDefinition", "parameters": { - "id": 1570, + "id": 2138, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1569, + "id": 2137, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3549:10:5", + "scope": 2181, + "src": "3719:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5195,10 +5585,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1568, + "id": 2136, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3549:4:5", + "src": "3719:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5208,20 +5598,20 @@ "visibility": "internal" } ], - "src": "3548:12:5" + "src": "3718:12:11" }, "payable": false, "returnParameters": { - "id": 1585, + "id": 2153, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1572, + "id": 2140, "name": "", "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3582:6:5", + "scope": 2181, + "src": "3752:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5229,10 +5619,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1571, + "id": 2139, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3582:6:5", + "src": "3752:6:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5243,11 +5633,11 @@ }, { "constant": false, - "id": 1574, + "id": 2142, "name": "", "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3590:6:5", + "scope": 2181, + "src": "3760:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5255,10 +5645,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1573, + "id": 2141, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3590:6:5", + "src": "3760:6:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5269,11 +5659,11 @@ }, { "constant": false, - "id": 1576, + "id": 2144, "name": "", "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3598:4:5", + "scope": 2181, + "src": "3768:4:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5281,10 +5671,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1575, + "id": 2143, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3598:4:5", + "src": "3768:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5295,11 +5685,11 @@ }, { "constant": false, - "id": 1578, + "id": 2146, "name": "", "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3604:6:5", + "scope": 2181, + "src": "3774:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5307,10 +5697,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1577, + "id": 2145, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3604:6:5", + "src": "3774:6:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5321,11 +5711,11 @@ }, { "constant": false, - "id": 1581, + "id": 2149, "name": "", "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3612:6:5", + "scope": 2181, + "src": "3782:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5334,19 +5724,19 @@ }, "typeName": { "baseType": { - "id": 1579, + "id": 2147, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3612:4:5", + "src": "3782:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1580, + "id": 2148, "length": null, "nodeType": "ArrayTypeName", - "src": "3612:6:5", + "src": "3782:6:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -5357,11 +5747,11 @@ }, { "constant": false, - "id": 1584, + "id": 2152, "name": "", "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3620:6:5", + "scope": 2181, + "src": "3790:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5370,19 +5760,19 @@ }, "typeName": { "baseType": { - "id": 1582, + "id": 2150, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3620:4:5", + "src": "3790:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1583, + "id": 2151, "length": null, "nodeType": "ArrayTypeName", - "src": "3620:6:5", + "src": "3790:6:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -5392,19 +5782,19 @@ "visibility": "internal" } ], - "src": "3581:46:5" + "src": "3751:46:11" }, - "scope": 3279, - "src": "3531:359:5", + "scope": 3302, + "src": "3701:359:11", "stateMutability": "view", - "superFunction": 1168, + "superFunction": 1704, "visibility": "public" }, { "body": { - "id": 1633, + "id": 2201, "nodeType": "Block", - "src": "3949:94:5", + "src": "4119:94:11", "statements": [ { "expression": { @@ -5416,7 +5806,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1622, + "id": 2190, "isConstant": false, "isLValue": false, "isPure": false, @@ -5425,18 +5815,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1619, + "id": 2187, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3967:6:5", + "referencedDeclaration": 1868, + "src": "4137:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1620, + "id": 2188, "isConstant": false, "isLValue": true, "isPure": false, @@ -5444,7 +5834,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3967:13:5", + "src": "4137:13:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5455,14 +5845,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1621, + "id": 2189, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3983:1:5", + "src": "4153:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5470,7 +5860,7 @@ }, "value": "0" }, - "src": "3967:17:5", + "src": "4137:17:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5484,21 +5874,21 @@ "typeString": "bool" } ], - "id": 1618, + "id": 2186, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3959:7:5", + "referencedDeclaration": 13444, + "src": "4129:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1623, + "id": 2191, "isConstant": false, "isLValue": false, "isPure": false, @@ -5506,15 +5896,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3959:26:5", + "src": "4129:26:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1624, + "id": 2192, "nodeType": "ExpressionStatement", - "src": "3959:26:5" + "src": "4129:26:11" }, { "expression": { @@ -5523,25 +5913,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1625, + "id": 2193, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "4003:6:5", + "referencedDeclaration": 1868, + "src": "4173:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1630, + "id": 2198, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1629, + "id": 2197, "isConstant": false, "isLValue": false, "isPure": false, @@ -5550,18 +5940,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1626, + "id": 2194, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "4010:6:5", + "referencedDeclaration": 1868, + "src": "4180:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1627, + "id": 2195, "isConstant": false, "isLValue": true, "isPure": false, @@ -5569,7 +5959,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4010:13:5", + "src": "4180:13:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5580,14 +5970,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1628, + "id": 2196, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4026:1:5", + "src": "4196:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5595,7 +5985,7 @@ }, "value": "1" }, - "src": "4010:17:5", + "src": "4180:17:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5606,35 +5996,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4003:25:5", + "src": "4173:25:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 1631, + "id": 2199, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 1327, - "src": "4003:33:5", + "referencedDeclaration": 4438, + "src": "4173:33:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "functionReturnParameters": 1617, - "id": 1632, + "functionReturnParameters": 2185, + "id": 2200, "nodeType": "Return", - "src": "3996:40:5" + "src": "4166:40:11" } ] }, "documentation": null, - "id": 1634, + "id": 2202, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5642,23 +6032,23 @@ "name": "getEndDate", "nodeType": "FunctionDefinition", "parameters": { - "id": 1614, + "id": 2182, "nodeType": "ParameterList", "parameters": [], - "src": "3915:2:5" + "src": "4085:2:11" }, "payable": false, "returnParameters": { - "id": 1617, + "id": 2185, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1616, + "id": 2184, "name": "", "nodeType": "VariableDeclaration", - "scope": 1634, - "src": "3941:6:5", + "scope": 2202, + "src": "4111:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5666,10 +6056,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1615, + "id": 2183, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3941:6:5", + "src": "4111:6:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5679,19 +6069,19 @@ "visibility": "internal" } ], - "src": "3940:8:5" + "src": "4110:8:11" }, - "scope": 3279, - "src": "3896:147:5", + "scope": 3302, + "src": "4066:147:11", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1673, + "id": 2241, "nodeType": "Block", - "src": "4210:266:5", + "src": "4380:266:11", "statements": [ { "condition": { @@ -5700,7 +6090,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1648, + "id": 2216, "isConstant": false, "isLValue": false, "isPure": false, @@ -5711,7 +6101,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1644, + "id": 2212, "isConstant": false, "isLValue": false, "isPure": false, @@ -5720,18 +6110,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1641, + "id": 2209, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "4223:10:5", + "referencedDeclaration": 1871, + "src": "4393:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 1642, + "id": 2210, "isConstant": false, "isLValue": true, "isPure": false, @@ -5739,7 +6129,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4223:17:5", + "src": "4393:17:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5750,14 +6140,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1643, + "id": 2211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4244:1:5", + "src": "4414:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5765,7 +6155,7 @@ }, "value": "0" }, - "src": "4223:22:5", + "src": "4393:22:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5775,7 +6165,7 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 1647, + "id": 2215, "isConstant": false, "isLValue": false, "isPure": false, @@ -5783,24 +6173,26 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4249:10:5", + "src": "4419:10:11", "subExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1645, + "id": 2213, "name": "isEnded", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3236, - "src": "4250:7:5", + "overloadedDeclarations": [ + 3260 + ], + "referencedDeclaration": 3260, + "src": "4420:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1646, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, @@ -5808,7 +6200,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4250:9:5", + "src": "4420:9:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5819,40 +6211,40 @@ "typeString": "bool" } }, - "src": "4223:36:5", + "src": "4393:36:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1650, + "id": 2218, "nodeType": "IfStatement", - "src": "4220:48:5", + "src": "4390:48:11", "trueBody": { "expression": null, - "functionReturnParameters": 1640, - "id": 1649, + "functionReturnParameters": 2208, + "id": 2217, "nodeType": "Return", - "src": "4261:7:5" + "src": "4431:7:11" } }, { "expression": { "argumentTypes": null, - "id": 1653, + "id": 2221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1651, + "id": 2219, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1639, - "src": "4278:5:5", + "referencedDeclaration": 2207, + "src": "4448:5:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5863,14 +6255,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1652, + "id": 2220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4286:4:5", + "src": "4456:4:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5878,26 +6270,26 @@ }, "value": "true" }, - "src": "4278:12:5", + "src": "4448:12:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1654, + "id": 2222, "nodeType": "ExpressionStatement", - "src": "4278:12:5" + "src": "4448:12:11" }, { "body": { - "id": 1671, + "id": 2239, "nodeType": "Block", - "src": "4438:32:5", + "src": "4608:32:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 1669, + "id": 2237, "isConstant": false, "isLValue": false, "isPure": false, @@ -5905,15 +6297,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4452:7:5", + "src": "4622:7:11", "subExpression": { "argumentTypes": null, - "id": 1668, + "id": 2236, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1637, - "src": "4452:5:5", + "referencedDeclaration": 2205, + "src": "4622:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5924,9 +6316,9 @@ "typeString": "uint256" } }, - "id": 1670, + "id": 2238, "nodeType": "ExpressionStatement", - "src": "4452:7:5" + "src": "4622:7:11" } ] }, @@ -5936,7 +6328,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1667, + "id": 2235, "isConstant": false, "isLValue": false, "isPure": false, @@ -5947,19 +6339,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1660, + "id": 2228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1655, + "id": 2223, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1637, - "src": "4362:5:5", + "referencedDeclaration": 2205, + "src": "4532:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5973,7 +6365,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1659, + "id": 2227, "isConstant": false, "isLValue": false, "isPure": false, @@ -5982,18 +6374,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1656, + "id": 2224, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "4370:10:5", + "referencedDeclaration": 1871, + "src": "4540:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 1657, + "id": 2225, "isConstant": false, "isLValue": true, "isPure": false, @@ -6001,7 +6393,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4370:17:5", + "src": "4540:17:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6012,14 +6404,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1658, + "id": 2226, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4390:1:5", + "src": "4560:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6027,13 +6419,13 @@ }, "value": "1" }, - "src": "4370:21:5", + "src": "4540:21:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4362:29:5", + "src": "4532:29:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6047,19 +6439,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1666, + "id": 2234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1661, + "id": 2229, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "4395:3:5", + "referencedDeclaration": 13443, + "src": "4565:3:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6073,26 +6465,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1662, + "id": 2230, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "4402:10:5", + "referencedDeclaration": 1871, + "src": "4572:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 1664, + "id": 2232, "indexExpression": { "argumentTypes": null, - "id": 1663, + "id": 2231, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1637, - "src": "4413:5:5", + "referencedDeclaration": 2205, + "src": "4583:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6103,46 +6495,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4402:17:5", + "src": "4572:17:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "id": 1665, + "id": 2233, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "withdrawalWindow", "nodeType": "MemberAccess", - "referencedDeclaration": 1346, - "src": "4402:34:5", + "referencedDeclaration": 4457, + "src": "4572:34:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4395:41:5", + "src": "4565:41:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4362:74:5", + "src": "4532:74:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1672, + "id": 2240, "nodeType": "WhileStatement", - "src": "4356:114:5" + "src": "4526:114:11" } ] }, "documentation": "@dev Returns index of active milestone or last milestone", - "id": 1674, + "id": 2242, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6150,23 +6542,23 @@ "name": "getCurrentMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 1635, + "id": 2203, "nodeType": "ParameterList", "parameters": [], - "src": "4162:2:5" + "src": "4332:2:11" }, "payable": false, "returnParameters": { - "id": 1640, + "id": 2208, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1637, + "id": 2205, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1674, - "src": "4186:10:5", + "scope": 2242, + "src": "4356:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6174,10 +6566,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1636, + "id": 2204, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4186:4:5", + "src": "4356:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6188,11 +6580,11 @@ }, { "constant": false, - "id": 1639, + "id": 2207, "name": "found", "nodeType": "VariableDeclaration", - "scope": 1674, - "src": "4198:10:5", + "scope": 2242, + "src": "4368:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6200,10 +6592,10 @@ "typeString": "bool" }, "typeName": { - "id": 1638, + "id": 2206, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4198:4:5", + "src": "4368:4:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6213,19 +6605,19 @@ "visibility": "internal" } ], - "src": "4185:24:5" + "src": "4355:24:11" }, - "scope": 3279, - "src": "4129:347:5", + "scope": 3302, + "src": "4299:347:11", "stateMutability": "view", - "superFunction": 1175, + "superFunction": 1711, "visibility": "public" }, { "body": { - "id": 1702, + "id": 2270, "nodeType": "Block", - "src": "4560:127:5", + "src": "4730:127:11", "statements": [ { "condition": { @@ -6234,7 +6626,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1688, + "id": 2256, "isConstant": false, "isLValue": false, "isPure": false, @@ -6245,7 +6637,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1684, + "id": 2252, "isConstant": false, "isLValue": false, "isPure": false, @@ -6254,18 +6646,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1681, + "id": 2249, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "4574:10:5", + "referencedDeclaration": 1871, + "src": "4744:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 1682, + "id": 2250, "isConstant": false, "isLValue": true, "isPure": false, @@ -6273,7 +6665,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4574:17:5", + "src": "4744:17:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6284,14 +6676,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1683, + "id": 2251, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4595:1:5", + "src": "4765:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6299,7 +6691,7 @@ }, "value": "0" }, - "src": "4574:22:5", + "src": "4744:22:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6309,7 +6701,7 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 1687, + "id": 2255, "isConstant": false, "isLValue": false, "isPure": false, @@ -6317,24 +6709,26 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4600:10:5", + "src": "4770:10:11", "subExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1685, + "id": 2253, "name": "isEnded", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3236, - "src": "4601:7:5", + "overloadedDeclarations": [ + 3260 + ], + "referencedDeclaration": 3260, + "src": "4771:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1686, + "id": 2254, "isConstant": false, "isLValue": false, "isPure": false, @@ -6342,7 +6736,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4601:9:5", + "src": "4771:9:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6353,40 +6747,40 @@ "typeString": "bool" } }, - "src": "4574:36:5", + "src": "4744:36:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1690, + "id": 2258, "nodeType": "IfStatement", - "src": "4570:49:5", + "src": "4740:49:11", "trueBody": { "expression": null, - "functionReturnParameters": 1680, - "id": 1689, + "functionReturnParameters": 2248, + "id": 2257, "nodeType": "Return", - "src": "4612:7:5" + "src": "4782:7:11" } }, { "expression": { "argumentTypes": null, - "id": 1693, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1691, + "id": 2259, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1679, - "src": "4629:5:5", + "referencedDeclaration": 2247, + "src": "4799:5:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6397,14 +6791,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1692, + "id": 2260, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4637:4:5", + "src": "4807:4:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6412,32 +6806,32 @@ }, "value": "true" }, - "src": "4629:12:5", + "src": "4799:12:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1694, + "id": 2262, "nodeType": "ExpressionStatement", - "src": "4629:12:5" + "src": "4799:12:11" }, { "expression": { "argumentTypes": null, - "id": 1700, + "id": 2268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1695, + "id": 2263, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1677, - "src": "4651:5:5", + "referencedDeclaration": 2245, + "src": "4821:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6451,7 +6845,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1699, + "id": 2267, "isConstant": false, "isLValue": false, "isPure": false, @@ -6460,18 +6854,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1696, + "id": 2264, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "4659:10:5", + "referencedDeclaration": 1871, + "src": "4829:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 1697, + "id": 2265, "isConstant": false, "isLValue": true, "isPure": false, @@ -6479,7 +6873,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4659:17:5", + "src": "4829:17:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6490,14 +6884,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1698, + "id": 2266, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4679:1:5", + "src": "4849:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6505,26 +6899,26 @@ }, "value": "1" }, - "src": "4659:21:5", + "src": "4829:21:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4651:29:5", + "src": "4821:29:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1701, + "id": 2269, "nodeType": "ExpressionStatement", - "src": "4651:29:5" + "src": "4821:29:11" } ] }, "documentation": null, - "id": 1703, + "id": 2271, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6532,23 +6926,23 @@ "name": "getLastMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 1675, + "id": 2243, "nodeType": "ParameterList", "parameters": [], - "src": "4512:2:5" + "src": "4682:2:11" }, "payable": false, "returnParameters": { - "id": 1680, + "id": 2248, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1677, + "id": 2245, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1703, - "src": "4536:10:5", + "scope": 2271, + "src": "4706:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6556,10 +6950,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1676, + "id": 2244, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4536:4:5", + "src": "4706:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6570,11 +6964,11 @@ }, { "constant": false, - "id": 1679, + "id": 2247, "name": "found", "nodeType": "VariableDeclaration", - "scope": 1703, - "src": "4548:10:5", + "scope": 2271, + "src": "4718:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6582,10 +6976,10 @@ "typeString": "bool" }, "typeName": { - "id": 1678, + "id": 2246, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4548:4:5", + "src": "4718:4:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6595,19 +6989,19 @@ "visibility": "internal" } ], - "src": "4535:24:5" + "src": "4705:24:11" }, - "scope": 3279, - "src": "4482:205:5", + "scope": 3302, + "src": "4652:205:11", "stateMutability": "view", - "superFunction": 1182, + "superFunction": 1718, "visibility": "public" }, { "body": { - "id": 1732, + "id": 2300, "nodeType": "Block", - "src": "4764:148:5", + "src": "4934:148:11", "statements": [ { "expression": { @@ -6619,19 +7013,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1713, + "id": 2281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1711, + "id": 2279, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "4782:6:5", + "referencedDeclaration": 2273, + "src": "4952:6:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6642,14 +7036,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1712, + "id": 2280, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4791:1:5", + "src": "4961:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6657,7 +7051,7 @@ }, "value": "0" }, - "src": "4782:10:5", + "src": "4952:10:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6671,21 +7065,21 @@ "typeString": "bool" } ], - "id": 1710, + "id": 2278, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "4774:7:5", + "referencedDeclaration": 13444, + "src": "4944:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1714, + "id": 2282, "isConstant": false, "isLValue": false, "isPure": false, @@ -6693,15 +7087,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4774:19:5", + "src": "4944:19:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1715, + "id": 2283, "nodeType": "ExpressionStatement", - "src": "4774:19:5" + "src": "4944:19:11" }, { "expression": { @@ -6713,19 +7107,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1721, + "id": 2289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1717, + "id": 2285, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1707, - "src": "4811:14:5", + "referencedDeclaration": 2275, + "src": "4981:14:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6739,14 +7133,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1719, + "id": 2287, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4837:1:5", + "src": "5007:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6762,20 +7156,20 @@ "typeString": "int_const 0" } ], - "id": 1718, + "id": 2286, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4829:7:5", + "src": "4999:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1720, + "id": 2288, "isConstant": false, "isLValue": false, "isPure": true, @@ -6783,13 +7177,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4829:10:5", + "src": "4999:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4811:28:5", + "src": "4981:28:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6803,21 +7197,21 @@ "typeString": "bool" } ], - "id": 1716, + "id": 2284, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "4803:7:5", + "referencedDeclaration": 13444, + "src": "4973:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1722, + "id": 2290, "isConstant": false, "isLValue": false, "isPure": false, @@ -6825,32 +7219,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4803:37:5", + "src": "4973:37:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1723, + "id": 2291, "nodeType": "ExpressionStatement", - "src": "4803:37:5" + "src": "4973:37:11" }, { "expression": { "argumentTypes": null, - "id": 1726, + "id": 2294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1724, + "id": 2292, "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1307, - "src": "4851:5:5", + "referencedDeclaration": 1855, + "src": "5021:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6860,43 +7254,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1725, + "id": 2293, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "4859:6:5", + "referencedDeclaration": 2273, + "src": "5029:6:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4851:14:5", + "src": "5021:14:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1727, + "id": 2295, "nodeType": "ExpressionStatement", - "src": "4851:14:5" + "src": "5021:14:11" }, { "expression": { "argumentTypes": null, - "id": 1730, + "id": 2298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1728, + "id": 2296, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1313, - "src": "4875:13:5", + "referencedDeclaration": 1861, + "src": "5045:13:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6906,31 +7300,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1729, + "id": 2297, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1707, - "src": "4891:14:5", + "referencedDeclaration": 2275, + "src": "5061:14:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4875:30:5", + "src": "5045:30:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1731, + "id": 2299, "nodeType": "ExpressionStatement", - "src": "4875:30:5" + "src": "5045:30:11" } ] }, "documentation": null, - "id": 1733, + "id": 2301, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6938,16 +7332,16 @@ "name": "__setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 1708, + "id": 2276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1705, + "id": 2273, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 1733, - "src": "4718:11:5", + "scope": 2301, + "src": "4888:11:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6955,10 +7349,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1704, + "id": 2272, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4718:4:5", + "src": "4888:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6969,11 +7363,11 @@ }, { "constant": false, - "id": 1707, + "id": 2275, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 1733, - "src": "4731:22:5", + "scope": 2301, + "src": "4901:22:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6981,10 +7375,10 @@ "typeString": "address" }, "typeName": { - "id": 1706, + "id": 2274, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4731:7:5", + "src": "4901:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6994,26 +7388,26 @@ "visibility": "internal" } ], - "src": "4717:37:5" + "src": "4887:37:11" }, "payable": false, "returnParameters": { - "id": 1709, + "id": 2277, "nodeType": "ParameterList", "parameters": [], - "src": "4764:0:5" + "src": "4934:0:11" }, - "scope": 3279, - "src": "4693:219:5", + "scope": 3302, + "src": "4863:219:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1747, + "id": 2315, "nodeType": "Block", - "src": "4989:55:5", + "src": "5161:55:11", "statements": [ { "expression": { @@ -7021,12 +7415,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1743, + "id": 2311, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1735, - "src": "5015:6:5", + "referencedDeclaration": 2303, + "src": "5187:6:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7034,12 +7428,12 @@ }, { "argumentTypes": null, - "id": 1744, + "id": 2312, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1313, - "src": "5023:13:5", + "referencedDeclaration": 1861, + "src": "5195:13:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7057,18 +7451,18 @@ "typeString": "address" } ], - "id": 1742, + "id": 2310, "name": "__setParameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1733, - "src": "4999:15:5", + "referencedDeclaration": 2301, + "src": "5171:15:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 1745, + "id": 2313, "isConstant": false, "isLValue": false, "isPure": false, @@ -7076,76 +7470,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4999:38:5", + "src": "5171:38:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1746, + "id": 2314, "nodeType": "ExpressionStatement", - "src": "4999:38:5" + "src": "5171:38:11" } ] }, "documentation": null, - "id": 1748, + "id": 2316, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1738, + "id": 2306, "modifierName": { "argumentTypes": null, - "id": 1737, - "name": "onlyOwner", + "id": 2305, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "4963:9:5", + "referencedDeclaration": 12420, + "src": "5133:11:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4963:9:5" + "src": "5133:11:11" }, { "arguments": null, - "id": 1740, + "id": 2308, "modifierName": { "argumentTypes": null, - "id": 1739, + "id": 2307, "name": "beforeSaleStart", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3268, - "src": "4973:15:5", + "referencedDeclaration": 3292, + "src": "5145:15:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4973:15:5" + "src": "5145:15:11" } ], "name": "setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 1736, + "id": 2304, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1735, + "id": 2303, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 1748, - "src": "4941:11:5", + "scope": 2316, + "src": "5111:11:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7153,10 +7547,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1734, + "id": 2302, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4941:4:5", + "src": "5111:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7166,26 +7560,26 @@ "visibility": "internal" } ], - "src": "4940:13:5" + "src": "5110:13:11" }, "payable": false, "returnParameters": { - "id": 1741, + "id": 2309, "nodeType": "ParameterList", "parameters": [], - "src": "4989:0:5" + "src": "5161:0:11" }, - "scope": 3279, - "src": "4918:126:5", + "scope": 3302, + "src": "5088:128:11", "stateMutability": "nonpayable", - "superFunction": 1103, + "superFunction": 1634, "visibility": "external" }, { "body": { - "id": 1872, + "id": 2440, "nodeType": "Block", - "src": "5448:1051:5", + "src": "5627:1051:11", "statements": [ { "expression": { @@ -7197,7 +7591,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1780, + "id": 2348, "isConstant": false, "isLValue": false, "isPure": false, @@ -7206,18 +7600,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1777, + "id": 2345, "name": "parametersOfStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "5515:18:5", + "referencedDeclaration": 2321, + "src": "5694:18:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", "typeString": "uint256[6] calldata[] calldata" } }, - "id": 1778, + "id": 2346, "isConstant": false, "isLValue": false, "isPure": false, @@ -7225,7 +7619,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5515:25:5", + "src": "5694:25:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7236,14 +7630,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1779, + "id": 2347, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5544:1:5", + "src": "5723:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7251,7 +7645,7 @@ }, "value": "0" }, - "src": "5515:30:5", + "src": "5694:30:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7265,21 +7659,21 @@ "typeString": "bool" } ], - "id": 1776, + "id": 2344, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "5507:7:5", + "referencedDeclaration": 13444, + "src": "5686:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1781, + "id": 2349, "isConstant": false, "isLValue": false, "isPure": false, @@ -7287,15 +7681,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5507:39:5", + "src": "5686:39:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1782, + "id": 2350, "nodeType": "ExpressionStatement", - "src": "5507:39:5" + "src": "5686:39:11" }, { "expression": { @@ -7307,7 +7701,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1790, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": false, @@ -7316,18 +7710,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1784, + "id": 2352, "name": "parametersOfStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "5564:18:5", + "referencedDeclaration": 2321, + "src": "5743:18:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", "typeString": "uint256[6] calldata[] calldata" } }, - "id": 1785, + "id": 2353, "isConstant": false, "isLValue": false, "isPure": false, @@ -7335,7 +7729,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5564:25:5", + "src": "5743:25:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7348,7 +7742,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1788, + "id": 2356, "isConstant": false, "isLValue": false, "isPure": true, @@ -7356,18 +7750,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "5599:3:5", + "src": "5778:3:11", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1787, + "id": 2355, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5601:1:5", + "src": "5780:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -7388,20 +7782,20 @@ "typeString": "int_const -1" } ], - "id": 1786, + "id": 2354, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5593:5:5", + "src": "5772:5:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 1789, + "id": 2357, "isConstant": false, "isLValue": false, "isPure": true, @@ -7409,13 +7803,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5593:10:5", + "src": "5772:10:11", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5564:39:5", + "src": "5743:39:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7429,21 +7823,21 @@ "typeString": "bool" } ], - "id": 1783, + "id": 2351, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "5556:7:5", + "referencedDeclaration": 13444, + "src": "5735:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1791, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": false, @@ -7451,15 +7845,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5556:48:5", + "src": "5735:48:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1792, + "id": 2360, "nodeType": "ExpressionStatement", - "src": "5556:48:5" + "src": "5735:48:11" }, { "expression": { @@ -7471,7 +7865,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1800, + "id": 2368, "isConstant": false, "isLValue": false, "isPure": false, @@ -7480,18 +7874,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1794, + "id": 2362, "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "5676:22:5", + "referencedDeclaration": 2329, + "src": "5855:22:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", "typeString": "uint256[4] calldata[] calldata" } }, - "id": 1795, + "id": 2363, "isConstant": false, "isLValue": false, "isPure": false, @@ -7499,7 +7893,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5676:29:5", + "src": "5855:29:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7512,7 +7906,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1798, + "id": 2366, "isConstant": false, "isLValue": false, "isPure": true, @@ -7520,18 +7914,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "5715:3:5", + "src": "5894:3:11", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1797, + "id": 2365, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5717:1:5", + "src": "5896:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -7552,20 +7946,20 @@ "typeString": "int_const -1" } ], - "id": 1796, + "id": 2364, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5709:5:5", + "src": "5888:5:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 1799, + "id": 2367, "isConstant": false, "isLValue": false, "isPure": true, @@ -7573,439 +7967,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5709:10:5", + "src": "5888:10:11", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5676:43:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1793, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5668:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5668:52:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1802, - "nodeType": "ExpressionStatement", - "src": "5668:52:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1804, - "name": "parametersOfMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "5738:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", - "typeString": "uint256[4] calldata[] calldata" - } - }, - "id": 1805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5738:29:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1806, - "name": "nameAndDescriptionsOffsetOfMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "5771:37:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[] calldata" - } - }, - "id": 1807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5771:44:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5818:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "5771:48:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5738:81:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1803, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5730:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5730:90:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1812, - "nodeType": "ExpressionStatement", - "src": "5730:90:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1814, - "name": "parametersOfMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "5838:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", - "typeString": "uint256[4] calldata[] calldata" - } - }, - "id": 1815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5838:29:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1816, - "name": "nameAndDescriptionsOfMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "5871:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 1817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5871:38:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1818, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5912:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "5871:42:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5838:75:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1813, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5830:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5830:84:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1822, - "nodeType": "ExpressionStatement", - "src": "5830:84:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1824, - "name": "paymentMethodsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "5971:18:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - }, - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5971:25:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1826, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6000:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5971:30:5", + "src": "5855:43:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8019,21 +7987,447 @@ "typeString": "bool" } ], - "id": 1823, + "id": 2361, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "5963:7:5", + "referencedDeclaration": 13444, + "src": "5847:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1828, + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5847:52:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2370, + "nodeType": "ExpressionStatement", + "src": "5847:52:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2372, + "name": "parametersOfMilestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "5917:22:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", + "typeString": "uint256[4] calldata[] calldata" + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5917:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2374, + "name": "nameAndDescriptionsOffsetOfMilestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2332, + "src": "5950:37:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", + "typeString": "uint32[] calldata" + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5950:44:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5997:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5950:48:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5917:81:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2371, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5909:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5909:90:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2380, + "nodeType": "ExpressionStatement", + "src": "5909:90:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2382, + "name": "parametersOfMilestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "6017:22:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", + "typeString": "uint256[4] calldata[] calldata" + } + }, + "id": 2383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6017:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2384, + "name": "nameAndDescriptionsOfMilestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2334, + "src": "6050:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 2385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6050:38:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6091:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "6050:42:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6017:75:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2381, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6009:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6009:84:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2390, + "nodeType": "ExpressionStatement", + "src": "6009:84:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2392, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2337, + "src": "6150:18:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 2393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6150:25:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6179:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6150:30:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2391, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6142:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2396, "isConstant": false, "isLValue": false, "isPure": false, @@ -8041,21 +8435,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5963:39:5", + "src": "6142:39:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1829, + "id": 2397, "nodeType": "ExpressionStatement", - "src": "5963:39:5" + "src": "6142:39:11" }, { "body": { - "id": 1850, + "id": 2418, "nodeType": "Block", - "src": "6066:72:5", + "src": "6245:72:11", "statements": [ { "expression": { @@ -8068,26 +8462,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1844, + "id": 2412, "name": "paymentMethodsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "6104:18:5", + "referencedDeclaration": 2337, + "src": "6283:18:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1846, + "id": 2414, "indexExpression": { "argumentTypes": null, - "id": 1845, + "id": 2413, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "6123:1:5", + "referencedDeclaration": 2399, + "src": "6302:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8098,7 +8492,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6104:21:5", + "src": "6283:21:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8114,32 +8508,32 @@ ], "expression": { "argumentTypes": null, - "id": 1842, + "id": 2410, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "6088:5:5", + "referencedDeclaration": 1853, + "src": "6267:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 1843, + "id": 2411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "hasSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 7301, - "src": "6088:15:5", + "referencedDeclaration": 10036, + "src": "6267:15:11", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 1847, + "id": 2415, "isConstant": false, "isLValue": false, "isPure": false, @@ -8147,7 +8541,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6088:38:5", + "src": "6267:38:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8161,21 +8555,21 @@ "typeString": "bool" } ], - "id": 1841, + "id": 2409, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "6080:7:5", + "referencedDeclaration": 13444, + "src": "6259:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1848, + "id": 2416, "isConstant": false, "isLValue": false, "isPure": false, @@ -8183,15 +8577,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6080:47:5", + "src": "6259:47:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1849, + "id": 2417, "nodeType": "ExpressionStatement", - "src": "6080:47:5" + "src": "6259:47:11" } ] }, @@ -8201,19 +8595,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1837, + "id": 2405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1834, + "id": 2402, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "6030:1:5", + "referencedDeclaration": 2399, + "src": "6209:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8225,18 +8619,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1835, + "id": 2403, "name": "paymentMethodsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "6034:18:5", + "referencedDeclaration": 2337, + "src": "6213:18:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1836, + "id": 2404, "isConstant": false, "isLValue": false, "isPure": false, @@ -8244,31 +8638,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6034:25:5", + "src": "6213:25:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6030:29:5", + "src": "6209:29:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1851, + "id": 2419, "initializationExpression": { "assignments": [ - 1831 + 2399 ], "declarations": [ { "constant": false, - "id": 1831, + "id": 2399, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "6018:6:5", + "scope": 2441, + "src": "6197:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8276,10 +8670,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1830, + "id": 2398, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6018:4:5", + "src": "6197:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8289,18 +8683,18 @@ "visibility": "internal" } ], - "id": 1833, + "id": 2401, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1832, + "id": 2400, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6027:1:5", + "src": "6206:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8309,12 +8703,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6018:10:5" + "src": "6197:10:11" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1839, + "id": 2407, "isConstant": false, "isLValue": false, "isPure": false, @@ -8322,15 +8716,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6061:3:5", + "src": "6240:3:11", "subExpression": { "argumentTypes": null, - "id": 1838, + "id": 2406, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "6061:1:5", + "referencedDeclaration": 2399, + "src": "6240:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8341,12 +8735,12 @@ "typeString": "uint256" } }, - "id": 1840, + "id": 2408, "nodeType": "ExpressionStatement", - "src": "6061:3:5" + "src": "6240:3:11" }, "nodeType": "ForStatement", - "src": "6013:125:5" + "src": "6192:125:11" }, { "expression": { @@ -8354,12 +8748,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1853, + "id": 2421, "name": "parametersOfStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "6172:18:5", + "referencedDeclaration": 2321, + "src": "6351:18:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", "typeString": "uint256[6] calldata[] calldata" @@ -8367,12 +8761,12 @@ }, { "argumentTypes": null, - "id": 1854, + "id": 2422, "name": "bonusConditionsOfStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1756, - "src": "6204:23:5", + "referencedDeclaration": 2324, + "src": "6383:23:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -8390,18 +8784,18 @@ "typeString": "uint256[] calldata" } ], - "id": 1852, + "id": 2420, "name": "_setStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2125, - "src": "6148:10:5", + "referencedDeclaration": 2465, + "src": "6327:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (uint256[6] memory[] memory,uint256[] memory)" } }, - "id": 1855, + "id": 2423, "isConstant": false, "isLValue": false, "isPure": false, @@ -8409,15 +8803,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6148:89:5", + "src": "6327:89:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1856, + "id": 2424, "nodeType": "ExpressionStatement", - "src": "6148:89:5" + "src": "6327:89:11" }, { "expression": { @@ -8425,12 +8819,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1858, + "id": 2426, "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "6276:22:5", + "referencedDeclaration": 2329, + "src": "6455:22:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", "typeString": "uint256[4] calldata[] calldata" @@ -8438,12 +8832,12 @@ }, { "argumentTypes": null, - "id": 1859, + "id": 2427, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "6312:37:5", + "referencedDeclaration": 2332, + "src": "6491:37:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", "typeString": "uint32[] calldata" @@ -8451,12 +8845,12 @@ }, { "argumentTypes": null, - "id": 1860, + "id": 2428, "name": "nameAndDescriptionsOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "6363:31:5", + "referencedDeclaration": 2334, + "src": "6542:31:11", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -8478,18 +8872,18 @@ "typeString": "bytes calldata" } ], - "id": 1857, + "id": 2425, "name": "_setMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, - "src": "6248:14:5", + "referencedDeclaration": 2492, + "src": "6427:14:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (uint256[4] memory[] memory,uint32[] memory,bytes memory)" } }, - "id": 1861, + "id": 2429, "isConstant": false, "isLValue": false, "isPure": false, @@ -8497,15 +8891,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6248:156:5", + "src": "6427:156:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1862, + "id": 2430, "nodeType": "ExpressionStatement", - "src": "6248:156:5" + "src": "6427:156:11" }, { "expression": { @@ -8513,12 +8907,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1866, + "id": 2434, "name": "paymentMethodsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "6437:18:5", + "referencedDeclaration": 2337, + "src": "6616:18:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" @@ -8534,32 +8928,32 @@ ], "expression": { "argumentTypes": null, - "id": 1863, + "id": 2431, "name": "paymentMethods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1317, - "src": "6415:14:5", + "referencedDeclaration": 1865, + "src": "6594:14:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage", + "typeIdentifier": "t_struct$_Methods_$6179_storage", "typeString": "struct PaymentMethods.Methods storage ref" } }, - "id": 1865, + "id": 2433, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "update", "nodeType": "MemberAccess", - "referencedDeclaration": 5041, - "src": "6415:21:5", + "referencedDeclaration": 6258, + "src": "6594:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Methods_$4962_storage_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$bound_to$_t_struct$_Methods_$4962_storage_ptr_$", + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Methods_$6179_storage_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$bound_to$_t_struct$_Methods_$6179_storage_ptr_$", "typeString": "function (struct PaymentMethods.Methods storage pointer,bytes32[] memory)" } }, - "id": 1867, + "id": 2435, "isConstant": false, "isLValue": false, "isPure": false, @@ -8567,15 +8961,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6415:41:5", + "src": "6594:41:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1868, + "id": 2436, "nodeType": "ExpressionStatement", - "src": "6415:41:5" + "src": "6594:41:11" }, { "eventCall": { @@ -8583,18 +8977,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1869, + "id": 2437, "name": "CrowdsaleSetUpDone", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "6472:18:5", + "referencedDeclaration": 1891, + "src": "6651:18:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1870, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": false, @@ -8602,76 +8996,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6472:20:5", + "src": "6651:20:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1871, + "id": 2439, "nodeType": "EmitStatement", - "src": "6467:25:5" + "src": "6646:25:11" } ] }, "documentation": "@dev Setup all crowdsale parameters at a time", - "id": 1873, + "id": 2441, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1772, + "id": 2340, "modifierName": { "argumentTypes": null, - "id": 1771, - "name": "onlyOwner", + "id": 2339, + "name": "onlyProjectOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "5418:9:5", + "referencedDeclaration": 1564, + "src": "5590:16:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5418:9:5" + "src": "5590:16:11" }, { "arguments": null, - "id": 1774, + "id": 2342, "modifierName": { "argumentTypes": null, - "id": 1773, + "id": 2341, "name": "beforeSaleStart", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3268, - "src": "5428:15:5", + "referencedDeclaration": 3292, + "src": "5607:15:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5428:15:5" + "src": "5607:15:11" } ], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1770, + "id": 2338, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1753, + "id": 2321, "name": "parametersOfStages", "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "5143:28:5", + "scope": 2441, + "src": "5315:28:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8681,27 +9075,27 @@ "typeName": { "baseType": { "baseType": { - "id": 1749, + "id": 2317, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5143:4:5", + "src": "5315:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1751, + "id": 2319, "length": { "argumentTypes": null, "hexValue": "36", - "id": 1750, + "id": 2318, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5148:1:5", + "src": "5320:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -8710,16 +9104,16 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "5143:7:5", + "src": "5315:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" } }, - "id": 1752, + "id": 2320, "length": null, "nodeType": "ArrayTypeName", - "src": "5143:9:5", + "src": "5315:9:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", "typeString": "uint256[6][]" @@ -8730,11 +9124,11 @@ }, { "constant": false, - "id": 1756, + "id": 2324, "name": "bonusConditionsOfStages", "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "5181:30:5", + "scope": 2441, + "src": "5353:30:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8743,19 +9137,19 @@ }, "typeName": { "baseType": { - "id": 1754, + "id": 2322, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5181:4:5", + "src": "5353:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1755, + "id": 2323, "length": null, "nodeType": "ArrayTypeName", - "src": "5181:6:5", + "src": "5353:6:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -8766,11 +9160,11 @@ }, { "constant": false, - "id": 1761, + "id": 2329, "name": "parametersOfMilestones", "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "5221:32:5", + "scope": 2441, + "src": "5393:32:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8780,27 +9174,27 @@ "typeName": { "baseType": { "baseType": { - "id": 1757, + "id": 2325, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5221:4:5", + "src": "5393:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1759, + "id": 2327, "length": { "argumentTypes": null, "hexValue": "34", - "id": 1758, + "id": 2326, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5226:1:5", + "src": "5398:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -8809,16 +9203,16 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "5221:7:5", + "src": "5393:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, - "id": 1760, + "id": 2328, "length": null, "nodeType": "ArrayTypeName", - "src": "5221:9:5", + "src": "5393:9:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" @@ -8829,11 +9223,11 @@ }, { "constant": false, - "id": 1764, + "id": 2332, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "5263:46:5", + "scope": 2441, + "src": "5435:46:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8842,19 +9236,19 @@ }, "typeName": { "baseType": { - "id": 1762, + "id": 2330, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5263:6:5", + "src": "5435:6:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 1763, + "id": 2331, "length": null, "nodeType": "ArrayTypeName", - "src": "5263:8:5", + "src": "5435:8:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -8865,11 +9259,11 @@ }, { "constant": false, - "id": 1766, + "id": 2334, "name": "nameAndDescriptionsOfMilestones", "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "5319:37:5", + "scope": 2441, + "src": "5491:37:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8877,10 +9271,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1765, + "id": 2333, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5319:5:5", + "src": "5491:5:11", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8891,11 +9285,11 @@ }, { "constant": false, - "id": 1769, + "id": 2337, "name": "paymentMethodsList", "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "5366:28:5", + "scope": 2441, + "src": "5538:28:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8904,19 +9298,19 @@ }, "typeName": { "baseType": { - "id": 1767, + "id": 2335, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5366:7:5", + "src": "5538:7:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1768, + "id": 2336, "length": null, "nodeType": "ArrayTypeName", - "src": "5366:9:5", + "src": "5538:9:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -8926,307 +9320,879 @@ "visibility": "internal" } ], - "src": "5133:267:5" + "src": "5305:267:11" }, "payable": false, "returnParameters": { - "id": 1775, + "id": 2343, "nodeType": "ParameterList", "parameters": [], - "src": "5448:0:5" + "src": "5627:0:11" }, - "scope": 3279, - "src": "5119:1380:5", + "scope": 3302, + "src": "5291:1387:11", "stateMutability": "nonpayable", - "superFunction": 1127, + "superFunction": 1658, "visibility": "external" }, { "body": { - "id": 2124, + "id": 2464, "nodeType": "Block", - "src": "6975:1566:5", + "src": "7154:116:11", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "id": 1884, + "id": 2455, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "7184:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + { + "argumentTypes": null, + "id": 2456, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "6989:10:5", + "referencedDeclaration": 1871, + "src": "7192:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + } + }, + { + "argumentTypes": null, + "id": 2457, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2446, + "src": "7204:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + { + "argumentTypes": null, + "id": 2458, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2449, + "src": "7216:15:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2452, + "name": "Crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5200, + "src": "7164:9:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_type$_t_contract$_Crowdsale_$5200_$", + "typeString": "type(library Crowdsale)" } }, - "id": 1885, + "id": 2454, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "length", + "memberName": "setStages", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6989:17:5", + "referencedDeclaration": 4721, + "src": "7164:19:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr_$_t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr_$_t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (struct Crowdsale.Stage storage ref[] storage pointer,struct Crowdsale.Milestone storage ref[] storage pointer,uint256[6] memory[] memory,uint256[] memory)" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1886, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7009:1:5", - "subdenomination": null, + "id": 2459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7164:68:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2460, + "nodeType": "ExpressionStatement", + "src": "7164:68:11" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2461, + "name": "StagesUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "7248:13:11", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", + "typeString": "function ()" + } }, - "src": "6989:21:5", + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7248:15:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "falseBody": null, - "id": 1905, - "nodeType": "IfStatement", - "src": "6985:207:5", - "trueBody": { - "id": 1904, - "nodeType": "Block", - "src": "7012:180:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "id": 2463, + "nodeType": "EmitStatement", + "src": "7243:20:11" + } + ] + }, + "documentation": "@dev Update stages\n@param parameters List of primary parameters:\n[\n uint32 startDate,\n uint32 endDate,\n uint discount,\n uint32 vesting,\n uint8 startIndexOfBonusConditions\n uint8 endIndexOfBonusConditions\n],\n@param bonusConditions List of bonus conditions:\n[uint boundary, uint bonus, ...]", + "id": 2465, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_setStages", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2450, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2446, + "name": "parameters", + "nodeType": "VariableDeclaration", + "scope": 2465, + "src": "7099:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 2442, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7099:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2444, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7104:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "7099:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "id": 2445, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7099:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", + "typeString": "uint256[6][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2449, + "name": "bonusConditions", + "nodeType": "VariableDeclaration", + "scope": 2465, + "src": "7121:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2447, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7121:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2448, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7121:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7098:46:11" + }, + "payable": false, + "returnParameters": { + "id": 2451, + "nodeType": "ParameterList", + "parameters": [], + "src": "7154:0:11" + }, + "scope": 3302, + "src": "7079:191:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2491, + "nodeType": "Block", + "src": "7836:138:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2481, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "7870:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + { + "argumentTypes": null, + "id": 2482, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "7878:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + } + }, + { + "argumentTypes": null, + "id": 2483, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2470, + "src": "7890:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + { + "argumentTypes": null, + "id": 2484, + "name": "offsets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2473, + "src": "7902:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + { + "argumentTypes": null, + "id": 2485, + "name": "namesAndDescriptions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2475, + "src": "7911:20:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2478, + "name": "Crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5200, + "src": "7846:9:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Crowdsale_$5200_$", + "typeString": "type(library Crowdsale)" + } + }, + "id": 2480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setMilestones", + "nodeType": "MemberAccess", + "referencedDeclaration": 5199, + "src": "7846:23:11", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr_$_t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr_$_t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (struct Crowdsale.Stage storage ref[] storage pointer,struct Crowdsale.Milestone storage ref[] storage pointer,uint256[4] memory[] memory,uint32[] memory,bytes memory)" + } + }, + "id": 2486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7846:86:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2487, + "nodeType": "ExpressionStatement", + "src": "7846:86:11" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2488, + "name": "MilestonesUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "7948:17:11", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7948:19:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2490, + "nodeType": "EmitStatement", + "src": "7943:24:11" + } + ] + }, + "documentation": "@dev Update milestones\n@param parameters List of primary parameters:\n[\n uint32 endDate,\n uint32 voteEndDate,\n uint32 withdrawalWindow,\n uint tranchPercent\n]\n@param offsets Offsets of names and descriptions in namesAndDescriptions:\n[uint32 offset1, uint32 offset2, ...]\n@param namesAndDescriptions Names and descriptions", + "id": 2492, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_setMilestones", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2470, + "name": "parameters", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7726:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 2466, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7726:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2468, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 2467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7731:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "7726:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "id": 2469, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7726:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", + "typeString": "uint256[4][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2473, + "name": "offsets", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7756:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 2471, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "7756:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2472, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7756:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2475, + "name": "namesAndDescriptions", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7782:26:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2474, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7782:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7716:98:11" + }, + "payable": false, + "returnParameters": { + "id": 2477, + "nodeType": "ParameterList", + "parameters": [], + "src": "7836:0:11" + }, + "scope": 3302, + "src": "7693:281:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2585, + "nodeType": "Block", + "src": "8075:559:11", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2503, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "8089:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 6454, + "src": "8089:29:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8089:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 2506, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2494, + "src": "8124:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "8089:41:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2520, + "nodeType": "IfStatement", + "src": "8085:124:11", + "trueBody": { + "id": 2519, + "nodeType": "Block", + "src": "8132:77:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 1889, - "name": "milestones", + "id": 2511, + "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "7120:10:5", + "referencedDeclaration": 2494, + "src": "8176:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - }, - "id": 1891, - "indexExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { "argumentTypes": null, - "hexValue": "30", - "id": 1890, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7131:1:5", - "subdenomination": null, + "id": 2509, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "8154:5:11", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } }, + "id": 2510, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7120:13:5", + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "8154:21:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" } }, - "id": 1892, + "id": 2512, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "endDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1340, - "src": "7120:21:5", + "names": [], + "nodeType": "FunctionCall", + "src": "8154:29:11", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1893, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7144:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1898, - "indexExpression": { + "arguments": [ + { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1897, + "hexValue": "30", + "id": 2514, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1894, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7155:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7155:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1896, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7175:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7155:21:5", + "nodeType": "Literal", + "src": "8195:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7144:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } - }, - "id": 1900, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1899, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2513, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "7178:1:5", - "subdenomination": null, + "nodeType": "ElementaryTypeNameExpression", + "src": "8187:7:11", "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" }, - "value": "1" + "typeName": "address" }, + "id": 2515, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7144:36:5", + "names": [], + "nodeType": "FunctionCall", + "src": "8187:10:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "7120:60:5", + "src": "8154:43:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9240,21 +10206,21 @@ "typeString": "bool" } ], - "id": 1888, + "id": 2508, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7112:7:5", + "referencedDeclaration": 13444, + "src": "8146:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1902, + "id": 2517, "isConstant": false, "isLValue": false, "isPure": false, @@ -9262,870 +10228,1146 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7112:69:5", + "src": "8146:52:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1903, + "id": 2518, "nodeType": "ExpressionStatement", - "src": "7112:69:5" + "src": "8146:52:11" } ] } }, { - "expression": { + "assignments": [ + 2522, + null + ], + "declarations": [ + { + "constant": false, + "id": 2522, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2586, + "src": "8220:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2521, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8220:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 2525, + "initialValue": { "argumentTypes": null, - "id": 1907, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2523, + "name": "getCurrentStageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3204 + ], + "referencedDeclaration": 3204, + "src": "8250:20:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view returns (uint256,bool)" + } + }, + "id": 2524, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "7202:13:5", - "subExpression": { - "argumentTypes": null, - "id": 1906, - "name": "stages", + "names": [], + "nodeType": "FunctionCall", + "src": "8250:22:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8219:53:11" + }, + { + "assignments": [ + 2530 + ], + "declarations": [ + { + "constant": false, + "id": 2530, + "name": "invoice", + "nodeType": "VariableDeclaration", + "scope": 2586, + "src": "8283:22:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2528, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8283:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2529, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8288:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "8283:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2535, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2532, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2494, + "src": "8319:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2533, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2496, + "src": "8327:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2531, + "name": "getInvoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "7209:6:5", + "referencedDeclaration": 2884, + "src": "8308:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_array$_t_uint256_$5_memory_ptr_$", + "typeString": "function (bytes32,uint256) view returns (uint256[5] memory)" } }, + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8308:26:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "id": 1908, - "nodeType": "ExpressionStatement", - "src": "7202:13:5" + "nodeType": "VariableDeclarationStatement", + "src": "8283:51:11" }, { - "body": { - "id": 2119, - "nodeType": "Block", - "src": "7272:1232:5", - "statements": [ - { - "expression": { + "assignments": [ + 2540 + ], + "declarations": [ + { + "constant": false, + "id": 2540, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 2586, + "src": "8344:18:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2538, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8344:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2539, + "length": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1921, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7324:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1923, - "indexExpression": { - "argumentTypes": null, - "id": 1922, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7335:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7324:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1925, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7338:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7324:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7351:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1927, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7352:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 1926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7344:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 1929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7344:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "7324:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1920, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7316:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1931, + "hexValue": "32", + "id": 2537, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7316:39:5", + "nodeType": "Literal", + "src": "8349:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "8344:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2542, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2530, + "src": "8372:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "id": 1932, - "nodeType": "ExpressionStatement", - "src": "7316:39:5" + "id": 2544, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8380:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8372:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { - "expression": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1934, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7377:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1936, - "indexExpression": { - "argumentTypes": null, - "id": 1935, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7388:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7377:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1938, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7391:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7377:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1941, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7404:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1940, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7405:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 1939, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7397:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 1942, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7397:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "7377:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1933, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7369:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1944, + "id": 2545, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2530, + "src": "8384:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2547, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2546, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7369:39:5", + "nodeType": "Literal", + "src": "8392:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" }, - "id": 1945, - "nodeType": "ExpressionStatement", - "src": "7369:39:5" + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8384:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2541, + "name": "getFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3120, + "src": "8365:6:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", + "typeString": "function (uint256,uint256) view returns (uint256[2] memory)" + } + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8365:30:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8344:51:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2551, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2540, + "src": "8419:3:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 2552, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2494, + "src": "8424:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2550, + "name": "_transferFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2623, + "src": "8406:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$returns$__$", + "typeString": "function (uint256[2] memory,bytes32)" + } + }, + "id": 2553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8406:25:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2554, + "nodeType": "ExpressionStatement", + "src": "8406:25:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2556, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2530, + "src": "8459:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + { + "argumentTypes": null, + "id": 2557, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2540, + "src": "8468:3:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } }, { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1947, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7430:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1949, - "indexExpression": { - "argumentTypes": null, - "id": 1948, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7441:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7430:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1951, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 1950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7444:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7430:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1954, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7457:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1953, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7458:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 1952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7450:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 1955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7450:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "7430:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "baseExpression": { + "argumentTypes": null, + "id": 2558, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "8473:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1946, - "name": "require", + }, + "id": 2560, + "indexExpression": { + "argumentTypes": null, + "id": 2559, + "name": "index", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7422:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "8480:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1957, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7422:39:5", + "nodeType": "IndexAccess", + "src": "8473:13:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 1958, - "nodeType": "ExpressionStatement", - "src": "7422:39:5" + "id": 2561, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vesting", + "nodeType": "MemberAccess", + "referencedDeclaration": 4442, + "src": "8473:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1960, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7483:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1962, - "indexExpression": { - "argumentTypes": null, - "id": 1961, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7494:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7483:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1964, - "indexExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 1963, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7497:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7483:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1967, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7509:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7510:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 1965, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7503:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 1968, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7503:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "7483:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ + "argumentTypes": null, + "id": 2562, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2494, + "src": "8496:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2555, + "name": "_transferPurchase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2665, + "src": "8441:17:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_uint32_$_t_bytes32_$returns$__$", + "typeString": "function (uint256[5] memory,uint256[2] memory,uint32,bytes32)" + } + }, + "id": 2563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8441:62:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2564, + "nodeType": "ExpressionStatement", + "src": "8441:62:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2566, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2530, + "src": "8529:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + { + "argumentTypes": null, + "id": 2567, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2540, + "src": "8538:3:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 2568, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2494, + "src": "8543:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2565, + "name": "_recordPurchase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2764, + "src": "8513:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$returns$__$", + "typeString": "function (uint256[5] memory,uint256[2] memory,bytes32)" + } + }, + "id": 2569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8513:37:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2570, + "nodeType": "ExpressionStatement", + "src": "8513:37:11" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2572, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "8580:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8580:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2574, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2530, + "src": "8592:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2576, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8600:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8592:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2577, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2530, + "src": "8604:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2579, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8612:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8604:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2580, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2530, + "src": "8616:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2582, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8624:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8616:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2571, + "name": "TokenPurchase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1881, + "src": "8566:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256)" + } + }, + "id": 2583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8566:61:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2584, + "nodeType": "EmitStatement", + "src": "8561:66:11" + } + ] + }, + "documentation": null, + "id": 2586, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2499, + "modifierName": { + "argumentTypes": null, + "id": 2498, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13257, + "src": "8043:12:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8043:12:11" + }, + { + "arguments": null, + "id": 2501, + "modifierName": { + "argumentTypes": null, + "id": 2500, + "name": "onlyWhenSaleActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "8056:18:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8056:18:11" + } + ], + "name": "buyTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2497, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2494, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2586, + "src": "7999:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2493, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7999:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2496, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 2586, + "src": "8015:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2495, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8015:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7998:29:11" + }, + "payable": true, + "returnParameters": { + "id": 2502, + "nodeType": "ParameterList", + "parameters": [], + "src": "8075:0:11" + }, + "scope": 3302, + "src": "7980:654:11", + "stateMutability": "payable", + "superFunction": 1754, + "visibility": "public" + }, + { + "body": { + "id": 2622, + "nodeType": "Block", + "src": "8701:282:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2598, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2590, + "src": "8755:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 2599, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2592, + "src": "8773:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2602, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2592, + "src": "8807:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], - "id": 1959, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7475:7:5", + "expression": { + "argumentTypes": null, + "id": 2600, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "8793:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 2601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 9999, + "src": "8793:13:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 1970, + "id": 2603, "isConstant": false, "isLValue": false, "isPure": false, @@ -10133,354 +11375,127 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7475:38:5", + "src": "8793:21:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1971, - "nodeType": "ExpressionStatement", - "src": "7475:38:5" - }, - { - "expression": { + "falseExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1982, + "hexValue": "30", + "id": 2609, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1973, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7535:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1975, - "indexExpression": { - "argumentTypes": null, - "id": 1974, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7546:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7535:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1977, - "indexExpression": { - "argumentTypes": null, - "hexValue": "35", - "id": 1976, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7549:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7535:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1980, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7561:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1979, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7562:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 1978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7555:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 1981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7555:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "7535:29:5", + "nodeType": "Literal", + "src": "8857:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 1972, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7527:7:5", + "id": 2608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8849:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 1983, + "id": 2610, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7527:38:5", + "src": "8849:10:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1984, - "nodeType": "ExpressionStatement", - "src": "7527:38:5" - }, - { - "expression": { + "id": 2611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8793:66:11", + "trueExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1986, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7615:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1988, - "indexExpression": { - "argumentTypes": null, - "id": 1987, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7626:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7615:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1990, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1989, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7629:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7615:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 1991, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "7634:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7615:22:5", + "id": 2606, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2592, + "src": "8839:6:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], - "id": 1985, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7607:7:5", + "expression": { + "argumentTypes": null, + "id": 2604, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "8817:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 2605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "8817:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" } }, - "id": 1993, + "id": 2607, "isConstant": false, "isLValue": false, "isPure": false, @@ -10488,626 +11503,578 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7607:31:5", + "src": "8817:29:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1994, - "nodeType": "ExpressionStatement", - "src": "7607:31:5" + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2613, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "8881:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], "expression": { - "argumentTypes": null, - "arguments": [ + "argumentTypes": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1996, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7660:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1998, - "indexExpression": { - "argumentTypes": null, - "id": 1997, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7671:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7660:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2000, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7674:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7660:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2001, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7679:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2003, - "indexExpression": { - "argumentTypes": null, - "id": 2002, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7690:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7679:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2005, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7693:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7679:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7660:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1995, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7652:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2007, + "id": 2612, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7652:44:5", + "nodeType": "ElementaryTypeNameExpression", + "src": "8873:7:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2008, - "nodeType": "ExpressionStatement", - "src": "7652:44:5" + "id": 2614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8873:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 2009, - "name": "i", + "id": 2616, + "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7715:1:5", + "referencedDeclaration": 1849, + "src": "8909:11:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2010, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7715:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } - }, - "falseBody": null, - "id": 2029, - "nodeType": "IfStatement", - "src": "7711:93:5", - "trueBody": { - "id": 2028, - "nodeType": "Block", - "src": "7722:82:5", - "statements": [ + ], + "expression": { + "argumentTypes": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2013, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7748:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2017, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2014, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7759:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2015, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7763:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7759:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7748:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2019, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7766:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7748:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2020, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7772:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2022, - "indexExpression": { - "argumentTypes": null, - "id": 2021, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7783:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7772:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2024, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2023, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7786:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7772:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7748:40:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7740:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7740:49:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2027, - "nodeType": "ExpressionStatement", - "src": "7740:49:5" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } - ] + ], + "id": 2615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8901:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8901:20:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, { - "expression": { + "argumentTypes": null, + "id": 2618, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1863, + "src": "8935:4:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2619, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1861, + "src": "8953:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2595, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "8711:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 7053, + "src": "8711:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint256[2] memory,bytes32,address,address,address,address,address)" + } + }, + "id": 2620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8711:265:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2621, + "nodeType": "ExpressionStatement", + "src": "8711:265:11" + } + ] + }, + "documentation": null, + "id": 2623, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_transferFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2590, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 2623, + "src": "8662:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2587, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8662:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2589, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8667:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "8662:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2592, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2623, + "src": "8676:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2591, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8676:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8661:30:11" + }, + "payable": false, + "returnParameters": { + "id": 2594, + "nodeType": "ParameterList", + "parameters": [], + "src": "8701:0:11" + }, + "scope": 3302, + "src": "8640:343:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2664, + "nodeType": "Block", + "src": "9089:260:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2641, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2627, + "src": "9148:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + { + "argumentTypes": null, + "id": 2642, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "9170:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 2643, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2633, + "src": "9188:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 2644, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2635, + "src": "9209:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2647, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2635, + "src": "9243:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2645, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "9229:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 2646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 9999, + "src": "9229:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 2648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9229:21:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9302:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9294:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9294:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "9229:75:11", + "trueExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [], + "arguments": [ + { + "argumentTypes": null, + "id": 2652, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2635, + "src": "9283:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], "expression": { - "argumentTypes": [], + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2031, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7856:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2033, - "indexExpression": { - "argumentTypes": null, - "id": 2032, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7867:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7856:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2035, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2034, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7870:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7856:16:5", + "id": 2650, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "9261:5:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } }, - "id": 2036, + "id": 2651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "isPercent", + "memberName": "getTokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "7856:26:5", + "referencedDeclaration": 9992, + "src": "9261:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" } }, - "id": 2037, + "id": 2653, "isConstant": false, "isLValue": false, "isPure": false, @@ -11115,233 +12082,454 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7856:28:5", + "src": "9261:29:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 2030, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7848:7:5", + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9253:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2038, + "id": 2654, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7848:37:5", + "src": "9253:38:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2039, - "nodeType": "ExpressionStatement", - "src": "7848:37:5" + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2041, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7907:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2043, - "indexExpression": { - "argumentTypes": null, - "id": 2042, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7918:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7907:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2045, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7921:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7907:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2046, - "name": "Percent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "7926:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", - "typeString": "type(library Percent)" - } - }, - "id": 2047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "MAX", - "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "7926:11:5", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" - } - }, - "id": 2048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7926:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7907:32:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2040, - "name": "require", + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2660, + "name": "token", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7899:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "9326:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } - }, - "id": 2050, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 2659, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7899:41:5", + "nodeType": "ElementaryTypeNameExpression", + "src": "9318:7:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9318:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2638, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "9099:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferPurchase", + "nodeType": "MemberAccess", + "referencedDeclaration": 7226, + "src": "9099:35:11", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_uint32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint256[5] memory,uint256[2] memory,uint32,bytes32,address,address)" + } + }, + "id": 2662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9099:243:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2663, + "nodeType": "ExpressionStatement", + "src": "9099:243:11" + } + ] + }, + "documentation": null, + "id": 2665, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_transferPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2636, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2627, + "name": "_invoice", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "9016:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2624, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9016:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2626, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9021:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "9016:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2631, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "9034:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2628, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9034:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2630, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9039:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "9034:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2633, + "name": "vesting", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "9048:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2632, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "9048:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2635, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "9064:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2634, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9064:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9015:64:11" + }, + "payable": false, + "returnParameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [], + "src": "9089:0:11" + }, + "scope": 3302, + "src": "8989:360:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2763, + "nodeType": "Block", + "src": "9437:443:11", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2678, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2675, + "src": "9451:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2679, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "9461:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" } }, - "id": 2051, - "nodeType": "ExpressionStatement", - "src": "7899:41:5" + "id": 2680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 6454, + "src": "9461:29:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } }, + "id": 2681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9461:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "9451:41:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2761, + "nodeType": "Block", + "src": "9648:226:11", + "statements": [ { "expression": { "argumentTypes": null, @@ -11354,98 +12542,39 @@ "arguments": [ { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2057, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8009:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2059, - "indexExpression": { - "argumentTypes": null, - "id": 2058, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8020:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8009:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2061, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8023:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8009:16:5", + "id": 2726, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "9725:4:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } ], - "id": 2056, + "id": 2725, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8002:6:5", + "src": "9717:7:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" }, - "typeName": "uint32" + "typeName": "address" }, - "id": 2062, + "id": 2727, "isConstant": false, "isLValue": false, "isPure": false, @@ -11453,10 +12582,10 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8002:24:5", + "src": "9717:13:11", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_address", + "typeString": "address" } }, { @@ -11466,56 +12595,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2064, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8060:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2066, - "indexExpression": { - "argumentTypes": null, - "id": 2065, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8071:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8060:13:5", + "id": 2732, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "9748:4:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" } }, - "id": 2068, + "id": 2734, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2067, + "id": 2733, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8074:1:5", + "src": "9753:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -11528,7 +12630,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8060:16:5", + "src": "9748:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11542,436 +12644,243 @@ "typeString": "uint256" } ], - "id": 2063, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8053:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8053:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2070, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8105:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2072, - "indexExpression": { - "argumentTypes": null, - "id": 2071, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8116:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8105:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2074, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2073, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8119:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8105:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { + "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2076, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8155:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2078, - "indexExpression": { - "argumentTypes": null, - "id": 2077, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8166:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8155:13:5", + "id": 2728, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "9732:8:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "id": 2080, + "id": 2730, "indexExpression": { "argumentTypes": null, - "hexValue": "33", - "id": 2079, + "hexValue": "31", + "id": 2729, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8169:1:5", + "src": "9741:1:11", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "3" + "value": "1" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8155:16:5", + "src": "9732:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2075, + }, + "id": 2731, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8148:6:5", + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "9732:15:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - "id": 2081, + "id": 2735, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8148:24:5", + "src": "9732:24:11", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 2085, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8219:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8208:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 2082, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8212:4:5", + "arguments": [ + { + "argumentTypes": null, + "id": 2721, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2675, + "src": "9699:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2719, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "9677:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 2720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "9677:21:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" } }, - "id": 2083, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8212:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 2086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8208:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2090, + "id": 2722, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "8265:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "9677:29:11", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8254:10:5", + "id": 2718, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "9670:6:11", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 2087, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8258:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2088, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8258:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 2091, + "id": 2723, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "functionCall", + "isPure": false, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8254:13:5", + "src": "9670:37:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } - } - ], - "expression": { - "argumentTypes": null, - "id": 2055, - "name": "Stage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "7967:5:5", + }, + "id": 2724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 13046, + "src": "9670:46:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Stage_$1338_storage_ptr_$", - "typeString": "type(struct W12Crowdsale.Stage storage pointer)" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 2092, + "id": 2736, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "structConstructorCall", + "kind": "functionCall", "lValueRequested": false, - "names": [ - "startDate", - "endDate", - "discount", - "vesting", - "volumeBoundaries", - "volumeBonuses" - ], + "names": [], "nodeType": "FunctionCall", - "src": "7967:315:5", + "src": "9670:87:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_memory", - "typeString": "struct W12Crowdsale.Stage memory" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Stage_$1338_memory", - "typeString": "struct W12Crowdsale.Stage memory" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 2052, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "7955:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7955:11:5", + "id": 2717, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "9662:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Stage_$1338_storage_$returns$_t_uint256_$", - "typeString": "function (struct W12Crowdsale.Stage storage ref) returns (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2093, + "id": 2737, "isConstant": false, "isLValue": false, "isPure": false, @@ -11979,15 +12888,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7955:328:5", + "src": "9662:96:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2094, + "id": 2738, "nodeType": "ExpressionStatement", - "src": "7955:328:5" + "src": "9662:96:11" }, { "expression": { @@ -11995,106 +12904,89 @@ "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2097, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8346:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2098, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8346:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2099, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8362:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8346:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2096, + "argumentTypes": null, + "id": 2742, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "9792:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9792:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2744, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "9804:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2746, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2745, "isConstant": false, "isLValue": false, "isPure": true, + "kind": "number", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8340:5:5", + "nodeType": "Literal", + "src": "9813:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "typeName": "uint8" + "value": "0" }, - "id": 2101, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8340:24:5", + "nodeType": "IndexAccess", + "src": "9804:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2747, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2675, + "src": "9817:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, { @@ -12104,69 +12996,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2103, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8388:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2105, - "indexExpression": { - "argumentTypes": null, - "id": 2104, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8399:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8388:13:5", + "id": 2752, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "9841:4:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" } }, - "id": 2107, + "id": 2754, "indexExpression": { "argumentTypes": null, - "hexValue": "34", - "id": 2106, + "hexValue": "31", + "id": 2753, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8402:1:5", + "src": "9846:1:11", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "4" + "value": "1" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8388:16:5", + "src": "9841:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12180,188 +13045,176 @@ "typeString": "uint256" } ], - "id": 2102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8382:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 2108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8382:23:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "arguments": [ - { + "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2110, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8429:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2112, - "indexExpression": { - "argumentTypes": null, - "id": 2111, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8440:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8429:13:5", + "id": 2748, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "9825:8:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "id": 2114, + "id": 2750, "indexExpression": { "argumentTypes": null, - "hexValue": "35", - "id": 2113, + "hexValue": "31", + "id": 2749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8443:1:5", + "src": "9834:1:11", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "5" + "value": "1" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8429:16:5", + "src": "9825:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2109, + }, + "id": 2751, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8423:5:5", + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "9825:15:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - "id": 2115, + "id": 2755, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8423:23:5", + "src": "9825:24:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, { "argumentTypes": null, - "id": 2116, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1881, - "src": "8464:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "baseExpression": { + "argumentTypes": null, + "id": 2756, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "9851:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2758, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9860:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9851:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 2095, - "name": "_setStageBonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2316, - "src": "8298:24:5", + "expression": { + "argumentTypes": null, + "id": 2739, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "9772:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 2741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "recordPurchase", + "nodeType": "MemberAccess", + "referencedDeclaration": 1802, + "src": "9772:19:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$_t_uint8_$_t_uint8_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint8,uint8,uint8,uint256[] memory)" + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,bytes32,uint256,uint256) payable external" } }, - "id": 2117, + "id": 2759, "isConstant": false, "isLValue": false, "isPure": false, @@ -12369,1090 +13222,899 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8298:195:5", + "src": "9772:91:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2118, + "id": 2760, "nodeType": "ExpressionStatement", - "src": "8298:195:5" + "src": "9772:91:11" } ] }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1913, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7244:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1914, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7248:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7248:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7244:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2120, - "initializationExpression": { - "assignments": [ - 1910 - ], - "declarations": [ - { - "constant": false, - "id": 1910, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2125, - "src": "7231:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1909, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "7231:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1912, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7241:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "7231:11:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7267:3:5", - "subExpression": { - "argumentTypes": null, - "id": 1917, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7267:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 1919, - "nodeType": "ExpressionStatement", - "src": "7267:3:5" - }, - "nodeType": "ForStatement", - "src": "7226:1278:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2121, - "name": "StagesUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "8519:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8519:15:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2123, - "nodeType": "EmitStatement", - "src": "8514:20:5" - } - ] - }, - "documentation": "@dev Update stages\n@param parameters List of primary parameters:\n[\n uint32 startDate,\n uint32 endDate,\n uint discount,\n uint32 vesting,\n uint8 startIndexOfBonusConditions\n uint8 endIndexOfBonusConditions\n],\n@param bonusConditions List of bonus conditions:\n[uint boundary, uint bonus, ...]", - "id": 2125, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_setStages", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1882, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1878, - "name": "parameters", - "nodeType": "VariableDeclaration", - "scope": 2125, - "src": "6920:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 1874, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6920:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1876, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6925:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "6920:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", - "typeString": "uint256[6]" - } - }, - "id": 1877, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6920:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", - "typeString": "uint256[6][]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1881, - "name": "bonusConditions", - "nodeType": "VariableDeclaration", - "scope": 2125, - "src": "6942:22:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1879, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6942:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1880, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6942:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6919:46:5" - }, - "payable": false, - "returnParameters": { - "id": 1883, - "nodeType": "ParameterList", - "parameters": [], - "src": "6975:0:5" - }, - "scope": 3279, - "src": "6900:1641:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2315, - "nodeType": "Block", - "src": "8822:1087:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2137, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "8836:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8845:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8836:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2140, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "8850:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8857:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8850:8:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8836:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2168, + "id": 2762, "nodeType": "IfStatement", - "src": "8832:187:5", + "src": "9447:427:11", "trueBody": { - "id": 2167, + "id": 2716, "nodeType": "Block", - "src": "8860:159:5", + "src": "9494:148:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2144, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8874:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2146, - "indexExpression": { + "expression": { "argumentTypes": null, - "id": 2145, - "name": "stageIndex", + "id": 2697, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "8881:10:5", + "referencedDeclaration": 13441, + "src": "9560:3:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, + "id": 2698, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8874:18:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9560:10:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2147, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "volumeBoundaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "8874:35:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2699, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "9572:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2701, + "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2151, + "id": 2700, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8923:1:5", + "src": "9581:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2150, + }, "isConstant": false, - "isLValue": false, - "isPure": true, + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8912:10:5", + "nodeType": "IndexAccess", + "src": "9572:11:11", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 2148, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8916:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2149, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8916:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8912:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - "src": "8874:51:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 2154, - "nodeType": "ExpressionStatement", - "src": "8874:51:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + { + "argumentTypes": null, + "id": 2702, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2675, + "src": "9585:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2707, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "9609:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 2709, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9614:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9609:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2703, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "9593:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2705, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9602:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9593:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "9593:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9593:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2155, - "name": "stages", + "id": 2711, + "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8939:6:5", + "referencedDeclaration": 2669, + "src": "9619:8:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "id": 2157, + "id": 2713, "indexExpression": { "argumentTypes": null, - "id": 2156, - "name": "stageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "8946:10:5", + "hexValue": "32", + "id": 2712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9628:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8939:18:5", + "src": "9619:11:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 2158, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "volumeBonuses", - "nodeType": "MemberAccess", - "referencedDeclaration": 1337, - "src": "8939:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 2162, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2692, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "9550:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 2694, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9555:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9550:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2688, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "9534:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2690, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9543:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9534:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "9534:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2695, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "8985:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "9534:24:11", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8974:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 2159, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8978:4:5", + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2683, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "9508:4:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } }, - "id": 2160, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8978:6:5", + "id": 2686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "recordPurchase", + "nodeType": "MemberAccess", + "referencedDeclaration": 1802, + "src": "9508:19:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,bytes32,uint256,uint256) payable external" } + }, + "id": 2687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9508:25:11", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$value_$", + "typeString": "function (uint256) returns (function (address,uint256,bytes32,uint256,uint256) payable external)" } }, - "id": 2163, + "id": 2696, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8974:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - "src": "8939:48:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 2165, - "nodeType": "ExpressionStatement", - "src": "8939:48:5" - }, - { - "expression": null, - "functionReturnParameters": 2136, - "id": 2166, - "nodeType": "Return", - "src": "9002:7:5" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2170, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "9037:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2171, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "9044:15:5", + "src": "9508:51:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$value", + "typeString": "function (address,uint256,bytes32,uint256,uint256) payable external" } }, - "id": 2172, + "id": 2714, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9044:22:5", + "names": [], + "nodeType": "FunctionCall", + "src": "9508:123:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "src": "9037:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 2715, + "nodeType": "ExpressionStatement", + "src": "9508:123:11" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2169, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9029:7:5", + ] + } + } + ] + }, + "documentation": null, + "id": 2764, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_recordPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2669, + "name": "_invoice", + "nodeType": "VariableDeclaration", + "scope": 2764, + "src": "9380:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2666, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9380:4:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9029:38:5", + "id": 2668, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9385:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "9380:7:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" } }, - "id": 2175, - "nodeType": "ExpressionStatement", - "src": "9029:38:5" + "value": null, + "visibility": "internal" }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2177, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9085:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2178, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "9093:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "9085:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2176, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9077:7:5", + "constant": false, + "id": 2673, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 2764, + "src": "9398:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2670, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9398:4:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9077:20:5", + "id": 2672, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9403:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "9398:7:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" } }, - "id": 2181, - "nodeType": "ExpressionStatement", - "src": "9077:20:5" + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 2675, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2764, + "src": "9412:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2674, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9412:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9379:48:11" + }, + "payable": false, + "returnParameters": { + "id": 2677, + "nodeType": "ParameterList", + "parameters": [], + "src": "9437:0:11" + }, + "scope": 3302, + "src": "9355:525:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2771, + "nodeType": "Block", + "src": "9938:29:11", + "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 2769, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "9955:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "functionReturnParameters": 2768, + "id": 2770, + "nodeType": "Return", + "src": "9948:12:11" + } + ] + }, + "documentation": null, + "id": 2772, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getWToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2765, + "nodeType": "ParameterList", + "parameters": [], + "src": "9904:2:11" + }, + "payable": false, + "returnParameters": { + "id": 2768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2767, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2772, + "src": "9929:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 2766, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "9929:7:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9928:9:11" + }, + "scope": 3302, + "src": "9886:81:11", + "stateMutability": "view", + "superFunction": 1663, + "visibility": "external" + }, + { + "body": { + "id": 2779, + "nodeType": "Block", + "src": "10024:28:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2777, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "10041:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "functionReturnParameters": 2776, + "id": 2778, + "nodeType": "Return", + "src": "10034:11:11" + } + ] + }, + "documentation": null, + "id": 2780, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getFund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2773, + "nodeType": "ParameterList", + "parameters": [], + "src": "9989:2:11" + }, + "payable": false, + "returnParameters": { + "id": 2776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2775, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2780, + "src": "10014:8:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 2774, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "10014:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10013:10:11" + }, + "scope": 3302, + "src": "9973:79:11", + "stateMutability": "view", + "superFunction": 1668, + "visibility": "external" + }, + { + "body": { + "id": 2790, + "nodeType": "Block", + "src": "10124:45:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2183, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9115:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9123:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "9115:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9128:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9115:14:5", + "id": 2786, + "name": "paymentMethods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "10141:14:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Methods_$6179_storage", + "typeString": "struct PaymentMethods.Methods storage ref" } - ], - "id": 2182, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9107:7:5", + }, + "id": 2787, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "list", + "nodeType": "MemberAccess", + "referencedDeclaration": 6285, + "src": "10141:19:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Methods_$6179_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Methods_$6179_storage_ptr_$", + "typeString": "function (struct PaymentMethods.Methods storage pointer) view returns (bytes32[] memory)" } }, - "id": 2188, + "id": 2788, "isConstant": false, "isLValue": false, "isPure": false, @@ -13460,130 +14122,142 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9107:23:5", + "src": "10141:21:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" } }, - "id": 2189, - "nodeType": "ExpressionStatement", - "src": "9107:23:5" - }, + "functionReturnParameters": 2785, + "id": 2789, + "nodeType": "Return", + "src": "10134:28:11" + } + ] + }, + "documentation": null, + "id": 2791, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getPaymentMethodsList", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2781, + "nodeType": "ParameterList", + "parameters": [], + "src": "10088:2:11" + }, + "payable": false, + "returnParameters": { + "id": 2785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2784, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2791, + "src": "10113:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 2782, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10113:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2783, + "length": null, + "nodeType": "ArrayTypeName", + "src": "10113:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10112:11:11" + }, + "scope": 3302, + "src": "10058:111:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2803, + "nodeType": "Block", + "src": "10253:57:11", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2191, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "9148:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2192, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9154:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "9148:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2194, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9159:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9148:12:5", + "id": 2800, + "name": "_method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2793, + "src": "10295:7:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], - "id": 2190, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9140:7:5", + "expression": { + "argumentTypes": null, + "id": 2798, + "name": "paymentMethods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "10270:14:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$6179_storage", + "typeString": "struct PaymentMethods.Methods storage ref" + } + }, + "id": 2799, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isAllowed", + "nodeType": "MemberAccess", + "referencedDeclaration": 6273, + "src": "10270:24:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Methods_$6179_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Methods_$6179_storage_ptr_$", + "typeString": "function (struct PaymentMethods.Methods storage pointer,bytes32) view returns (bool)" } }, - "id": 2196, + "id": 2801, "isConstant": false, "isLValue": false, "isPure": false, @@ -13591,404 +14265,531 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9140:21:5", + "src": "10270:33:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2197, - "nodeType": "ExpressionStatement", - "src": "9140:21:5" - }, + "functionReturnParameters": 2797, + "id": 2802, + "nodeType": "Return", + "src": "10263:40:11" + } + ] + }, + "documentation": null, + "id": 2804, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isPaymentMethodAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2794, + "nodeType": "ParameterList", + "parameters": [ { - "assignments": [ - 2201 - ], - "declarations": [ - { - "constant": false, - "id": 2201, - "name": "boundaries", - "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "9172:24:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2199, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9172:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2200, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9172:6:5", + "constant": false, + "id": 2793, + "name": "_method", + "nodeType": "VariableDeclaration", + "scope": 2804, + "src": "10207:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2792, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10207:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10206:17:11" + }, + "payable": false, + "returnParameters": { + "id": 2797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2796, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2804, + "src": "10247:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2795, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10247:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10246:6:11" + }, + "scope": 3302, + "src": "10175:135:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2883, + "nodeType": "Block", + "src": "10395:682:11", + "statements": [ + { + "assignments": [ + 2816, + 2818 + ], + "declarations": [ + { + "constant": false, + "id": 2816, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2884, + "src": "10406:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2815, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10406:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2818, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 2884, + "src": "10418:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2817, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10418:4:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "value": null, "visibility": "internal" } ], - "id": 2212, + "id": 2821, "initialValue": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2819, + "name": "getCurrentStageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3204 + ], + "referencedDeclaration": 3204, + "src": "10432:20:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view returns (uint256,bool)" + } + }, + "id": 2820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10432:22:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10405:49:11" + }, + { + "condition": { + "argumentTypes": null, + "id": 2823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "10469:6:11", + "subExpression": { + "argumentTypes": null, + "id": 2822, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2818, + "src": "10470:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2825, + "nodeType": "IfStatement", + "src": "10465:19:11", + "trueBody": { + "expression": null, + "functionReturnParameters": 2814, + "id": 2824, + "nodeType": "Return", + "src": "10477:7:11" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2826, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "10498:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" + } }, - "id": 2210, + "id": 2827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 6454, + "src": "10498:29:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10498:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 2829, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2806, + "src": "10533:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "10498:41:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2840, + "nodeType": "IfStatement", + "src": "10494:138:11", + "trueBody": { + "id": 2839, + "nodeType": "Block", + "src": "10541:91:11", + "statements": [ + { + "condition": { "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "10559:22:11", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 2205, - "name": "end", + "id": 2833, + "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "9211:3:5", + "referencedDeclaration": 2806, + "src": "10574:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { "argumentTypes": null, - "id": 2206, - "name": "start", + "id": 2831, + "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9217:5:5", + "referencedDeclaration": 1853, + "src": "10560:5:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } }, - "src": "9211:11:5", + "id": 2832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 9999, + "src": "10560:13:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" } + }, + "id": 2834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10560:21:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "id": 2208, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9210:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9226:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" }, - "value": "2" - }, - "src": "9210:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 2204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "9199:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 2202, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9203:4:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2203, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9203:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "falseBody": null, + "id": 2838, + "nodeType": "IfStatement", + "src": "10555:67:11", + "trueBody": { + "id": 2837, + "nodeType": "Block", + "src": "10583:39:11", + "statements": [ + { + "expression": null, + "functionReturnParameters": 2814, + "id": 2836, + "nodeType": "Return", + "src": "10601:7:11" + } + ] } } - }, - "id": 2211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9199:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9172:56:5" + ] + } }, { "assignments": [ - 2216 + 2845 ], "declarations": [ { "constant": false, - "id": 2216, - "name": "bonuses", + "id": 2845, + "name": "lastArguments", "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "9238:21:5", + "scope": 2884, + "src": "10642:28:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" }, "typeName": { "baseType": { - "id": 2214, + "id": 2843, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9238:4:5", + "src": "10642:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2215, - "length": null, + "id": 2844, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10647:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, "nodeType": "ArrayTypeName", - "src": "9238:6:5", + "src": "10642:7:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" } }, "value": null, "visibility": "internal" } ], - "id": 2227, + "id": 2849, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2220, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "9274:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2221, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9280:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "9274:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2223, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9273:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2224, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9289:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "9273:17:5", + "id": 2847, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2806, + "src": "10698:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], - "id": 2219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "9262:10:5", + "id": 2846, + "name": "_getInvoiceLastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2952, + "src": "10673:24:11", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 2217, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9266:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2218, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9266:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_array$_t_uint256_$5_memory_ptr_$", + "typeString": "function (bytes32) view returns (uint256[5] memory)" } }, - "id": 2226, + "id": 2848, "isConstant": false, "isLValue": false, "isPure": false, @@ -13996,1270 +14797,563 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9262:29:5", + "src": "10673:32:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "9238:53:5" + "src": "10642:63:11" }, { - "assignments": [ - 2229 - ], - "declarations": [ - { - "constant": false, - "id": 2229, - "name": "k", - "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "9301:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2228, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9301:4:5", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2852, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2806, + "src": "10763:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2853, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2808, + "src": "10783:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 2231, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2230, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9310:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "9301:10:5" - }, - { - "body": { - "id": 2299, - "nodeType": "Block", - "src": "9342:450:5", - "statements": [ { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2236, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "9391:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2240, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2237, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9407:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2238, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9415:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9407:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9391:26:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "9391:36:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 2242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9391:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "baseExpression": { + "argumentTypes": null, + "id": 2854, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "10803:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2235, - "name": "require", + }, + "id": 2856, + "indexExpression": { + "argumentTypes": null, + "id": 2855, + "name": "index", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9383:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 2816, + "src": "10810:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2243, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9383:47:5", + "nodeType": "IndexAccess", + "src": "10803:13:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2244, - "nodeType": "ExpressionStatement", - "src": "9383:47:5" + "id": 2857, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "discount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4440, + "src": "10803:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2246, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "9452:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2250, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2247, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9468:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2248, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9476:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9468:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9452:26:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2251, - "name": "Percent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "9481:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", - "typeString": "type(library Percent)" - } - }, - "id": 2252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "MAX", - "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "9481:11:5", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" - } - }, - "id": 2253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9481:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9452:42:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2245, - "name": "require", + "baseExpression": { + "argumentTypes": null, + "id": 2858, + "name": "stages", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9444:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "10839:6:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 2255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9444:51:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2256, - "nodeType": "ExpressionStatement", - "src": "9444:51:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 2860, + "indexExpression": { "argumentTypes": null, - "id": 2257, - "name": "k", + "id": 2859, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "9544:1:5", + "referencedDeclaration": 2816, + "src": "10846:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9548:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9544:5:5", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10839:13:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "falseBody": null, - "id": 2273, - "nodeType": "IfStatement", - "src": "9540:95:5", - "trueBody": { - "id": 2272, - "nodeType": "Block", - "src": "9551:84:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2261, - "name": "boundaries", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "9577:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2265, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2262, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "9588:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9592:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9588:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9577:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2266, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "9597:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2268, - "indexExpression": { - "argumentTypes": null, - "id": 2267, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9613:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9597:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9577:42:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2260, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9569:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9569:51:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2271, - "nodeType": "ExpressionStatement", - "src": "9569:51:5" - } - ] + "id": 2861, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 4445, + "src": "10839:30:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } }, { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2274, - "name": "boundaries", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "9649:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2276, - "indexExpression": { - "argumentTypes": null, - "id": 2275, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "9660:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9649:13:5", + "id": 2862, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "10883:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 2864, + "indexExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2277, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "9665:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2279, - "indexExpression": { - "argumentTypes": null, - "id": 2278, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9681:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9665:22:5", + "id": 2863, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2816, + "src": "10890:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9649:38:5", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10883:13:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2281, - "nodeType": "ExpressionStatement", - "src": "9649:38:5" + "id": 2865, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 4448, + "src": "10883:27:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } }, { - "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2866, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "10924:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2868, + "indexExpression": { "argumentTypes": null, - "id": 2290, + "hexValue": "30", + "id": 2867, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2282, - "name": "bonuses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2216, - "src": "9701:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2284, - "indexExpression": { - "argumentTypes": null, - "id": 2283, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "9709:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9701:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2285, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "9714:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2289, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2286, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9730:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9738:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9730:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9714:26:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9701:39:5", + "nodeType": "Literal", + "src": "10938:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "id": 2291, - "nodeType": "ExpressionStatement", - "src": "9701:39:5" + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10924:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { - "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2869, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "10954:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2871, + "indexExpression": { "argumentTypes": null, - "id": 2293, + "hexValue": "31", + "id": 2870, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9754:3:5", - "subExpression": { - "argumentTypes": null, - "id": 2292, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "9754:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "nodeType": "Literal", + "src": "10968:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" }, - "id": 2294, - "nodeType": "ExpressionStatement", - "src": "9754:3:5" + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10954:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { - "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2872, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "10984:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2874, + "indexExpression": { "argumentTypes": null, - "id": 2297, + "hexValue": "32", + "id": 2873, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2295, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9771:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "32", - "id": 2296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9780:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "9771:10:5", + "nodeType": "Literal", + "src": "10998:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" }, - "id": 2298, - "nodeType": "ExpressionStatement", - "src": "9771:10:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2232, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9329:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2233, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "9337:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "9329:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2300, - "nodeType": "WhileStatement", - "src": "9322:470:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10984:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2301, - "name": "stages", + "id": 2875, + "name": "lastArguments", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "9802:6:5", + "referencedDeclaration": 2845, + "src": "11014:13:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "id": 2303, + "id": 2877, "indexExpression": { "argumentTypes": null, - "id": 2302, - "name": "stageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "9809:10:5", + "hexValue": "33", + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11028:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9802:18:5", + "src": "11014:16:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "volumeBoundaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "9802:35:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2305, - "name": "boundaries", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "9840:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "9802:48:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 2307, - "nodeType": "ExpressionStatement", - "src": "9802:48:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2308, - "name": "stages", + "id": 2878, + "name": "lastArguments", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "9860:6:5", + "referencedDeclaration": 2845, + "src": "11044:13:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "id": 2310, + "id": 2880, "indexExpression": { "argumentTypes": null, - "id": 2309, - "name": "stageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "9867:10:5", + "hexValue": "34", + "id": 2879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11058:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9860:18:5", + "src": "11044:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2850, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "10723:18:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" } }, - "id": 2311, + "id": 2851, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberName": "volumeBonuses", + "lValueRequested": false, + "memberName": "invoice", "nodeType": "MemberAccess", - "referencedDeclaration": 1337, - "src": "9860:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2312, - "name": "bonuses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2216, - "src": "9895:7:5", + "referencedDeclaration": 6701, + "src": "10723:26:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_function_delegatecall_view$_t_bytes32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$5_memory_ptr_$", + "typeString": "function (bytes32,uint256,uint256,uint256[] memory,uint256[] memory,uint256,uint256,uint256,uint256,uint256) view returns (uint256[5] memory)" } }, - "src": "9860:42:5", + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10723:347:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "id": 2314, - "nodeType": "ExpressionStatement", - "src": "9860:42:5" + "functionReturnParameters": 2814, + "id": 2882, + "nodeType": "Return", + "src": "10716:354:11" } ] }, - "documentation": "@dev Set stage bonus conditions by stage index\n@param bonusConditions List of bonus conditions:\n[uint boundary, uint bonus, ...]", - "id": 2316, + "documentation": null, + "id": 2884, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "_setStageBonusConditions", + "name": "getInvoice", "nodeType": "FunctionDefinition", "parameters": { - "id": 2135, + "id": 2809, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2127, - "name": "stageIndex", - "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "8747:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2126, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "8747:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2129, - "name": "start", + "id": 2806, + "name": "method", "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "8765:11:5", + "scope": 2884, + "src": "10336:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 2128, - "name": "uint8", + "id": 2805, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8765:5:5", + "src": "10336:7:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, @@ -15267,808 +15361,564 @@ }, { "constant": false, - "id": 2131, - "name": "end", + "id": 2808, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "8778:9:5", + "scope": 2884, + "src": "10352:11:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 2130, - "name": "uint8", + "id": 2807, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8778:5:5", + "src": "10352:4:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" - }, + } + ], + "src": "10335:29:11" + }, + "payable": false, + "returnParameters": { + "id": 2814, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 2134, - "name": "bonusConditions", + "id": 2813, + "name": "", "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "8789:22:5", + "scope": 2884, + "src": "10386:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" }, "typeName": { "baseType": { - "id": 2132, + "id": 2810, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8789:4:5", + "src": "10386:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2133, - "length": null, + "id": 2812, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10391:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, "nodeType": "ArrayTypeName", - "src": "8789:6:5", + "src": "10386:7:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" } }, "value": null, "visibility": "internal" } ], - "src": "8746:66:5" - }, - "payable": false, - "returnParameters": { - "id": 2136, - "nodeType": "ParameterList", - "parameters": [], - "src": "8822:0:5" + "src": "10385:9:11" }, - "scope": 3279, - "src": "8713:1196:5", - "stateMutability": "nonpayable", + "scope": 3302, + "src": "10316:761:11", + "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 2593, + "id": 2951, "nodeType": "Block", - "src": "10475:1659:5", + "src": "11171:325:11", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2332, + "id": 2900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "id": 2329, - "name": "stages", + "id": 2893, + "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "10489:6:5", + "referencedDeclaration": 2891, + "src": "11181:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "id": 2330, + "id": 2895, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11188:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10489:13:5", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11181:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "hexValue": "30", - "id": 2331, + "arguments": [ + { + "argumentTypes": null, + "id": 2898, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2886, + "src": "11203:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2896, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "11193:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 2897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 10006, + "src": "11193:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) view external returns (uint256)" + } + }, + "id": 2899, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "10505:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "11193:17:11", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "10489:17:5", + "src": "11181:29:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "falseBody": null, - "id": 2350, - "nodeType": "IfStatement", - "src": "10485:109:5", - "trueBody": { - "id": 2349, - "nodeType": "Block", - "src": "10508:86:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2334, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "10530:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2339, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2335, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "10537:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2336, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10537:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2337, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10553:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10537:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10530:25:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 2340, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "endDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1327, - "src": "10530:33:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2341, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "10566:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2343, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10577:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10566:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2345, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2344, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10580:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10566:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10530:52:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2333, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10522:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10522:61:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2348, - "nodeType": "ExpressionStatement", - "src": "10522:61:5" - } - ] - } + "id": 2901, + "nodeType": "ExpressionStatement", + "src": "11181:29:11" }, { "expression": { "argumentTypes": null, - "id": 2352, + "id": 2906, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "10604:17:5", - "subExpression": { + "leftHandSide": { "argumentTypes": null, - "id": 2351, - "name": "milestones", + "baseExpression": { + "argumentTypes": null, + "id": 2902, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "11220:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2904, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11227:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11220:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2905, + "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "10611:10:5", + "referencedDeclaration": 1855, + "src": "11232:5:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "src": "11220:17:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2353, + "id": 2907, "nodeType": "ExpressionStatement", - "src": "10604:17:5" + "src": "11220:17:11" }, { - "assignments": [ - 2355 - ], - "declarations": [ - { - "constant": false, - "id": 2355, - "name": "offset", - "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10632:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2354, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10632:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2357, - "initialValue": { + "expression": { "argumentTypes": null, - "hexValue": "30", - "id": 2356, + "id": 2916, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "10646:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10632:15:5" - }, - { - "assignments": [ - 2359 - ], - "declarations": [ - { - "constant": false, - "id": 2359, - "name": "k", - "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10657:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2358, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10657:4:5", + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2908, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "11247:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 2361, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10666:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10657:10:5" - }, - { - "assignments": [ - 2363 - ], - "declarations": [ - { - "constant": false, - "id": 2363, - "name": "totalPercents", - "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10677:18:5", - "stateVariable": false, - "storageLocation": "default", + "id": 2910, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11254:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11247:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "typeName": { - "id": 2362, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10677:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2912, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "11264:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 2913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 10484, + "src": "11264:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11264:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11259:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" }, - "value": null, - "visibility": "internal" + "id": 2915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11259:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11247:34:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 2365, - "initialValue": { + }, + "id": 2917, + "nodeType": "ExpressionStatement", + "src": "11247:34:11" + }, + { + "expression": { "argumentTypes": null, - "hexValue": "30", - "id": 2364, + "id": 2938, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "10698:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10677:22:5" - }, - { - "body": { - "id": 2580, - "nodeType": "Block", - "src": "10756:1287:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2378, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "10808:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2380, - "indexExpression": { - "argumentTypes": null, - "id": 2379, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "10819:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10808:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2382, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10822:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10808:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "10835:3:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10837:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 2383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10828:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10828:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "10808:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2918, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "11291:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2920, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11298:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11291:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2921, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "11303:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" } - ], - "id": 2377, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10800:7:5", + }, + "id": 2922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 6454, + "src": "11303:29:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "id": 2388, + "id": 2923, "isConstant": false, "isLValue": false, "isPure": false, @@ -16076,1884 +15926,2083 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10800:40:5", + "src": "11303:31:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 2389, - "nodeType": "ExpressionStatement", - "src": "10800:40:5" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2391, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "10862:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2393, - "indexExpression": { - "argumentTypes": null, - "id": 2392, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "10873:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10862:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2395, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10876:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10862:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { + "id": 2924, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2886, + "src": "11338:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "11303:41:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2398, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "10889:3:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2397, + "arguments": [ + { + "argumentTypes": null, + "id": 2931, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2886, + "src": "11417:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2929, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "11395:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 2930, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "10891:1:5", - "subdenomination": null, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "11395:21:11", "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } }, + "id": 2932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11395:29:11", "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 2396, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10882:6:5", + "id": 2928, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "11381:13:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } }, - "id": 2399, + "id": 2933, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10882:11:5", + "src": "11381:44:11", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "src": "10862:31:5", + "id": 2934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 12985, + "src": "11381:53:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 2935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11381:55:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11376:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 2936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11376:61:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "11303:134:11", + "trueExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11359:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11291:146:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "11291:146:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2940, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "11447:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2942, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 2941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11454:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11447:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2946, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13524, + "src": "11483:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", + "typeString": "contract W12Crowdsale" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", + "typeString": "contract W12Crowdsale" } ], - "id": 2390, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10854:7:5", + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11475:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2401, + "id": 2947, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10854:40:5", + "src": "11475:13:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 2402, - "nodeType": "ExpressionStatement", - "src": "10854:40:5" - }, - { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2404, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "10916:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2406, - "indexExpression": { - "argumentTypes": null, - "id": 2405, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "10927:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10916:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2408, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10930:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10916:16:5", + "id": 2943, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "11459:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 2944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "11459:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11459:30:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11447:42:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2950, + "nodeType": "ExpressionStatement", + "src": "11447:42:11" + } + ] + }, + "documentation": null, + "id": 2952, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_getInvoiceLastArguments", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2887, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2886, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2952, + "src": "11117:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2885, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11117:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11116:16:11" + }, + "payable": false, + "returnParameters": { + "id": 2892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2891, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 2952, + "src": "11155:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2888, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11155:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2890, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11160:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "11155:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11154:16:11" + }, + "scope": 3302, + "src": "11083:413:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3031, + "nodeType": "Block", + "src": "11599:713:11", + "statements": [ + { + "assignments": [ + 2964, + 2966 + ], + "declarations": [ + { + "constant": false, + "id": 2964, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 3032, + "src": "11610:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2963, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11610:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2966, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 3032, + "src": "11622:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2965, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11622:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2969, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2967, + "name": "getCurrentStageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3204 + ], + "referencedDeclaration": 3204, + "src": "11636:20:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view returns (uint256,bool)" + } + }, + "id": 2968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11636:22:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11609:49:11" + }, + { + "condition": { + "argumentTypes": null, + "id": 2971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "11673:6:11", + "subExpression": { + "argumentTypes": null, + "id": 2970, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2966, + "src": "11674:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2973, + "nodeType": "IfStatement", + "src": "11669:19:11", + "trueBody": { + "expression": null, + "functionReturnParameters": 2962, + "id": 2972, + "nodeType": "Return", + "src": "11681:7:11" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2974, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "11702:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 6454, + "src": "11702:29:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11702:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 2977, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "11737:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "11702:41:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2988, + "nodeType": "IfStatement", + "src": "11698:138:11", + "trueBody": { + "id": 2987, + "nodeType": "Block", + "src": "11745:91:11", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "11763:22:11", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2981, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "11778:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2411, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "10943:3:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10945:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 2409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10936:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10936:11:5", + "id": 2979, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "11764:5:11", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } }, - "src": "10916:31:5", + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 9999, + "src": "11764:13:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" } - ], - "id": 2403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10908:7:5", + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11764:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2414, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2986, + "nodeType": "IfStatement", + "src": "11759:67:11", + "trueBody": { + "id": 2985, + "nodeType": "Block", + "src": "11787:39:11", + "statements": [ + { + "expression": null, + "functionReturnParameters": 2962, + "id": 2984, + "nodeType": "Return", + "src": "11805:7:11" + } + ] + } + } + ] + } + }, + { + "assignments": [ + 2993 + ], + "declarations": [ + { + "constant": false, + "id": 2993, + "name": "lastArguments", + "nodeType": "VariableDeclaration", + "scope": 3032, + "src": "11846:28:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2991, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11846:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2992, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2990, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10908:40:5", + "nodeType": "Literal", + "src": "11851:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "typeIdentifier": null, + "typeString": null + }, + "value": "5" }, - "id": 2415, - "nodeType": "ExpressionStatement", - "src": "10908:40:5" + "nodeType": "ArrayTypeName", + "src": "11846:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2997, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2995, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "11915:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2994, + "name": "_getInvoiceByTokenAmountLastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3100, + "src": "11877:37:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_array$_t_uint256_$5_memory_ptr_$", + "typeString": "function (bytes32) view returns (uint256[5] memory)" + } + }, + "id": 2996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11877:45:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11846:76:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3000, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "11993:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3001, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2956, + "src": "12013:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2417, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "10998:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2419, - "indexExpression": { - "argumentTypes": null, - "id": 2418, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11009:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10998:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2421, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11012:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10998:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 2422, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "11017:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10998:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "baseExpression": { + "argumentTypes": null, + "id": 3002, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "12038:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2416, - "name": "require", + }, + "id": 3004, + "indexExpression": { + "argumentTypes": null, + "id": 3003, + "name": "index", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10990:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 2964, + "src": "12045:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2424, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10990:31:5", + "nodeType": "IndexAccess", + "src": "12038:13:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2425, - "nodeType": "ExpressionStatement", - "src": "10990:31:5" + "id": 3005, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "discount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4440, + "src": "12038:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2427, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11043:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2429, - "indexExpression": { - "argumentTypes": null, - "id": 2428, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11054:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11043:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2431, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11057:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11043:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2432, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11062:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2434, - "indexExpression": { - "argumentTypes": null, - "id": 2433, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11073:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11062:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2436, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11076:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11062:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11043:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "baseExpression": { + "argumentTypes": null, + "id": 3006, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "12074:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2426, - "name": "require", + }, + "id": 3008, + "indexExpression": { + "argumentTypes": null, + "id": 3007, + "name": "index", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11035:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 2964, + "src": "12081:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2438, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11035:44:5", + "nodeType": "IndexAccess", + "src": "12074:13:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2439, - "nodeType": "ExpressionStatement", - "src": "11035:44:5" + "id": 3009, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 4445, + "src": "12074:30:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } }, { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2441, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11101:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2443, - "indexExpression": { - "argumentTypes": null, - "id": 2442, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11112:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11101:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2445, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2444, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11115:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11101:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2446, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11120:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2448, - "indexExpression": { - "argumentTypes": null, - "id": 2447, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11131:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11120:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2450, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11134:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11120:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11101:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "baseExpression": { + "argumentTypes": null, + "id": 3010, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "12118:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2440, - "name": "require", + }, + "id": 3012, + "indexExpression": { + "argumentTypes": null, + "id": 3011, + "name": "index", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11093:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 2964, + "src": "12125:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2452, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11093:44:5", + "nodeType": "IndexAccess", + "src": "12118:13:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2453, - "nodeType": "ExpressionStatement", - "src": "11093:44:5" + "id": 3013, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 4448, + "src": "12118:27:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } }, { - "condition": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2456, + "id": 3014, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2993, + "src": "12159:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3016, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3015, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2454, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11156:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2455, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11160:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "nodeType": "Literal", + "src": "12173:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "src": "11156:5:5", + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12159:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3017, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2993, + "src": "12189:13:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "falseBody": null, - "id": 2474, - "nodeType": "IfStatement", - "src": "11152:92:5", - "trueBody": { - "id": 2473, - "nodeType": "Block", - "src": "11163:81:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2458, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11189:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2462, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2459, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11200:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11204:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11200:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11189:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2464, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11207:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11189:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2465, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11212:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2467, - "indexExpression": { - "argumentTypes": null, - "id": 2466, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11223:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11212:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2469, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11226:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11212:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11189:39:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2457, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11181:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11181:48:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2472, - "nodeType": "ExpressionStatement", - "src": "11181:48:5" - } - ] + "id": 3019, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12203:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12189:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, { - "expression": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2476, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11302:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2478, - "indexExpression": { - "argumentTypes": null, - "id": 2477, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11313:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11302:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2480, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 2479, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11316:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11302:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "11302:26:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 2482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11302:28:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2475, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11294:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2483, + "id": 3020, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2993, + "src": "12219:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3022, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 3021, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11294:37:5", + "nodeType": "Literal", + "src": "12233:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" }, - "id": 2484, - "nodeType": "ExpressionStatement", - "src": "11294:37:5" + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12219:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { - "assignments": [ - 2486 - ], - "declarations": [ - { - "constant": false, - "id": 2486, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "11346:17:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2485, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11346:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3023, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2993, + "src": "12249:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } - ], - "id": 2494, - "initialValue": { + }, + "id": 3025, + "indexExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2489, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "11393:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2490, - "name": "offsets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "11401:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 2492, - "indexExpression": { - "argumentTypes": null, - "id": 2491, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2359, - "src": "11409:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11401:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2487, - "name": "namesAndDescriptions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "11366:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "slice", - "nodeType": "MemberAccess", - "referencedDeclaration": 10360, - "src": "11366:26:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" - } - }, - "id": 2493, + "hexValue": "33", + "id": 3024, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11366:46:5", + "nodeType": "Literal", + "src": "12263:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" }, - "nodeType": "VariableDeclarationStatement", - "src": "11346:66:5" + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12249:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { - "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3026, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2993, + "src": "12279:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3028, + "indexExpression": { "argumentTypes": null, - "id": 2502, + "hexValue": "34", + "id": 3027, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2495, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "11426:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "Literal", + "src": "12293:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2498, - "name": "offsets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "11446:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 2500, - "indexExpression": { - "argumentTypes": null, - "id": 2499, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2359, - "src": "11454:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11446:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2496, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "11435:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "11435:10:5", + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12279:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2998, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "11940:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "invoiceByTokenAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 6854, + "src": "11940:39:11", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_bytes32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$4_memory_ptr_$", + "typeString": "function (bytes32,uint256,uint256,uint256[] memory,uint256[] memory,uint256,uint256,uint256,uint256,uint256) view returns (uint256[4] memory)" + } + }, + "id": 3029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11940:365:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "functionReturnParameters": 2962, + "id": 3030, + "nodeType": "Return", + "src": "11933:372:11" + } + ] + }, + "documentation": null, + "id": 3032, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getInvoiceByTokenAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2957, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2954, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 3032, + "src": "11535:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2953, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11535:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2956, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 3032, + "src": "11551:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2955, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11551:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11534:34:11" + }, + "payable": false, + "returnParameters": { + "id": 2962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2961, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3032, + "src": "11590:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 2958, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11590:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2960, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11595:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "11590:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11589:9:11" + }, + "scope": 3302, + "src": "11502:810:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3099, + "nodeType": "Block", + "src": "12420:325:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3041, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "12430:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3043, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12437:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12430:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3046, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3034, + "src": "12452:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3044, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "12442:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 3045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 10006, + "src": "12442:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) view external returns (uint256)" + } + }, + "id": 3047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12442:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12430:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3049, + "nodeType": "ExpressionStatement", + "src": "12430:29:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3050, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "12469:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3052, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3051, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12476:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12469:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3053, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1855, + "src": "12481:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12469:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3055, + "nodeType": "ExpressionStatement", + "src": "12469:17:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3056, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "12496:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3058, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 3057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12503:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12496:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3060, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "12513:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "id": 2501, + "id": 3061, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11435:22:5", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 10484, + "src": "12513:14:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" } }, - "src": "11426:31:5", + "id": 3062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12513:16:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } - }, - "id": 2503, - "nodeType": "ExpressionStatement", - "src": "11426:31:5" - }, - { - "assignments": [ - 2505 - ], - "declarations": [ + } + ], + "expression": { + "argumentTypes": [ { - "constant": false, - "id": 2505, - "name": "description", - "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "11471:24:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2504, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11471:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } ], - "id": 2515, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2508, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "11525:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2509, - "name": "offsets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "11533:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 2513, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2510, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2359, - "src": "11541:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11545:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11541:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11533:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], + "id": 3059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12508:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 3063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12508:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12496:34:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3065, + "nodeType": "ExpressionStatement", + "src": "12496:34:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3066, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "12540:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3068, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12547:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12540:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 3073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], + "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2506, - "name": "namesAndDescriptions", + "id": 3069, + "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "11498:20:5", + "referencedDeclaration": 7269, + "src": "12552:18:11", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" } }, - "id": 2507, + "id": 3070, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "slice", + "memberName": "METHOD_ETH", "nodeType": "MemberAccess", - "referencedDeclaration": 10360, - "src": "11498:26:5", + "referencedDeclaration": 6454, + "src": "12552:29:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "id": 2514, + "id": 3071, "isConstant": false, "isLValue": false, "isPure": false, @@ -17961,154 +18010,157 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11498:50:5", + "src": "12552:31:11", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "VariableDeclarationStatement", - "src": "11471:77:5" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "id": 2525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2516, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "11562:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 3072, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3034, + "src": "12587:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "12552:41:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "arguments": [ - { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2519, - "name": "offsets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "11582:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 2523, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2520, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2359, - "src": "11590:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { + "arguments": [ + { "argumentTypes": null, - "hexValue": "31", - "id": 2521, + "arguments": [ + { + "argumentTypes": null, + "id": 3079, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3034, + "src": "12666:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3077, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "12644:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 3078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "12644:21:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 3080, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "11594:1:5", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "12644:29:11", "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11590:5:5", + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3076, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "12630:13:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" } }, + "id": 3081, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11582:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2517, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "11571:6:5", + "names": [], + "nodeType": "FunctionCall", + "src": "12630:44:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "id": 2518, + "id": 3082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "add", + "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "11571:10:5", + "referencedDeclaration": 12985, + "src": "12630:53:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" } }, - "id": 2524, + "id": 3083, "isConstant": false, "isLValue": false, "isPure": false, @@ -18116,1100 +18168,475 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11571:26:5", + "src": "12630:55:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } - }, - "src": "11562:35:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "id": 2526, - "nodeType": "ExpressionStatement", - "src": "11562:35:5" - }, - { + ], "expression": { - "argumentTypes": null, - "id": 2532, + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 3075, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2527, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2359, - "src": "11611:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "ElementaryTypeNameExpression", + "src": "12625:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ + "typeName": "uint" + }, + "id": 3084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12625:61:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12552:134:11", + "trueExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12608:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12540:146:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3087, + "nodeType": "ExpressionStatement", + "src": "12540:146:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3088, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "12696:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3090, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12703:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12696:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3094, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13524, + "src": "12732:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", + "typeString": "contract W12Crowdsale" + } + } + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "hexValue": "32", - "id": 2530, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11621:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", + "typeString": "contract W12Crowdsale" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - } - ], - "expression": { - "argumentTypes": null, - "id": 2528, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2359, - "src": "11615:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "11615:5:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2531, + "id": 3093, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11615:8:5", + "nodeType": "ElementaryTypeNameExpression", + "src": "12724:7:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "src": "11611:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2533, - "nodeType": "ExpressionStatement", - "src": "11611:12:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2543, + "id": 3095, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2534, - "name": "totalPercents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "11638:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2537, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11672:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2539, - "indexExpression": { - "argumentTypes": null, - "id": 2538, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11683:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11672:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2541, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 2540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11686:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11672:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2535, - "name": "totalPercents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "11654:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "11654:17:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11654:35:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11638:51:5", + "names": [], + "nodeType": "FunctionCall", + "src": "12724:13:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 2544, - "nodeType": "ExpressionStatement", - "src": "11638:51:5" - }, - { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2550, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11764:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2552, - "indexExpression": { - "argumentTypes": null, - "id": 2551, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11775:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11764:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2554, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11778:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11764:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11757:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11757:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2556, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11815:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2558, - "indexExpression": { - "argumentTypes": null, - "id": 2557, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11826:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11815:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2560, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 2559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11829:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11815:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2562, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11869:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2564, - "indexExpression": { - "argumentTypes": null, - "id": 2563, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11880:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11869:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2566, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11883:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11869:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2561, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11862:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11862:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2569, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11929:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2571, - "indexExpression": { - "argumentTypes": null, - "id": 2570, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11940:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11929:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2573, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11943:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11929:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11922:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11922:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 2575, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2486, - "src": "11970:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2576, - "name": "description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2505, - "src": "12005:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 2548, - "name": "Milestone", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1351, - "src": "11720:9:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Milestone_$1351_storage_ptr_$", - "typeString": "type(struct W12Crowdsale.Milestone storage pointer)" - } - }, - "id": 2577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "endDate", - "tranchePercent", - "voteEndDate", - "withdrawalWindow", - "name", - "description" - ], - "nodeType": "FunctionCall", - "src": "11720:311:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_memory", - "typeString": "struct W12Crowdsale.Milestone memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Milestone_$1351_memory", - "typeString": "struct W12Crowdsale.Milestone memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2545, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "11704:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 2547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11704:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$1351_storage_$returns$_t_uint256_$", - "typeString": "function (struct W12Crowdsale.Milestone storage ref) returns (uint256)" - } - }, - "id": 2578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11704:328:5", + "id": 3091, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "12708:5:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "id": 2579, - "nodeType": "ExpressionStatement", - "src": "11704:328:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2370, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "10728:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2371, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "10732:10:5", + "id": 3092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "12708:15:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" } }, - "id": 2372, + "id": 3096, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10732:17:5", + "names": [], + "nodeType": "FunctionCall", + "src": "12708:30:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10728:21:5", + "src": "12696:42:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2581, - "initializationExpression": { - "assignments": [ - 2367 - ], - "declarations": [ - { - "constant": false, - "id": 2367, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10715:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2366, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "10715:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2369, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10725:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10715:11:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10751:3:5", - "subExpression": { - "argumentTypes": null, - "id": 2374, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "10751:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, + "id": 3098, + "nodeType": "ExpressionStatement", + "src": "12696:42:11" + } + ] + }, + "documentation": null, + "id": 3100, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_getInvoiceByTokenAmountLastArguments", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3035, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3034, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 3100, + "src": "12365:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3033, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12365:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12364:16:11" + }, + "payable": false, + "returnParameters": { + "id": 3040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3039, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 3100, + "src": "12404:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 3036, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12404:4:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2376, - "nodeType": "ExpressionStatement", - "src": "10751:3:5" + "id": 3038, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 3037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12409:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "12404:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } }, - "nodeType": "ForStatement", - "src": "10710:1333:5" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "12403:16:11" + }, + "scope": 3302, + "src": "12318:427:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3119, + "nodeType": "Block", + "src": "12825:99:11", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 3113, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3102, + "src": "12865:11:11", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 2587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2583, - "name": "totalPercents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "12061:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2584, - "name": "Percent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "12078:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", - "typeString": "type(library Percent)" - } - }, - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "MAX", - "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "12078:11:5", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" - } - }, - "id": 2586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12078:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12061:30:5", + } + }, + { + "argumentTypes": null, + "id": 3114, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "12878:4:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3115, + "name": "serviceFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1857, + "src": "12884:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3116, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1859, + "src": "12896:20:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 2582, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "12053:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12053:39:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2589, - "nodeType": "ExpressionStatement", - "src": "12053:39:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2590, - "name": "MilestonesUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1369, - "src": "12108:17:5", + "expression": { + "argumentTypes": null, + "id": 3111, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "12842:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 3112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fee", + "nodeType": "MemberAccess", + "referencedDeclaration": 6896, + "src": "12842:22:11", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", - "typeString": "function ()" + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", + "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256[2] memory)" } }, - "id": 2591, + "id": 3117, "isConstant": false, "isLValue": false, "isPure": false, @@ -19217,88 +18644,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12108:19:5", + "src": "12842:75:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" } }, - "id": 2592, - "nodeType": "EmitStatement", - "src": "12103:24:5" + "functionReturnParameters": 3110, + "id": 3118, + "nodeType": "Return", + "src": "12835:82:11" } ] }, - "documentation": "@dev Update milestones\n@param parameters List of primary parameters:\n[\n uint32 endDate,\n uint32 voteEndDate,\n uint32 withdrawalWindow,\n uint tranchPercent\n]\n@param offsets Offsets of names and descriptions in namesAndDescriptions:\n[uint32 offset1, uint32 offset2, ...]\n@param namesAndDescriptions Names and descriptions", - "id": 2594, + "documentation": null, + "id": 3120, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "_setMilestones", + "name": "getFee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2327, + "id": 3105, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2321, - "name": "parameters", + "id": 3102, + "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10365:20:5", + "scope": 3120, + "src": "12767:16:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4][]" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "baseType": { - "baseType": { - "id": 2317, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10365:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2319, - "length": { - "argumentTypes": null, - "hexValue": "34", - "id": 2318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10370:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "4" - }, - "nodeType": "ArrayTypeName", - "src": "10365:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", - "typeString": "uint256[4]" - } - }, - "id": 2320, - "length": null, - "nodeType": "ArrayTypeName", - "src": "10365:9:5", + "id": 3101, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12767:4:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", - "typeString": "uint256[4][]" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -19306,711 +18697,394 @@ }, { "constant": false, - "id": 2324, - "name": "offsets", + "id": 3104, + "name": "cost", "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10395:16:5", + "scope": 3120, + "src": "12785:9:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "baseType": { - "id": 2322, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "10395:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2323, - "length": null, - "nodeType": "ArrayTypeName", - "src": "10395:8:5", + "id": 3103, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12785:4:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" - }, + } + ], + "src": "12766:29:11" + }, + "payable": false, + "returnParameters": { + "id": 3110, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 2326, - "name": "namesAndDescriptions", + "id": 3109, + "name": "", "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10421:26:5", + "scope": 3120, + "src": "12816:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" }, "typeName": { - "id": 2325, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10421:5:5", + "baseType": { + "id": 3106, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12816:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3108, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12821:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "12816:7:11", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" } }, "value": null, "visibility": "internal" } ], - "src": "10355:98:5" - }, - "payable": false, - "returnParameters": { - "id": 2328, - "nodeType": "ParameterList", - "parameters": [], - "src": "10475:0:5" + "src": "12815:9:11" }, - "scope": 3279, - "src": "10332:1802:5", - "stateMutability": "nonpayable", + "scope": 3302, + "src": "12751:173:11", + "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 2687, + "id": 3155, "nodeType": "Block", - "src": "12235:559:5", + "src": "13002:248:11", "statements": [ { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 2609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2605, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "12249:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 2606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "METHOD_ETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 5303, - "src": "12249:29:5", + "assignments": [ + 3128, + 3130 + ], + "declarations": [ + { + "constant": false, + "id": 3128, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 3156, + "src": "13013:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3127, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13013:4:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12249:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "value": null, + "visibility": "internal" }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 2608, - "name": "method", + { + "constant": false, + "id": 3130, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 3156, + "src": "13025:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3129, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13025:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3133, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3131, + "name": "getCurrentStageIndex", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12284:6:5", + "overloadedDeclarations": [ + 3204 + ], + "referencedDeclaration": 3204, + "src": "13039:20:11", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view returns (uint256,bool)" } }, - "src": "12249:41:5", + "id": 3132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13039:22:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" } }, - "falseBody": null, - "id": 2622, - "nodeType": "IfStatement", - "src": "12245:124:5", - "trueBody": { - "id": 2621, - "nodeType": "Block", - "src": "12292:77:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2613, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12336:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2611, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "12314:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 2612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "12314:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 2614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12314:29:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12355:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12347:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12347:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12314:43:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2610, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "12306:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12306:52:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2620, - "nodeType": "ExpressionStatement", - "src": "12306:52:5" - } - ] - } + "nodeType": "VariableDeclarationStatement", + "src": "13012:49:11" }, { - "assignments": [ - 2624, - null - ], - "declarations": [ - { - "constant": false, - "id": 2624, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 2688, - "src": "12380:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2623, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12380:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 2627, - "initialValue": { + "condition": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2625, - "name": "getCurrentStageIndex", + "id": 3135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13076:6:11", + "subExpression": { + "argumentTypes": null, + "id": 3134, + "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3182, - "src": "12410:20:5", + "referencedDeclaration": 3130, + "src": "13077:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view returns (uint256,bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12410:22:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "12379:53:5" + "falseBody": null, + "id": 3137, + "nodeType": "IfStatement", + "src": "13072:19:11", + "trueBody": { + "expression": null, + "functionReturnParameters": 3126, + "id": 3136, + "nodeType": "Return", + "src": "13084:7:11" + } }, { "assignments": [ - 2632 + 3141 ], "declarations": [ { "constant": false, - "id": 2632, - "name": "invoice", + "id": 3141, + "name": "stage", "nodeType": "VariableDeclaration", - "scope": 2688, - "src": "12443:22:5", + "scope": 3156, + "src": "13101:29:11", "stateVariable": false, - "storageLocation": "memory", + "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5]" + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" }, "typeName": { - "baseType": { - "id": 2630, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12443:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2631, - "length": { - "argumentTypes": null, - "hexValue": "35", - "id": 2629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12448:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "5" - }, - "nodeType": "ArrayTypeName", - "src": "12443:7:5", + "contractScope": null, + "id": 3140, + "name": "Crowdsale.Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4449, + "src": "13101:15:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", - "typeString": "uint256[5]" + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" } }, "value": null, "visibility": "internal" } ], - "id": 2637, + "id": 3145, "initialValue": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2634, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12479:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2635, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2598, - "src": "12487:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "baseExpression": { + "argumentTypes": null, + "id": 3142, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "13133:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2633, - "name": "getInvoice", + }, + "id": 3144, + "indexExpression": { + "argumentTypes": null, + "id": 3143, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2993, - "src": "12468:10:5", + "referencedDeclaration": 3128, + "src": "13140:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_array$_t_uint256_$5_memory_ptr_$", - "typeString": "function (bytes32,uint256) view returns (uint256[5] memory)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2636, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12468:26:5", + "nodeType": "IndexAccess", + "src": "13133:13:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "12443:51:5" + "src": "13101:45:11" }, { - "assignments": [ - 2642 - ], - "declarations": [ - { - "constant": false, - "id": 2642, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 2688, - "src": "12504:18:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" - }, - "typeName": { - "baseType": { - "id": 2640, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12504:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2641, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 2639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12509:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "12504:7:5", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3148, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3122, + "src": "13192:5:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 2651, - "initialValue": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "id": 2644, - "name": "invoice", + "id": 3149, + "name": "stage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12532:7:5", + "referencedDeclaration": 3141, + "src": "13199:5:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage storage pointer" } }, - "id": 2646, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12540:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, + "id": 3150, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12532:10:5", + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 4445, + "src": "13199:22:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } }, { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "id": 2647, - "name": "invoice", + "id": 3151, + "name": "stage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12544:7:5", + "referencedDeclaration": 3141, + "src": "13223:5:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage storage pointer" } }, - "id": 2649, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12552:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, + "id": 3152, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12544:10:5", + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 4448, + "src": "13223:19:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } } ], @@ -20021,22 +19095,42 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } ], - "id": 2643, - "name": "getFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3102, - "src": "12525:6:5", + "expression": { + "argumentTypes": null, + "id": 3146, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "13164:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 3147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getBonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 7268, + "src": "13164:27:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", - "typeString": "function (uint256,uint256) view returns (uint256[2] memory)" + "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256[] memory,uint256[] memory) view returns (uint256)" } }, - "id": 2650, + "id": 3153, "isConstant": false, "isLValue": false, "isPure": false, @@ -20044,142 +19138,171 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12525:30:5", + "src": "13164:79:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "12504:51:5" - }, + "functionReturnParameters": 3126, + "id": 3154, + "nodeType": "Return", + "src": "13157:86:11" + } + ] + }, + "documentation": null, + "id": 3156, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSaleVolumeBonus", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3123, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2653, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "12579:3:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "argumentTypes": null, - "id": 2654, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12584:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2652, - "name": "_transferFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2725, - "src": "12566:12:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$returns$__$", - "typeString": "function (uint256[2] memory,bytes32)" - } - }, - "id": 2655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12566:25:5", + "constant": false, + "id": 3122, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3156, + "src": "12958:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3121, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12958:4:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2656, - "nodeType": "ExpressionStatement", - "src": "12566:25:5" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "12957:12:11" + }, + "payable": false, + "returnParameters": { + "id": 3126, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2658, - "name": "invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12619:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - { - "argumentTypes": null, - "id": 2659, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "12628:3:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, + "constant": false, + "id": 3125, + "name": "bonus", + "nodeType": "VariableDeclaration", + "scope": 3156, + "src": "12990:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3124, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12990:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12989:12:11" + }, + "scope": 3302, + "src": "12930:320:11", + "stateMutability": "view", + "superFunction": 1737, + "visibility": "public" + }, + { + "body": { + "id": 3203, + "nodeType": "Block", + "src": "13333:264:11", + "statements": [ + { + "body": { + "id": 3197, + "nodeType": "Block", + "src": "13383:180:11", + "statements": [ { - "argumentTypes": null, - "expression": { + "assignments": [ + 3177 + ], + "declarations": [ + { + "constant": false, + "id": 3177, + "name": "stage", + "nodeType": "VariableDeclaration", + "scope": 3204, + "src": "13397:29:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" + }, + "typeName": { + "contractScope": null, + "id": 3176, + "name": "Crowdsale.Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4449, + "src": "13397:15:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3181, + "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2660, + "id": 3178, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "12633:6:5", + "referencedDeclaration": 1868, + "src": "13429:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 2662, + "id": 3180, "indexExpression": { "argumentTypes": null, - "id": 2661, - "name": "index", + "id": 3179, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "12640:5:5", + "referencedDeclaration": 3164, + "src": "13436:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20190,339 +19313,923 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12633:13:5", + "src": "13429:9:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2663, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "vesting", - "nodeType": "MemberAccess", - "referencedDeclaration": 1331, - "src": "12633:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } + "nodeType": "VariableDeclarationStatement", + "src": "13397:41:11" }, { - "argumentTypes": null, - "id": 2664, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12656:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3182, + "name": "stage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3177, + "src": "13457:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage storage pointer" + } + }, + "id": 3183, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4436, + "src": "13457:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3184, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "13476:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13457:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3186, + "name": "stage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3177, + "src": "13483:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage storage pointer" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "endDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4438, + "src": "13483:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 3188, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "13499:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13483:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13457:45:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "falseBody": null, + "id": 3196, + "nodeType": "IfStatement", + "src": "13453:100:11", + "trueBody": { + "id": 3195, + "nodeType": "Block", + "src": "13504:49:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 3191, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3164, + "src": "13530:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13533:4:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "id": 3193, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13529:9:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "functionReturnParameters": 3162, + "id": 3194, + "nodeType": "Return", + "src": "13522:16:11" + } + ] } - ], - "id": 2657, - "name": "_transferPurchase", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "12601:17:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_uint32_$_t_bytes32_$returns$__$", - "typeString": "function (uint256[5] memory,uint256[2] memory,uint32,bytes32)" } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 2665, + "id": 3170, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12601:62:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2666, - "nodeType": "ExpressionStatement", - "src": "12601:62:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { + "leftExpression": { + "argumentTypes": null, + "id": 3167, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3164, + "src": "13359:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 2668, - "name": "invoice", + "id": 3168, + "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12689:7:5", + "referencedDeclaration": 1868, + "src": "13363:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, + "id": 3169, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13363:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13359:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3198, + "initializationExpression": { + "assignments": [ + 3164 + ], + "declarations": [ { - "argumentTypes": null, - "id": 2669, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "12698:3:5", + "constant": false, + "id": 3164, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 3204, + "src": "13347:6:11", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3163, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13347:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3166, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13356:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - { + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13347:10:11" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13378:3:11", + "subExpression": { "argumentTypes": null, - "id": 2670, - "name": "method", + "id": 3171, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12703:6:5", + "referencedDeclaration": 3164, + "src": "13378:1:11", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 2667, - "name": "_recordPurchase", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2864, - "src": "12673:15:5", + }, "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$returns$__$", - "typeString": "function (uint256[5] memory,uint256[2] memory,bytes32)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12673:37:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "id": 3173, + "nodeType": "ExpressionStatement", + "src": "13378:3:11" }, - "id": 2672, - "nodeType": "ExpressionStatement", - "src": "12673:37:5" + "nodeType": "ForStatement", + "src": "13343:220:11" }, { - "eventCall": { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13581:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13584:5:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "id": 3201, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13580:10:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", + "typeString": "tuple(int_const 0,bool)" + } + }, + "functionReturnParameters": 3162, + "id": 3202, + "nodeType": "Return", + "src": "13573:17:11" + } + ] + }, + "documentation": null, + "id": 3204, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCurrentStageIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3157, + "nodeType": "ParameterList", + "parameters": [], + "src": "13285:2:11" + }, + "payable": false, + "returnParameters": { + "id": 3162, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3159, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 3204, + "src": "13309:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3158, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13309:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3161, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 3204, + "src": "13321:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3160, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13321:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13308:24:11" + }, + "scope": 3302, + "src": "13256:341:11", + "stateMutability": "view", + "superFunction": 1730, + "visibility": "public" + }, + { + "body": { + "id": 3238, + "nodeType": "Block", + "src": "13661:199:11", + "statements": [ + { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, + "arguments": [], "expression": { - "argumentTypes": null, - "id": 2674, - "name": "msg", + "argumentTypes": [], + "id": 3210, + "name": "isEnded", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "12740:3:5", + "overloadedDeclarations": [ + 3260 + ], + "referencedDeclaration": 3260, + "src": "13679:7:11", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" } }, - "id": 2675, + "id": 3211, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12740:10:5", + "names": [], + "nodeType": "FunctionCall", + "src": "13679:9:11", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3209, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "13671:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13671:18:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3213, + "nodeType": "ExpressionStatement", + "src": "13671:18:11" + }, + { + "assignments": [ + 3215 + ], + "declarations": [ + { + "constant": false, + "id": 3215, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3239, + "src": "13700:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3214, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13700:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "value": null, + "visibility": "internal" + } + ], + "id": 3222, + "initialValue": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2676, - "name": "invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12752:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" + "arguments": [ + { + "argumentTypes": null, + "id": 3219, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13524, + "src": "13738:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", + "typeString": "contract W12Crowdsale" + } } - }, - "id": 2678, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2677, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", + "typeString": "contract W12Crowdsale" + } + ], + "id": 3218, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "12760:1:5", - "subdenomination": null, + "nodeType": "ElementaryTypeNameExpression", + "src": "13730:7:11", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" }, - "value": "0" + "typeName": "address" }, + "id": 3220, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12752:10:5", + "names": [], + "nodeType": "FunctionCall", + "src": "13730:13:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 3216, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "13714:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, + "id": 3217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "13714:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 3221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13714:30:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13700:44:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2679, - "name": "invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12764:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3226, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "13778:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13778:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3228, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3215, + "src": "13790:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "id": 2681, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2680, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3224, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "13763:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 3225, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "12772:1:5", - "subdenomination": null, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 13046, + "src": "13763:14:11", "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } }, + "id": 3229, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12764:10:5", + "names": [], + "nodeType": "FunctionCall", + "src": "13763:34:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3223, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "13755:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13755:43:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3231, + "nodeType": "ExpressionStatement", + "src": "13755:43:11" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "id": 2682, - "name": "invoice", + "id": 3233, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12776:7:5", + "referencedDeclaration": 13441, + "src": "13834:3:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 2684, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 2683, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12784:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, + "id": 3234, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12776:10:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13834:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3235, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3215, + "src": "13846:6:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20535,31 +20242,23 @@ "typeIdentifier": "t_address", "typeString": "address" }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 2673, - "name": "TokenPurchase", + "id": 3232, + "name": "UnsoldTokenReturned", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "12726:13:5", + "referencedDeclaration": 1897, + "src": "13814:19:11", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "id": 2685, + "id": 3236, "isConstant": false, "isLValue": false, "isPure": false, @@ -20567,931 +20266,712 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12726:61:5", + "src": "13814:39:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2686, + "id": 3237, "nodeType": "EmitStatement", - "src": "12721:66:5" + "src": "13809:44:11" } ] }, "documentation": null, - "id": 2688, + "id": 3239, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2601, - "modifierName": { - "argumentTypes": null, - "id": 2600, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9776, - "src": "12203:12:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12203:12:5" - }, - { - "arguments": null, - "id": 2603, + "id": 3207, "modifierName": { "argumentTypes": null, - "id": 2602, - "name": "onlyWhenSaleActive", + "id": 3206, + "name": "onlyProjectOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "12216:18:5", + "referencedDeclaration": 1564, + "src": "13644:16:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "12216:18:5" + "src": "13644:16:11" } ], - "name": "buyTokens", + "name": "claimRemainingTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 2599, + "id": 3205, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2596, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2688, - "src": "12159:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2595, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12159:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2598, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2688, - "src": "12175:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2597, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12175:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12158:29:5" + "parameters": [], + "src": "13632:2:11" }, - "payable": true, + "payable": false, "returnParameters": { - "id": 2604, + "id": 3208, "nodeType": "ParameterList", "parameters": [], - "src": "12235:0:5" + "src": "13661:0:11" }, - "scope": 3279, - "src": "12140:654:5", - "stateMutability": "payable", - "superFunction": 1218, - "visibility": "public" + "scope": 3302, + "src": "13603:257:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" }, { "body": { - "id": 2724, + "id": 3259, "nodeType": "Block", - "src": "12861:282:5", + "src": "13912:85:11", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 2700, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2692, - "src": "12915:4:5", + "expression": { + "argumentTypes": null, + "id": 3244, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "13929:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 3245, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13929:13:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "id": 2701, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2694, - "src": "12933:6:5", + "hexValue": "30", + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13946:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - { + "src": "13929:18:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "condition": { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2704, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2694, - "src": "12967:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "baseExpression": { + "argumentTypes": null, + "id": 3248, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "13951:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2702, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "12953:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } + }, + "id": 3253, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 2703, + "id": 3252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "isToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "12953:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 2705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12953:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "arguments": [ - { + "leftExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2711, + "expression": { + "argumentTypes": null, + "id": 3249, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "13958:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13958:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3251, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13017:1:5", + "src": "13974:1:11", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2710, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13009:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13009:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "12953:66:5", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2708, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2694, - "src": "12999:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2706, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "12977:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } + "value": "1" }, - "id": 2707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "12977:21:5", + "src": "13958:17:11", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2709, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12977:29:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2715, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "13041:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - ], - "id": 2714, - "isConstant": false, - "isLValue": false, - "isPure": true, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:5", + "nodeType": "IndexAccess", + "src": "13951:25:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:14:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2718, - "name": "originToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "13069:11:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - ], - "id": 2717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13061:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" }, - "id": 2719, + "id": 3254, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13061:20:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2720, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1315, - "src": "13095:4:5", + "memberName": "endDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4438, + "src": "13951:33:11", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, - { - "argumentTypes": null, - "id": 2721, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1313, - "src": "13113:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { "argumentTypes": null, - "id": 2697, - "name": "PurchaseProcessing", + "id": 3255, + "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "12871:18:5", + "referencedDeclaration": 13443, + "src": "13987:3:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 5902, - "src": "12871:30:5", + "src": "13951:39:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (uint256[2] memory,bytes32,address,address,address,address,address)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12871:265:5", + "src": "13929:61:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2723, - "nodeType": "ExpressionStatement", - "src": "12871:265:5" + "functionReturnParameters": 3243, + "id": 3258, + "nodeType": "Return", + "src": "13922:68:11" } ] }, "documentation": null, - "id": 2725, + "id": 3260, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "_transferFee", + "name": "isEnded", "nodeType": "FunctionDefinition", "parameters": { - "id": 2695, + "id": 3240, + "nodeType": "ParameterList", + "parameters": [], + "src": "13882:2:11" + }, + "payable": false, + "returnParameters": { + "id": 3243, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2692, - "name": "_fee", + "id": 3242, + "name": "", "nodeType": "VariableDeclaration", - "scope": 2725, - "src": "12822:12:5", + "scope": 3260, + "src": "13906:4:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "baseType": { - "id": 2689, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12822:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2691, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 2690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12827:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "12822:7:5", + "id": 3241, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13906:4:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "value": null, "visibility": "internal" + } + ], + "src": "13905:6:11" + }, + "scope": 3302, + "src": "13866:131:11", + "stateMutability": "view", + "superFunction": 1742, + "visibility": "public" + }, + { + "body": { + "id": 3272, + "nodeType": "Block", + "src": "14054:79:11", + "statements": [ + { + "assignments": [ + null, + 3266 + ], + "declarations": [ + null, + { + "constant": false, + "id": 3266, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 3273, + "src": "14067:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3265, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14067:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3269, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3267, + "name": "getCurrentStageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3204 + ], + "referencedDeclaration": 3204, + "src": "14081:20:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view returns (uint256,bool)" + } + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14081:22:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14064:39:11" }, + { + "expression": { + "argumentTypes": null, + "id": 3270, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3266, + "src": "14121:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3264, + "id": 3271, + "nodeType": "Return", + "src": "14114:12:11" + } + ] + }, + "documentation": null, + "id": 3273, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isSaleActive", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3261, + "nodeType": "ParameterList", + "parameters": [], + "src": "14024:2:11" + }, + "payable": false, + "returnParameters": { + "id": 3264, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 2694, - "name": "method", + "id": 3263, + "name": "", "nodeType": "VariableDeclaration", - "scope": 2725, - "src": "12836:14:5", + "scope": 3273, + "src": "14048:4:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "id": 2693, - "name": "bytes32", + "id": 3262, + "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12836:7:5", + "src": "14048:4:11", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "value": null, "visibility": "internal" } ], - "src": "12821:30:5" - }, - "payable": false, - "returnParameters": { - "id": 2696, - "nodeType": "ParameterList", - "parameters": [], - "src": "12861:0:5" + "src": "14047:6:11" }, - "scope": 3279, - "src": "12800:343:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + "scope": 3302, + "src": "14003:130:11", + "stateMutability": "view", + "superFunction": 1747, + "visibility": "public" }, { "body": { - "id": 2764, + "id": 3291, "nodeType": "Block", - "src": "13249:251:5", + "src": "14166:110:11", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2743, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2729, - "src": "13308:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - { - "argumentTypes": null, - "id": 2744, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2733, - "src": "13330:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 2745, - "name": "vesting", + "id": 3275, + "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2735, - "src": "13348:7:5", + "referencedDeclaration": 1868, + "src": "14180:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - { - "argumentTypes": null, - "id": 2746, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2737, - "src": "13369:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "id": 3276, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14180:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14196:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, + "value": "0" + }, + "src": "14180:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3289, + "nodeType": "IfStatement", + "src": "14176:82:11", + "trueBody": { + "id": 3288, + "nodeType": "Block", + "src": "14199:59:11", + "statements": [ { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2749, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2737, - "src": "13403:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2747, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "13389:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 2748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "13389:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13389:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 2756, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3285, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "13453:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3280, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "14221:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 3282, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14228:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14221:9:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 3283, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4436, + "src": "14221:19:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2755, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13445:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2757, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13445:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "13389:66:5", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2753, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2737, - "src": "13435:6:5", + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 3284, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "14243:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14221:25:11", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 2751, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "13413:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "13413:21:5", + "id": 3279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "14213:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2754, + "id": 3286, "isConstant": false, "isLValue": false, "isPure": false, @@ -21499,124 +20979,104 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13413:29:5", + "src": "14213:34:11", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "id": 3287, + "nodeType": "ExpressionStatement", + "src": "14213:34:11" + } + ] + } + }, + { + "id": 3290, + "nodeType": "PlaceholderStatement", + "src": "14268:1:11" + } + ] + }, + "documentation": null, + "id": 3292, + "name": "beforeSaleStart", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3274, + "nodeType": "ParameterList", + "parameters": [], + "src": "14163:2:11" + }, + "src": "14139:137:11", + "visibility": "internal" + }, + { + "body": { + "id": 3300, + "nodeType": "Block", + "src": "14312:52:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2760, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "13477:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - } - ], + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } + "argumentTypes": [], + "id": 3295, + "name": "isSaleActive", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3273 ], - "id": 2759, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13469:7:5", + "referencedDeclaration": 3273, + "src": "14330:12:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } }, - "id": 2761, + "id": 3296, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13469:14:5", + "src": "14330:14:11", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 2740, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "13259:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 2742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferPurchase", - "nodeType": "MemberAccess", - "referencedDeclaration": 6075, - "src": "13259:35:5", + "id": 3294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "14322:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_uint32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", - "typeString": "function (uint256[5] memory,uint256[2] memory,uint32,bytes32,address,address)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2762, + "id": 3297, "isConstant": false, "isLValue": false, "isPure": false, @@ -21624,17164 +21084,1429 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13259:234:5", + "src": "14322:23:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2763, + "id": 3298, "nodeType": "ExpressionStatement", - "src": "13259:234:5" + "src": "14322:23:11" + }, + { + "id": 3299, + "nodeType": "PlaceholderStatement", + "src": "14356:1:11" } ] }, "documentation": null, - "id": 2765, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_transferPurchase", - "nodeType": "FunctionDefinition", + "id": 3301, + "name": "onlyWhenSaleActive", + "nodeType": "ModifierDefinition", "parameters": { - "id": 2738, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2729, - "name": "_invoice", - "nodeType": "VariableDeclaration", - "scope": 2765, - "src": "13176:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5]" - }, - "typeName": { - "baseType": { - "id": 2726, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13176:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2728, - "length": { - "argumentTypes": null, - "hexValue": "35", - "id": 2727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13181:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "5" - }, - "nodeType": "ArrayTypeName", - "src": "13176:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", - "typeString": "uint256[5]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2733, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2765, - "src": "13194:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" - }, - "typeName": { - "baseType": { - "id": 2730, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13194:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2732, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 2731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13199:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "13194:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2735, - "name": "vesting", - "nodeType": "VariableDeclaration", - "scope": 2765, - "src": "13208:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2734, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "13208:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2737, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2765, - "src": "13224:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2736, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "13224:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13175:64:5" - }, - "payable": false, - "returnParameters": { - "id": 2739, + "id": 3293, "nodeType": "ParameterList", "parameters": [], - "src": "13249:0:5" + "src": "14309:2:11" }, - "scope": 3279, - "src": "13149:351:5", - "stateMutability": "nonpayable", - "superFunction": null, + "src": "14282:82:11", "visibility": "internal" + } + ], + "scope": 3303, + "src": "741:13625:11" + } + ], + "src": "0:14367:11" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", + "exportedSymbols": { + "W12Crowdsale": [ + 3302 + ] + }, + "id": 3303, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1805, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:11" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 1806, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 12454, + "src": "26:65:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "file": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "id": 1807, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 13259, + "src": "92:67:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1808, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 12389, + "src": "160:59:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 1809, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 13084, + "src": "220:64:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "id": 1810, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 12987, + "src": "285:71:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "./IW12Crowdsale.sol", + "id": 1811, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 1761, + "src": "357:29:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "./IW12Fund.sol", + "id": 1812, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 1804, + "src": "387:24:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../rates/IRates.sol", + "id": 1813, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 10015, + "src": "412:29:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", + "file": "../libs/Percent.sol", + "id": 1814, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 6432, + "src": "442:29:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/PaymentMethods.sol", + "file": "../libs/PaymentMethods.sol", + "id": 1815, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 6287, + "src": "472:36:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", + "file": "../libs/PurchaseProcessing.sol", + "id": 1816, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 7270, + "src": "509:40:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Crowdsale.sol", + "file": "../libs/Crowdsale.sol", + "id": 1817, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 5201, + "src": "550:31:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", + "file": "../versioning/Versionable.sol", + "id": 1818, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 11834, + "src": "582:39:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../token/IWToken.sol", + "id": 1819, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 10486, + "src": "622:30:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/AdminRole.sol", + "file": "../access/roles/AdminRole.sol", + "id": 1820, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 1353, + "src": "653:39:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/ProjectOwnerRole.sol", + "file": "../access/roles/ProjectOwnerRole.sol", + "id": 1821, + "nodeType": "ImportDirective", + "scope": 3303, + "sourceUnit": 1620, + "src": "693:46:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1822, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "766:13:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 1823, + "nodeType": "InheritanceSpecifier", + "src": "766:13:11" }, { - "body": { - "id": 2863, - "nodeType": "Block", - "src": "13588:442:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 2782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2778, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2775, - "src": "13602:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2779, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "13612:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 2780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "METHOD_ETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 5303, - "src": "13612:29:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 2781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13612:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "13602:41:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2861, - "nodeType": "Block", - "src": "13799:225:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2826, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1303, - "src": "13875:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - ], - "id": 2825, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13867:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13867:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2832, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2773, - "src": "13898:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "id": 2834, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2833, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13903:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13898:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2828, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13882:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "id": 2830, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13891:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13882:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "13882:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13882:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2821, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2775, - "src": "13849:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2819, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "13827:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 2820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "13827:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 2822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13827:29:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2818, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "13821:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 2823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13821:36:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 2824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "13821:45:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13821:86:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2817, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "13813:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13813:95:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2838, - "nodeType": "ExpressionStatement", - "src": "13813:95:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2842, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "13942:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13942:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2844, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13954:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "id": 2846, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13963:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13954:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2847, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2775, - "src": "13967:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2852, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2773, - "src": "13991:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "id": 2854, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13996:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13991:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2848, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13975:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "id": 2850, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2849, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13984:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13975:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "13975:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13975:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2856, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "14001:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "id": 2858, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14010:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14001:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2839, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1303, - "src": "13922:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "id": 2841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recordPurchase", - "nodeType": "MemberAccess", - "referencedDeclaration": 1260, - "src": "13922:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,bytes32,uint256,uint256) payable external" - } - }, - "id": 2859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13922:91:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2860, - "nodeType": "ExpressionStatement", - "src": "13922:91:5" - } - ] - }, - "id": 2862, - "nodeType": "IfStatement", - "src": "13598:426:5", - "trueBody": { - "id": 2816, - "nodeType": "Block", - "src": "13645:148:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2797, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "13711:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13711:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2799, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13723:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "id": 2801, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13732:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13723:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2802, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2775, - "src": "13736:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2807, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2773, - "src": "13760:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "id": 2809, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13765:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13760:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2803, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13744:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "id": 2805, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13753:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13744:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "13744:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13744:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2811, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13770:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "id": 2813, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2812, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13779:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13770:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2792, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2773, - "src": "13701:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "id": 2794, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2793, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13706:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13701:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2788, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13685:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "id": 2790, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13694:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13685:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "13685:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13685:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2783, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1303, - "src": "13659:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "id": 2786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recordPurchase", - "nodeType": "MemberAccess", - "referencedDeclaration": 1260, - "src": "13659:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,bytes32,uint256,uint256) payable external" - } - }, - "id": 2787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13659:25:5", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$value_$", - "typeString": "function (uint256) returns (function (address,uint256,bytes32,uint256,uint256) payable external)" - } - }, - "id": 2796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13659:51:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$value", - "typeString": "function (address,uint256,bytes32,uint256,uint256) payable external" - } - }, - "id": 2814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13659:123:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2815, - "nodeType": "ExpressionStatement", - "src": "13659:123:5" - } - ] - } - } - ] - }, - "documentation": null, - "id": 2864, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_recordPurchase", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2776, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2769, - "name": "_invoice", - "nodeType": "VariableDeclaration", - "scope": 2864, - "src": "13531:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5]" - }, - "typeName": { - "baseType": { - "id": 2766, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13531:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2768, - "length": { - "argumentTypes": null, - "hexValue": "35", - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13536:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "5" - }, - "nodeType": "ArrayTypeName", - "src": "13531:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", - "typeString": "uint256[5]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2773, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2864, - "src": "13549:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" - }, - "typeName": { - "baseType": { - "id": 2770, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13549:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2772, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 2771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13554:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "13549:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2775, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2864, - "src": "13563:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2774, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "13563:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13530:48:5" - }, - "payable": false, - "returnParameters": { - "id": 2777, - "nodeType": "ParameterList", - "parameters": [], - "src": "13588:0:5" - }, - "scope": 3279, - "src": "13506:524:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2871, - "nodeType": "Block", - "src": "14088:29:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2869, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "14105:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "functionReturnParameters": 2868, - "id": 2870, - "nodeType": "Return", - "src": "14098:12:5" - } - ] - }, - "documentation": null, - "id": 2872, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getWToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2865, - "nodeType": "ParameterList", - "parameters": [], - "src": "14054:2:5" - }, - "payable": false, - "returnParameters": { - "id": 2868, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2867, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2872, - "src": "14079:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - }, - "typeName": { - "contractScope": null, - "id": 2866, - "name": "IWToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "14079:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14078:9:5" - }, - "scope": 3279, - "src": "14036:81:5", - "stateMutability": "view", - "superFunction": 1132, - "visibility": "external" - }, - { - "body": { - "id": 2879, - "nodeType": "Block", - "src": "14174:28:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2877, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1303, - "src": "14191:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "functionReturnParameters": 2876, - "id": 2878, - "nodeType": "Return", - "src": "14184:11:5" - } - ] - }, - "documentation": null, - "id": 2880, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getFund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2873, - "nodeType": "ParameterList", - "parameters": [], - "src": "14139:2:5" - }, - "payable": false, - "returnParameters": { - "id": 2876, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2875, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2880, - "src": "14164:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - }, - "typeName": { - "contractScope": null, - "id": 2874, - "name": "IW12Fund", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "14164:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14163:10:5" - }, - "scope": 3279, - "src": "14123:79:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2890, - "nodeType": "Block", - "src": "14274:45:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2886, - "name": "paymentMethods", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1317, - "src": "14291:14:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage", - "typeString": "struct PaymentMethods.Methods storage ref" - } - }, - "id": 2887, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "list", - "nodeType": "MemberAccess", - "referencedDeclaration": 5068, - "src": "14291:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Methods_$4962_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Methods_$4962_storage_ptr_$", - "typeString": "function (struct PaymentMethods.Methods storage pointer) view returns (bytes32[] memory)" - } - }, - "id": 2888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14291:21:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "functionReturnParameters": 2885, - "id": 2889, - "nodeType": "Return", - "src": "14284:28:5" - } - ] - }, - "documentation": null, - "id": 2891, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getPaymentMethodsList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2881, - "nodeType": "ParameterList", - "parameters": [], - "src": "14238:2:5" - }, - "payable": false, - "returnParameters": { - "id": 2885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2884, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2891, - "src": "14263:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 2882, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14263:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 2883, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14263:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14262:11:5" - }, - "scope": 3279, - "src": "14208:111:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2903, - "nodeType": "Block", - "src": "14403:57:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2900, - "name": "_method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2893, - "src": "14445:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2898, - "name": "paymentMethods", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1317, - "src": "14420:14:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage", - "typeString": "struct PaymentMethods.Methods storage ref" - } - }, - "id": 2899, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isAllowed", - "nodeType": "MemberAccess", - "referencedDeclaration": 5056, - "src": "14420:24:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Methods_$4962_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Methods_$4962_storage_ptr_$", - "typeString": "function (struct PaymentMethods.Methods storage pointer,bytes32) view returns (bool)" - } - }, - "id": 2901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14420:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2897, - "id": 2902, - "nodeType": "Return", - "src": "14413:40:5" - } - ] - }, - "documentation": null, - "id": 2904, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isPaymentMethodAllowed", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2894, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2893, - "name": "_method", - "nodeType": "VariableDeclaration", - "scope": 2904, - "src": "14357:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2892, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14357:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14356:17:5" - }, - "payable": false, - "returnParameters": { - "id": 2897, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2896, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2904, - "src": "14397:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2895, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "14397:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14396:6:5" - }, - "scope": 3279, - "src": "14325:135:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2992, - "nodeType": "Block", - "src": "14545:744:5", - "statements": [ - { - "assignments": [ - 2916, - 2918 - ], - "declarations": [ - { - "constant": false, - "id": 2916, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "14556:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2915, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14556:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2918, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "14568:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2917, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "14568:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2921, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2919, - "name": "getCurrentStageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3182, - "src": "14582:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view returns (uint256,bool)" - } - }, - "id": 2920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14582:22:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14555:49:5" - }, - { - "condition": { - "argumentTypes": null, - "id": 2923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14619:6:5", - "subExpression": { - "argumentTypes": null, - "id": 2922, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2918, - "src": "14620:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2925, - "nodeType": "IfStatement", - "src": "14615:19:5", - "trueBody": { - "expression": null, - "functionReturnParameters": 2914, - "id": 2924, - "nodeType": "Return", - "src": "14627:7:5" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 2930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2926, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "14648:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 2927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "METHOD_ETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 5303, - "src": "14648:29:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 2928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14648:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 2929, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "14683:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "14648:41:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2940, - "nodeType": "IfStatement", - "src": "14644:138:5", - "trueBody": { - "id": 2939, - "nodeType": "Block", - "src": "14691:91:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14709:22:5", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2933, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "14724:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2931, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "14710:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 2932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "14710:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 2934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14710:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2938, - "nodeType": "IfStatement", - "src": "14705:67:5", - "trueBody": { - "id": 2937, - "nodeType": "Block", - "src": "14733:39:5", - "statements": [ - { - "expression": null, - "functionReturnParameters": 2914, - "id": 2936, - "nodeType": "Return", - "src": "14751:7:5" - } - ] - } - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2943, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "14839:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2944, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2908, - "src": "14859:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2945, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "14879:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2947, - "indexExpression": { - "argumentTypes": null, - "id": 2946, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "14886:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14879:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 2948, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "discount", - "nodeType": "MemberAccess", - "referencedDeclaration": 1329, - "src": "14879:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2949, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "14915:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2951, - "indexExpression": { - "argumentTypes": null, - "id": 2950, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "14922:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14915:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 2952, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBoundaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "14915:30:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2953, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "14959:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2955, - "indexExpression": { - "argumentTypes": null, - "id": 2954, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "14966:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14959:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 2956, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBonuses", - "nodeType": "MemberAccess", - "referencedDeclaration": 1337, - "src": "14959:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2959, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "15010:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2957, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "15000:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 2958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 7263, - "src": "15000:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) view external returns (uint256)" - } - }, - "id": 2960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15000:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2961, - "name": "price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1307, - "src": "15031:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2963, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "15055:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 2964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 10145, - "src": "15055:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 2965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15055:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 2962, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15050:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 2966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15050:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 2971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2967, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "15086:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 2968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "METHOD_ETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 5303, - "src": "15086:29:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15086:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2970, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "15121:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "15086:41:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2977, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "15208:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2975, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "15186:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 2976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "15186:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 2978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15186:29:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2974, - "name": "DetailedERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10168, - "src": "15172:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$10168_$", - "typeString": "type(contract DetailedERC20)" - } - }, - "id": 2979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15172:44:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - } - }, - "id": 2980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 10145, - "src": "15172:53:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 2981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15172:55:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15167:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 2982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15167:61:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "15086:142:5", - "trueExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 2972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15146:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2987, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10559, - "src": "15266:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", - "typeString": "contract W12Crowdsale" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", - "typeString": "contract W12Crowdsale" - } - ], - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15258:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15258:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2984, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "15242:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "15242:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15242:30:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2941, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "14799:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 2942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "invoice", - "nodeType": "MemberAccess", - "referencedDeclaration": 5550, - "src": "14799:26:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$5_memory_ptr_$", - "typeString": "function (bytes32,uint256,uint256,uint256[] memory,uint256[] memory,uint256,uint256,uint256,uint256,uint256) view returns (uint256[5] memory)" - } - }, - "id": 2990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14799:483:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "functionReturnParameters": 2914, - "id": 2991, - "nodeType": "Return", - "src": "14792:490:5" - } - ] - }, - "documentation": null, - "id": 2993, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getInvoice", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2909, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2906, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "14486:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2905, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14486:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2908, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "14502:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2907, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14502:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14485:29:5" - }, - "payable": false, - "returnParameters": { - "id": 2914, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2913, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "14536:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5]" - }, - "typeName": { - "baseType": { - "id": 2910, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14536:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2912, - "length": { - "argumentTypes": null, - "hexValue": "35", - "id": 2911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14541:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "5" - }, - "nodeType": "ArrayTypeName", - "src": "14536:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", - "typeString": "uint256[5]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14535:9:5" - }, - "scope": 3279, - "src": "14466:823:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3081, - "nodeType": "Block", - "src": "15392:762:5", - "statements": [ - { - "assignments": [ - 3005, - 3007 - ], - "declarations": [ - { - "constant": false, - "id": 3005, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 3082, - "src": "15403:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3004, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15403:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3007, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 3082, - "src": "15415:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3006, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15415:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3010, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3008, - "name": "getCurrentStageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3182, - "src": "15429:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view returns (uint256,bool)" - } - }, - "id": 3009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15429:22:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15402:49:5" - }, - { - "condition": { - "argumentTypes": null, - "id": 3012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "15466:6:5", - "subExpression": { - "argumentTypes": null, - "id": 3011, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "15467:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3014, - "nodeType": "IfStatement", - "src": "15462:19:5", - "trueBody": { - "expression": null, - "functionReturnParameters": 3003, - "id": 3013, - "nodeType": "Return", - "src": "15474:7:5" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 3019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3015, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "15495:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 3016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "METHOD_ETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 5303, - "src": "15495:29:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15495:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 3018, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2995, - "src": "15530:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "15495:41:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3029, - "nodeType": "IfStatement", - "src": "15491:138:5", - "trueBody": { - "id": 3028, - "nodeType": "Block", - "src": "15538:91:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 3024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "15556:22:5", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3022, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2995, - "src": "15571:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3020, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "15557:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 3021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "15557:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 3023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15557:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3027, - "nodeType": "IfStatement", - "src": "15552:67:5", - "trueBody": { - "id": 3026, - "nodeType": "Block", - "src": "15580:39:5", - "statements": [ - { - "expression": null, - "functionReturnParameters": 3003, - "id": 3025, - "nodeType": "Return", - "src": "15598:7:5" - } - ] - } - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3032, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2995, - "src": "15699:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3033, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2997, - "src": "15719:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3034, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "15744:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3036, - "indexExpression": { - "argumentTypes": null, - "id": 3035, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "15751:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15744:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "discount", - "nodeType": "MemberAccess", - "referencedDeclaration": 1329, - "src": "15744:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3038, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "15780:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3040, - "indexExpression": { - "argumentTypes": null, - "id": 3039, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "15787:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15780:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 3041, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBoundaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "15780:30:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3042, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "15824:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3044, - "indexExpression": { - "argumentTypes": null, - "id": 3043, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "15831:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15824:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 3045, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBonuses", - "nodeType": "MemberAccess", - "referencedDeclaration": 1337, - "src": "15824:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3048, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2995, - "src": "15875:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3046, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "15865:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 3047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 7263, - "src": "15865:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) view external returns (uint256)" - } - }, - "id": 3049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15865:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3050, - "name": "price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1307, - "src": "15896:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3052, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "15920:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 3053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 10145, - "src": "15920:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 3054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15915:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15915:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 3060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3056, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "15951:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 3057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "METHOD_ETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 5303, - "src": "15951:29:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15951:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3059, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2995, - "src": "15986:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "15951:41:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3066, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2995, - "src": "16073:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3064, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "16051:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 3065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "16051:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 3067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16051:29:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3063, - "name": "DetailedERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10168, - "src": "16037:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$10168_$", - "typeString": "type(contract DetailedERC20)" - } - }, - "id": 3068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16037:44:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - } - }, - "id": 3069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 10145, - "src": "16037:53:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 3070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16037:55:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16032:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16032:61:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "15951:142:5", - "trueExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16011:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3076, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10559, - "src": "16131:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", - "typeString": "contract W12Crowdsale" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", - "typeString": "contract W12Crowdsale" - } - ], - "id": 3075, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16123:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16123:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "16107:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "16107:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 3078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16107:30:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3030, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "15646:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 3031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "invoiceByTokenAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 5703, - "src": "15646:39:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$4_memory_ptr_$", - "typeString": "function (bytes32,uint256,uint256,uint256[] memory,uint256[] memory,uint256,uint256,uint256,uint256,uint256) view returns (uint256[4] memory)" - } - }, - "id": 3079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15646:501:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", - "typeString": "uint256[4] memory" - } - }, - "functionReturnParameters": 3003, - "id": 3080, - "nodeType": "Return", - "src": "15639:508:5" - } - ] - }, - "documentation": null, - "id": 3082, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getInvoiceByTokenAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3082, - "src": "15328:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2994, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15328:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2997, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 3082, - "src": "15344:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2996, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15344:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15327:34:5" - }, - "payable": false, - "returnParameters": { - "id": 3003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3002, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3082, - "src": "15383:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", - "typeString": "uint256[4]" - }, - "typeName": { - "baseType": { - "id": 2999, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15383:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3001, - "length": { - "argumentTypes": null, - "hexValue": "34", - "id": 3000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15388:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "4" - }, - "nodeType": "ArrayTypeName", - "src": "15383:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", - "typeString": "uint256[4]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15382:9:5" - }, - "scope": 3279, - "src": "15295:859:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3101, - "nodeType": "Block", - "src": "16234:99:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3095, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3084, - "src": "16274:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3096, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "16287:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3097, - "name": "serviceFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1309, - "src": "16293:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3098, - "name": "WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1311, - "src": "16305:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "16251:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fee", - "nodeType": "MemberAccess", - "referencedDeclaration": 5745, - "src": "16251:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256[2] memory)" - } - }, - "id": 3099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16251:75:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "functionReturnParameters": 3092, - "id": 3100, - "nodeType": "Return", - "src": "16244:82:5" - } - ] - }, - "documentation": null, - "id": 3102, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3087, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3084, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 3102, - "src": "16176:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3083, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16176:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3086, - "name": "cost", - "nodeType": "VariableDeclaration", - "scope": 3102, - "src": "16194:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3085, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16194:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16175:29:5" - }, - "payable": false, - "returnParameters": { - "id": 3092, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3091, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3102, - "src": "16225:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" - }, - "typeName": { - "baseType": { - "id": 3088, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16225:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3090, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 3089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16230:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "16225:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16224:9:5" - }, - "scope": 3279, - "src": "16160:173:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3135, - "nodeType": "Block", - "src": "16411:238:5", - "statements": [ - { - "assignments": [ - 3110, - 3112 - ], - "declarations": [ - { - "constant": false, - "id": 3110, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 3136, - "src": "16422:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3109, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16422:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3112, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 3136, - "src": "16434:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3111, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16434:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3115, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3113, - "name": "getCurrentStageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3182, - "src": "16448:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view returns (uint256,bool)" - } - }, - "id": 3114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16448:22:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16421:49:5" - }, - { - "condition": { - "argumentTypes": null, - "id": 3117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16485:6:5", - "subExpression": { - "argumentTypes": null, - "id": 3116, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3112, - "src": "16486:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3119, - "nodeType": "IfStatement", - "src": "16481:19:5", - "trueBody": { - "expression": null, - "functionReturnParameters": 3108, - "id": 3118, - "nodeType": "Return", - "src": "16493:7:5" - } - }, - { - "assignments": [ - 3121 - ], - "declarations": [ - { - "constant": false, - "id": 3121, - "name": "stage", - "nodeType": "VariableDeclaration", - "scope": 3136, - "src": "16510:19:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" - }, - "typeName": { - "contractScope": null, - "id": 3120, - "name": "Stage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1338, - "src": "16510:5:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3125, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3122, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "16532:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3124, - "indexExpression": { - "argumentTypes": null, - "id": 3123, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3110, - "src": "16539:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16532:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16510:35:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3128, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3104, - "src": "16591:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3129, - "name": "stage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "16598:5:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" - } - }, - "id": 3130, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBoundaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "16598:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3131, - "name": "stage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "16622:5:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" - } - }, - "id": 3132, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBonuses", - "nodeType": "MemberAccess", - "referencedDeclaration": 1337, - "src": "16622:19:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3126, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "16563:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getBonus", - "nodeType": "MemberAccess", - "referencedDeclaration": 6117, - "src": "16563:27:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256[] memory,uint256[] memory) view returns (uint256)" - } - }, - "id": 3133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16563:79:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3108, - "id": 3134, - "nodeType": "Return", - "src": "16556:86:5" - } - ] - }, - "documentation": null, - "id": 3136, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSaleVolumeBonus", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3104, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 3136, - "src": "16367:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3103, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16367:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16366:12:5" - }, - "payable": false, - "returnParameters": { - "id": 3108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3107, - "name": "bonus", - "nodeType": "VariableDeclaration", - "scope": 3136, - "src": "16399:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3106, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16399:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16398:12:5" - }, - "scope": 3279, - "src": "16339:310:5", - "stateMutability": "view", - "superFunction": 1201, - "visibility": "public" - }, - { - "body": { - "id": 3181, - "nodeType": "Block", - "src": "16732:254:5", - "statements": [ - { - "body": { - "id": 3175, - "nodeType": "Block", - "src": "16782:170:5", - "statements": [ - { - "assignments": [ - 3155 - ], - "declarations": [ - { - "constant": false, - "id": 3155, - "name": "stage", - "nodeType": "VariableDeclaration", - "scope": 3182, - "src": "16796:19:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" - }, - "typeName": { - "contractScope": null, - "id": 3154, - "name": "Stage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1338, - "src": "16796:5:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3159, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3156, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "16818:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3158, - "indexExpression": { - "argumentTypes": null, - "id": 3157, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3144, - "src": "16825:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16818:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16796:31:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3160, - "name": "stage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3155, - "src": "16846:5:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" - } - }, - "id": 3161, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "startDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1325, - "src": "16846:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3162, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "16865:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16846:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3164, - "name": "stage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3155, - "src": "16872:5:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" - } - }, - "id": 3165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "endDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1327, - "src": "16872:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 3166, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "16888:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16872:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16846:45:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3174, - "nodeType": "IfStatement", - "src": "16842:100:5", - "trueBody": { - "id": 3173, - "nodeType": "Block", - "src": "16893:49:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3169, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3144, - "src": "16919:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16922:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "id": 3171, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16918:9:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "functionReturnParameters": 3142, - "id": 3172, - "nodeType": "Return", - "src": "16911:16:5" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3147, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3144, - "src": "16758:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3148, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "16762:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3149, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16762:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16758:17:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3176, - "initializationExpression": { - "assignments": [ - 3144 - ], - "declarations": [ - { - "constant": false, - "id": 3144, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3182, - "src": "16746:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3143, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16746:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3146, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16755:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "16746:10:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "16777:3:5", - "subExpression": { - "argumentTypes": null, - "id": 3151, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3144, - "src": "16777:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3153, - "nodeType": "ExpressionStatement", - "src": "16777:3:5" - }, - "nodeType": "ForStatement", - "src": "16742:210:5" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3177, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16970:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16973:5:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "id": 3179, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16969:10:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", - "typeString": "tuple(int_const 0,bool)" - } - }, - "functionReturnParameters": 3142, - "id": 3180, - "nodeType": "Return", - "src": "16962:17:5" - } - ] - }, - "documentation": null, - "id": 3182, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getCurrentStageIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3137, - "nodeType": "ParameterList", - "parameters": [], - "src": "16684:2:5" - }, - "payable": false, - "returnParameters": { - "id": 3142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3139, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 3182, - "src": "16708:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3138, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16708:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3141, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 3182, - "src": "16720:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3140, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16720:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16707:24:5" - }, - "scope": 3279, - "src": "16655:331:5", - "stateMutability": "view", - "superFunction": 1194, - "visibility": "public" - }, - { - "body": { - "id": 3214, - "nodeType": "Block", - "src": "17043:189:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3188, - "name": "isEnded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3236, - "src": "17061:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 3189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17061:9:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3187, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "17053:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17053:18:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3191, - "nodeType": "ExpressionStatement", - "src": "17053:18:5" - }, - { - "assignments": [ - 3193 - ], - "declarations": [ - { - "constant": false, - "id": 3193, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 3215, - "src": "17082:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3192, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17082:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3200, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3197, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10559, - "src": "17120:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", - "typeString": "contract W12Crowdsale" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", - "typeString": "contract W12Crowdsale" - } - ], - "id": 3196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17112:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17112:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3194, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "17096:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 3195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "17096:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17096:30:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17082:44:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3204, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10052, - "src": "17160:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3205, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3193, - "src": "17167:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3202, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "17145:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "17145:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17145:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3201, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "17137:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17137:38:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3208, - "nodeType": "ExpressionStatement", - "src": "17137:38:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3210, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10052, - "src": "17211:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3211, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3193, - "src": "17218:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3209, - "name": "UnsoldTokenReturned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1377, - "src": "17191:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 3212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17191:34:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3213, - "nodeType": "EmitStatement", - "src": "17186:39:5" - } - ] - }, - "documentation": null, - "id": 3215, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3185, - "modifierName": { - "argumentTypes": null, - "id": 3184, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "17033:9:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "17033:9:5" - } - ], - "name": "claimRemainingTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3183, - "nodeType": "ParameterList", - "parameters": [], - "src": "17021:2:5" - }, - "payable": false, - "returnParameters": { - "id": 3186, - "nodeType": "ParameterList", - "parameters": [], - "src": "17043:0:5" - }, - "scope": 3279, - "src": "16992:240:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3235, - "nodeType": "Block", - "src": "17284:85:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3220, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "17301:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3221, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17301:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3222, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17318:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17301:18:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3224, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "17323:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3229, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3225, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "17330:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3226, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17330:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17346:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "17330:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17323:25:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 3230, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "endDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1327, - "src": "17323:33:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3231, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "17359:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17323:39:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17301:61:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3219, - "id": 3234, - "nodeType": "Return", - "src": "17294:68:5" - } - ] - }, - "documentation": null, - "id": 3236, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isEnded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3216, - "nodeType": "ParameterList", - "parameters": [], - "src": "17254:2:5" - }, - "payable": false, - "returnParameters": { - "id": 3219, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3218, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "17278:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3217, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17278:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17277:6:5" - }, - "scope": 3279, - "src": "17238:131:5", - "stateMutability": "view", - "superFunction": 1206, - "visibility": "public" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "17426:79:5", - "statements": [ - { - "assignments": [ - null, - 3242 - ], - "declarations": [ - null, - { - "constant": false, - "id": 3242, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "17439:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3241, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17439:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3245, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3243, - "name": "getCurrentStageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3182, - "src": "17453:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view returns (uint256,bool)" - } - }, - "id": 3244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17453:22:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17436:39:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3246, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3242, - "src": "17493:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3240, - "id": 3247, - "nodeType": "Return", - "src": "17486:12:5" - } - ] - }, - "documentation": null, - "id": 3249, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isSaleActive", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "17396:2:5" - }, - "payable": false, - "returnParameters": { - "id": 3240, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3239, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "17420:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3238, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17420:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17419:6:5" - }, - "scope": 3279, - "src": "17375:130:5", - "stateMutability": "view", - "superFunction": 1211, - "visibility": "public" - }, - { - "body": { - "id": 3267, - "nodeType": "Block", - "src": "17538:110:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3251, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "17552:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3252, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17552:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17568:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17552:17:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3265, - "nodeType": "IfStatement", - "src": "17548:82:5", - "trueBody": { - "id": 3264, - "nodeType": "Block", - "src": "17571:59:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3256, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "17593:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3258, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17600:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17593:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 3259, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "startDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1325, - "src": "17593:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 3260, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "17615:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17593:25:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3255, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "17585:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17585:34:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3263, - "nodeType": "ExpressionStatement", - "src": "17585:34:5" - } - ] - } - }, - { - "id": 3266, - "nodeType": "PlaceholderStatement", - "src": "17640:1:5" - } - ] - }, - "documentation": null, - "id": 3268, - "name": "beforeSaleStart", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3250, - "nodeType": "ParameterList", - "parameters": [], - "src": "17535:2:5" - }, - "src": "17511:137:5", - "visibility": "internal" - }, - { - "body": { - "id": 3277, - "nodeType": "Block", - "src": "17684:79:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3271, - "name": "isSaleActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3249, - "src": "17702:12:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17702:14:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "53616c65206973206e6f74207374617274656420796574", - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17718:25:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5d3dac2c5e5eaf55904e5c5b3584f31d9fc0f4cb1622762f2b62bd65063805dc", - "typeString": "literal_string \"Sale is not started yet\"" - }, - "value": "Sale is not started yet" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5d3dac2c5e5eaf55904e5c5b3584f31d9fc0f4cb1622762f2b62bd65063805dc", - "typeString": "literal_string \"Sale is not started yet\"" - } - ], - "id": 3270, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10492, - "src": "17694:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17694:50:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3275, - "nodeType": "ExpressionStatement", - "src": "17694:50:5" - }, - { - "id": 3276, - "nodeType": "PlaceholderStatement", - "src": "17755:1:5" - } - ] - }, - "documentation": null, - "id": 3278, - "name": "onlyWhenSaleActive", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3269, - "nodeType": "ParameterList", - "parameters": [], - "src": "17681:2:5" - }, - "src": "17654:109:5", - "visibility": "internal" - } - ], - "scope": 3280, - "src": "667:17098:5" - } - ], - "src": "0:17766:5" - }, - "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", - "exportedSymbols": { - "W12Crowdsale": [ - 3279 - ] - }, - "id": 3280, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1263, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:5" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1264, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 10135, - "src": "26:63:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 1265, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 9778, - "src": "90:61:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1266, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 10049, - "src": "152:59:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 1267, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 10212, - "src": "212:63:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "id": 1268, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 10169, - "src": "276:71:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", - "file": "solidity-bytes-utils/contracts/BytesLib.sol", - "id": 1269, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 10474, - "src": "348:53:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", - "file": "./IW12Crowdsale.sol", - "id": 1270, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 1225, - "src": "402:29:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", - "file": "./IW12Fund.sol", - "id": 1271, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 1262, - "src": "432:24:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", - "file": "../rates/IRates.sol", - "id": 1272, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 7280, - "src": "457:29:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", - "file": "../libs/Percent.sol", - "id": 1273, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 5215, - "src": "487:29:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/libs/PaymentMethods.sol", - "file": "../libs/PaymentMethods.sol", - "id": 1274, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 5070, - "src": "517:36:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", - "file": "../libs/PurchaseProcessing.sol", - "id": 1275, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 6119, - "src": "554:40:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "../versioning/Versionable.sol", - "id": 1276, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 9517, - "src": "595:39:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", - "file": "../token/IWToken.sol", - "id": 1277, - "nodeType": "ImportDirective", - "scope": 3280, - "sourceUnit": 7895, - "src": "635:30:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1278, - "name": "Versionable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "692:11:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", - "typeString": "contract Versionable" - } - }, - "id": 1279, - "nodeType": "InheritanceSpecifier", - "src": "692:11:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1280, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "705:13:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 1281, - "nodeType": "InheritanceSpecifier", - "src": "705:13:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1282, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "720:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" - } - }, - "id": 1283, - "nodeType": "InheritanceSpecifier", - "src": "720:7:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1284, - "name": "ReentrancyGuard", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9777, - "src": "729:15:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9777", - "typeString": "contract ReentrancyGuard" - } - }, - "id": 1285, - "nodeType": "InheritanceSpecifier", - "src": "729:15:5" - } - ], - "contractDependencies": [ - 1224, - 9516, - 9777, - 10134 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3279, - "linearizedBaseContracts": [ - 3279, - 9777, - 10134, - 1224, - 9516 - ], - "name": "W12Crowdsale", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1288, - "libraryName": { - "contractScope": null, - "id": 1286, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "757:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "751:24:5", - "typeName": { - "id": 1287, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "770:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 1291, - "libraryName": { - "contractScope": null, - "id": 1289, - "name": "Percent", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5214, - "src": "786:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$5214", - "typeString": "library Percent" - } - }, - "nodeType": "UsingForDirective", - "src": "780:23:5", - "typeName": { - "id": 1290, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "798:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 1294, - "libraryName": { - "contractScope": null, - "id": 1292, - "name": "BytesLib", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10473, - "src": "814:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BytesLib_$10473", - "typeString": "library BytesLib" - } - }, - "nodeType": "UsingForDirective", - "src": "808:25:5", - "typeName": { - "id": 1293, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "827:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - { - "id": 1297, - "libraryName": { - "contractScope": null, - "id": 1295, - "name": "PaymentMethods", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5069, - "src": "844:14:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PaymentMethods_$5069", - "typeString": "library PaymentMethods" - } - }, - "nodeType": "UsingForDirective", - "src": "838:48:5", - "typeName": { - "contractScope": null, - "id": 1296, - "name": "PaymentMethods.Methods", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4962, - "src": "863:22:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", - "typeString": "struct PaymentMethods.Methods" - } - } - }, - { - "constant": false, - "id": 1299, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "892:20:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - }, - "typeName": { - "contractScope": null, - "id": 1298, - "name": "IWToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "892:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1301, - "name": "originToken", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "918:24:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - }, - "typeName": { - "contractScope": null, - "id": 1300, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "918:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1303, - "name": "fund", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "948:20:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - }, - "typeName": { - "contractScope": null, - "id": 1302, - "name": "IW12Fund", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "948:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1305, - "name": "rates", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "974:19:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - }, - "typeName": { - "contractScope": null, - "id": 1304, - "name": "IRates", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "974:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1307, - "name": "price", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "999:17:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1306, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "999:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1309, - "name": "serviceFee", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1022:22:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1308, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1022:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1311, - "name": "WTokenSaleFeePercent", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1050:32:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1310, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1050:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1313, - "name": "serviceWallet", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1088:28:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1312, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1088:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1315, - "name": "swap", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1122:19:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1314, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1122:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1317, - "name": "paymentMethods", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1179:37:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage", - "typeString": "struct PaymentMethods.Methods" - }, - "typeName": { - "contractScope": null, - "id": 1316, - "name": "PaymentMethods.Methods", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4962, - "src": "1179:22:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage_ptr", - "typeString": "struct PaymentMethods.Methods" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1320, - "name": "stages", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1223:21:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1318, - "name": "Stage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1338, - "src": "1223:5:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" - } - }, - "id": 1319, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1223:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage_ptr", - "typeString": "struct W12Crowdsale.Stage[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1323, - "name": "milestones", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "1250:29:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1321, - "name": "Milestone", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1351, - "src": "1250:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage_ptr", - "typeString": "struct W12Crowdsale.Milestone" - } - }, - "id": 1322, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1250:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage_ptr", - "typeString": "struct W12Crowdsale.Milestone[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "W12Crowdsale.Stage", - "id": 1338, - "members": [ - { - "constant": false, - "id": 1325, - "name": "startDate", - "nodeType": "VariableDeclaration", - "scope": 1338, - "src": "1309:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1324, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1309:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1327, - "name": "endDate", - "nodeType": "VariableDeclaration", - "scope": 1338, - "src": "1335:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1326, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1335:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1329, - "name": "discount", - "nodeType": "VariableDeclaration", - "scope": 1338, - "src": "1359:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1328, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1359:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1331, - "name": "vesting", - "nodeType": "VariableDeclaration", - "scope": 1338, - "src": "1382:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1330, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1382:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1334, - "name": "volumeBoundaries", - "nodeType": "VariableDeclaration", - "scope": 1338, - "src": "1406:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1332, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1406:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1333, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1406:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1337, - "name": "volumeBonuses", - "nodeType": "VariableDeclaration", - "scope": 1338, - "src": "1439:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1335, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1439:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1336, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1439:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Stage", - "nodeType": "StructDefinition", - "scope": 3279, - "src": "1286:180:5", - "visibility": "public" - }, - { - "canonicalName": "W12Crowdsale.Milestone", - "id": 1351, - "members": [ - { - "constant": false, - "id": 1340, - "name": "endDate", - "nodeType": "VariableDeclaration", - "scope": 1351, - "src": "1499:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1339, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1499:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1342, - "name": "tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 1351, - "src": "1523:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1341, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1523:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1344, - "name": "voteEndDate", - "nodeType": "VariableDeclaration", - "scope": 1351, - "src": "1552:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1343, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1552:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1346, - "name": "withdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 1351, - "src": "1580:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1345, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1580:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1348, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1351, - "src": "1613:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1347, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1613:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1350, - "name": "description", - "nodeType": "VariableDeclaration", - "scope": 1351, - "src": "1633:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1349, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1633:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Milestone", - "nodeType": "StructDefinition", - "scope": 3279, - "src": "1472:185:5", - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 1361, - "name": "TokenPurchase", - "nodeType": "EventDefinition", - "parameters": { - "id": 1360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1353, - "indexed": true, - "name": "buyer", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "1683:21:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1683:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1355, - "indexed": false, - "name": "tokensBought", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "1706:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1354, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1706:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1357, - "indexed": false, - "name": "cost", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "1725:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1356, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1725:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1359, - "indexed": false, - "name": "change", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "1736:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1358, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1736:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1682:66:5" - }, - "src": "1663:86:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 1363, - "name": "StagesUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "1773:2:5" - }, - "src": "1754:22:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 1367, - "name": "StageUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1366, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1365, - "indexed": false, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1367, - "src": "1800:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1364, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1800:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1799:12:5" - }, - "src": "1781:31:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 1369, - "name": "MilestonesUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1368, - "nodeType": "ParameterList", - "parameters": [], - "src": "1840:2:5" - }, - "src": "1817:26:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 1371, - "name": "CrowdsaleSetUpDone", - "nodeType": "EventDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "1872:2:5" - }, - "src": "1848:27:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 1377, - "name": "UnsoldTokenReturned", - "nodeType": "EventDefinition", - "parameters": { - "id": 1376, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1373, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "1906:21:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1372, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1906:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1375, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "1929:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1374, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1929:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:36:5" - }, - "src": "1880:62:5" - }, - { - "body": { - "id": 1504, - "nodeType": "Block", - "src": "2268:663:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1404, - "name": "_originToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1381, - "src": "2286:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2310:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1405, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2302:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2302:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2286:26:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2278:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2278:35:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1410, - "nodeType": "ExpressionStatement", - "src": "2278:35:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1412, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1383, - "src": "2331:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2349:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2341:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2341:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2331:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1411, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2323:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2323:29:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1418, - "nodeType": "ExpressionStatement", - "src": "2323:29:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1420, - "name": "_serviceFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "2370:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "2370:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 1422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2370:23:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1423, - "name": "_serviceFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "2397:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "2397:23:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 1425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2397:25:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "313030", - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2425:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "src": "2397:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2370:58:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1419, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2362:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2362:67:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "2362:67:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1432, - "name": "_WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "2447:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "2447:31:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 1434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2447:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1435, - "name": "_WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "2484:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "2484:33:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2484:35:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "313030", - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2522:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "src": "2484:41:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2447:78:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1431, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2439:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2439:87:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1442, - "nodeType": "ExpressionStatement", - "src": "2439:87:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1444, - "name": "_fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "2544:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2561:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2553:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2553:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2544:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1443, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2536:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2536:28:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1450, - "nodeType": "ExpressionStatement", - "src": "2536:28:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1452, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1389, - "src": "2582:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1454, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2599:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1453, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2591:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1455, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2591:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2582:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1451, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2574:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2574:28:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1458, - "nodeType": "ExpressionStatement", - "src": "2574:28:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1460, - "name": "_rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1397, - "src": "2620:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2638:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1461, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2630:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2630:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2620:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1459, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2612:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2612:29:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1466, - "nodeType": "ExpressionStatement", - "src": "2612:29:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1468, - "name": "_price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1385, - "src": "2668:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1469, - "name": "_serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1387, - "src": "2676:14:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1467, - "name": "__setParameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1733, - "src": "2652:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,address)" - } - }, - "id": 1470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2652:39:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1471, - "nodeType": "ExpressionStatement", - "src": "2652:39:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1472, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "2702:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1474, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1383, - "src": "2718:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1473, - "name": "IWToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7894, - "src": "2710:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWToken_$7894_$", - "typeString": "type(contract IWToken)" - } - }, - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2710:15:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "src": "2702:23:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 1477, - "nodeType": "ExpressionStatement", - "src": "2702:23:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1478, - "name": "originToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "2735:11:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1480, - "name": "_originToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1381, - "src": "2755:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1479, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "2749:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2749:19:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "src": "2735:33:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 1483, - "nodeType": "ExpressionStatement", - "src": "2735:33:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1484, - "name": "serviceFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1309, - "src": "2778:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1485, - "name": "_serviceFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "2791:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2778:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1487, - "nodeType": "ExpressionStatement", - "src": "2778:24:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1488, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1315, - "src": "2812:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1489, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1389, - "src": "2819:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2812:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1491, - "nodeType": "ExpressionStatement", - "src": "2812:12:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1492, - "name": "WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1311, - "src": "2834:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1493, - "name": "_WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "2857:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2834:44:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1495, - "nodeType": "ExpressionStatement", - "src": "2834:44:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1496, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1303, - "src": "2888:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1497, - "name": "_fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "2895:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "src": "2888:12:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "id": 1499, - "nodeType": "ExpressionStatement", - "src": "2888:12:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1500, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "2910:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1501, - "name": "_rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1397, - "src": "2918:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "src": "2910:14:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 1503, - "nodeType": "ExpressionStatement", - "src": "2910:14:5" - } - ] - }, - "documentation": null, - "id": 1505, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1400, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "2248:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1401, - "modifierName": { - "argumentTypes": null, - "id": 1399, - "name": "Versionable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "2236:11:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", - "typeString": "type(contract Versionable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2236:20:5" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1398, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "1970:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1970:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1381, - "name": "_originToken", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "1992:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1383, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2022:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1382, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2022:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1385, - "name": "_price", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2046:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1384, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2046:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1387, - "name": "_serviceWallet", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2067:22:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1386, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2067:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1389, - "name": "_swap", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2099:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1388, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2099:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1391, - "name": "_serviceFee", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2122:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1390, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2122:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1393, - "name": "_WTokenSaleFeePercent", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2148:26:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1392, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2148:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1395, - "name": "_fund", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2184:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - }, - "typeName": { - "contractScope": null, - "id": 1394, - "name": "IW12Fund", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "2184:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1397, - "name": "_rates", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "2208:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - }, - "typeName": { - "contractScope": null, - "id": 1396, - "name": "IRates", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "2208:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1960:267:5" - }, - "payable": false, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "2268:0:5" - }, - "scope": 3279, - "src": "1948:983:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1513, - "nodeType": "Block", - "src": "2990:37:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1510, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3007:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1511, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3007:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1509, - "id": 1512, - "nodeType": "Return", - "src": "3000:20:5" - } - ] - }, - "documentation": null, - "id": 1514, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "stagesLength", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1506, - "nodeType": "ParameterList", - "parameters": [], - "src": "2958:2:5" - }, - "payable": false, - "returnParameters": { - "id": 1509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1508, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1514, - "src": "2984:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1507, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2984:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2983:6:5" - }, - "scope": 3279, - "src": "2937:90:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1522, - "nodeType": "Block", - "src": "3090:41:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1519, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3107:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1520, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3107:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1518, - "id": 1521, - "nodeType": "Return", - "src": "3100:24:5" - } - ] - }, - "documentation": null, - "id": 1523, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "milestonesLength", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1515, - "nodeType": "ParameterList", - "parameters": [], - "src": "3058:2:5" - }, - "payable": false, - "returnParameters": { - "id": 1518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1517, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1523, - "src": "3084:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1516, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3084:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3083:6:5" - }, - "scope": 3279, - "src": "3033:98:5", - "stateMutability": "view", - "superFunction": 1187, - "visibility": "external" - }, - { - "body": { - "id": 1566, - "nodeType": "Block", - "src": "3236:289:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1540, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3267:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1542, - "indexExpression": { - "argumentTypes": null, - "id": 1541, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3278:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3267:17:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" - } - }, - "id": 1543, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "endDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1340, - "src": "3267:25:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1544, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3306:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1546, - "indexExpression": { - "argumentTypes": null, - "id": 1545, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3317:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3306:17:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tranchePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 1342, - "src": "3306:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1548, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3352:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1550, - "indexExpression": { - "argumentTypes": null, - "id": 1549, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3363:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3352:17:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" - } - }, - "id": 1551, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "voteEndDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1344, - "src": "3352:29:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1552, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3395:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1554, - "indexExpression": { - "argumentTypes": null, - "id": 1553, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3406:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3395:17:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" - } - }, - "id": 1555, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "withdrawalWindow", - "nodeType": "MemberAccess", - "referencedDeclaration": 1346, - "src": "3395:34:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1556, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3443:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1558, - "indexExpression": { - "argumentTypes": null, - "id": 1557, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3454:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3443:17:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" - } - }, - "id": 1559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1348, - "src": "3443:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1560, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "3479:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1562, - "indexExpression": { - "argumentTypes": null, - "id": 1561, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3490:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3479:17:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" - } - }, - "id": 1563, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "description", - "nodeType": "MemberAccess", - "referencedDeclaration": 1350, - "src": "3479:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - } - ], - "id": 1564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3253:265:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_storage_$_t_bytes_storage_$", - "typeString": "tuple(uint32,uint256,uint32,uint32,bytes storage ref,bytes storage ref)" - } - }, - "functionReturnParameters": 1539, - "id": 1565, - "nodeType": "Return", - "src": "3246:272:5" - } - ] - }, - "documentation": null, - "id": 1567, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getMilestone", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1526, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1525, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3159:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1524, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3159:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3158:12:5" - }, - "payable": false, - "returnParameters": { - "id": 1539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1528, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3192:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1527, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3192:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1530, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3200:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1529, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3200:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3206:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1531, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3206:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1534, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3214:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1533, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3214:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1536, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3222:5:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1535, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3222:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1538, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1567, - "src": "3229:5:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1537, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3229:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3191:44:5" - }, - "scope": 3279, - "src": "3137:388:5", - "stateMutability": "view", - "superFunction": 1149, - "visibility": "public" - }, - { - "body": { - "id": 1612, - "nodeType": "Block", - "src": "3628:262:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1586, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3659:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1588, - "indexExpression": { - "argumentTypes": null, - "id": 1587, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1569, - "src": "3666:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3659:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 1589, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "startDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1325, - "src": "3659:23:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1590, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3696:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1592, - "indexExpression": { - "argumentTypes": null, - "id": 1591, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1569, - "src": "3703:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3696:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 1593, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "endDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1327, - "src": "3696:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1594, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3731:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1596, - "indexExpression": { - "argumentTypes": null, - "id": 1595, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1569, - "src": "3738:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3731:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 1597, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "discount", - "nodeType": "MemberAccess", - "referencedDeclaration": 1329, - "src": "3731:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1598, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3767:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1600, - "indexExpression": { - "argumentTypes": null, - "id": 1599, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1569, - "src": "3774:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3767:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 1601, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "vesting", - "nodeType": "MemberAccess", - "referencedDeclaration": 1331, - "src": "3767:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1602, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3802:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1604, - "indexExpression": { - "argumentTypes": null, - "id": 1603, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1569, - "src": "3809:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3802:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 1605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBoundaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "3802:30:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1606, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3846:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1608, - "indexExpression": { - "argumentTypes": null, - "id": 1607, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1569, - "src": "3853:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3846:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 1609, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBonuses", - "nodeType": "MemberAccess", - "referencedDeclaration": 1337, - "src": "3846:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - } - ], - "id": 1610, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3645:238:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint32_$_t_array$_t_uint256_$dyn_storage_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "tuple(uint32,uint32,uint256,uint32,uint256[] storage ref,uint256[] storage ref)" - } - }, - "functionReturnParameters": 1585, - "id": 1611, - "nodeType": "Return", - "src": "3638:245:5" - } - ] - }, - "documentation": null, - "id": 1613, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getStage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1570, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1569, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3549:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1568, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3549:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3548:12:5" - }, - "payable": false, - "returnParameters": { - "id": 1585, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1572, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3582:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1571, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3582:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1574, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3590:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1573, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3590:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1576, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3598:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3598:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1578, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3604:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1577, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3604:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1581, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3612:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1579, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3612:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1580, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3612:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1584, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1613, - "src": "3620:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1582, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3620:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1583, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3620:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3581:46:5" - }, - "scope": 3279, - "src": "3531:359:5", - "stateMutability": "view", - "superFunction": 1168, - "visibility": "public" - }, - { - "body": { - "id": 1633, - "nodeType": "Block", - "src": "3949:94:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1619, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "3967:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1620, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3967:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3983:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3967:17:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1618, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3959:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3959:26:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1624, - "nodeType": "ExpressionStatement", - "src": "3959:26:5" - }, - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1625, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "4003:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1630, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1626, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "4010:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1627, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4010:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4026:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4010:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4003:25:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 1631, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "endDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1327, - "src": "4003:33:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 1617, - "id": 1632, - "nodeType": "Return", - "src": "3996:40:5" - } - ] - }, - "documentation": null, - "id": 1634, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getEndDate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1614, - "nodeType": "ParameterList", - "parameters": [], - "src": "3915:2:5" - }, - "payable": false, - "returnParameters": { - "id": 1617, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1616, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1634, - "src": "3941:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1615, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3941:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3940:8:5" - }, - "scope": 3279, - "src": "3896:147:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1673, - "nodeType": "Block", - "src": "4210:266:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1641, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "4223:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1642, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4223:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4244:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4223:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 1647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4249:10:5", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1645, - "name": "isEnded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3236, - "src": "4250:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4250:9:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4223:36:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1650, - "nodeType": "IfStatement", - "src": "4220:48:5", - "trueBody": { - "expression": null, - "functionReturnParameters": 1640, - "id": 1649, - "nodeType": "Return", - "src": "4261:7:5" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1651, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1639, - "src": "4278:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1652, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4286:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4278:12:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1654, - "nodeType": "ExpressionStatement", - "src": "4278:12:5" - }, - { - "body": { - "id": 1671, - "nodeType": "Block", - "src": "4438:32:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4452:7:5", - "subExpression": { - "argumentTypes": null, - "id": 1668, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1637, - "src": "4452:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1670, - "nodeType": "ExpressionStatement", - "src": "4452:7:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1655, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1637, - "src": "4362:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1656, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "4370:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1657, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4370:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1658, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4390:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4370:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4362:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1661, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "4395:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1662, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "4402:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1664, - "indexExpression": { - "argumentTypes": null, - "id": 1663, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1637, - "src": "4413:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4402:17:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" - } - }, - "id": 1665, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "withdrawalWindow", - "nodeType": "MemberAccess", - "referencedDeclaration": 1346, - "src": "4402:34:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4395:41:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4362:74:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1672, - "nodeType": "WhileStatement", - "src": "4356:114:5" - } - ] - }, - "documentation": "@dev Returns index of active milestone or last milestone", - "id": 1674, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getCurrentMilestoneIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1635, - "nodeType": "ParameterList", - "parameters": [], - "src": "4162:2:5" - }, - "payable": false, - "returnParameters": { - "id": 1640, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1637, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1674, - "src": "4186:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1636, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4186:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1639, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 1674, - "src": "4198:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1638, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4198:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4185:24:5" - }, - "scope": 3279, - "src": "4129:347:5", - "stateMutability": "view", - "superFunction": 1175, - "visibility": "public" - }, - { - "body": { - "id": 1702, - "nodeType": "Block", - "src": "4560:127:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1681, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "4574:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1682, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4574:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4595:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4574:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 1687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4600:10:5", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1685, - "name": "isEnded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3236, - "src": "4601:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4601:9:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4574:36:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1690, - "nodeType": "IfStatement", - "src": "4570:49:5", - "trueBody": { - "expression": null, - "functionReturnParameters": 1680, - "id": 1689, - "nodeType": "Return", - "src": "4612:7:5" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1691, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1679, - "src": "4629:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4637:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4629:12:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1694, - "nodeType": "ExpressionStatement", - "src": "4629:12:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1695, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1677, - "src": "4651:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1696, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "4659:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1697, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4659:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1698, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4679:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4659:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4651:29:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1701, - "nodeType": "ExpressionStatement", - "src": "4651:29:5" - } - ] - }, - "documentation": null, - "id": 1703, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLastMilestoneIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1675, - "nodeType": "ParameterList", - "parameters": [], - "src": "4512:2:5" - }, - "payable": false, - "returnParameters": { - "id": 1680, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1677, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1703, - "src": "4536:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1676, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4536:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1679, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 1703, - "src": "4548:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1678, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4548:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4535:24:5" - }, - "scope": 3279, - "src": "4482:205:5", - "stateMutability": "view", - "superFunction": 1182, - "visibility": "public" - }, - { - "body": { - "id": 1732, - "nodeType": "Block", - "src": "4764:148:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1711, - "name": "_price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "4782:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4791:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4782:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1710, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "4774:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4774:19:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1715, - "nodeType": "ExpressionStatement", - "src": "4774:19:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1717, - "name": "_serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1707, - "src": "4811:14:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4837:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4829:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4829:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4811:28:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1716, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "4803:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4803:37:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1723, - "nodeType": "ExpressionStatement", - "src": "4803:37:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1724, - "name": "price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1307, - "src": "4851:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1725, - "name": "_price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "4859:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4851:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1727, - "nodeType": "ExpressionStatement", - "src": "4851:14:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1728, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1313, - "src": "4875:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1729, - "name": "_serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1707, - "src": "4891:14:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4875:30:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1731, - "nodeType": "ExpressionStatement", - "src": "4875:30:5" - } - ] - }, - "documentation": null, - "id": 1733, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "__setParameters", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1708, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1705, - "name": "_price", - "nodeType": "VariableDeclaration", - "scope": 1733, - "src": "4718:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1704, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4718:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1707, - "name": "_serviceWallet", - "nodeType": "VariableDeclaration", - "scope": 1733, - "src": "4731:22:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1706, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4731:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4717:37:5" - }, - "payable": false, - "returnParameters": { - "id": 1709, - "nodeType": "ParameterList", - "parameters": [], - "src": "4764:0:5" - }, - "scope": 3279, - "src": "4693:219:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1747, - "nodeType": "Block", - "src": "4989:55:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1743, - "name": "_price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1735, - "src": "5015:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1744, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1313, - "src": "5023:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1742, - "name": "__setParameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1733, - "src": "4999:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,address)" - } - }, - "id": 1745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4999:38:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1746, - "nodeType": "ExpressionStatement", - "src": "4999:38:5" - } - ] - }, - "documentation": null, - "id": 1748, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1738, - "modifierName": { - "argumentTypes": null, - "id": 1737, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "4963:9:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4963:9:5" - }, - { - "arguments": null, - "id": 1740, - "modifierName": { - "argumentTypes": null, - "id": 1739, - "name": "beforeSaleStart", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3268, - "src": "4973:15:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4973:15:5" - } - ], - "name": "setParameters", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1736, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1735, - "name": "_price", - "nodeType": "VariableDeclaration", - "scope": 1748, - "src": "4941:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1734, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4941:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4940:13:5" - }, - "payable": false, - "returnParameters": { - "id": 1741, - "nodeType": "ParameterList", - "parameters": [], - "src": "4989:0:5" - }, - "scope": 3279, - "src": "4918:126:5", - "stateMutability": "nonpayable", - "superFunction": 1103, - "visibility": "external" - }, - { - "body": { - "id": 1872, - "nodeType": "Block", - "src": "5448:1051:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1777, - "name": "parametersOfStages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "5515:18:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", - "typeString": "uint256[6] calldata[] calldata" - } - }, - "id": 1778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5515:25:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1779, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5544:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5515:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1776, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5507:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5507:39:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1782, - "nodeType": "ExpressionStatement", - "src": "5507:39:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1784, - "name": "parametersOfStages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "5564:18:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", - "typeString": "uint256[6] calldata[] calldata" - } - }, - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5564:25:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "5599:3:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1787, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5601:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 1786, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5593:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 1789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5593:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "5564:39:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1783, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5556:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5556:48:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1792, - "nodeType": "ExpressionStatement", - "src": "5556:48:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1794, - "name": "parametersOfMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "5676:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", - "typeString": "uint256[4] calldata[] calldata" - } - }, - "id": 1795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5676:29:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "5715:3:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5717:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 1796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5709:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 1799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5709:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "5676:43:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1793, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5668:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5668:52:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1802, - "nodeType": "ExpressionStatement", - "src": "5668:52:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1804, - "name": "parametersOfMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "5738:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", - "typeString": "uint256[4] calldata[] calldata" - } - }, - "id": 1805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5738:29:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1806, - "name": "nameAndDescriptionsOffsetOfMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "5771:37:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[] calldata" - } - }, - "id": 1807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5771:44:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5818:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "5771:48:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5738:81:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1803, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5730:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5730:90:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1812, - "nodeType": "ExpressionStatement", - "src": "5730:90:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1814, - "name": "parametersOfMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "5838:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", - "typeString": "uint256[4] calldata[] calldata" - } - }, - "id": 1815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5838:29:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1816, - "name": "nameAndDescriptionsOfMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "5871:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 1817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5871:38:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1818, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5912:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "5871:42:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5838:75:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1813, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5830:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5830:84:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1822, - "nodeType": "ExpressionStatement", - "src": "5830:84:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1824, - "name": "paymentMethodsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "5971:18:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - }, - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5971:25:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1826, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6000:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5971:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1823, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5963:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5963:39:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1829, - "nodeType": "ExpressionStatement", - "src": "5963:39:5" - }, - { - "body": { - "id": 1850, - "nodeType": "Block", - "src": "6066:72:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1844, - "name": "paymentMethodsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "6104:18:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - }, - "id": 1846, - "indexExpression": { - "argumentTypes": null, - "id": 1845, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "6123:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6104:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 1842, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "6088:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 1843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "hasSymbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 7301, - "src": "6088:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 1847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6088:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1841, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "6080:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6080:47:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1849, - "nodeType": "ExpressionStatement", - "src": "6080:47:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1834, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "6030:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1835, - "name": "paymentMethodsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "6034:18:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - }, - "id": 1836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6034:25:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6030:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1851, - "initializationExpression": { - "assignments": [ - 1831 - ], - "declarations": [ - { - "constant": false, - "id": 1831, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "6018:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1830, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6018:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1833, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6027:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "6018:10:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6061:3:5", - "subExpression": { - "argumentTypes": null, - "id": 1838, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "6061:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1840, - "nodeType": "ExpressionStatement", - "src": "6061:3:5" - }, - "nodeType": "ForStatement", - "src": "6013:125:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1853, - "name": "parametersOfStages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "6172:18:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", - "typeString": "uint256[6] calldata[] calldata" - } - }, - { - "argumentTypes": null, - "id": 1854, - "name": "bonusConditionsOfStages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1756, - "src": "6204:23:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", - "typeString": "uint256[6] calldata[] calldata" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - ], - "id": 1852, - "name": "_setStages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2125, - "src": "6148:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256[6] memory[] memory,uint256[] memory)" - } - }, - "id": 1855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6148:89:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1856, - "nodeType": "ExpressionStatement", - "src": "6148:89:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1858, - "name": "parametersOfMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "6276:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", - "typeString": "uint256[4] calldata[] calldata" - } - }, - { - "argumentTypes": null, - "id": 1859, - "name": "nameAndDescriptionsOffsetOfMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "6312:37:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[] calldata" - } - }, - { - "argumentTypes": null, - "id": 1860, - "name": "nameAndDescriptionsOfMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "6363:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", - "typeString": "uint256[4] calldata[] calldata" - }, - { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[] calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 1857, - "name": "_setMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2594, - "src": "6248:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (uint256[4] memory[] memory,uint32[] memory,bytes memory)" - } - }, - "id": 1861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6248:156:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1862, - "nodeType": "ExpressionStatement", - "src": "6248:156:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1866, - "name": "paymentMethodsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "6437:18:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 1863, - "name": "paymentMethods", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1317, - "src": "6415:14:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage", - "typeString": "struct PaymentMethods.Methods storage ref" - } - }, - "id": 1865, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "update", - "nodeType": "MemberAccess", - "referencedDeclaration": 5041, - "src": "6415:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Methods_$4962_storage_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$bound_to$_t_struct$_Methods_$4962_storage_ptr_$", - "typeString": "function (struct PaymentMethods.Methods storage pointer,bytes32[] memory)" - } - }, - "id": 1867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6415:41:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1868, - "nodeType": "ExpressionStatement", - "src": "6415:41:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1869, - "name": "CrowdsaleSetUpDone", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "6472:18:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6472:20:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1871, - "nodeType": "EmitStatement", - "src": "6467:25:5" - } - ] - }, - "documentation": "@dev Setup all crowdsale parameters at a time", - "id": 1873, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1772, - "modifierName": { - "argumentTypes": null, - "id": 1771, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "5418:9:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5418:9:5" - }, - { - "arguments": null, - "id": 1774, - "modifierName": { - "argumentTypes": null, - "id": 1773, - "name": "beforeSaleStart", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3268, - "src": "5428:15:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5428:15:5" - } - ], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1770, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1753, - "name": "parametersOfStages", - "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "5143:28:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", - "typeString": "uint256[6][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 1749, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5143:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1751, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 1750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5148:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "5143:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", - "typeString": "uint256[6]" - } - }, - "id": 1752, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5143:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", - "typeString": "uint256[6][]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1756, - "name": "bonusConditionsOfStages", - "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "5181:30:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1754, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5181:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1755, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5181:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1761, - "name": "parametersOfMilestones", - "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "5221:32:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", - "typeString": "uint256[4][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 1757, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5221:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1759, - "length": { - "argumentTypes": null, - "hexValue": "34", - "id": 1758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5226:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "4" - }, - "nodeType": "ArrayTypeName", - "src": "5221:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", - "typeString": "uint256[4]" - } - }, - "id": 1760, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5221:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", - "typeString": "uint256[4][]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1764, - "name": "nameAndDescriptionsOffsetOfMilestones", - "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "5263:46:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 1762, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5263:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 1763, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5263:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1766, - "name": "nameAndDescriptionsOfMilestones", - "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "5319:37:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1765, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5319:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1769, - "name": "paymentMethodsList", - "nodeType": "VariableDeclaration", - "scope": 1873, - "src": "5366:28:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 1767, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5366:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 1768, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5366:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5133:267:5" - }, - "payable": false, - "returnParameters": { - "id": 1775, - "nodeType": "ParameterList", - "parameters": [], - "src": "5448:0:5" - }, - "scope": 3279, - "src": "5119:1380:5", - "stateMutability": "nonpayable", - "superFunction": 1127, - "visibility": "external" - }, - { - "body": { - "id": 2124, - "nodeType": "Block", - "src": "6975:1566:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1884, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "6989:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1885, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6989:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1886, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7009:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6989:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1905, - "nodeType": "IfStatement", - "src": "6985:207:5", - "trueBody": { - "id": 1904, - "nodeType": "Block", - "src": "7012:180:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1889, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "7120:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1891, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1890, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7131:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7120:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref" - } - }, - "id": 1892, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "endDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1340, - "src": "7120:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1893, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7144:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1898, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1894, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7155:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7155:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1896, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7175:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7155:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7144:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1900, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1899, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7178:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7144:36:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7120:60:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1888, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7112:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7112:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1903, - "nodeType": "ExpressionStatement", - "src": "7112:69:5" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "7202:13:5", - "subExpression": { - "argumentTypes": null, - "id": 1906, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "7209:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1908, - "nodeType": "ExpressionStatement", - "src": "7202:13:5" - }, - { - "body": { - "id": 2119, - "nodeType": "Block", - "src": "7272:1232:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1921, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7324:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1923, - "indexExpression": { - "argumentTypes": null, - "id": 1922, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7335:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7324:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1925, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7338:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7324:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7351:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1927, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7352:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 1926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7344:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 1929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7344:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "7324:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1920, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7316:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7316:39:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1932, - "nodeType": "ExpressionStatement", - "src": "7316:39:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1934, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7377:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1936, - "indexExpression": { - "argumentTypes": null, - "id": 1935, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7388:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7377:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1938, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7391:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7377:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1941, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7404:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1940, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7405:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 1939, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7397:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 1942, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7397:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "7377:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1933, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7369:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7369:39:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1945, - "nodeType": "ExpressionStatement", - "src": "7369:39:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1947, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7430:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1949, - "indexExpression": { - "argumentTypes": null, - "id": 1948, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7441:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7430:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1951, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 1950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7444:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7430:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1954, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7457:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1953, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7458:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 1952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7450:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 1955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7450:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "7430:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1946, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7422:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7422:39:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1958, - "nodeType": "ExpressionStatement", - "src": "7422:39:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1960, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7483:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1962, - "indexExpression": { - "argumentTypes": null, - "id": 1961, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7494:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7483:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1964, - "indexExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 1963, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7497:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7483:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1967, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7509:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7510:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 1965, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7503:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 1968, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7503:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "7483:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1959, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7475:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7475:38:5", + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1824, + "name": "AdminRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1352, + "src": "781:9:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AdminRole_$1352", + "typeString": "contract AdminRole" + } + }, + "id": 1825, + "nodeType": "InheritanceSpecifier", + "src": "781:9:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1826, + "name": "ProjectOwnerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1619, + "src": "792:16:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ProjectOwnerRole_$1619", + "typeString": "contract ProjectOwnerRole" + } + }, + "id": 1827, + "nodeType": "InheritanceSpecifier", + "src": "792:16:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1828, + "name": "Versionable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11833, + "src": "810:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Versionable_$11833", + "typeString": "contract Versionable" + } + }, + "id": 1829, + "nodeType": "InheritanceSpecifier", + "src": "810:11:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1830, + "name": "Secondary", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12453, + "src": "823:9:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" + } + }, + "id": 1831, + "nodeType": "InheritanceSpecifier", + "src": "823:9:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1832, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13258, + "src": "834:15:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$13258", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 1833, + "nodeType": "InheritanceSpecifier", + "src": "834:15:11" + } + ], + "contractDependencies": [ + 1352, + 1375, + 1421, + 1619, + 1760, + 11833, + 12453, + 13258 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3302, + "linearizedBaseContracts": [ + 3302, + 13258, + 12453, + 11833, + 1619, + 1352, + 1760, + 1421, + 1375 + ], + "name": "W12Crowdsale", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1836, + "libraryName": { + "contractScope": null, + "id": 1834, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "862:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "856:24:11", + "typeName": { + "id": 1835, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "875:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 1839, + "libraryName": { + "contractScope": null, + "id": 1837, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "891:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "885:25:11", + "typeName": { + "id": 1838, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "904:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + }, + { + "id": 1842, + "libraryName": { + "contractScope": null, + "id": 1840, + "name": "Percent", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6431, + "src": "921:7:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Percent_$6431", + "typeString": "library Percent" + } + }, + "nodeType": "UsingForDirective", + "src": "915:23:11", + "typeName": { + "id": 1841, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "933:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 1845, + "libraryName": { + "contractScope": null, + "id": 1843, + "name": "PaymentMethods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6286, + "src": "949:14:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PaymentMethods_$6286", + "typeString": "library PaymentMethods" + } + }, + "nodeType": "UsingForDirective", + "src": "943:48:11", + "typeName": { + "contractScope": null, + "id": 1844, + "name": "PaymentMethods.Methods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6179, + "src": "968:22:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + } + } + }, + { + "constant": false, + "id": 1847, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "997:20:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 1846, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "997:7:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1849, + "name": "originToken", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "1023:25:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 1848, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13083, + "src": "1023:6:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1851, + "name": "fund", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "1054:20:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 1850, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "1054:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1853, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "1080:19:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 1852, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10014, + "src": "1080:6:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1855, + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "1105:17:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1854, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1105:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1857, + "name": "serviceFee", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "1128:22:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1856, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1128:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1859, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "1156:32:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1858, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1156:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1861, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "1194:28:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1860, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1194:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1863, + "name": "swap", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "1228:19:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1862, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1228:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1865, + "name": "paymentMethods", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "1285:37:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$6179_storage", + "typeString": "struct PaymentMethods.Methods" + }, + "typeName": { + "contractScope": null, + "id": 1864, + "name": "PaymentMethods.Methods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6179, + "src": "1285:22:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$6179_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1868, + "name": "stages", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "1329:31:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1866, + "name": "Crowdsale.Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4449, + "src": "1329:15:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" + } + }, + "id": 1867, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1329:17:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Stage[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1871, + "name": "milestones", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "1366:39:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1869, + "name": "Crowdsale.Milestone", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4462, + "src": "1366:19:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$4462_storage_ptr", + "typeString": "struct Crowdsale.Milestone" + } + }, + "id": 1870, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1366:21:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr", + "typeString": "struct Crowdsale.Milestone[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 1881, + "name": "TokenPurchase", + "nodeType": "EventDefinition", + "parameters": { + "id": 1880, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1873, + "indexed": true, + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 1881, + "src": "1432:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1432:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1875, + "indexed": false, + "name": "tokensBought", + "nodeType": "VariableDeclaration", + "scope": 1881, + "src": "1455:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1874, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1455:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1877, + "indexed": false, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 1881, + "src": "1474:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1876, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1474:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1879, + "indexed": false, + "name": "change", + "nodeType": "VariableDeclaration", + "scope": 1881, + "src": "1485:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1878, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1485:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1431:66:11" + }, + "src": "1412:86:11" + }, + { + "anonymous": false, + "documentation": null, + "id": 1883, + "name": "StagesUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 1882, + "nodeType": "ParameterList", + "parameters": [], + "src": "1522:2:11" + }, + "src": "1503:22:11" + }, + { + "anonymous": false, + "documentation": null, + "id": 1887, + "name": "StageUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 1886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1885, + "indexed": false, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1887, + "src": "1549:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1884, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1549:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1548:12:11" + }, + "src": "1530:31:11" + }, + { + "anonymous": false, + "documentation": null, + "id": 1889, + "name": "MilestonesUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 1888, + "nodeType": "ParameterList", + "parameters": [], + "src": "1589:2:11" + }, + "src": "1566:26:11" + }, + { + "anonymous": false, + "documentation": null, + "id": 1891, + "name": "CrowdsaleSetUpDone", + "nodeType": "EventDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [], + "src": "1621:2:11" + }, + "src": "1597:27:11" + }, + { + "anonymous": false, + "documentation": null, + "id": 1897, + "name": "UnsoldTokenReturned", + "nodeType": "EventDefinition", + "parameters": { + "id": 1896, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1893, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1897, + "src": "1655:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1892, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1655:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1895, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1897, + "src": "1678:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1894, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1678:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1654:36:11" + }, + "src": "1629:62:11" + }, + { + "body": { + "id": 2024, + "nodeType": "Block", + "src": "2017:664:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1924, + "name": "_originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2035:12:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1971, - "nodeType": "ExpressionStatement", - "src": "7475:38:5" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1982, + "hexValue": "30", + "id": 1926, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1973, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7535:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1975, - "indexExpression": { - "argumentTypes": null, - "id": 1974, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7546:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7535:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1977, - "indexExpression": { - "argumentTypes": null, - "hexValue": "35", - "id": 1976, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7549:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7535:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1980, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7561:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1979, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7562:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 1978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7555:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 1981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7555:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "7535:29:5", + "nodeType": "Literal", + "src": "2059:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 1972, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7527:7:5", + "id": 1925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2051:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 1983, + "id": 1927, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7527:38:5", + "src": "2051:10:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1984, - "nodeType": "ExpressionStatement", - "src": "7527:38:5" - }, + "src": "2035:26:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2027:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2027:35:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1930, + "nodeType": "ExpressionStatement", + "src": "2027:35:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1932, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2080:6:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1992, + "hexValue": "30", + "id": 1934, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1986, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7615:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1988, - "indexExpression": { - "argumentTypes": null, - "id": 1987, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7626:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7615:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 1990, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1989, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7629:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7615:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 1991, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "7634:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7615:22:5", + "nodeType": "Literal", + "src": "2098:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 1985, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7607:7:5", + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2090:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 1993, + "id": 1935, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7607:31:5", + "src": "2090:10:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1994, - "nodeType": "ExpressionStatement", - "src": "7607:31:5" - }, + "src": "2080:20:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1931, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2072:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2072:29:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1938, + "nodeType": "ExpressionStatement", + "src": "2072:29:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1996, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7660:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 1998, - "indexExpression": { - "argumentTypes": null, - "id": 1997, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7671:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7660:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2000, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7674:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7660:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2001, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7679:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2003, - "indexExpression": { - "argumentTypes": null, - "id": 2002, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7690:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7679:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2005, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7693:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7679:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7660:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1940, + "name": "_serviceFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1911, + "src": "2119:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 1995, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7652:7:5", + }, + "id": 1941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "2119:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" } }, - "id": 2007, + "id": 1942, "isConstant": false, "isLValue": false, "isPure": false, @@ -38789,1952 +22514,1475 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7652:44:5", + "src": "2119:23:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2008, - "nodeType": "ExpressionStatement", - "src": "7652:44:5" - }, - { - "condition": { + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 2011, + "id": 1947, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2009, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7715:1:5", + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1943, + "name": "_serviceFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1911, + "src": "2146:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6430, + "src": "2146:23:11", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2146:25:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "<", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2010, + "hexValue": "313030", + "id": 1946, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7719:1:5", + "src": "2174:3:11", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" }, - "value": "0" + "value": "100" }, - "src": "7715:5:5", + "src": "2146:31:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 2029, - "nodeType": "IfStatement", - "src": "7711:93:5", - "trueBody": { - "id": 2028, - "nodeType": "Block", - "src": "7722:82:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2013, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7748:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2017, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2014, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7759:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2015, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7763:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7759:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7748:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2019, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7766:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7748:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2020, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7772:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2022, - "indexExpression": { - "argumentTypes": null, - "id": 2021, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7783:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7772:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2024, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2023, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7786:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7772:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7748:40:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7740:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7740:49:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2027, - "nodeType": "ExpressionStatement", - "src": "7740:49:5" - } - ] + "src": "2119:58:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1939, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2111:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2111:67:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1950, + "nodeType": "ExpressionStatement", + "src": "2111:67:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "arguments": [ - { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "argumentTypes": null, - "arguments": [], + "id": 1952, + "name": "_WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1913, + "src": "2196:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "2196:31:11", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 1954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2196:33:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2031, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7856:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2033, - "indexExpression": { - "argumentTypes": null, - "id": 2032, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7867:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7856:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2035, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2034, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7870:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7856:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "7856:26:5", + "argumentTypes": null, + "id": 1955, + "name": "_WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1913, + "src": "2233:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2037, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7856:28:5", + "memberName": "fromPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6430, + "src": "2233:33:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" } - ], - "id": 2030, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7848:7:5", + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2233:35:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7848:37:5", + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 1958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2271:3:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "2233:41:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2039, - "nodeType": "ExpressionStatement", - "src": "7848:37:5" - }, + "src": "2196:78:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1951, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2188:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2188:87:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1962, + "nodeType": "ExpressionStatement", + "src": "2188:87:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1964, + "name": "_fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1915, + "src": "2293:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2049, + "hexValue": "30", + "id": 1966, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2041, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7907:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2043, - "indexExpression": { - "argumentTypes": null, - "id": 2042, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7918:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7907:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2045, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7921:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7907:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2046, - "name": "Percent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "7926:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", - "typeString": "type(library Percent)" - } - }, - "id": 2047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "MAX", - "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "7926:11:5", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" - } - }, - "id": 2048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7926:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7907:32:5", + "nodeType": "Literal", + "src": "2310:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 2040, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7899:7:5", + "id": 1965, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2302:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2050, + "id": 1967, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7899:41:5", + "src": "2302:10:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2051, - "nodeType": "ExpressionStatement", - "src": "7899:41:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2057, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8009:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2059, - "indexExpression": { - "argumentTypes": null, - "id": 2058, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8020:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8009:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2061, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8023:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8009:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8002:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8002:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2064, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8060:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2066, - "indexExpression": { - "argumentTypes": null, - "id": 2065, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8071:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8060:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2068, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8074:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8060:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2063, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8053:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8053:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2070, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8105:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2072, - "indexExpression": { - "argumentTypes": null, - "id": 2071, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8116:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8105:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2074, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2073, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8119:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8105:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2076, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8155:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2078, - "indexExpression": { - "argumentTypes": null, - "id": 2077, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8166:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8155:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2080, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 2079, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8169:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8155:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2075, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8148:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8148:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2085, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8219:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8208:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 2082, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8212:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2083, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8212:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 2086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8208:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8265:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8254:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 2087, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8258:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2088, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8258:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 2091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8254:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 2055, - "name": "Stage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "7967:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Stage_$1338_storage_ptr_$", - "typeString": "type(struct W12Crowdsale.Stage storage pointer)" - } - }, - "id": 2092, + "src": "2293:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1963, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2285:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2285:28:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1970, + "nodeType": "ExpressionStatement", + "src": "2285:28:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1972, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1909, + "src": "2331:5:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1974, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [ - "startDate", - "endDate", - "discount", - "vesting", - "volumeBoundaries", - "volumeBonuses" - ], - "nodeType": "FunctionCall", - "src": "7967:315:5", + "nodeType": "Literal", + "src": "2348:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_memory", - "typeString": "struct W12Crowdsale.Stage memory" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Stage_$1338_memory", - "typeString": "struct W12Crowdsale.Stage memory" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "expression": { - "argumentTypes": null, - "id": 2052, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "7955:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2054, + "id": 1973, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7955:11:5", + "nodeType": "ElementaryTypeNameExpression", + "src": "2340:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Stage_$1338_storage_$returns$_t_uint256_$", - "typeString": "function (struct W12Crowdsale.Stage storage ref) returns (uint256)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2093, + "id": 1975, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7955:328:5", + "src": "2340:10:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2094, - "nodeType": "ExpressionStatement", - "src": "7955:328:5" - }, + "src": "2331:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2323:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2323:28:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "2323:28:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1980, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1917, + "src": "2369:6:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2097, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8346:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2098, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8346:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2099, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8362:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8346:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2096, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8340:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 2101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8340:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2103, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8388:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2105, - "indexExpression": { - "argumentTypes": null, - "id": 2104, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8399:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8388:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2107, - "indexExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 2106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8402:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8388:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8382:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 2108, + "hexValue": "30", + "id": 1982, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "typeConversion", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8382:23:5", + "nodeType": "Literal", + "src": "2387:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2110, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8429:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" - } - }, - "id": 2112, - "indexExpression": { - "argumentTypes": null, - "id": 2111, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8440:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8429:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_memory", - "typeString": "uint256[6] memory" - } - }, - "id": 2114, - "indexExpression": { - "argumentTypes": null, - "hexValue": "35", - "id": 2113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8443:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8429:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8423:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "id": 2115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8423:23:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 2116, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1881, - "src": "8464:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 2095, - "name": "_setStageBonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2316, - "src": "8298:24:5", + "id": 1981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2379:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$_t_uint8_$_t_uint8_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint8,uint8,uint8,uint256[] memory)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2117, + "id": 1983, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8298:195:5", + "src": "2379:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2369:20:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1979, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2361:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2361:29:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1986, + "nodeType": "ExpressionStatement", + "src": "2361:29:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1988, + "name": "_price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "2417:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1989, + "name": "_serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1907, + "src": "2425:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1987, + "name": "__setParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "2401:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address)" + } + }, + "id": 1990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2401:39:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1991, + "nodeType": "ExpressionStatement", + "src": "2401:39:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1992, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "2451:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1994, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "2467:6:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 2118, - "nodeType": "ExpressionStatement", - "src": "8298:195:5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1993, + "name": "IWToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10485, + "src": "2459:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWToken_$10485_$", + "typeString": "type(contract IWToken)" + } + }, + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2459:15:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } - ] + }, + "src": "2451:23:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } }, - "condition": { + "id": 1997, + "nodeType": "ExpressionStatement", + "src": "2451:23:11" + }, + { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1916, + "id": 2002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { "argumentTypes": null, - "id": 1913, - "name": "i", + "id": 1998, + "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7244:1:5", + "referencedDeclaration": 1849, + "src": "2484:11:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2000, + "name": "_originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "2505:12:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "argumentTypes": null, - "id": 1914, - "name": "parameters", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1999, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7248:10:5", + "referencedDeclaration": 13083, + "src": "2498:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6] memory[] memory" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 1915, + "id": 2001, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7248:17:5", + "names": [], + "nodeType": "FunctionCall", + "src": "2498:20:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "src": "2484:34:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 2003, + "nodeType": "ExpressionStatement", + "src": "2484:34:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2004, + "name": "serviceFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1857, + "src": "2528:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2005, + "name": "_serviceFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1911, + "src": "2541:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7244:21:5", + "src": "2528:24:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2120, - "initializationExpression": { - "assignments": [ - 1910 - ], - "declarations": [ - { - "constant": false, - "id": 1910, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2125, - "src": "7231:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1909, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "7231:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" + "id": 2007, + "nodeType": "ExpressionStatement", + "src": "2528:24:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2008, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1863, + "src": "2562:4:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "id": 1912, - "initialValue": { + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "hexValue": "30", - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7241:1:5", - "subdenomination": null, + "id": 2009, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1909, + "src": "2569:5:11", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "nodeType": "VariableDeclarationStatement", - "src": "7231:11:5" + "src": "2562:12:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "loopExpression": { - "expression": { + "id": 2011, + "nodeType": "ExpressionStatement", + "src": "2562:12:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "id": 1918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7267:3:5", - "subExpression": { - "argumentTypes": null, - "id": 1917, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "7267:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, + "id": 2012, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1859, + "src": "2584:20:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1919, - "nodeType": "ExpressionStatement", - "src": "7267:3:5" + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2013, + "name": "_WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1913, + "src": "2607:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2584:44:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "nodeType": "ForStatement", - "src": "7226:1278:5" + "id": 2015, + "nodeType": "ExpressionStatement", + "src": "2584:44:11" }, { - "eventCall": { + "expression": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2121, - "name": "StagesUpdated", + "id": 2018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2016, + "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "8519:13:5", + "referencedDeclaration": 1851, + "src": "2638:4:11", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", - "typeString": "function ()" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } }, - "id": 2122, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2017, + "name": "_fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1915, + "src": "2645:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "src": "2638:12:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 2019, + "nodeType": "ExpressionStatement", + "src": "2638:12:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2022, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8519:15:5", + "leftHandSide": { + "argumentTypes": null, + "id": 2020, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "2660:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2021, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1917, + "src": "2668:6:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "src": "2660:14:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 2023, + "nodeType": "ExpressionStatement", + "src": "2660:14:11" + } + ] + }, + "documentation": null, + "id": 2025, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1920, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "1997:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1921, + "modifierName": { + "argumentTypes": null, + "id": 1919, + "name": "Versionable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11833, + "src": "1985:11:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", + "typeString": "type(contract Versionable)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1985:20:11" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1918, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1899, + "name": "version", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "1719:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1898, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1719:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1901, + "name": "_originToken", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "1741:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1741:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1903, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "1771:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1771:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "name": "_price", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "1795:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1795:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1907, + "name": "_serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "1816:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1906, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1816:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1909, + "name": "_swap", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "1848:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1908, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1848:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1911, + "name": "_serviceFee", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "1871:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1910, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1871:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1913, + "name": "_WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "1897:26:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1912, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1897:4:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2123, - "nodeType": "EmitStatement", - "src": "8514:20:5" - } - ] - }, - "documentation": "@dev Update stages\n@param parameters List of primary parameters:\n[\n uint32 startDate,\n uint32 endDate,\n uint discount,\n uint32 vesting,\n uint8 startIndexOfBonusConditions\n uint8 endIndexOfBonusConditions\n],\n@param bonusConditions List of bonus conditions:\n[uint boundary, uint bonus, ...]", - "id": 2125, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_setStages", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1882, - "nodeType": "ParameterList", - "parameters": [ + "value": null, + "visibility": "internal" + }, { "constant": false, - "id": 1878, - "name": "parameters", + "id": 1915, + "name": "_fund", "nodeType": "VariableDeclaration", - "scope": 2125, - "src": "6920:20:5", + "scope": 2025, + "src": "1933:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", - "typeString": "uint256[6][]" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" }, "typeName": { - "baseType": { - "baseType": { - "id": 1874, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6920:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1876, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6925:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "6920:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", - "typeString": "uint256[6]" - } - }, - "id": 1877, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6920:9:5", + "contractScope": null, + "id": 1914, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "1933:8:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", - "typeString": "uint256[6][]" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } }, "value": null, @@ -40742,591 +23990,227 @@ }, { "constant": false, - "id": 1881, - "name": "bonusConditions", + "id": 1917, + "name": "_rates", "nodeType": "VariableDeclaration", - "scope": 2125, - "src": "6942:22:5", + "scope": 2025, + "src": "1957:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" }, "typeName": { - "baseType": { - "id": 1879, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6942:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1880, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6942:6:5", + "contractScope": null, + "id": 1916, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10014, + "src": "1957:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } }, "value": null, "visibility": "internal" } ], - "src": "6919:46:5" + "src": "1709:267:11" }, "payable": false, "returnParameters": { - "id": 1883, + "id": 1922, "nodeType": "ParameterList", "parameters": [], - "src": "6975:0:5" + "src": "2017:0:11" }, - "scope": 3279, - "src": "6900:1641:5", + "scope": 3302, + "src": "1697:984:11", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 2315, + "id": 2036, "nodeType": "Block", - "src": "8822:1087:5", + "src": "2740:36:11", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 2137, - "name": "start", + "id": 2033, + "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "8836:5:5", + "referencedDeclaration": 2027, + "src": "2760:8:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8845:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8836:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2140, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "8850:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8857:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8850:8:5", + ], + "id": 2032, + "name": "_addAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "2750:9:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "src": "8836:22:5", + "id": 2034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2750:19:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "falseBody": null, - "id": 2168, - "nodeType": "IfStatement", - "src": "8832:187:5", - "trueBody": { - "id": 2167, - "nodeType": "Block", - "src": "8860:159:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2144, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8874:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2146, - "indexExpression": { - "argumentTypes": null, - "id": 2145, - "name": "stageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "8881:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8874:18:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 2147, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "volumeBoundaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "8874:35:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8923:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2150, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8912:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 2148, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8916:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2149, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8916:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 2152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8912:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - "src": "8874:51:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 2154, - "nodeType": "ExpressionStatement", - "src": "8874:51:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2155, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8939:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2157, - "indexExpression": { - "argumentTypes": null, - "id": 2156, - "name": "stageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "8946:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8939:18:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 2158, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "volumeBonuses", - "nodeType": "MemberAccess", - "referencedDeclaration": 1337, - "src": "8939:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2162, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8985:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8974:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 2159, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8978:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2160, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8978:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 2163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8974:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - "src": "8939:48:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 2165, - "nodeType": "ExpressionStatement", - "src": "8939:48:5" - }, - { - "expression": null, - "functionReturnParameters": 2136, - "id": 2166, - "nodeType": "Return", - "src": "9002:7:5" - } - ] + "id": 2035, + "nodeType": "ExpressionStatement", + "src": "2750:19:11" + } + ] + }, + "documentation": null, + "id": 2037, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2030, + "modifierName": { + "argumentTypes": null, + "id": 2029, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2730:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" } }, + "nodeType": "ModifierInvocation", + "src": "2730:9:11" + } + ], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2027, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 2037, + "src": "2705:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2705:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2704:18:11" + }, + "payable": false, + "returnParameters": { + "id": 2031, + "nodeType": "ParameterList", + "parameters": [], + "src": "2740:0:11" + }, + "scope": 3302, + "src": "2687:89:11", + "stateMutability": "nonpayable", + "superFunction": 1366, + "visibility": "public" + }, + { + "body": { + "id": 2048, + "nodeType": "Block", + "src": "2838:39:11", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2170, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "9037:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2171, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "9044:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9044:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9037:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "id": 2045, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2039, + "src": "2861:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 2169, - "name": "require", + "id": 2044, + "name": "_removeAdmin", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9029:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 1351, + "src": "2848:12:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 2174, + "id": 2046, "isConstant": false, "isLValue": false, "isPure": false, @@ -41334,88 +24218,135 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9029:38:5", + "src": "2848:22:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2175, + "id": 2047, "nodeType": "ExpressionStatement", - "src": "9029:38:5" + "src": "2848:22:11" + } + ] + }, + "documentation": null, + "id": 2049, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2042, + "modifierName": { + "argumentTypes": null, + "id": 2041, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2828:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "2828:9:11" + } + ], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2039, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 2049, + "src": "2803:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2038, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2803:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2802:18:11" + }, + "payable": false, + "returnParameters": { + "id": 2043, + "nodeType": "ParameterList", + "parameters": [], + "src": "2838:0:11" + }, + "scope": 3302, + "src": "2782:95:11", + "stateMutability": "nonpayable", + "superFunction": 1374, + "visibility": "public" + }, + { + "body": { + "id": 2060, + "nodeType": "Block", + "src": "2943:43:11", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2177, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9085:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2178, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "9093:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "9085:11:5", + "id": 2057, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2051, + "src": "2970:8:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 2176, - "name": "require", + "id": 2056, + "name": "_addProjectOwner", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9077:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 1602, + "src": "2953:16:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 2180, + "id": 2058, "isConstant": false, "isLValue": false, "isPure": false, @@ -41423,130 +24354,135 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9077:20:5", + "src": "2953:26:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2181, + "id": 2059, "nodeType": "ExpressionStatement", - "src": "9077:20:5" + "src": "2953:26:11" + } + ] + }, + "documentation": null, + "id": 2061, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2054, + "modifierName": { + "argumentTypes": null, + "id": 2053, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2933:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "2933:9:11" + } + ], + "name": "addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2051, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 2061, + "src": "2908:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2908:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2907:18:11" + }, + "payable": false, + "returnParameters": { + "id": 2055, + "nodeType": "ParameterList", + "parameters": [], + "src": "2943:0:11" + }, + "scope": 3302, + "src": "2883:103:11", + "stateMutability": "nonpayable", + "superFunction": 1412, + "visibility": "public" + }, + { + "body": { + "id": 2072, + "nodeType": "Block", + "src": "3055:46:11", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2183, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9115:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9123:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "9115:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9128:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9115:14:5", + "id": 2069, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2063, + "src": "3085:8:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 2182, - "name": "require", + "id": 2068, + "name": "_removeProjectOwner", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9107:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "3065:19:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 2188, + "id": 2070, "isConstant": false, "isLValue": false, "isPure": false, @@ -41554,1780 +24490,1350 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9107:23:5", + "src": "3065:29:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2189, + "id": 2071, "nodeType": "ExpressionStatement", - "src": "9107:23:5" + "src": "3065:29:11" + } + ] + }, + "documentation": null, + "id": 2073, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2066, + "modifierName": { + "argumentTypes": null, + "id": 2065, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "3045:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "3045:9:11" + } + ], + "name": "removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2064, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2063, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "3020:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2062, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3020:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3019:18:11" + }, + "payable": false, + "returnParameters": { + "id": 2067, + "nodeType": "ParameterList", + "parameters": [], + "src": "3055:0:11" + }, + "scope": 3302, + "src": "2992:109:11", + "stateMutability": "nonpayable", + "superFunction": 1420, + "visibility": "public" + }, + { + "body": { + "id": 2081, + "nodeType": "Block", + "src": "3160:37:11", + "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2191, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "9148:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2192, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9154:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "9148:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2194, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9159:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9148:12:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "expression": { + "argumentTypes": null, + "id": 2078, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "3177:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } - ], + }, + "id": 2079, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3177:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2077, + "id": 2080, + "nodeType": "Return", + "src": "3170:20:11" + } + ] + }, + "documentation": null, + "id": 2082, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "stagesLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2074, + "nodeType": "ParameterList", + "parameters": [], + "src": "3128:2:11" + }, + "payable": false, + "returnParameters": { + "id": 2077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2076, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2082, + "src": "3154:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2075, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3154:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3153:6:11" + }, + "scope": 3302, + "src": "3107:90:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2090, + "nodeType": "Block", + "src": "3260:41:11", + "statements": [ + { + "expression": { + "argumentTypes": null, "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2190, - "name": "require", + "argumentTypes": null, + "id": 2087, + "name": "milestones", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9140:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3277:10:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 2196, + "id": 2088, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9140:21:5", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3277:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2086, + "id": 2089, + "nodeType": "Return", + "src": "3270:24:11" + } + ] + }, + "documentation": null, + "id": 2091, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "milestonesLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2083, + "nodeType": "ParameterList", + "parameters": [], + "src": "3228:2:11" + }, + "payable": false, + "returnParameters": { + "id": 2086, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2085, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2091, + "src": "3254:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2084, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3254:4:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2197, - "nodeType": "ExpressionStatement", - "src": "9140:21:5" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "3253:6:11" + }, + "scope": 3302, + "src": "3203:98:11", + "stateMutability": "view", + "superFunction": 1723, + "visibility": "external" + }, + { + "body": { + "id": 2134, + "nodeType": "Block", + "src": "3406:289:11", + "statements": [ { - "assignments": [ - 2201 - ], - "declarations": [ - { - "constant": false, - "id": 2201, - "name": "boundaries", - "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "9172:24:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2199, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9172:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2200, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9172:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2212, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [ + "components": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2205, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "9211:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2206, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9217:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "9211:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "baseExpression": { + "argumentTypes": null, + "id": 2108, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3437:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } - ], - "id": 2208, + }, + "id": 2110, + "indexExpression": { + "argumentTypes": null, + "id": 2109, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2093, + "src": "3448:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, "isConstant": false, - "isInlineArray": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9210:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9226:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "9210:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 2204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "9199:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 2202, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9203:4:5", + "nodeType": "IndexAccess", + "src": "3437:17:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "id": 2203, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9203:6:5", + "id": 2111, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "endDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4451, + "src": "3437:25:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } - } - }, - "id": 2211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9199:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9172:56:5" - }, - { - "assignments": [ - 2216 - ], - "declarations": [ - { - "constant": false, - "id": 2216, - "name": "bonuses", - "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "9238:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" }, - "typeName": { - "baseType": { - "id": 2214, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9238:4:5", + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2112, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3476:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + } + }, + "id": 2114, + "indexExpression": { + "argumentTypes": null, + "id": 2113, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2093, + "src": "3487:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3476:17:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "id": 2215, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9238:6:5", + "id": 2115, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tranchePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 4453, + "src": "3476:32:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 2227, - "initialValue": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2220, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "9274:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2221, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9280:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "9274:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "baseExpression": { + "argumentTypes": null, + "id": 2116, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3522:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } - ], - "id": 2223, + }, + "id": 2118, + "indexExpression": { + "argumentTypes": null, + "id": 2117, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2093, + "src": "3533:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, "isConstant": false, - "isInlineArray": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9273:13:5", + "nodeType": "IndexAccess", + "src": "3522:17:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2224, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9289:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "9273:17:5", + "id": 2119, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "voteEndDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4455, + "src": "3522:29:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } - ], - "id": 2219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "9262:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" }, - "typeName": { - "baseType": { - "id": 2217, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9266:4:5", + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2120, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3565:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + } + }, + "id": 2122, + "indexExpression": { + "argumentTypes": null, + "id": 2121, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2093, + "src": "3576:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3565:17:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "id": 2218, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9266:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 2226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9262:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9238:53:5" - }, - { - "assignments": [ - 2229 - ], - "declarations": [ - { - "constant": false, - "id": 2229, - "name": "k", - "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "9301:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2228, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9301:4:5", + "id": 2123, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawalWindow", + "nodeType": "MemberAccess", + "referencedDeclaration": 4457, + "src": "3565:34:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 2231, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2230, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9310:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "9301:10:5" - }, - { - "body": { - "id": 2299, - "nodeType": "Block", - "src": "9342:450:5", - "statements": [ { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2236, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "9391:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2240, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2237, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9407:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2238, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9415:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9407:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9391:26:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "9391:36:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 2242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9391:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2235, - "name": "require", + "baseExpression": { + "argumentTypes": null, + "id": 2124, + "name": "milestones", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9383:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3613:10:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + } + }, + "id": 2126, + "indexExpression": { + "argumentTypes": null, + "id": 2125, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2093, + "src": "3624:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2243, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9383:47:5", + "nodeType": "IndexAccess", + "src": "3613:17:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "id": 2244, - "nodeType": "ExpressionStatement", - "src": "9383:47:5" + "id": 2127, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 4459, + "src": "3613:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } }, { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2246, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "9452:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2250, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2247, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9468:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2248, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9476:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9468:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9452:26:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2251, - "name": "Percent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "9481:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", - "typeString": "type(library Percent)" - } - }, - "id": 2252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "MAX", - "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "9481:11:5", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" - } - }, - "id": 2253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9481:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9452:42:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "baseExpression": { + "argumentTypes": null, + "id": 2128, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3649:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2245, - "name": "require", + }, + "id": 2130, + "indexExpression": { + "argumentTypes": null, + "id": 2129, + "name": "index", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9444:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 2093, + "src": "3660:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2255, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9444:51:5", + "nodeType": "IndexAccess", + "src": "3649:17:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" } }, - "id": 2256, - "nodeType": "ExpressionStatement", - "src": "9444:51:5" - }, + "id": 2131, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "description", + "nodeType": "MemberAccess", + "referencedDeclaration": 4461, + "src": "3649:29:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + } + ], + "id": 2132, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3423:265:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_storage_$_t_bytes_storage_$", + "typeString": "tuple(uint32,uint256,uint32,uint32,bytes storage ref,bytes storage ref)" + } + }, + "functionReturnParameters": 2107, + "id": 2133, + "nodeType": "Return", + "src": "3416:272:11" + } + ] + }, + "documentation": null, + "id": 2135, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getMilestone", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2093, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2135, + "src": "3329:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2092, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3329:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3328:12:11" + }, + "payable": false, + "returnParameters": { + "id": 2107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2096, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2135, + "src": "3362:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2095, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3362:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2098, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2135, + "src": "3370:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2097, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3370:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2100, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2135, + "src": "3376:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2099, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3376:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2102, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2135, + "src": "3384:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2101, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3384:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2104, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2135, + "src": "3392:5:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2103, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3392:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2106, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2135, + "src": "3399:5:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2105, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3399:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3361:44:11" + }, + "scope": 3302, + "src": "3307:388:11", + "stateMutability": "view", + "superFunction": 1685, + "visibility": "public" + }, + { + "body": { + "id": 2180, + "nodeType": "Block", + "src": "3798:262:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ { - "condition": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "baseExpression": { "argumentTypes": null, - "id": 2257, - "name": "k", + "id": 2154, + "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "9544:1:5", + "referencedDeclaration": 1868, + "src": "3829:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "id": 2156, + "indexExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9548:1:5", - "subdenomination": null, + "id": 2155, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2137, + "src": "3836:5:11", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9544:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2273, - "nodeType": "IfStatement", - "src": "9540:95:5", - "trueBody": { - "id": 2272, - "nodeType": "Block", - "src": "9551:84:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2261, - "name": "boundaries", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "9577:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2265, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2262, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "9588:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9592:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9588:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9577:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2266, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "9597:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2268, - "indexExpression": { - "argumentTypes": null, - "id": 2267, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9613:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9597:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9577:42:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2260, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9569:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9569:51:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2271, - "nodeType": "ExpressionStatement", - "src": "9569:51:5" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ] + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3829:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 2157, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4436, + "src": "3829:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2274, - "name": "boundaries", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "9649:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2276, - "indexExpression": { - "argumentTypes": null, - "id": 2275, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "9660:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9649:13:5", + "id": 2158, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "3866:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 2160, + "indexExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2277, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "9665:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2279, - "indexExpression": { - "argumentTypes": null, - "id": 2278, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9681:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9665:22:5", + "id": 2159, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2137, + "src": "3873:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9649:38:5", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3866:13:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2281, - "nodeType": "ExpressionStatement", - "src": "9649:38:5" + "id": 2161, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "endDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4438, + "src": "3866:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } }, { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2282, - "name": "bonuses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2216, - "src": "9701:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2284, - "indexExpression": { - "argumentTypes": null, - "id": 2283, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "9709:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9701:10:5", + "id": 2162, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "3901:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 2164, + "indexExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2285, - "name": "bonusConditions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "9714:15:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2289, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2286, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9730:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9738:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9730:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9714:26:5", + "id": 2163, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2137, + "src": "3908:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9701:39:5", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3901:13:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2291, - "nodeType": "ExpressionStatement", - "src": "9701:39:5" + "id": 2165, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "discount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4440, + "src": "3901:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9754:3:5", - "subExpression": { + "baseExpression": { "argumentTypes": null, - "id": 2292, - "name": "k", + "id": 2166, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "3937:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2168, + "indexExpression": { + "argumentTypes": null, + "id": 2167, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "9754:1:5", + "referencedDeclaration": 2137, + "src": "3944:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3937:13:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2294, - "nodeType": "ExpressionStatement", - "src": "9754:3:5" + "id": 2169, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vesting", + "nodeType": "MemberAccess", + "referencedDeclaration": 4442, + "src": "3937:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } }, { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "baseExpression": { "argumentTypes": null, - "id": 2295, - "name": "start", + "id": 2170, + "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9771:5:5", + "referencedDeclaration": 1868, + "src": "3972:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { + "id": 2172, + "indexExpression": { "argumentTypes": null, - "hexValue": "32", - "id": 2296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9780:1:5", - "subdenomination": null, + "id": 2171, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2137, + "src": "3979:5:11", "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "9771:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 2298, - "nodeType": "ExpressionStatement", - "src": "9771:10:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2232, - "name": "start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "9329:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2233, - "name": "end", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "9337:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "9329:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2300, - "nodeType": "WhileStatement", - "src": "9322:470:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2301, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "9802:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2303, - "indexExpression": { - "argumentTypes": null, - "id": 2302, - "name": "stageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "9809:10:5", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3972:13:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, + "id": 2173, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9802:18:5", + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 4445, + "src": "3972:30:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } }, - "id": 2304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "volumeBoundaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "9802:35:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2305, - "name": "boundaries", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "9840:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "9802:48:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 2307, - "nodeType": "ExpressionStatement", - "src": "9802:48:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2308, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "9860:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2310, - "indexExpression": { + "expression": { "argumentTypes": null, - "id": 2309, - "name": "stageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "9867:10:5", + "baseExpression": { + "argumentTypes": null, + "id": 2174, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "4016:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2176, + "indexExpression": { + "argumentTypes": null, + "id": 2175, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2137, + "src": "4023:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4016:13:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, + "id": 2177, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9860:18:5", + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 4448, + "src": "4016:27:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } - }, - "id": 2311, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "volumeBonuses", - "nodeType": "MemberAccess", - "referencedDeclaration": 1337, - "src": "9860:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2312, - "name": "bonuses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2216, - "src": "9895:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" } - }, - "src": "9860:42:5", + ], + "id": 2178, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3815:238:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint32_$_t_array$_t_uint256_$dyn_storage_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "tuple(uint32,uint32,uint256,uint32,uint256[] storage ref,uint256[] storage ref)" } }, - "id": 2314, - "nodeType": "ExpressionStatement", - "src": "9860:42:5" + "functionReturnParameters": 2153, + "id": 2179, + "nodeType": "Return", + "src": "3808:245:11" } ] }, - "documentation": "@dev Set stage bonus conditions by stage index\n@param bonusConditions List of bonus conditions:\n[uint boundary, uint bonus, ...]", - "id": 2316, + "documentation": null, + "id": 2181, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "_setStageBonusConditions", + "name": "getStage", "nodeType": "FunctionDefinition", "parameters": { - "id": 2135, + "id": 2138, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2127, - "name": "stageIndex", + "id": 2137, + "name": "index", "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "8747:16:5", + "scope": 2181, + "src": "3719:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2136, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3719:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3718:12:11" + }, + "payable": false, + "returnParameters": { + "id": 2153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2140, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2181, + "src": "3752:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2139, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3752:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2142, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2181, + "src": "3760:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2141, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3760:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2144, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2181, + "src": "3768:4:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 2126, - "name": "uint8", + "id": 2143, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8747:5:5", + "src": "3768:4:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -43335,25 +25841,25 @@ }, { "constant": false, - "id": 2129, - "name": "start", + "id": 2146, + "name": "", "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "8765:11:5", + "scope": 2181, + "src": "3774:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, "typeName": { - "id": 2128, - "name": "uint8", + "id": 2145, + "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8765:5:5", + "src": "3774:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, "value": null, @@ -43361,25 +25867,35 @@ }, { "constant": false, - "id": 2131, - "name": "end", + "id": 2149, + "name": "", "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "8778:9:5", + "scope": 2181, + "src": "3782:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" }, "typeName": { - "id": 2130, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "8778:5:5", + "baseType": { + "id": 2147, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3782:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2148, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3782:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" } }, "value": null, @@ -43387,11 +25903,11 @@ }, { "constant": false, - "id": 2134, - "name": "bonusConditions", + "id": 2152, + "name": "", "nodeType": "VariableDeclaration", - "scope": 2316, - "src": "8789:22:5", + "scope": 2181, + "src": "3790:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -43400,19 +25916,19 @@ }, "typeName": { "baseType": { - "id": 2132, + "id": 2150, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8789:4:5", + "src": "3790:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2133, + "id": 2151, "length": null, "nodeType": "ArrayTypeName", - "src": "8789:6:5", + "src": "3790:6:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -43422,3070 +25938,2675 @@ "visibility": "internal" } ], - "src": "8746:66:5" - }, - "payable": false, - "returnParameters": { - "id": 2136, - "nodeType": "ParameterList", - "parameters": [], - "src": "8822:0:5" + "src": "3751:46:11" }, - "scope": 3279, - "src": "8713:1196:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + "scope": 3302, + "src": "3701:359:11", + "stateMutability": "view", + "superFunction": 1704, + "visibility": "public" }, { "body": { - "id": 2593, + "id": 2201, "nodeType": "Block", - "src": "10475:1659:5", + "src": "4119:94:11", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2187, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "4137:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2188, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4137:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4153:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4137:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2186, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "4129:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } }, - "id": 2332, + "id": 2191, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { + "names": [], + "nodeType": "FunctionCall", + "src": "4129:26:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2192, + "nodeType": "ExpressionStatement", + "src": "4129:26:11" + }, + { + "expression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "id": 2329, + "id": 2193, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "10489:6:5", + "referencedDeclaration": 1868, + "src": "4173:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2198, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2194, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "4180:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2195, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4180:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4196:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4180:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2330, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10489:13:5", + "nodeType": "IndexAccess", + "src": "4173:25:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "id": 2199, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "endDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 4438, + "src": "4173:33:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 2185, + "id": 2200, + "nodeType": "Return", + "src": "4166:40:11" + } + ] + }, + "documentation": null, + "id": 2202, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getEndDate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2182, + "nodeType": "ParameterList", + "parameters": [], + "src": "4085:2:11" + }, + "payable": false, + "returnParameters": { + "id": 2185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2184, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2202, + "src": "4111:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2183, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4111:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4110:8:11" + }, + "scope": 3302, + "src": "4066:147:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2241, + "nodeType": "Block", + "src": "4380:266:11", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2331, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2212, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "10505:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10489:17:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2350, - "nodeType": "IfStatement", - "src": "10485:109:5", - "trueBody": { - "id": 2349, - "nodeType": "Block", - "src": "10508:86:5", - "statements": [ - { + "leftExpression": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2334, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "10530:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2339, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2335, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "10537:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 2336, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10537:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2337, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10553:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10537:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10530:25:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 2340, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "endDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1327, - "src": "10530:33:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2341, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "10566:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2343, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10577:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10566:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2345, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2344, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10580:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10566:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10530:52:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2333, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10522:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10522:61:5", + "id": 2209, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "4393:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + } + }, + "id": 2210, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4393:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4414:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4393:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "id": 2215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4419:10:11", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2213, + "name": "isEnded", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3260 + ], + "referencedDeclaration": 3260, + "src": "4420:7:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" } }, - "id": 2348, - "nodeType": "ExpressionStatement", - "src": "10522:61:5" + "id": 2214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4420:9:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ] + }, + "src": "4393:36:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2218, + "nodeType": "IfStatement", + "src": "4390:48:11", + "trueBody": { + "expression": null, + "functionReturnParameters": 2208, + "id": 2217, + "nodeType": "Return", + "src": "4431:7:11" } }, { "expression": { "argumentTypes": null, - "id": 2352, + "id": 2221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "10604:17:5", - "subExpression": { + "leftHandSide": { "argumentTypes": null, - "id": 2351, - "name": "milestones", + "id": 2219, + "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "10611:10:5", + "referencedDeclaration": 2207, + "src": "4448:5:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2353, - "nodeType": "ExpressionStatement", - "src": "10604:17:5" - }, - { - "assignments": [ - 2355 - ], - "declarations": [ - { - "constant": false, - "id": 2355, - "name": "offset", - "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10632:11:5", - "stateVariable": false, - "storageLocation": "default", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4456:4:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2354, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10632:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "value": null, - "visibility": "internal" - } - ], - "id": 2357, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10646:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "value": "true" }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10632:15:5" - }, - { - "assignments": [ - 2359 - ], - "declarations": [ - { - "constant": false, - "id": 2359, - "name": "k", - "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10657:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2358, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10657:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2361, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10666:1:5", - "subdenomination": null, + "src": "4448:12:11", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10657:10:5" - }, - { - "assignments": [ - 2363 - ], - "declarations": [ - { - "constant": false, - "id": 2363, - "name": "totalPercents", - "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10677:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2362, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10677:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "id": 2365, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2364, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10698:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" }, - "nodeType": "VariableDeclarationStatement", - "src": "10677:22:5" + "id": 2222, + "nodeType": "ExpressionStatement", + "src": "4448:12:11" }, { "body": { - "id": 2580, + "id": 2239, "nodeType": "Block", - "src": "10756:1287:5", + "src": "4608:32:11", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2378, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "10808:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2380, - "indexExpression": { - "argumentTypes": null, - "id": 2379, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "10819:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10808:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2382, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10822:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10808:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "10835:3:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10837:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 2383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10828:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10828:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "10808:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2377, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10800:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2388, + "id": 2237, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10800:40:5", + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4622:7:11", + "subExpression": { + "argumentTypes": null, + "id": 2236, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2205, + "src": "4622:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2389, + "id": 2238, "nodeType": "ExpressionStatement", - "src": "10800:40:5" + "src": "4622:7:11" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - { - "expression": { + "id": 2228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2223, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2205, + "src": "4532:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2391, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "10862:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2393, - "indexExpression": { - "argumentTypes": null, - "id": 2392, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "10873:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10862:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2395, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10876:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10862:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2398, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "10889:3:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2397, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10891:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 2396, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10882:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10882:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "10862:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2390, - "name": "require", + "argumentTypes": null, + "id": 2224, + "name": "milestones", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10854:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "4540:10:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 2401, + "id": 2225, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10854:40:5", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4540:17:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2402, - "nodeType": "ExpressionStatement", - "src": "10854:40:5" + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4560:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4540:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { + "src": "4532:29:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2229, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "4565:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2404, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "10916:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2406, - "indexExpression": { - "argumentTypes": null, - "id": 2405, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "10927:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10916:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2408, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10930:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10916:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2411, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "10943:3:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10945:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 2409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10936:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10936:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "10916:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "baseExpression": { + "argumentTypes": null, + "id": 2230, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "4572:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2403, - "name": "require", + }, + "id": 2232, + "indexExpression": { + "argumentTypes": null, + "id": 2231, + "name": "index", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10908:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 2205, + "src": "4583:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2414, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10908:40:5", + "nodeType": "IndexAccess", + "src": "4572:17:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_Milestone_$4462_storage", + "typeString": "struct Crowdsale.Milestone storage ref" + } + }, + "id": 2233, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawalWindow", + "nodeType": "MemberAccess", + "referencedDeclaration": 4457, + "src": "4572:34:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4565:41:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4532:74:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2240, + "nodeType": "WhileStatement", + "src": "4526:114:11" + } + ] + }, + "documentation": "@dev Returns index of active milestone or last milestone", + "id": 2242, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCurrentMilestoneIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2203, + "nodeType": "ParameterList", + "parameters": [], + "src": "4332:2:11" + }, + "payable": false, + "returnParameters": { + "id": 2208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2205, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2242, + "src": "4356:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2204, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4356:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2207, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 2242, + "src": "4368:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2206, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4368:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4355:24:11" + }, + "scope": 3302, + "src": "4299:347:11", + "stateMutability": "view", + "superFunction": 1711, + "visibility": "public" + }, + { + "body": { + "id": 2270, + "nodeType": "Block", + "src": "4730:127:11", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2249, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "4744:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + } + }, + "id": 2250, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4744:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4765:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4744:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "id": 2255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4770:10:11", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2253, + "name": "isEnded", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3260 + ], + "referencedDeclaration": 3260, + "src": "4771:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 2254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4771:9:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4744:36:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2258, + "nodeType": "IfStatement", + "src": "4740:49:11", + "trueBody": { + "expression": null, + "functionReturnParameters": 2248, + "id": 2257, + "nodeType": "Return", + "src": "4782:7:11" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 2261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2259, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2247, + "src": "4799:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4807:4:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4799:12:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2262, + "nodeType": "ExpressionStatement", + "src": "4799:12:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2263, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "4821:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2264, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "4829:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 2415, - "nodeType": "ExpressionStatement", - "src": "10908:40:5" + "id": 2265, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4829:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4849:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" }, + "src": "4829:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4821:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2269, + "nodeType": "ExpressionStatement", + "src": "4821:29:11" + } + ] + }, + "documentation": null, + "id": 2271, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLastMilestoneIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2243, + "nodeType": "ParameterList", + "parameters": [], + "src": "4682:2:11" + }, + "payable": false, + "returnParameters": { + "id": 2248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2245, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2271, + "src": "4706:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2244, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4706:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2247, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 2271, + "src": "4718:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2246, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4718:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4705:24:11" + }, + "scope": 3302, + "src": "4652:205:11", + "stateMutability": "view", + "superFunction": 1718, + "visibility": "public" + }, + { + "body": { + "id": 2300, + "nodeType": "Block", + "src": "4934:148:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2417, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "10998:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2419, - "indexExpression": { - "argumentTypes": null, - "id": 2418, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11009:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10998:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2421, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11012:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10998:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 2422, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "11017:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10998:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2416, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10990:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10990:31:5", + "id": 2279, + "name": "_price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2273, + "src": "4952:6:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2425, - "nodeType": "ExpressionStatement", - "src": "10990:31:5" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2427, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11043:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2429, - "indexExpression": { - "argumentTypes": null, - "id": 2428, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11054:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11043:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2431, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11057:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11043:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2432, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11062:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2434, - "indexExpression": { - "argumentTypes": null, - "id": 2433, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11073:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11062:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2436, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11076:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11062:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11043:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2426, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11035:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2438, + "hexValue": "30", + "id": 2280, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11035:44:5", + "nodeType": "Literal", + "src": "4961:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "id": 2439, - "nodeType": "ExpressionStatement", - "src": "11035:44:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2441, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11101:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2443, - "indexExpression": { - "argumentTypes": null, - "id": 2442, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11112:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11101:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2445, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2444, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11115:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11101:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2446, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11120:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2448, - "indexExpression": { - "argumentTypes": null, - "id": 2447, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11131:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11120:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2450, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11134:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11120:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11101:35:5", + "src": "4952:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2278, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "4944:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4944:19:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2283, + "nodeType": "ExpressionStatement", + "src": "4944:19:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2285, + "name": "_serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2275, + "src": "4981:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5007:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 2440, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11093:7:5", + "id": 2286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4999:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2452, + "id": 2288, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11093:44:5", + "src": "4999:10:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2453, - "nodeType": "ExpressionStatement", - "src": "11093:44:5" + "src": "4981:28:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2284, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "4973:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4973:37:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2291, + "nodeType": "ExpressionStatement", + "src": "4973:37:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2292, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1855, + "src": "5021:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2293, + "name": "_price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2273, + "src": "5029:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5021:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2295, + "nodeType": "ExpressionStatement", + "src": "5021:14:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2296, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1861, + "src": "5045:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2297, + "name": "_serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2275, + "src": "5061:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5045:30:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2299, + "nodeType": "ExpressionStatement", + "src": "5045:30:11" + } + ] + }, + "documentation": null, + "id": 2301, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "__setParameters", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2276, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2273, + "name": "_price", + "nodeType": "VariableDeclaration", + "scope": 2301, + "src": "4888:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2272, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4888:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2275, + "name": "_serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 2301, + "src": "4901:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2274, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4901:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4887:37:11" + }, + "payable": false, + "returnParameters": { + "id": 2277, + "nodeType": "ParameterList", + "parameters": [], + "src": "4934:0:11" + }, + "scope": 3302, + "src": "4863:219:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2315, + "nodeType": "Block", + "src": "5161:55:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2311, + "name": "_price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2303, + "src": "5187:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2454, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11156:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2455, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11160:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11156:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "argumentTypes": null, + "id": 2312, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1861, + "src": "5195:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "falseBody": null, - "id": 2474, - "nodeType": "IfStatement", - "src": "11152:92:5", - "trueBody": { - "id": 2473, - "nodeType": "Block", - "src": "11163:81:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2458, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11189:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2462, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2459, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11200:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11204:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11200:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11189:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2464, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11207:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11189:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2465, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11212:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2467, - "indexExpression": { - "argumentTypes": null, - "id": 2466, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11223:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11212:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2469, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11226:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11212:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11189:39:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2457, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11181:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11181:48:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2472, - "nodeType": "ExpressionStatement", - "src": "11181:48:5" - } - ] + { + "typeIdentifier": "t_address", + "typeString": "address" } - }, + ], + "id": 2310, + "name": "__setParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "5171:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address)" + } + }, + "id": 2313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5171:38:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2314, + "nodeType": "ExpressionStatement", + "src": "5171:38:11" + } + ] + }, + "documentation": null, + "id": 2316, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2306, + "modifierName": { + "argumentTypes": null, + "id": 2305, + "name": "onlyPrimary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12420, + "src": "5133:11:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5133:11:11" + }, + { + "arguments": null, + "id": 2308, + "modifierName": { + "argumentTypes": null, + "id": 2307, + "name": "beforeSaleStart", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3292, + "src": "5145:15:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5145:15:11" + } + ], + "name": "setParameters", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2303, + "name": "_price", + "nodeType": "VariableDeclaration", + "scope": 2316, + "src": "5111:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2302, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5111:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5110:13:11" + }, + "payable": false, + "returnParameters": { + "id": 2309, + "nodeType": "ParameterList", + "parameters": [], + "src": "5161:0:11" + }, + "scope": 3302, + "src": "5088:128:11", + "stateMutability": "nonpayable", + "superFunction": 1634, + "visibility": "external" + }, + { + "body": { + "id": 2440, + "nodeType": "Block", + "src": "5627:1051:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2476, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11302:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2478, - "indexExpression": { - "argumentTypes": null, - "id": 2477, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11313:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11302:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2480, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 2479, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11316:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11302:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "11302:26:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 2482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11302:28:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2475, - "name": "require", + "argumentTypes": null, + "id": 2345, + "name": "parametersOfStages", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11294:7:5", + "overloadedDeclarations": [], + "referencedDeclaration": 2321, + "src": "5694:18:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", + "typeString": "uint256[6] calldata[] calldata" } }, - "id": 2483, + "id": 2346, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11294:37:5", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5694:25:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2484, - "nodeType": "ExpressionStatement", - "src": "11294:37:5" - }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5723:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5694:30:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5686:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5686:39:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2350, + "nodeType": "ExpressionStatement", + "src": "5686:39:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 2486 - ], - "declarations": [ - { - "constant": false, - "id": 2486, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "11346:17:5", - "stateVariable": false, - "storageLocation": "memory", + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2352, + "name": "parametersOfStages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2321, + "src": "5743:18:11", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2485, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11346:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", + "typeString": "uint256[6] calldata[] calldata" + } + }, + "id": 2353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5743:25:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 2494, - "initialValue": { + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2489, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "11393:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2490, - "name": "offsets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "11401:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 2492, - "indexExpression": { + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "5778:3:11", + "subExpression": { "argumentTypes": null, - "id": 2491, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2359, - "src": "11409:1:5", + "hexValue": "31", + "id": 2355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5780:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11401:10:5", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" } ], - "expression": { - "argumentTypes": null, - "id": 2487, - "name": "namesAndDescriptions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "11366:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2488, + "id": 2354, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "slice", - "nodeType": "MemberAccess", - "referencedDeclaration": 10360, - "src": "11366:26:5", + "nodeType": "ElementaryTypeNameExpression", + "src": "5772:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" - } + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" }, - "id": 2493, + "id": 2357, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11366:46:5", + "src": "5772:10:11", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "nodeType": "VariableDeclarationStatement", - "src": "11346:66:5" - }, + "src": "5743:39:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2351, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5735:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5735:48:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2360, + "nodeType": "ExpressionStatement", + "src": "5735:48:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 2502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "expression": { "argumentTypes": null, - "id": 2495, - "name": "offset", + "id": 2362, + "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "11426:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2498, - "name": "offsets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "11446:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 2500, - "indexExpression": { - "argumentTypes": null, - "id": 2499, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2359, - "src": "11454:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11446:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2496, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "11435:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "11435:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11435:22:5", + "referencedDeclaration": 2329, + "src": "5855:22:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", + "typeString": "uint256[4] calldata[] calldata" } }, - "src": "11426:31:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2503, - "nodeType": "ExpressionStatement", - "src": "11426:31:5" - }, - { - "assignments": [ - 2505 - ], - "declarations": [ - { - "constant": false, - "id": 2505, - "name": "description", - "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "11471:24:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2504, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11471:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5855:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 2515, - "initialValue": { + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2508, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "11525:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2509, - "name": "offsets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "11533:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 2513, - "indexExpression": { + "id": 2366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "5894:3:11", + "subExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2512, + "hexValue": "31", + "id": 2365, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2510, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2359, - "src": "11541:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11545:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11541:5:5", + "nodeType": "Literal", + "src": "5896:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11533:14:5", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" } ], - "expression": { - "argumentTypes": null, - "id": 2506, - "name": "namesAndDescriptions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "11498:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2507, + "id": 2364, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "slice", - "nodeType": "MemberAccess", - "referencedDeclaration": 10360, - "src": "11498:26:5", + "nodeType": "ElementaryTypeNameExpression", + "src": "5888:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" - } + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" }, - "id": 2514, + "id": 2367, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11498:50:5", + "src": "5888:10:11", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "nodeType": "VariableDeclarationStatement", - "src": "11471:77:5" - }, + "src": "5855:43:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2361, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5847:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5847:52:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2370, + "nodeType": "ExpressionStatement", + "src": "5847:52:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 2525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "expression": { "argumentTypes": null, - "id": 2516, - "name": "offset", + "id": 2372, + "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "11562:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2519, - "name": "offsets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "11582:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 2523, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2520, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2359, - "src": "11590:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11594:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11590:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11582:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2517, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "11571:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "11571:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11571:26:5", + "referencedDeclaration": 2329, + "src": "5917:22:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", + "typeString": "uint256[4] calldata[] calldata" } }, - "src": "11562:35:5", + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5917:29:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2526, - "nodeType": "ExpressionStatement", - "src": "11562:35:5" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "id": 2532, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2527, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2359, - "src": "11611:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "32", - "id": 2530, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11621:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - } - ], - "expression": { - "argumentTypes": null, - "id": 2528, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2359, - "src": "11615:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "11615:5:5", + "argumentTypes": null, + "id": 2374, + "name": "nameAndDescriptionsOffsetOfMilestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2332, + "src": "5950:37:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", + "typeString": "uint32[] calldata" } }, - "id": 2531, + "id": 2375, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11615:8:5", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5950:44:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11611:12:5", + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5997:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5950:48:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2533, - "nodeType": "ExpressionStatement", - "src": "11611:12:5" - }, + "src": "5917:81:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2371, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5909:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5909:90:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2380, + "nodeType": "ExpressionStatement", + "src": "5909:90:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 2543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "expression": { "argumentTypes": null, - "id": 2534, - "name": "totalPercents", + "id": 2382, + "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "11638:13:5", + "referencedDeclaration": 2329, + "src": "6017:22:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", + "typeString": "uint256[4] calldata[] calldata" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2537, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11672:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2539, - "indexExpression": { - "argumentTypes": null, - "id": 2538, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11683:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11672:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2541, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 2540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11686:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11672:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2535, - "name": "totalPercents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "11654:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "11654:17:5", + "id": 2383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6017:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2384, + "name": "nameAndDescriptionsOfMilestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2334, + "src": "6050:31:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } }, - "id": 2542, + "id": 2385, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11654:35:5", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6050:38:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11638:51:5", + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6091:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "6050:42:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2544, - "nodeType": "ExpressionStatement", - "src": "11638:51:5" - }, + "src": "6017:75:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2381, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6009:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6009:84:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2390, + "nodeType": "ExpressionStatement", + "src": "6009:84:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2392, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2337, + "src": "6150:18:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 2393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6150:25:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6179:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6150:30:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2391, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6142:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6142:39:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2397, + "nodeType": "ExpressionStatement", + "src": "6142:39:11" + }, + { + "body": { + "id": 2418, + "nodeType": "Block", + "src": "6245:72:11", + "statements": [ { "expression": { "argumentTypes": null, @@ -46493,505 +28614,118 @@ { "argumentTypes": null, "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2550, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11764:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2552, - "indexExpression": { - "argumentTypes": null, - "id": 2551, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11775:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11764:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2554, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11778:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11764:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11757:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11757:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2556, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11815:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2558, - "indexExpression": { - "argumentTypes": null, - "id": 2557, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11826:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11815:13:5", + "id": 2412, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2337, + "src": "6283:18:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" } }, - "id": 2560, + "id": 2414, "indexExpression": { "argumentTypes": null, - "hexValue": "33", - "id": 2559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11829:1:5", - "subdenomination": null, + "id": 2413, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2399, + "src": "6302:1:11", "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11815:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2562, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11869:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2564, - "indexExpression": { - "argumentTypes": null, - "id": 2563, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11880:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11869:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2566, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11883:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11869:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2561, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11862:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" }, - "id": 2567, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11862:24:5", + "nodeType": "IndexAccess", + "src": "6283:21:11", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2569, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "11929:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 2571, - "indexExpression": { - "argumentTypes": null, - "id": 2570, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "11940:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11929:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 2573, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11943:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11929:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11922:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 2574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11922:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - }, - { + ], + "expression": { "argumentTypes": null, - "id": 2575, - "name": "name", + "id": 2410, + "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2486, - "src": "11970:4:5", + "referencedDeclaration": 1853, + "src": "6267:5:11", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } }, - { - "argumentTypes": null, - "id": 2576, - "name": "description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2505, - "src": "12005:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 2548, - "name": "Milestone", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1351, - "src": "11720:9:5", + "id": 2411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "hasSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 10036, + "src": "6267:15:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Milestone_$1351_storage_ptr_$", - "typeString": "type(struct W12Crowdsale.Milestone storage pointer)" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 2577, + "id": 2415, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "structConstructorCall", + "kind": "functionCall", "lValueRequested": false, - "names": [ - "endDate", - "tranchePercent", - "voteEndDate", - "withdrawalWindow", - "name", - "description" - ], + "names": [], "nodeType": "FunctionCall", - "src": "11720:311:5", + "src": "6267:38:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$1351_memory", - "typeString": "struct W12Crowdsale.Milestone memory" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Milestone_$1351_memory", - "typeString": "struct W12Crowdsale.Milestone memory" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 2545, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "11704:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$1351_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 2547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11704:15:5", + "id": 2409, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6259:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$1351_storage_$returns$_t_uint256_$", - "typeString": "function (struct W12Crowdsale.Milestone storage ref) returns (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2578, + "id": 2416, "isConstant": false, "isLValue": false, "isPure": false, @@ -46999,276 +28733,1182 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11704:328:5", + "src": "6259:47:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2417, + "nodeType": "ExpressionStatement", + "src": "6259:47:11" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2402, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2399, + "src": "6209:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2403, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2337, + "src": "6213:18:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 2404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6213:25:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6209:29:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2419, + "initializationExpression": { + "assignments": [ + 2399 + ], + "declarations": [ + { + "constant": false, + "id": 2399, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 2441, + "src": "6197:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2398, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6197:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2579, - "nodeType": "ExpressionStatement", - "src": "11704:328:5" + "value": null, + "visibility": "internal" } - ] + ], + "id": 2401, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6206:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6197:10:11" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 2407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6240:3:11", + "subExpression": { + "argumentTypes": null, + "id": 2406, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2399, + "src": "6240:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2408, + "nodeType": "ExpressionStatement", + "src": "6240:3:11" + }, + "nodeType": "ForStatement", + "src": "6192:125:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2421, + "name": "parametersOfStages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2321, + "src": "6351:18:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", + "typeString": "uint256[6] calldata[] calldata" + } + }, + { + "argumentTypes": null, + "id": 2422, + "name": "bonusConditionsOfStages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2324, + "src": "6383:23:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", + "typeString": "uint256[6] calldata[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + ], + "id": 2420, + "name": "_setStages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2465, + "src": "6327:10:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256[6] memory[] memory,uint256[] memory)" + } + }, + "id": 2423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6327:89:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2424, + "nodeType": "ExpressionStatement", + "src": "6327:89:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2426, + "name": "parametersOfMilestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "6455:22:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", + "typeString": "uint256[4] calldata[] calldata" + } + }, + { + "argumentTypes": null, + "id": 2427, + "name": "nameAndDescriptionsOffsetOfMilestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2332, + "src": "6491:37:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", + "typeString": "uint32[] calldata" + } + }, + { + "argumentTypes": null, + "id": 2428, + "name": "nameAndDescriptionsOfMilestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2334, + "src": "6542:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", + "typeString": "uint256[4] calldata[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", + "typeString": "uint32[] calldata" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "id": 2425, + "name": "_setMilestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "6427:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (uint256[4] memory[] memory,uint32[] memory,bytes memory)" + } + }, + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6427:156:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2430, + "nodeType": "ExpressionStatement", + "src": "6427:156:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2434, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2337, + "src": "6616:18:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + ], + "expression": { + "argumentTypes": null, + "id": 2431, + "name": "paymentMethods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "6594:14:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$6179_storage", + "typeString": "struct PaymentMethods.Methods storage ref" + } + }, + "id": 2433, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "update", + "nodeType": "MemberAccess", + "referencedDeclaration": 6258, + "src": "6594:21:11", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Methods_$6179_storage_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$bound_to$_t_struct$_Methods_$6179_storage_ptr_$", + "typeString": "function (struct PaymentMethods.Methods storage pointer,bytes32[] memory)" + } + }, + "id": 2435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6594:41:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2436, + "nodeType": "ExpressionStatement", + "src": "6594:41:11" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2437, + "name": "CrowdsaleSetUpDone", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "6651:18:11", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6651:20:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2439, + "nodeType": "EmitStatement", + "src": "6646:25:11" + } + ] + }, + "documentation": "@dev Setup all crowdsale parameters at a time", + "id": 2441, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2340, + "modifierName": { + "argumentTypes": null, + "id": 2339, + "name": "onlyProjectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "5590:16:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5590:16:11" + }, + { + "arguments": null, + "id": 2342, + "modifierName": { + "argumentTypes": null, + "id": 2341, + "name": "beforeSaleStart", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3292, + "src": "5607:15:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5607:15:11" + } + ], + "name": "setup", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2338, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2321, + "name": "parametersOfStages", + "nodeType": "VariableDeclaration", + "scope": 2441, + "src": "5315:28:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", + "typeString": "uint256[6][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 2317, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5315:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2319, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 2318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5320:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "5315:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "id": 2320, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5315:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", + "typeString": "uint256[6][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2324, + "name": "bonusConditionsOfStages", + "nodeType": "VariableDeclaration", + "scope": 2441, + "src": "5353:30:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2322, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5353:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2323, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5353:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2329, + "name": "parametersOfMilestones", + "nodeType": "VariableDeclaration", + "scope": 2441, + "src": "5393:32:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", + "typeString": "uint256[4][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 2325, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5393:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2327, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 2326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5398:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "5393:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "id": 2328, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5393:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", + "typeString": "uint256[4][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2332, + "name": "nameAndDescriptionsOffsetOfMilestones", + "nodeType": "VariableDeclaration", + "scope": 2441, + "src": "5435:46:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", + "typeString": "uint32[]" }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeName": { + "baseType": { + "id": 2330, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "5435:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } }, - "id": 2373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2370, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "10728:1:5", + "id": 2331, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5435:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2334, + "name": "nameAndDescriptionsOfMilestones", + "nodeType": "VariableDeclaration", + "scope": 2441, + "src": "5491:37:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5491:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2337, + "name": "paymentMethodsList", + "nodeType": "VariableDeclaration", + "scope": 2441, + "src": "5538:28:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 2335, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5538:7:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { + "id": 2336, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5538:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5305:267:11" + }, + "payable": false, + "returnParameters": { + "id": 2343, + "nodeType": "ParameterList", + "parameters": [], + "src": "5627:0:11" + }, + "scope": 3302, + "src": "5291:1387:11", + "stateMutability": "nonpayable", + "superFunction": 1658, + "visibility": "external" + }, + { + "body": { + "id": 2464, + "nodeType": "Block", + "src": "7154:116:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2455, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "7184:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + { + "argumentTypes": null, + "id": 2456, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "7192:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + } + }, + { "argumentTypes": null, - "id": 2371, + "id": 2457, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "10732:10:5", + "referencedDeclaration": 2446, + "src": "7204:10:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + } + }, + { + "argumentTypes": null, + "id": 2458, + "name": "bonusConditions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2449, + "src": "7216:15:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6] memory[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2452, + "name": "Crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5200, + "src": "7164:9:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Crowdsale_$5200_$", + "typeString": "type(library Crowdsale)" } }, - "id": 2372, + "id": 2454, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "length", + "memberName": "setStages", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10732:17:5", + "referencedDeclaration": 4721, + "src": "7164:19:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr_$_t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr_$_t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (struct Crowdsale.Stage storage ref[] storage pointer,struct Crowdsale.Milestone storage ref[] storage pointer,uint256[6] memory[] memory,uint256[] memory)" } }, - "src": "10728:21:5", + "id": 2459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7164:68:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2581, - "initializationExpression": { - "assignments": [ - 2367 - ], - "declarations": [ - { - "constant": false, - "id": 2367, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10715:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2366, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "10715:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2369, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10725:1:5", - "subdenomination": null, + "id": 2460, + "nodeType": "ExpressionStatement", + "src": "7164:68:11" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2461, + "name": "StagesUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "7248:13:11", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", + "typeString": "function ()" + } }, - "nodeType": "VariableDeclarationStatement", - "src": "10715:11:5" + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7248:15:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10751:3:5", - "subExpression": { - "argumentTypes": null, - "id": 2374, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "10751:1:5", + "id": 2463, + "nodeType": "EmitStatement", + "src": "7243:20:11" + } + ] + }, + "documentation": "@dev Update stages\n@param parameters List of primary parameters:\n[\n uint32 startDate,\n uint32 endDate,\n uint discount,\n uint32 vesting,\n uint8 startIndexOfBonusConditions\n uint8 endIndexOfBonusConditions\n],\n@param bonusConditions List of bonus conditions:\n[uint boundary, uint bonus, ...]", + "id": 2465, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_setStages", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2450, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2446, + "name": "parameters", + "nodeType": "VariableDeclaration", + "scope": 2465, + "src": "7099:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", + "typeString": "uint256[6][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 2442, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7099:4:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "id": 2444, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7104:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "7099:7:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" } }, - "id": 2376, - "nodeType": "ExpressionStatement", - "src": "10751:3:5" + "id": 2445, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7099:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", + "typeString": "uint256[6][]" + } }, - "nodeType": "ForStatement", - "src": "10710:1333:5" + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 2449, + "name": "bonusConditions", + "nodeType": "VariableDeclaration", + "scope": 2465, + "src": "7121:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2447, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7121:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2448, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7121:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7098:46:11" + }, + "payable": false, + "returnParameters": { + "id": 2451, + "nodeType": "ParameterList", + "parameters": [], + "src": "7154:0:11" + }, + "scope": 3302, + "src": "7079:191:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2491, + "nodeType": "Block", + "src": "7836:138:11", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2583, - "name": "totalPercents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "12061:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2584, - "name": "Percent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "12078:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$5214_$", - "typeString": "type(library Percent)" - } - }, - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "MAX", - "nodeType": "MemberAccess", - "referencedDeclaration": 5114, - "src": "12078:11:5", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" - } - }, - "id": 2586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12078:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12061:30:5", + "id": 2481, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "7870:6:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + { + "argumentTypes": null, + "id": 2482, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "7878:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + } + }, + { + "argumentTypes": null, + "id": 2483, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2470, + "src": "7890:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + { + "argumentTypes": null, + "id": 2484, + "name": "offsets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2473, + "src": "7902:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + { + "argumentTypes": null, + "id": 2485, + "name": "namesAndDescriptions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2475, + "src": "7911:20:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage", + "typeString": "struct Crowdsale.Milestone storage ref[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } ], - "id": 2582, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "12053:7:5", + "expression": { + "argumentTypes": null, + "id": 2478, + "name": "Crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5200, + "src": "7846:9:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Crowdsale_$5200_$", + "typeString": "type(library Crowdsale)" + } + }, + "id": 2480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setMilestones", + "nodeType": "MemberAccess", + "referencedDeclaration": 5199, + "src": "7846:23:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_struct$_Stage_$4449_storage_$dyn_storage_ptr_$_t_array$_t_struct$_Milestone_$4462_storage_$dyn_storage_ptr_$_t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (struct Crowdsale.Stage storage ref[] storage pointer,struct Crowdsale.Milestone storage ref[] storage pointer,uint256[4] memory[] memory,uint32[] memory,bytes memory)" } }, - "id": 2588, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": false, @@ -47276,15 +29916,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12053:39:5", + "src": "7846:86:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2589, + "id": 2487, "nodeType": "ExpressionStatement", - "src": "12053:39:5" + "src": "7846:86:11" }, { "eventCall": { @@ -47292,18 +29932,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2590, + "id": 2488, "name": "MilestonesUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1369, - "src": "12108:17:5", + "referencedDeclaration": 1889, + "src": "7948:17:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2591, + "id": 2489, "isConstant": false, "isLValue": false, "isPure": false, @@ -47311,20 +29951,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12108:19:5", + "src": "7948:19:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2592, + "id": 2490, "nodeType": "EmitStatement", - "src": "12103:24:5" + "src": "7943:24:11" } ] }, "documentation": "@dev Update milestones\n@param parameters List of primary parameters:\n[\n uint32 endDate,\n uint32 voteEndDate,\n uint32 withdrawalWindow,\n uint tranchPercent\n]\n@param offsets Offsets of names and descriptions in namesAndDescriptions:\n[uint32 offset1, uint32 offset2, ...]\n@param namesAndDescriptions Names and descriptions", - "id": 2594, + "id": 2492, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -47332,16 +29972,16 @@ "name": "_setMilestones", "nodeType": "FunctionDefinition", "parameters": { - "id": 2327, + "id": 2476, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2321, + "id": 2470, "name": "parameters", "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10365:20:5", + "scope": 2492, + "src": "7726:20:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47351,27 +29991,27 @@ "typeName": { "baseType": { "baseType": { - "id": 2317, + "id": 2466, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10365:4:5", + "src": "7726:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2319, + "id": 2468, "length": { "argumentTypes": null, "hexValue": "34", - "id": 2318, + "id": 2467, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10370:1:5", + "src": "7731:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -47380,16 +30020,16 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "10365:7:5", + "src": "7726:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, - "id": 2320, + "id": 2469, "length": null, "nodeType": "ArrayTypeName", - "src": "10365:9:5", + "src": "7726:9:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" @@ -47400,11 +30040,11 @@ }, { "constant": false, - "id": 2324, + "id": 2473, "name": "offsets", "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10395:16:5", + "scope": 2492, + "src": "7756:16:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47413,19 +30053,19 @@ }, "typeName": { "baseType": { - "id": 2322, + "id": 2471, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "10395:6:5", + "src": "7756:6:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2323, + "id": 2472, "length": null, "nodeType": "ArrayTypeName", - "src": "10395:8:5", + "src": "7756:8:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -47436,11 +30076,11 @@ }, { "constant": false, - "id": 2326, + "id": 2475, "name": "namesAndDescriptions", "nodeType": "VariableDeclaration", - "scope": 2594, - "src": "10421:26:5", + "scope": 2492, + "src": "7782:26:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47448,10 +30088,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2325, + "id": 2474, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10421:5:5", + "src": "7782:5:11", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -47461,26 +30101,26 @@ "visibility": "internal" } ], - "src": "10355:98:5" + "src": "7716:98:11" }, "payable": false, "returnParameters": { - "id": 2328, + "id": 2477, "nodeType": "ParameterList", "parameters": [], - "src": "10475:0:5" + "src": "7836:0:11" }, - "scope": 3279, - "src": "10332:1802:5", + "scope": 3302, + "src": "7693:281:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2687, + "id": 2585, "nodeType": "Block", - "src": "12235:559:5", + "src": "8075:559:11", "statements": [ { "condition": { @@ -47489,7 +30129,7 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 2609, + "id": 2507, "isConstant": false, "isLValue": false, "isPure": false, @@ -47501,32 +30141,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2605, + "id": 2503, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "12249:18:5", + "referencedDeclaration": 7269, + "src": "8089:18:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 2606, + "id": 2504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "METHOD_ETH", "nodeType": "MemberAccess", - "referencedDeclaration": 5303, - "src": "12249:29:5", + "referencedDeclaration": 6454, + "src": "8089:29:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2607, + "id": 2505, "isConstant": false, "isLValue": false, "isPure": false, @@ -47534,7 +30174,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12249:31:5", + "src": "8089:31:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47544,31 +30184,31 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2608, + "id": 2506, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12284:6:5", + "referencedDeclaration": 2494, + "src": "8124:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "12249:41:5", + "src": "8089:41:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2622, + "id": 2520, "nodeType": "IfStatement", - "src": "12245:124:5", + "src": "8085:124:11", "trueBody": { - "id": 2621, + "id": 2519, "nodeType": "Block", - "src": "12292:77:5", + "src": "8132:77:11", "statements": [ { "expression": { @@ -47580,7 +30220,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2618, + "id": 2516, "isConstant": false, "isLValue": false, "isPure": false, @@ -47590,12 +30230,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2613, + "id": 2511, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12336:6:5", + "referencedDeclaration": 2494, + "src": "8176:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47611,32 +30251,32 @@ ], "expression": { "argumentTypes": null, - "id": 2611, + "id": 2509, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "12314:5:5", + "referencedDeclaration": 1853, + "src": "8154:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 2612, + "id": 2510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getTokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "12314:21:5", + "referencedDeclaration": 9992, + "src": "8154:21:11", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) view external returns (address)" } }, - "id": 2614, + "id": 2512, "isConstant": false, "isLValue": false, "isPure": false, @@ -47644,7 +30284,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12314:29:5", + "src": "8154:29:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -47658,14 +30298,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2616, + "id": 2514, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12355:1:5", + "src": "8195:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -47681,20 +30321,20 @@ "typeString": "int_const 0" } ], - "id": 2615, + "id": 2513, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12347:7:5", + "src": "8187:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2617, + "id": 2515, "isConstant": false, "isLValue": false, "isPure": true, @@ -47702,13 +30342,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12347:10:5", + "src": "8187:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "12314:43:5", + "src": "8154:43:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -47722,21 +30362,21 @@ "typeString": "bool" } ], - "id": 2610, + "id": 2508, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "12306:7:5", + "referencedDeclaration": 13444, + "src": "8146:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2619, + "id": 2517, "isConstant": false, "isLValue": false, "isPure": false, @@ -47744,32 +30384,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12306:52:5", + "src": "8146:52:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2620, + "id": 2518, "nodeType": "ExpressionStatement", - "src": "12306:52:5" + "src": "8146:52:11" } ] } }, { "assignments": [ - 2624, + 2522, null ], "declarations": [ { "constant": false, - "id": 2624, + "id": 2522, "name": "index", "nodeType": "VariableDeclaration", - "scope": 2688, - "src": "12380:10:5", + "scope": 2586, + "src": "8220:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47777,10 +30417,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2623, + "id": 2521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12380:4:5", + "src": "8220:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47791,24 +30431,26 @@ }, null ], - "id": 2627, + "id": 2525, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 2625, + "id": 2523, "name": "getCurrentStageIndex", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3182, - "src": "12410:20:5", + "overloadedDeclarations": [ + 3204 + ], + "referencedDeclaration": 3204, + "src": "8250:20:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view returns (uint256,bool)" } }, - "id": 2626, + "id": 2524, "isConstant": false, "isLValue": false, "isPure": false, @@ -47816,27 +30458,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12410:22:5", + "src": "8250:22:11", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "12379:53:5" + "src": "8219:53:11" }, { "assignments": [ - 2632 + 2530 ], "declarations": [ { "constant": false, - "id": 2632, + "id": 2530, "name": "invoice", "nodeType": "VariableDeclaration", - "scope": 2688, - "src": "12443:22:5", + "scope": 2586, + "src": "8283:22:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -47845,27 +30487,27 @@ }, "typeName": { "baseType": { - "id": 2630, + "id": 2528, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12443:4:5", + "src": "8283:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2631, + "id": 2529, "length": { "argumentTypes": null, "hexValue": "35", - "id": 2629, + "id": 2527, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12448:1:5", + "src": "8288:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -47874,7 +30516,7 @@ "value": "5" }, "nodeType": "ArrayTypeName", - "src": "12443:7:5", + "src": "8283:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", "typeString": "uint256[5]" @@ -47884,18 +30526,18 @@ "visibility": "internal" } ], - "id": 2637, + "id": 2535, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2634, + "id": 2532, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12479:6:5", + "referencedDeclaration": 2494, + "src": "8319:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47903,12 +30545,12 @@ }, { "argumentTypes": null, - "id": 2635, + "id": 2533, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2598, - "src": "12487:6:5", + "referencedDeclaration": 2496, + "src": "8327:6:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47926,18 +30568,18 @@ "typeString": "uint256" } ], - "id": 2633, + "id": 2531, "name": "getInvoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2993, - "src": "12468:10:5", + "referencedDeclaration": 2884, + "src": "8308:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_array$_t_uint256_$5_memory_ptr_$", "typeString": "function (bytes32,uint256) view returns (uint256[5] memory)" } }, - "id": 2636, + "id": 2534, "isConstant": false, "isLValue": false, "isPure": false, @@ -47945,27 +30587,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12468:26:5", + "src": "8308:26:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "12443:51:5" + "src": "8283:51:11" }, { "assignments": [ - 2642 + 2540 ], "declarations": [ { "constant": false, - "id": 2642, + "id": 2540, "name": "fee", "nodeType": "VariableDeclaration", - "scope": 2688, - "src": "12504:18:5", + "scope": 2586, + "src": "8344:18:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -47974,27 +30616,27 @@ }, "typeName": { "baseType": { - "id": 2640, + "id": 2538, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12504:4:5", + "src": "8344:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2641, + "id": 2539, "length": { "argumentTypes": null, "hexValue": "32", - "id": 2639, + "id": 2537, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12509:1:5", + "src": "8349:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -48003,7 +30645,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "12504:7:5", + "src": "8344:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -48013,7 +30655,7 @@ "visibility": "internal" } ], - "id": 2651, + "id": 2549, "initialValue": { "argumentTypes": null, "arguments": [ @@ -48021,29 +30663,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2644, + "id": 2542, "name": "invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12532:7:5", + "referencedDeclaration": 2530, + "src": "8372:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 2646, + "id": 2544, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2645, + "id": 2543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12540:1:5", + "src": "8380:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -48056,7 +30698,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12532:10:5", + "src": "8372:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48066,29 +30708,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2647, + "id": 2545, "name": "invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12544:7:5", + "referencedDeclaration": 2530, + "src": "8384:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 2649, + "id": 2547, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2648, + "id": 2546, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12552:1:5", + "src": "8392:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -48101,7 +30743,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12544:10:5", + "src": "8384:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48119,18 +30761,18 @@ "typeString": "uint256" } ], - "id": 2643, + "id": 2541, "name": "getFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3102, - "src": "12525:6:5", + "referencedDeclaration": 3120, + "src": "8365:6:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "function (uint256,uint256) view returns (uint256[2] memory)" } }, - "id": 2650, + "id": 2548, "isConstant": false, "isLValue": false, "isPure": false, @@ -48138,14 +30780,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12525:30:5", + "src": "8365:30:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "12504:51:5" + "src": "8344:51:11" }, { "expression": { @@ -48153,12 +30795,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2653, + "id": 2551, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "12579:3:5", + "referencedDeclaration": 2540, + "src": "8419:3:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -48166,12 +30808,12 @@ }, { "argumentTypes": null, - "id": 2654, + "id": 2552, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12584:6:5", + "referencedDeclaration": 2494, + "src": "8424:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48189,18 +30831,18 @@ "typeString": "bytes32" } ], - "id": 2652, + "id": 2550, "name": "_transferFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2725, - "src": "12566:12:5", + "referencedDeclaration": 2623, + "src": "8406:12:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$returns$__$", "typeString": "function (uint256[2] memory,bytes32)" } }, - "id": 2655, + "id": 2553, "isConstant": false, "isLValue": false, "isPure": false, @@ -48208,15 +30850,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12566:25:5", + "src": "8406:25:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2656, + "id": 2554, "nodeType": "ExpressionStatement", - "src": "12566:25:5" + "src": "8406:25:11" }, { "expression": { @@ -48224,12 +30866,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2658, + "id": 2556, "name": "invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12619:7:5", + "referencedDeclaration": 2530, + "src": "8459:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" @@ -48237,12 +30879,12 @@ }, { "argumentTypes": null, - "id": 2659, + "id": 2557, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "12628:3:5", + "referencedDeclaration": 2540, + "src": "8468:3:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -48254,26 +30896,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2660, + "id": 2558, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "12633:6:5", + "referencedDeclaration": 1868, + "src": "8473:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 2662, + "id": 2560, "indexExpression": { "argumentTypes": null, - "id": 2661, + "id": 2559, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "12640:5:5", + "referencedDeclaration": 2522, + "src": "8480:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48284,21 +30926,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12633:13:5", + "src": "8473:13:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2663, + "id": 2561, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "vesting", "nodeType": "MemberAccess", - "referencedDeclaration": 1331, - "src": "12633:21:5", + "referencedDeclaration": 4442, + "src": "8473:21:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48306,12 +30948,12 @@ }, { "argumentTypes": null, - "id": 2664, + "id": 2562, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12656:6:5", + "referencedDeclaration": 2494, + "src": "8496:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48337,18 +30979,18 @@ "typeString": "bytes32" } ], - "id": 2657, + "id": 2555, "name": "_transferPurchase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "12601:17:5", + "referencedDeclaration": 2665, + "src": "8441:17:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_uint32_$_t_bytes32_$returns$__$", "typeString": "function (uint256[5] memory,uint256[2] memory,uint32,bytes32)" } }, - "id": 2665, + "id": 2563, "isConstant": false, "isLValue": false, "isPure": false, @@ -48356,15 +30998,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12601:62:5", + "src": "8441:62:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2666, + "id": 2564, "nodeType": "ExpressionStatement", - "src": "12601:62:5" + "src": "8441:62:11" }, { "expression": { @@ -48372,12 +31014,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2668, + "id": 2566, "name": "invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12689:7:5", + "referencedDeclaration": 2530, + "src": "8529:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" @@ -48385,12 +31027,12 @@ }, { "argumentTypes": null, - "id": 2669, + "id": 2567, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "12698:3:5", + "referencedDeclaration": 2540, + "src": "8538:3:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -48398,12 +31040,12 @@ }, { "argumentTypes": null, - "id": 2670, + "id": 2568, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12703:6:5", + "referencedDeclaration": 2494, + "src": "8543:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48425,18 +31067,18 @@ "typeString": "bytes32" } ], - "id": 2667, + "id": 2565, "name": "_recordPurchase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2864, - "src": "12673:15:5", + "referencedDeclaration": 2764, + "src": "8513:15:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$returns$__$", "typeString": "function (uint256[5] memory,uint256[2] memory,bytes32)" } }, - "id": 2671, + "id": 2569, "isConstant": false, "isLValue": false, "isPure": false, @@ -48444,15 +31086,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12673:37:5", + "src": "8513:37:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2672, + "id": 2570, "nodeType": "ExpressionStatement", - "src": "12673:37:5" + "src": "8513:37:11" }, { "eventCall": { @@ -48462,18 +31104,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2674, + "id": 2572, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "12740:3:5", + "referencedDeclaration": 13441, + "src": "8580:3:11", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2675, + "id": 2573, "isConstant": false, "isLValue": false, "isPure": false, @@ -48481,7 +31123,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12740:10:5", + "src": "8580:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -48491,29 +31133,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2676, + "id": 2574, "name": "invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12752:7:5", + "referencedDeclaration": 2530, + "src": "8592:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 2678, + "id": 2576, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2677, + "id": 2575, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12760:1:5", + "src": "8600:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -48526,7 +31168,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12752:10:5", + "src": "8592:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48536,29 +31178,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2679, + "id": 2577, "name": "invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12764:7:5", + "referencedDeclaration": 2530, + "src": "8604:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 2681, + "id": 2579, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2680, + "id": 2578, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12772:1:5", + "src": "8612:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -48571,7 +31213,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12764:10:5", + "src": "8604:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48581,29 +31223,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2682, + "id": 2580, "name": "invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "12776:7:5", + "referencedDeclaration": 2530, + "src": "8616:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 2684, + "id": 2582, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 2683, + "id": 2581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12784:1:5", + "src": "8624:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -48616,7 +31258,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12776:10:5", + "src": "8616:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48642,18 +31284,18 @@ "typeString": "uint256" } ], - "id": 2673, + "id": 2571, "name": "TokenPurchase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "12726:13:5", + "referencedDeclaration": 1881, + "src": "8566:13:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256,uint256)" } }, - "id": 2685, + "id": 2583, "isConstant": false, "isLValue": false, "isPure": false, @@ -48661,76 +31303,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12726:61:5", + "src": "8566:61:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2686, + "id": 2584, "nodeType": "EmitStatement", - "src": "12721:66:5" + "src": "8561:66:11" } ] }, "documentation": null, - "id": 2688, + "id": 2586, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2601, + "id": 2499, "modifierName": { "argumentTypes": null, - "id": 2600, + "id": 2498, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9776, - "src": "12203:12:5", + "referencedDeclaration": 13257, + "src": "8043:12:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "12203:12:5" + "src": "8043:12:11" }, { "arguments": null, - "id": 2603, + "id": 2501, "modifierName": { "argumentTypes": null, - "id": 2602, + "id": 2500, "name": "onlyWhenSaleActive", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "12216:18:5", + "referencedDeclaration": 3301, + "src": "8056:18:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "12216:18:5" + "src": "8056:18:11" } ], "name": "buyTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 2599, + "id": 2497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2596, + "id": 2494, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2688, - "src": "12159:14:5", + "scope": 2586, + "src": "7999:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48738,10 +31380,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2595, + "id": 2493, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12159:7:5", + "src": "7999:7:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48752,11 +31394,11 @@ }, { "constant": false, - "id": 2598, + "id": 2496, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2688, - "src": "12175:11:5", + "scope": 2586, + "src": "8015:11:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48764,10 +31406,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2597, + "id": 2495, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12175:4:5", + "src": "8015:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48777,26 +31419,26 @@ "visibility": "internal" } ], - "src": "12158:29:5" + "src": "7998:29:11" }, "payable": true, "returnParameters": { - "id": 2604, + "id": 2502, "nodeType": "ParameterList", "parameters": [], - "src": "12235:0:5" + "src": "8075:0:11" }, - "scope": 3279, - "src": "12140:654:5", + "scope": 3302, + "src": "7980:654:11", "stateMutability": "payable", - "superFunction": 1218, + "superFunction": 1754, "visibility": "public" }, { "body": { - "id": 2724, + "id": 2622, "nodeType": "Block", - "src": "12861:282:5", + "src": "8701:282:11", "statements": [ { "expression": { @@ -48804,12 +31446,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2700, + "id": 2598, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2692, - "src": "12915:4:5", + "referencedDeclaration": 2590, + "src": "8755:4:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -48817,12 +31459,12 @@ }, { "argumentTypes": null, - "id": 2701, + "id": 2599, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2694, - "src": "12933:6:5", + "referencedDeclaration": 2592, + "src": "8773:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48835,12 +31477,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2704, + "id": 2602, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2694, - "src": "12967:6:5", + "referencedDeclaration": 2592, + "src": "8807:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48856,32 +31498,32 @@ ], "expression": { "argumentTypes": null, - "id": 2702, + "id": 2600, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "12953:5:5", + "referencedDeclaration": 1853, + "src": "8793:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 2703, + "id": 2601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isToken", "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "12953:13:5", + "referencedDeclaration": 9999, + "src": "8793:13:11", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 2705, + "id": 2603, "isConstant": false, "isLValue": false, "isPure": false, @@ -48889,7 +31531,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12953:21:5", + "src": "8793:21:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -48901,14 +31543,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2711, + "id": 2609, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13017:1:5", + "src": "8857:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -48924,20 +31566,20 @@ "typeString": "int_const 0" } ], - "id": 2710, + "id": 2608, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13009:7:5", + "src": "8849:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2712, + "id": 2610, "isConstant": false, "isLValue": false, "isPure": true, @@ -48945,30 +31587,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13009:10:5", + "src": "8849:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2713, + "id": 2611, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "12953:66:5", + "src": "8793:66:11", "trueExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2708, + "id": 2606, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2694, - "src": "12999:6:5", + "referencedDeclaration": 2592, + "src": "8839:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48984,32 +31626,32 @@ ], "expression": { "argumentTypes": null, - "id": 2706, + "id": 2604, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "12977:5:5", + "referencedDeclaration": 1853, + "src": "8817:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 2707, + "id": 2605, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getTokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "12977:21:5", + "referencedDeclaration": 9992, + "src": "8817:21:11", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) view external returns (address)" } }, - "id": 2709, + "id": 2607, "isConstant": false, "isLValue": false, "isPure": false, @@ -49017,7 +31659,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12977:29:5", + "src": "8817:29:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -49033,14 +31675,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2715, + "id": 2613, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "13041:5:5", + "referencedDeclaration": 1847, + "src": "8881:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } } @@ -49048,24 +31690,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } ], - "id": 2714, + "id": 2612, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:5", + "src": "8873:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2716, + "id": 2614, "isConstant": false, "isLValue": false, "isPure": false, @@ -49073,7 +31715,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13033:14:5", + "src": "8873:14:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -49084,39 +31726,39 @@ "arguments": [ { "argumentTypes": null, - "id": 2718, + "id": 2616, "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "13069:11:5", + "referencedDeclaration": 1849, + "src": "8909:11:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } ], - "id": 2717, + "id": 2615, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13061:7:5", + "src": "8901:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2719, + "id": 2617, "isConstant": false, "isLValue": false, "isPure": false, @@ -49124,7 +31766,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13061:20:5", + "src": "8901:20:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -49132,12 +31774,12 @@ }, { "argumentTypes": null, - "id": 2720, + "id": 2618, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1315, - "src": "13095:4:5", + "referencedDeclaration": 1863, + "src": "8935:4:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -49145,12 +31787,12 @@ }, { "argumentTypes": null, - "id": 2721, + "id": 2619, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1313, - "src": "13113:13:5", + "referencedDeclaration": 1861, + "src": "8953:13:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -49190,32 +31832,32 @@ ], "expression": { "argumentTypes": null, - "id": 2697, + "id": 2595, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "12871:18:5", + "referencedDeclaration": 7269, + "src": "8711:18:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 2699, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFee", "nodeType": "MemberAccess", - "referencedDeclaration": 5902, - "src": "12871:30:5", + "referencedDeclaration": 7053, + "src": "8711:30:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", "typeString": "function (uint256[2] memory,bytes32,address,address,address,address,address)" } }, - "id": 2722, + "id": 2620, "isConstant": false, "isLValue": false, "isPure": false, @@ -49223,20 +31865,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12871:265:5", + "src": "8711:265:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2723, + "id": 2621, "nodeType": "ExpressionStatement", - "src": "12871:265:5" + "src": "8711:265:11" } ] }, "documentation": null, - "id": 2725, + "id": 2623, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -49244,16 +31886,16 @@ "name": "_transferFee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2695, + "id": 2593, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2692, + "id": 2590, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 2725, - "src": "12822:12:5", + "scope": 2623, + "src": "8662:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49262,27 +31904,27 @@ }, "typeName": { "baseType": { - "id": 2689, + "id": 2587, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12822:4:5", + "src": "8662:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2691, + "id": 2589, "length": { "argumentTypes": null, "hexValue": "32", - "id": 2690, + "id": 2588, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12827:1:5", + "src": "8667:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -49291,7 +31933,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "12822:7:5", + "src": "8662:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -49302,11 +31944,11 @@ }, { "constant": false, - "id": 2694, + "id": 2592, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2725, - "src": "12836:14:5", + "scope": 2623, + "src": "8676:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49314,10 +31956,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2693, + "id": 2591, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12836:7:5", + "src": "8676:7:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -49327,26 +31969,26 @@ "visibility": "internal" } ], - "src": "12821:30:5" + "src": "8661:30:11" }, "payable": false, "returnParameters": { - "id": 2696, + "id": 2594, "nodeType": "ParameterList", "parameters": [], - "src": "12861:0:5" + "src": "8701:0:11" }, - "scope": 3279, - "src": "12800:343:5", + "scope": 3302, + "src": "8640:343:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2764, + "id": 2664, "nodeType": "Block", - "src": "13249:251:5", + "src": "9089:260:11", "statements": [ { "expression": { @@ -49354,12 +31996,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2743, + "id": 2641, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2729, - "src": "13308:8:5", + "referencedDeclaration": 2627, + "src": "9148:8:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" @@ -49367,12 +32009,12 @@ }, { "argumentTypes": null, - "id": 2744, + "id": 2642, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2733, - "src": "13330:4:5", + "referencedDeclaration": 2631, + "src": "9170:4:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -49380,12 +32022,12 @@ }, { "argumentTypes": null, - "id": 2745, + "id": 2643, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2735, - "src": "13348:7:5", + "referencedDeclaration": 2633, + "src": "9188:7:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49393,12 +32035,12 @@ }, { "argumentTypes": null, - "id": 2746, + "id": 2644, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2737, - "src": "13369:6:5", + "referencedDeclaration": 2635, + "src": "9209:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -49411,12 +32053,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2749, + "id": 2647, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2737, - "src": "13403:6:5", + "referencedDeclaration": 2635, + "src": "9243:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -49432,32 +32074,32 @@ ], "expression": { "argumentTypes": null, - "id": 2747, + "id": 2645, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "13389:5:5", + "referencedDeclaration": 1853, + "src": "9229:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 2748, + "id": 2646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isToken", "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "13389:13:5", + "referencedDeclaration": 9999, + "src": "9229:13:11", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 2750, + "id": 2648, "isConstant": false, "isLValue": false, "isPure": false, @@ -49465,7 +32107,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13389:21:5", + "src": "9229:21:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -49477,14 +32119,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2756, + "id": 2656, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13453:1:5", + "src": "9302:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -49500,20 +32142,20 @@ "typeString": "int_const 0" } ], - "id": 2755, + "id": 2655, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13445:7:5", + "src": "9294:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2757, + "id": 2657, "isConstant": false, "isLValue": false, "isPure": true, @@ -49521,79 +32163,117 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13445:10:5", + "src": "9294:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2758, + "id": 2658, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "13389:66:5", + "src": "9229:75:11", "trueExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2753, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2737, - "src": "13435:6:5", + "arguments": [ + { + "argumentTypes": null, + "id": 2652, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2635, + "src": "9283:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2650, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "9261:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 2651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "9261:21:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9261:29:11", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "expression": { - "argumentTypes": null, - "id": 2751, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "13413:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 2752, + "id": 2649, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "13413:21:5", + "nodeType": "ElementaryTypeNameExpression", + "src": "9253:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2754, + "id": 2654, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13413:29:5", + "src": "9253:38:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -49609,14 +32289,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2760, + "id": 2660, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "13477:5:5", + "referencedDeclaration": 1847, + "src": "9326:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } } @@ -49624,24 +32304,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } ], - "id": 2759, + "id": 2659, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13469:7:5", + "src": "9318:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2761, + "id": 2661, "isConstant": false, "isLValue": false, "isPure": false, @@ -49649,7 +32329,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13469:14:5", + "src": "9318:14:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -49685,32 +32365,32 @@ ], "expression": { "argumentTypes": null, - "id": 2740, + "id": 2638, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "13259:18:5", + "referencedDeclaration": 7269, + "src": "9099:18:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 2742, + "id": 2640, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferPurchase", "nodeType": "MemberAccess", - "referencedDeclaration": 6075, - "src": "13259:35:5", + "referencedDeclaration": 7226, + "src": "9099:35:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_uint32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_uint256_$5_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_uint32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (uint256[5] memory,uint256[2] memory,uint32,bytes32,address,address)" } }, - "id": 2762, + "id": 2662, "isConstant": false, "isLValue": false, "isPure": false, @@ -49718,20 +32398,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13259:234:5", + "src": "9099:243:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2763, + "id": 2663, "nodeType": "ExpressionStatement", - "src": "13259:234:5" + "src": "9099:243:11" } ] }, "documentation": null, - "id": 2765, + "id": 2665, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -49739,16 +32419,16 @@ "name": "_transferPurchase", "nodeType": "FunctionDefinition", "parameters": { - "id": 2738, + "id": 2636, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2729, + "id": 2627, "name": "_invoice", "nodeType": "VariableDeclaration", - "scope": 2765, - "src": "13176:16:5", + "scope": 2665, + "src": "9016:16:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49757,27 +32437,27 @@ }, "typeName": { "baseType": { - "id": 2726, + "id": 2624, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "13176:4:5", + "src": "9016:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2728, + "id": 2626, "length": { "argumentTypes": null, "hexValue": "35", - "id": 2727, + "id": 2625, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13181:1:5", + "src": "9021:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -49786,7 +32466,7 @@ "value": "5" }, "nodeType": "ArrayTypeName", - "src": "13176:7:5", + "src": "9016:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", "typeString": "uint256[5]" @@ -49797,11 +32477,11 @@ }, { "constant": false, - "id": 2733, + "id": 2631, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 2765, - "src": "13194:12:5", + "scope": 2665, + "src": "9034:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49810,27 +32490,27 @@ }, "typeName": { "baseType": { - "id": 2730, + "id": 2628, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "13194:4:5", + "src": "9034:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2732, + "id": 2630, "length": { "argumentTypes": null, "hexValue": "32", - "id": 2731, + "id": 2629, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13199:1:5", + "src": "9039:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -49839,7 +32519,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "13194:7:5", + "src": "9034:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -49850,11 +32530,11 @@ }, { "constant": false, - "id": 2735, + "id": 2633, "name": "vesting", "nodeType": "VariableDeclaration", - "scope": 2765, - "src": "13208:14:5", + "scope": 2665, + "src": "9048:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49862,10 +32542,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2734, + "id": 2632, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "13208:6:5", + "src": "9048:6:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49876,11 +32556,11 @@ }, { "constant": false, - "id": 2737, + "id": 2635, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2765, - "src": "13224:14:5", + "scope": 2665, + "src": "9064:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49888,10 +32568,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2736, + "id": 2634, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13224:7:5", + "src": "9064:7:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -49901,26 +32581,26 @@ "visibility": "internal" } ], - "src": "13175:64:5" + "src": "9015:64:11" }, "payable": false, "returnParameters": { - "id": 2739, + "id": 2637, "nodeType": "ParameterList", "parameters": [], - "src": "13249:0:5" + "src": "9089:0:11" }, - "scope": 3279, - "src": "13149:351:5", + "scope": 3302, + "src": "8989:360:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2863, + "id": 2763, "nodeType": "Block", - "src": "13588:442:5", + "src": "9437:443:11", "statements": [ { "condition": { @@ -49929,19 +32609,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 2782, + "id": 2682, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2778, + "id": 2678, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2775, - "src": "13602:6:5", + "referencedDeclaration": 2675, + "src": "9451:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -49956,32 +32636,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2779, + "id": 2679, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "13612:18:5", + "referencedDeclaration": 7269, + "src": "9461:18:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 2780, + "id": 2680, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "METHOD_ETH", "nodeType": "MemberAccess", - "referencedDeclaration": 5303, - "src": "13612:29:5", + "referencedDeclaration": 6454, + "src": "9461:29:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2781, + "id": 2681, "isConstant": false, "isLValue": false, "isPure": false, @@ -49989,22 +32669,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13612:31:5", + "src": "9461:31:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "13602:41:5", + "src": "9451:41:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2861, + "id": 2761, "nodeType": "Block", - "src": "13799:225:5", + "src": "9648:226:11", "statements": [ { "expression": { @@ -50018,14 +32698,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2826, + "id": 2726, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1303, - "src": "13875:4:5", + "referencedDeclaration": 1851, + "src": "9725:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } } @@ -50033,24 +32713,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } ], - "id": 2825, + "id": 2725, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13867:7:5", + "src": "9717:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2827, + "id": 2727, "isConstant": false, "isLValue": false, "isPure": false, @@ -50058,7 +32738,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13867:13:5", + "src": "9717:13:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -50071,29 +32751,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2832, + "id": 2732, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2773, - "src": "13898:4:5", + "referencedDeclaration": 2673, + "src": "9748:4:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 2834, + "id": 2734, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2833, + "id": 2733, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13903:1:5", + "src": "9753:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -50106,7 +32786,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "13898:7:5", + "src": "9748:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50124,29 +32804,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2828, + "id": 2728, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13882:8:5", + "referencedDeclaration": 2669, + "src": "9732:8:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 2830, + "id": 2730, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2829, + "id": 2729, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13891:1:5", + "src": "9741:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -50159,27 +32839,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "13882:11:5", + "src": "9732:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2831, + "id": 2731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "13882:15:5", + "referencedDeclaration": 12343, + "src": "9732:15:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2835, + "id": 2735, "isConstant": false, "isLValue": false, "isPure": false, @@ -50187,7 +32867,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13882:24:5", + "src": "9732:24:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50213,12 +32893,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2821, + "id": 2721, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2775, - "src": "13849:6:5", + "referencedDeclaration": 2675, + "src": "9699:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -50234,32 +32914,32 @@ ], "expression": { "argumentTypes": null, - "id": 2819, + "id": 2719, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "13827:5:5", + "referencedDeclaration": 1853, + "src": "9677:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 2820, + "id": 2720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getTokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "13827:21:5", + "referencedDeclaration": 9992, + "src": "9677:21:11", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) view external returns (address)" } }, - "id": 2822, + "id": 2722, "isConstant": false, "isLValue": false, "isPure": false, @@ -50267,7 +32947,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13827:29:5", + "src": "9677:29:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -50281,46 +32961,306 @@ "typeString": "address" } ], - "id": 2818, - "name": "ERC20", + "id": 2718, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "9670:6:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9670:37:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 2724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 13046, + "src": "9670:46:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9670:87:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2717, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "9662:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9662:96:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2738, + "nodeType": "ExpressionStatement", + "src": "9662:96:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2742, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "9792:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9792:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2744, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "9804:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2746, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9813:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9804:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2747, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2675, + "src": "9817:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2752, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "9841:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 2754, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9846:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9841:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2748, + "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "13821:5:5", + "referencedDeclaration": 2669, + "src": "9825:8:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "id": 2823, + "id": 2750, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9834:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13821:36:5", + "nodeType": "IndexAccess", + "src": "9825:11:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2824, + "id": 2751, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transfer", + "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "13821:45:5", + "referencedDeclaration": 12343, + "src": "9825:15:11", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2836, + "id": 2755, "isConstant": false, "isLValue": false, "isPure": false, @@ -50328,35 +33268,109 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13821:86:5", + "src": "9825:24:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2756, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "9851:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2758, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9860:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9851:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 2817, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "13813:7:5", + "expression": { + "argumentTypes": null, + "id": 2739, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "9772:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 2741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "recordPurchase", + "nodeType": "MemberAccess", + "referencedDeclaration": 1802, + "src": "9772:19:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,bytes32,uint256,uint256) payable external" } }, - "id": 2837, + "id": 2759, "isConstant": false, "isLValue": false, "isPure": false, @@ -50364,16 +33378,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13813:95:5", + "src": "9772:91:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2838, + "id": 2760, "nodeType": "ExpressionStatement", - "src": "13813:95:5" - }, + "src": "9772:91:11" + } + ] + }, + "id": 2762, + "nodeType": "IfStatement", + "src": "9447:427:11", + "trueBody": { + "id": 2716, + "nodeType": "Block", + "src": "9494:148:11", + "statements": [ { "expression": { "argumentTypes": null, @@ -50382,18 +33406,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2842, + "id": 2697, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "13942:3:5", + "referencedDeclaration": 13441, + "src": "9560:3:11", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2843, + "id": 2698, "isConstant": false, "isLValue": false, "isPure": false, @@ -50401,7 +33425,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "13942:10:5", + "src": "9560:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -50411,29 +33435,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2844, + "id": 2699, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13954:8:5", + "referencedDeclaration": 2669, + "src": "9572:8:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 2846, + "id": 2701, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2845, + "id": 2700, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13963:1:5", + "src": "9581:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -50446,7 +33470,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "13954:11:5", + "src": "9572:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50454,12 +33478,12 @@ }, { "argumentTypes": null, - "id": 2847, + "id": 2702, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2775, - "src": "13967:6:5", + "referencedDeclaration": 2675, + "src": "9585:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -50472,29 +33496,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2852, + "id": 2707, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2773, - "src": "13991:4:5", + "referencedDeclaration": 2673, + "src": "9609:4:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 2854, + "id": 2709, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2853, + "id": 2708, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13996:1:5", + "src": "9614:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -50507,7 +33531,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "13991:7:5", + "src": "9609:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50525,29 +33549,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2848, + "id": 2703, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13975:8:5", + "referencedDeclaration": 2669, + "src": "9593:8:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 2850, + "id": 2705, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2849, + "id": 2704, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13984:1:5", + "src": "9602:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -50560,27 +33584,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "13975:11:5", + "src": "9593:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2851, + "id": 2706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "13975:15:5", + "referencedDeclaration": 12343, + "src": "9593:15:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2855, + "id": 2710, "isConstant": false, "isLValue": false, "isPure": false, @@ -50588,7 +33612,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13975:24:5", + "src": "9593:24:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50598,29 +33622,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2856, + "id": 2711, "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "14001:8:5", + "referencedDeclaration": 2669, + "src": "9619:8:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", "typeString": "uint256[5] memory" } }, - "id": 2858, + "id": 2713, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 2857, + "id": 2712, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14010:1:5", + "src": "9628:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -50633,7 +33657,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14001:11:5", + "src": "9619:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50663,34 +33687,202 @@ "typeString": "uint256" } ], + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2692, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "9550:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 2694, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9555:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9550:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2688, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "9534:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2690, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9543:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9534:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "9534:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9534:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], "expression": { - "argumentTypes": null, - "id": 2839, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1303, - "src": "13922:4:5", + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2683, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "9508:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 2686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "recordPurchase", + "nodeType": "MemberAccess", + "referencedDeclaration": 1802, + "src": "9508:19:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,bytes32,uint256,uint256) payable external" + } + }, + "id": 2687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9508:25:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$value_$", + "typeString": "function (uint256) returns (function (address,uint256,bytes32,uint256,uint256) payable external)" } }, - "id": 2841, + "id": 2696, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "recordPurchase", - "nodeType": "MemberAccess", - "referencedDeclaration": 1260, - "src": "13922:19:5", + "names": [], + "nodeType": "FunctionCall", + "src": "9508:51:11", "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$value", "typeString": "function (address,uint256,bytes32,uint256,uint256) payable external" } }, - "id": 2859, + "id": 2714, "isConstant": false, "isLValue": false, "isPure": false, @@ -50698,497 +33890,926 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13922:91:5", + "src": "9508:123:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2860, + "id": 2715, "nodeType": "ExpressionStatement", - "src": "13922:91:5" + "src": "9508:123:11" + } + ] + } + } + ] + }, + "documentation": null, + "id": 2764, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_recordPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2669, + "name": "_invoice", + "nodeType": "VariableDeclaration", + "scope": 2764, + "src": "9380:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2666, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9380:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2668, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9385:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "9380:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2673, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 2764, + "src": "9398:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2670, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9398:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2672, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9403:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "9398:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2675, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2764, + "src": "9412:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2674, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9412:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9379:48:11" + }, + "payable": false, + "returnParameters": { + "id": 2677, + "nodeType": "ParameterList", + "parameters": [], + "src": "9437:0:11" + }, + "scope": 3302, + "src": "9355:525:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2771, + "nodeType": "Block", + "src": "9938:29:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2769, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "9955:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "functionReturnParameters": 2768, + "id": 2770, + "nodeType": "Return", + "src": "9948:12:11" + } + ] + }, + "documentation": null, + "id": 2772, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getWToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2765, + "nodeType": "ParameterList", + "parameters": [], + "src": "9904:2:11" + }, + "payable": false, + "returnParameters": { + "id": 2768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2767, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2772, + "src": "9929:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 2766, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "9929:7:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9928:9:11" + }, + "scope": 3302, + "src": "9886:81:11", + "stateMutability": "view", + "superFunction": 1663, + "visibility": "external" + }, + { + "body": { + "id": 2779, + "nodeType": "Block", + "src": "10024:28:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2777, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "10041:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "functionReturnParameters": 2776, + "id": 2778, + "nodeType": "Return", + "src": "10034:11:11" + } + ] + }, + "documentation": null, + "id": 2780, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getFund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2773, + "nodeType": "ParameterList", + "parameters": [], + "src": "9989:2:11" + }, + "payable": false, + "returnParameters": { + "id": 2776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2775, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2780, + "src": "10014:8:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 2774, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "10014:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10013:10:11" + }, + "scope": 3302, + "src": "9973:79:11", + "stateMutability": "view", + "superFunction": 1668, + "visibility": "external" + }, + { + "body": { + "id": 2790, + "nodeType": "Block", + "src": "10124:45:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2786, + "name": "paymentMethods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "10141:14:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$6179_storage", + "typeString": "struct PaymentMethods.Methods storage ref" + } + }, + "id": 2787, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "list", + "nodeType": "MemberAccess", + "referencedDeclaration": 6285, + "src": "10141:19:11", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Methods_$6179_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Methods_$6179_storage_ptr_$", + "typeString": "function (struct PaymentMethods.Methods storage pointer) view returns (bytes32[] memory)" } - ] + }, + "id": 2788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10141:21:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } }, - "id": 2862, - "nodeType": "IfStatement", - "src": "13598:426:5", - "trueBody": { - "id": 2816, - "nodeType": "Block", - "src": "13645:148:5", - "statements": [ + "functionReturnParameters": 2785, + "id": 2789, + "nodeType": "Return", + "src": "10134:28:11" + } + ] + }, + "documentation": null, + "id": 2791, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getPaymentMethodsList", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2781, + "nodeType": "ParameterList", + "parameters": [], + "src": "10088:2:11" + }, + "payable": false, + "returnParameters": { + "id": 2785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2784, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2791, + "src": "10113:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 2782, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10113:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2783, + "length": null, + "nodeType": "ArrayTypeName", + "src": "10113:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10112:11:11" + }, + "scope": 3302, + "src": "10058:111:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2803, + "nodeType": "Block", + "src": "10253:57:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2797, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "13711:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13711:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2799, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13723:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "id": 2801, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13732:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13723:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2802, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2775, - "src": "13736:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2807, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2773, - "src": "13760:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "id": 2809, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13765:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13760:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2803, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13744:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "id": 2805, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13753:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13744:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "13744:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13744:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2811, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13770:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "id": 2813, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2812, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13779:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13770:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + "argumentTypes": null, + "id": 2800, + "name": "_method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2793, + "src": "10295:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2798, + "name": "paymentMethods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "10270:14:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$6179_storage", + "typeString": "struct PaymentMethods.Methods storage ref" + } + }, + "id": 2799, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isAllowed", + "nodeType": "MemberAccess", + "referencedDeclaration": 6273, + "src": "10270:24:11", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Methods_$6179_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Methods_$6179_storage_ptr_$", + "typeString": "function (struct PaymentMethods.Methods storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10270:33:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2797, + "id": 2802, + "nodeType": "Return", + "src": "10263:40:11" + } + ] + }, + "documentation": null, + "id": 2804, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isPaymentMethodAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2793, + "name": "_method", + "nodeType": "VariableDeclaration", + "scope": 2804, + "src": "10207:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2792, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10207:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10206:17:11" + }, + "payable": false, + "returnParameters": { + "id": 2797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2796, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2804, + "src": "10247:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2795, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10247:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10246:6:11" + }, + "scope": 3302, + "src": "10175:135:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2883, + "nodeType": "Block", + "src": "10395:682:11", + "statements": [ + { + "assignments": [ + 2816, + 2818 + ], + "declarations": [ + { + "constant": false, + "id": 2816, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2884, + "src": "10406:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2815, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10406:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2818, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 2884, + "src": "10418:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2817, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10418:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2821, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2819, + "name": "getCurrentStageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3204 + ], + "referencedDeclaration": 3204, + "src": "10432:20:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view returns (uint256,bool)" + } + }, + "id": 2820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10432:22:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10405:49:11" + }, + { + "condition": { + "argumentTypes": null, + "id": 2823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "10469:6:11", + "subExpression": { + "argumentTypes": null, + "id": 2822, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2818, + "src": "10470:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2825, + "nodeType": "IfStatement", + "src": "10465:19:11", + "trueBody": { + "expression": null, + "functionReturnParameters": 2814, + "id": 2824, + "nodeType": "Return", + "src": "10477:7:11" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2826, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "10498:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 6454, + "src": "10498:29:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10498:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 2829, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2806, + "src": "10533:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "10498:41:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2840, + "nodeType": "IfStatement", + "src": "10494:138:11", + "trueBody": { + "id": 2839, + "nodeType": "Block", + "src": "10541:91:11", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "10559:22:11", + "subExpression": { + "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2792, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2773, - "src": "13701:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "id": 2794, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2793, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13706:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13701:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2788, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "13685:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" - } - }, - "id": 2790, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13694:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13685:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "13685:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13685:24:5", + "id": 2833, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2806, + "src": "10574:6:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2783, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1303, - "src": "13659:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "id": 2786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recordPurchase", - "nodeType": "MemberAccess", - "referencedDeclaration": 1260, - "src": "13659:19:5", + "id": 2831, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "10560:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,bytes32,uint256,uint256) payable external" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } }, - "id": 2787, + "id": 2832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "value", + "memberName": "isToken", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13659:25:5", + "referencedDeclaration": 9999, + "src": "10560:13:11", "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$value_$", - "typeString": "function (uint256) returns (function (address,uint256,bytes32,uint256,uint256) payable external)" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 2796, + "id": 2834, "isConstant": false, "isLValue": false, "isPure": false, @@ -51196,160 +34817,685 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13659:51:5", + "src": "10560:21:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2838, + "nodeType": "IfStatement", + "src": "10555:67:11", + "trueBody": { + "id": 2837, + "nodeType": "Block", + "src": "10583:39:11", + "statements": [ + { + "expression": null, + "functionReturnParameters": 2814, + "id": 2836, + "nodeType": "Return", + "src": "10601:7:11" + } + ] + } + } + ] + } + }, + { + "assignments": [ + 2845 + ], + "declarations": [ + { + "constant": false, + "id": 2845, + "name": "lastArguments", + "nodeType": "VariableDeclaration", + "scope": 2884, + "src": "10642:28:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2843, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10642:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2844, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10647:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "10642:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2849, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2847, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2806, + "src": "10698:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2846, + "name": "_getInvoiceLastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2952, + "src": "10673:24:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_array$_t_uint256_$5_memory_ptr_$", + "typeString": "function (bytes32) view returns (uint256[5] memory)" + } + }, + "id": 2848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10673:32:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10642:63:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2852, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2806, + "src": "10763:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2853, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2808, + "src": "10783:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2854, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "10803:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2856, + "indexExpression": { + "argumentTypes": null, + "id": 2855, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2816, + "src": "10810:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10803:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 2857, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "discount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4440, + "src": "10803:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2858, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "10839:6:11", "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$value", - "typeString": "function (address,uint256,bytes32,uint256,uint256) payable external" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2860, + "indexExpression": { + "argumentTypes": null, + "id": 2859, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2816, + "src": "10846:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2814, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13659:123:5", + "nodeType": "IndexAccess", + "src": "10839:13:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2815, - "nodeType": "ExpressionStatement", - "src": "13659:123:5" + "id": 2861, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 4445, + "src": "10839:30:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2862, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "10883:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2864, + "indexExpression": { + "argumentTypes": null, + "id": 2863, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2816, + "src": "10890:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10883:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "id": 2865, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 4448, + "src": "10883:27:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2866, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "10924:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2868, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10938:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10924:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2869, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "10954:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2871, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10968:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10954:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2872, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "10984:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2874, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10998:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10984:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2875, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "11014:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2877, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11028:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11014:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2878, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "11044:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2880, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 2879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11058:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11044:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - ] - } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2850, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "10723:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "invoice", + "nodeType": "MemberAccess", + "referencedDeclaration": 6701, + "src": "10723:26:11", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_bytes32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$5_memory_ptr_$", + "typeString": "function (bytes32,uint256,uint256,uint256[] memory,uint256[] memory,uint256,uint256,uint256,uint256,uint256) view returns (uint256[5] memory)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10723:347:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "functionReturnParameters": 2814, + "id": 2882, + "nodeType": "Return", + "src": "10716:354:11" } ] }, "documentation": null, - "id": 2864, + "id": 2884, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "_recordPurchase", + "name": "getInvoice", "nodeType": "FunctionDefinition", "parameters": { - "id": 2776, + "id": 2809, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2769, - "name": "_invoice", - "nodeType": "VariableDeclaration", - "scope": 2864, - "src": "13531:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5]" - }, - "typeName": { - "baseType": { - "id": 2766, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13531:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2768, - "length": { - "argumentTypes": null, - "hexValue": "35", - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13536:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "5" - }, - "nodeType": "ArrayTypeName", - "src": "13531:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", - "typeString": "uint256[5]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2773, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2864, - "src": "13549:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" - }, - "typeName": { - "baseType": { - "id": 2770, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13549:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2772, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 2771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13554:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "13549:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2775, + "id": 2806, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2864, - "src": "13563:14:5", + "scope": 2884, + "src": "10336:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51357,10 +35503,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2774, + "id": 2805, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13563:7:5", + "src": "10336:7:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -51368,411 +35514,1002 @@ }, "value": null, "visibility": "internal" - } - ], - "src": "13530:48:5" - }, - "payable": false, - "returnParameters": { - "id": 2777, - "nodeType": "ParameterList", - "parameters": [], - "src": "13588:0:5" - }, - "scope": 3279, - "src": "13506:524:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2871, - "nodeType": "Block", - "src": "14088:29:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2869, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "14105:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "functionReturnParameters": 2868, - "id": 2870, - "nodeType": "Return", - "src": "14098:12:5" - } - ] - }, - "documentation": null, - "id": 2872, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getWToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2865, - "nodeType": "ParameterList", - "parameters": [], - "src": "14054:2:5" - }, - "payable": false, - "returnParameters": { - "id": 2868, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 2867, - "name": "", + "id": 2808, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2872, - "src": "14079:7:5", + "scope": 2884, + "src": "10352:11:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "contractScope": null, - "id": 2866, - "name": "IWToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "14079:7:5", + "id": 2807, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10352:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "14078:9:5" - }, - "scope": 3279, - "src": "14036:81:5", - "stateMutability": "view", - "superFunction": 1132, - "visibility": "external" - }, - { - "body": { - "id": 2879, - "nodeType": "Block", - "src": "14174:28:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2877, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1303, - "src": "14191:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "functionReturnParameters": 2876, - "id": 2878, - "nodeType": "Return", - "src": "14184:11:5" - } - ] - }, - "documentation": null, - "id": 2880, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getFund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2873, - "nodeType": "ParameterList", - "parameters": [], - "src": "14139:2:5" + "src": "10335:29:11" }, "payable": false, "returnParameters": { - "id": 2876, + "id": 2814, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2875, + "id": 2813, "name": "", "nodeType": "VariableDeclaration", - "scope": 2880, - "src": "14164:8:5", + "scope": 2884, + "src": "10386:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" }, "typeName": { - "contractScope": null, - "id": 2874, - "name": "IW12Fund", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "14164:8:5", + "baseType": { + "id": 2810, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10386:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2812, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10391:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "10386:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" } }, "value": null, "visibility": "internal" } ], - "src": "14163:10:5" + "src": "10385:9:11" }, - "scope": 3279, - "src": "14123:79:5", + "scope": 3302, + "src": "10316:761:11", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": { - "id": 2890, + "id": 2951, "nodeType": "Block", - "src": "14274:45:5", + "src": "11171:325:11", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], + "id": 2900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2893, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "11181:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2895, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11188:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11181:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2898, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2886, + "src": "11203:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2896, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "11193:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 2897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 10006, + "src": "11193:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) view external returns (uint256)" + } + }, + "id": 2899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11193:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11181:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2901, + "nodeType": "ExpressionStatement", + "src": "11181:29:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 2886, - "name": "paymentMethods", + "id": 2902, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "11220:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2904, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11227:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11220:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2905, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1855, + "src": "11232:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11220:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2907, + "nodeType": "ExpressionStatement", + "src": "11220:17:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2908, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "11247:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2910, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11254:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11247:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2912, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "11264:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 2913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 10484, + "src": "11264:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11264:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11259:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 2915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11259:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11247:34:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2917, + "nodeType": "ExpressionStatement", + "src": "11247:34:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2918, + "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1317, - "src": "14291:14:5", + "referencedDeclaration": 2891, + "src": "11291:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2920, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11298:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11291:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2921, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "11303:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 6454, + "src": "11303:29:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11303:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2924, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2886, + "src": "11338:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "11303:41:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2931, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2886, + "src": "11417:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2929, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "11395:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "11395:21:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11395:29:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2928, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "11381:13:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11381:44:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + }, + "id": 2934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 12985, + "src": "11381:53:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 2935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11381:55:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11376:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 2936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11376:61:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage", - "typeString": "struct PaymentMethods.Methods storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2887, + "id": 2937, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "list", - "nodeType": "MemberAccess", - "referencedDeclaration": 5068, - "src": "14291:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Methods_$4962_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Methods_$4962_storage_ptr_$", - "typeString": "function (struct PaymentMethods.Methods storage pointer) view returns (bytes32[] memory)" - } - }, - "id": 2888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14291:21:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "functionReturnParameters": 2885, - "id": 2889, - "nodeType": "Return", - "src": "14284:28:5" - } - ] - }, - "documentation": null, - "id": 2891, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getPaymentMethodsList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2881, - "nodeType": "ParameterList", - "parameters": [], - "src": "14238:2:5" - }, - "payable": false, - "returnParameters": { - "id": 2885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2884, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2891, - "src": "14263:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 2882, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14263:7:5", + "nodeType": "Conditional", + "src": "11303:134:11", + "trueExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11359:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2883, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14263:9:5", + "src": "11291:146:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "14262:11:5" - }, - "scope": 3279, - "src": "14208:111:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2903, - "nodeType": "Block", - "src": "14403:57:5", - "statements": [ + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "11291:146:11" + }, { "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 2949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 2900, - "name": "_method", + "id": 2940, + "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2893, - "src": "14445:7:5", + "referencedDeclaration": 2891, + "src": "11447:6:11", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } + }, + "id": 2942, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 2941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11454:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11447:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "expression": { - "argumentTypes": [ + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2946, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13524, + "src": "11483:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", + "typeString": "contract W12Crowdsale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", + "typeString": "contract W12Crowdsale" + } + ], + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11475:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11475:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { - "argumentTypes": null, - "id": 2898, - "name": "paymentMethods", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1317, - "src": "14420:14:5", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2943, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "11459:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 2944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "11459:15:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Methods_$4962_storage", - "typeString": "struct PaymentMethods.Methods storage ref" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" } }, - "id": 2899, + "id": 2948, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "isAllowed", - "nodeType": "MemberAccess", - "referencedDeclaration": 5056, - "src": "14420:24:5", + "names": [], + "nodeType": "FunctionCall", + "src": "11459:30:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Methods_$4962_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Methods_$4962_storage_ptr_$", - "typeString": "function (struct PaymentMethods.Methods storage pointer,bytes32) view returns (bool)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14420:33:5", + "src": "11447:42:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 2897, - "id": 2902, - "nodeType": "Return", - "src": "14413:40:5" + "id": 2950, + "nodeType": "ExpressionStatement", + "src": "11447:42:11" } ] }, "documentation": null, - "id": 2904, + "id": 2952, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "isPaymentMethodAllowed", + "name": "_getInvoiceLastArguments", "nodeType": "FunctionDefinition", "parameters": { - "id": 2894, + "id": 2887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2893, - "name": "_method", + "id": 2886, + "name": "method", "nodeType": "VariableDeclaration", - "scope": 2904, - "src": "14357:15:5", + "scope": 2952, + "src": "11117:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51780,10 +36517,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2892, + "id": 2885, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14357:7:5", + "src": "11117:7:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -51793,67 +36530,94 @@ "visibility": "internal" } ], - "src": "14356:17:5" + "src": "11116:16:11" }, "payable": false, "returnParameters": { - "id": 2897, + "id": 2892, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2896, - "name": "", + "id": 2891, + "name": "result", "nodeType": "VariableDeclaration", - "scope": 2904, - "src": "14397:4:5", + "scope": 2952, + "src": "11155:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" }, "typeName": { - "id": 2895, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "14397:4:5", + "baseType": { + "id": 2888, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11155:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2890, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11160:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "11155:7:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" } }, "value": null, "visibility": "internal" } ], - "src": "14396:6:5" + "src": "11154:16:11" }, - "scope": 3279, - "src": "14325:135:5", + "scope": 3302, + "src": "11083:413:11", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "internal" }, { "body": { - "id": 2992, + "id": 3031, "nodeType": "Block", - "src": "14545:744:5", + "src": "11599:713:11", "statements": [ { "assignments": [ - 2916, - 2918 + 2964, + 2966 ], "declarations": [ { "constant": false, - "id": 2916, + "id": 2964, "name": "index", "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "14556:10:5", + "scope": 3032, + "src": "11610:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51861,10 +36625,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2915, + "id": 2963, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "14556:4:5", + "src": "11610:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -51875,11 +36639,11 @@ }, { "constant": false, - "id": 2918, + "id": 2966, "name": "found", "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "14568:10:5", + "scope": 3032, + "src": "11622:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51887,10 +36651,10 @@ "typeString": "bool" }, "typeName": { - "id": 2917, + "id": 2965, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14568:4:5", + "src": "11622:4:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -51900,24 +36664,26 @@ "visibility": "internal" } ], - "id": 2921, + "id": 2969, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 2919, + "id": 2967, "name": "getCurrentStageIndex", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3182, - "src": "14582:20:5", + "overloadedDeclarations": [ + 3204 + ], + "referencedDeclaration": 3204, + "src": "11636:20:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view returns (uint256,bool)" } }, - "id": 2920, + "id": 2968, "isConstant": false, "isLValue": false, "isPure": false, @@ -51925,19 +36691,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14582:22:5", + "src": "11636:22:11", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "14555:49:5" + "src": "11609:49:11" }, { "condition": { "argumentTypes": null, - "id": 2923, + "id": 2971, "isConstant": false, "isLValue": false, "isPure": false, @@ -51945,15 +36711,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "14619:6:5", + "src": "11673:6:11", "subExpression": { "argumentTypes": null, - "id": 2922, + "id": 2970, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2918, - "src": "14620:5:5", + "referencedDeclaration": 2966, + "src": "11674:5:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -51965,15 +36731,15 @@ } }, "falseBody": null, - "id": 2925, + "id": 2973, "nodeType": "IfStatement", - "src": "14615:19:5", + "src": "11669:19:11", "trueBody": { "expression": null, - "functionReturnParameters": 2914, - "id": 2924, + "functionReturnParameters": 2962, + "id": 2972, "nodeType": "Return", - "src": "14627:7:5" + "src": "11681:7:11" } }, { @@ -51983,7 +36749,7 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 2930, + "id": 2978, "isConstant": false, "isLValue": false, "isPure": false, @@ -51995,32 +36761,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2926, + "id": 2974, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "14648:18:5", + "referencedDeclaration": 7269, + "src": "11702:18:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 2927, + "id": 2975, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "METHOD_ETH", "nodeType": "MemberAccess", - "referencedDeclaration": 5303, - "src": "14648:29:5", + "referencedDeclaration": 6454, + "src": "11702:29:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2928, + "id": 2976, "isConstant": false, "isLValue": false, "isPure": false, @@ -52028,7 +36794,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14648:31:5", + "src": "11702:31:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -52038,36 +36804,36 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2929, + "id": 2977, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "14683:6:5", + "referencedDeclaration": 2954, + "src": "11737:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "14648:41:5", + "src": "11702:41:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2940, + "id": 2988, "nodeType": "IfStatement", - "src": "14644:138:5", + "src": "11698:138:11", "trueBody": { - "id": 2939, + "id": 2987, "nodeType": "Block", - "src": "14691:91:5", + "src": "11745:91:11", "statements": [ { "condition": { "argumentTypes": null, - "id": 2935, + "id": 2983, "isConstant": false, "isLValue": false, "isPure": false, @@ -52075,18 +36841,18 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "14709:22:5", + "src": "11763:22:11", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2933, + "id": 2981, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "14724:6:5", + "referencedDeclaration": 2954, + "src": "11778:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -52102,32 +36868,32 @@ ], "expression": { "argumentTypes": null, - "id": 2931, + "id": 2979, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "14710:5:5", + "referencedDeclaration": 1853, + "src": "11764:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 2932, + "id": 2980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isToken", "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "14710:13:5", + "referencedDeclaration": 9999, + "src": "11764:13:11", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 2934, + "id": 2982, "isConstant": false, "isLValue": false, "isPure": false, @@ -52135,7 +36901,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14710:21:5", + "src": "11764:21:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -52147,20 +36913,20 @@ } }, "falseBody": null, - "id": 2938, + "id": 2986, "nodeType": "IfStatement", - "src": "14705:67:5", + "src": "11759:67:11", "trueBody": { - "id": 2937, + "id": 2985, "nodeType": "Block", - "src": "14733:39:5", + "src": "11787:39:11", "statements": [ { "expression": null, - "functionReturnParameters": 2914, - "id": 2936, + "functionReturnParameters": 2962, + "id": 2984, "nodeType": "Return", - "src": "14751:7:5" + "src": "11805:7:11" } ] } @@ -52168,18 +36934,130 @@ ] } }, + { + "assignments": [ + 2993 + ], + "declarations": [ + { + "constant": false, + "id": 2993, + "name": "lastArguments", + "nodeType": "VariableDeclaration", + "scope": 3032, + "src": "11846:28:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2991, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11846:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2992, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11851:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "11846:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2997, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2995, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "11915:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2994, + "name": "_getInvoiceByTokenAmountLastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3100, + "src": "11877:37:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_array$_t_uint256_$5_memory_ptr_$", + "typeString": "function (bytes32) view returns (uint256[5] memory)" + } + }, + "id": 2996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11877:45:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11846:76:11" + }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2943, + "id": 3000, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "14839:6:5", + "referencedDeclaration": 2954, + "src": "11993:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -52187,12 +37065,12 @@ }, { "argumentTypes": null, - "id": 2944, - "name": "amount", + "id": 3001, + "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2908, - "src": "14859:6:5", + "referencedDeclaration": 2956, + "src": "12013:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -52204,26 +37082,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2945, + "id": 3002, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "14879:6:5", + "referencedDeclaration": 1868, + "src": "12038:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 2947, + "id": 3004, "indexExpression": { "argumentTypes": null, - "id": 2946, + "id": 3003, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "14886:5:5", + "referencedDeclaration": 2964, + "src": "12045:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -52234,21 +37112,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14879:13:5", + "src": "12038:13:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2948, + "id": 3005, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "discount", "nodeType": "MemberAccess", - "referencedDeclaration": 1329, - "src": "14879:22:5", + "referencedDeclaration": 4440, + "src": "12038:22:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -52260,26 +37138,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2949, + "id": 3006, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "14915:6:5", + "referencedDeclaration": 1868, + "src": "12074:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 2951, + "id": 3008, "indexExpression": { "argumentTypes": null, - "id": 2950, + "id": 3007, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "14922:5:5", + "referencedDeclaration": 2964, + "src": "12081:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -52290,21 +37168,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14915:13:5", + "src": "12074:13:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2952, + "id": 3009, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "volumeBoundaries", "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "14915:30:5", + "referencedDeclaration": 4445, + "src": "12074:30:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -52316,26 +37194,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2953, + "id": 3010, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "14959:6:5", + "referencedDeclaration": 1868, + "src": "12118:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 2955, + "id": 3012, "indexExpression": { "argumentTypes": null, - "id": 2954, + "id": 3011, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "14966:5:5", + "referencedDeclaration": 2964, + "src": "12125:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -52346,21 +37224,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14959:13:5", + "src": "12118:13:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 2956, + "id": 3013, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "volumeBonuses", "nodeType": "MemberAccess", - "referencedDeclaration": 1337, - "src": "14959:27:5", + "referencedDeclaration": 4448, + "src": "12118:27:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -52368,161 +37246,44 @@ }, { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2959, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "15010:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2957, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "15000:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 2958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 7263, - "src": "15000:9:5", + "baseExpression": { + "argumentTypes": null, + "id": 3014, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2993, + "src": "12159:13:11", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) view external returns (uint256)" - } - }, - "id": 2960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15000:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2961, - "name": "price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1307, - "src": "15031:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2963, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "15055:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 2964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 10145, - "src": "15055:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 2965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15055:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 2962, + }, + "id": 3016, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3015, "isConstant": false, "isLValue": false, "isPure": true, + "kind": "number", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15050:4:5", + "nodeType": "Literal", + "src": "12173:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "typeName": "uint" + "value": "0" }, - "id": 2966, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15050:22:5", + "nodeType": "IndexAccess", + "src": "12159:16:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -52530,281 +37291,134 @@ }, { "argumentTypes": null, - "condition": { + "baseExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 2971, + "id": 3017, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2993, + "src": "12189:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3019, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3018, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2967, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "15086:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 2968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "METHOD_ETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 5303, - "src": "15086:29:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15086:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2970, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "15121:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "nodeType": "Literal", + "src": "12203:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "src": "15086:41:5", + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12189:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3020, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2993, + "src": "12219:13:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "falseExpression": { + "id": 3022, + "indexExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2977, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "15208:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2975, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "15186:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 2976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "15186:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 2978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15186:29:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2974, - "name": "DetailedERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10168, - "src": "15172:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$10168_$", - "typeString": "type(contract DetailedERC20)" - } - }, - "id": 2979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15172:44:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - } - }, - "id": 2980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 10145, - "src": "15172:53:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 2981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15172:55:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15167:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 2982, + "hexValue": "32", + "id": 3021, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "typeConversion", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15167:61:5", + "nodeType": "Literal", + "src": "12233:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" }, - "id": 2983, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "Conditional", - "src": "15086:142:5", - "trueExpression": { + "nodeType": "IndexAccess", + "src": "12219:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3023, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2993, + "src": "12249:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3025, + "indexExpression": { "argumentTypes": null, - "hexValue": "3138", - "id": 2972, + "hexValue": "33", + "id": 3024, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15146:2:5", + "src": "12263:1:11", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" }, - "value": "18" + "value": "3" }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12249:16:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -52812,102 +37426,44 @@ }, { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2987, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10559, - "src": "15266:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", - "typeString": "contract W12Crowdsale" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", - "typeString": "contract W12Crowdsale" - } - ], - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15258:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15258:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "baseExpression": { + "argumentTypes": null, + "id": 3026, + "name": "lastArguments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2993, + "src": "12279:13:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2984, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "15242:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 2985, + }, + "id": 3028, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3027, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "15242:15:5", + "nodeType": "Literal", + "src": "12293:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" }, - "id": 2989, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15242:30:5", + "nodeType": "IndexAccess", + "src": "12279:16:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -52959,32 +37515,32 @@ ], "expression": { "argumentTypes": null, - "id": 2941, + "id": 2998, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "14799:18:5", + "referencedDeclaration": 7269, + "src": "11940:18:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 2942, + "id": 2999, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "invoice", + "memberName": "invoiceByTokenAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 5550, - "src": "14799:26:5", + "referencedDeclaration": 6854, + "src": "11940:39:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$5_memory_ptr_$", - "typeString": "function (bytes32,uint256,uint256,uint256[] memory,uint256[] memory,uint256,uint256,uint256,uint256,uint256) view returns (uint256[5] memory)" + "typeIdentifier": "t_function_delegatecall_view$_t_bytes32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$4_memory_ptr_$", + "typeString": "function (bytes32,uint256,uint256,uint256[] memory,uint256[] memory,uint256,uint256,uint256,uint256,uint256) view returns (uint256[4] memory)" } }, - "id": 2990, + "id": 3029, "isConstant": false, "isLValue": false, "isPure": false, @@ -52992,38 +37548,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14799:483:5", + "src": "11940:365:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5] memory" + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" } }, - "functionReturnParameters": 2914, - "id": 2991, + "functionReturnParameters": 2962, + "id": 3030, "nodeType": "Return", - "src": "14792:490:5" + "src": "11933:372:11" } ] }, "documentation": null, - "id": 2993, + "id": 3032, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getInvoice", + "name": "getInvoiceByTokenAmount", "nodeType": "FunctionDefinition", "parameters": { - "id": 2909, + "id": 2957, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2906, + "id": 2954, "name": "method", "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "14486:14:5", + "scope": 3032, + "src": "11535:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53031,10 +37587,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2905, + "id": 2953, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14486:7:5", + "src": "11535:7:11", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -53045,286 +37601,213 @@ }, { "constant": false, - "id": 2908, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "14502:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2907, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14502:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14485:29:5" - }, - "payable": false, - "returnParameters": { - "id": 2914, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2913, - "name": "", + "id": 2956, + "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "14536:7:5", + "scope": 3032, + "src": "11551:16:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", - "typeString": "uint256[5]" - }, - "typeName": { - "baseType": { - "id": 2910, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14536:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2912, - "length": { - "argumentTypes": null, - "hexValue": "35", - "id": 2911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14541:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "5" - }, - "nodeType": "ArrayTypeName", - "src": "14536:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", - "typeString": "uint256[5]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14535:9:5" - }, - "scope": 3279, - "src": "14466:823:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3081, - "nodeType": "Block", - "src": "15392:762:5", - "statements": [ - { - "assignments": [ - 3005, - 3007 - ], - "declarations": [ - { - "constant": false, - "id": 3005, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 3082, - "src": "15403:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3004, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15403:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3007, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 3082, - "src": "15415:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3006, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15415:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3010, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3008, - "name": "getCurrentStageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3182, - "src": "15429:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view returns (uint256,bool)" - } - }, - "id": 3009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15429:22:5", + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2955, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11551:4:11", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "15402:49:5" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "11534:34:11" + }, + "payable": false, + "returnParameters": { + "id": 2962, + "nodeType": "ParameterList", + "parameters": [ { - "condition": { - "argumentTypes": null, - "id": 3012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "15466:6:5", - "subExpression": { - "argumentTypes": null, - "id": 3011, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "15467:5:5", + "constant": false, + "id": 2961, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3032, + "src": "11590:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 2958, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11590:4:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "id": 2960, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11595:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "11590:7:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" } }, - "falseBody": null, - "id": 3014, - "nodeType": "IfStatement", - "src": "15462:19:5", - "trueBody": { - "expression": null, - "functionReturnParameters": 3003, - "id": 3013, - "nodeType": "Return", - "src": "15474:7:5" - } - }, + "value": null, + "visibility": "internal" + } + ], + "src": "11589:9:11" + }, + "scope": 3302, + "src": "11502:810:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3099, + "nodeType": "Block", + "src": "12420:325:11", + "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 3019, + "id": 3048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { "argumentTypes": null, - "arguments": [], + "baseExpression": { + "argumentTypes": null, + "id": 3041, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "12430:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3043, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12437:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12430:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3046, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3034, + "src": "12452:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], "expression": { - "argumentTypes": [], + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], "expression": { "argumentTypes": null, - "id": 3015, - "name": "PurchaseProcessing", + "id": 3044, + "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "15495:18:5", + "referencedDeclaration": 1853, + "src": "12442:5:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } }, - "id": 3016, + "id": 3045, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "METHOD_ETH", + "memberName": "get", "nodeType": "MemberAccess", - "referencedDeclaration": 5303, - "src": "15495:29:5", + "referencedDeclaration": 10006, + "src": "12442:9:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) view external returns (uint256)" } }, - "id": 3017, + "id": 3047, "isConstant": false, "isLValue": false, "isPure": false, @@ -53332,423 +37815,385 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15495:31:5", + "src": "12442:17:11", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "src": "12430:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3049, + "nodeType": "ExpressionStatement", + "src": "12430:29:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "id": 3018, - "name": "method", + "baseExpression": { + "argumentTypes": null, + "id": 3050, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "12469:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3052, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3051, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12476:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12469:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3053, + "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2995, - "src": "15530:6:5", + "referencedDeclaration": 1855, + "src": "12481:5:11", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "15495:41:5", + "src": "12469:17:11", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "falseBody": null, - "id": 3029, - "nodeType": "IfStatement", - "src": "15491:138:5", - "trueBody": { - "id": 3028, - "nodeType": "Block", - "src": "15538:91:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 3024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "15556:22:5", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3022, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2995, - "src": "15571:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3020, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "15557:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 3021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "15557:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 3023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15557:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3027, - "nodeType": "IfStatement", - "src": "15552:67:5", - "trueBody": { - "id": 3026, - "nodeType": "Block", - "src": "15580:39:5", - "statements": [ - { - "expression": null, - "functionReturnParameters": 3003, - "id": 3025, - "nodeType": "Return", - "src": "15598:7:5" - } - ] - } - } - ] - } + "id": 3055, + "nodeType": "ExpressionStatement", + "src": "12469:17:11" }, { "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 3064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 3032, - "name": "method", + "id": 3056, + "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2995, - "src": "15699:6:5", + "referencedDeclaration": 3039, + "src": "12496:6:11", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - { + "id": 3058, + "indexExpression": { "argumentTypes": null, - "id": 3033, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2997, - "src": "15719:11:5", + "hexValue": "32", + "id": 3057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12503:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" }, - { - "argumentTypes": null, - "expression": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12496:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3034, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "15744:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3036, - "indexExpression": { - "argumentTypes": null, - "id": 3035, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "15751:5:5", + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3060, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "12513:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 3061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 10484, + "src": "12513:14:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" } }, + "id": 3062, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15744:13:5", + "names": [], + "nodeType": "FunctionCall", + "src": "12513:16:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } - }, - "id": 3037, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 3059, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "memberName": "discount", - "nodeType": "MemberAccess", - "referencedDeclaration": 1329, - "src": "15744:22:5", + "nodeType": "ElementaryTypeNameExpression", + "src": "12508:4:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 3063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12508:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12496:34:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3065, + "nodeType": "ExpressionStatement", + "src": "12496:34:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3066, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "12540:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - { + "id": 3068, + "indexExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3038, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "15780:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3040, - "indexExpression": { - "argumentTypes": null, - "id": 3039, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "15787:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15780:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 3041, + "hexValue": "33", + "id": 3067, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "volumeBoundaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "15780:30:5", + "nodeType": "Literal", + "src": "12547:1:11", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" }, - { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12540:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3042, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "15824:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3044, - "indexExpression": { - "argumentTypes": null, - "id": 3043, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "15831:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15824:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, - "id": 3045, + "id": 3073, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "volumeBonuses", - "nodeType": "MemberAccess", - "referencedDeclaration": 1337, - "src": "15824:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3048, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2995, - "src": "15875:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], + "leftExpression": { + "argumentTypes": null, + "arguments": [], "expression": { - "argumentTypes": null, - "id": 3046, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "15865:5:5", + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3069, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "12552:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 3070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 6454, + "src": "12552:29:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "id": 3047, + "id": 3071, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 7263, - "src": "15865:9:5", + "names": [], + "nodeType": "FunctionCall", + "src": "12552:31:11", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) view external returns (uint256)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 3049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15865:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3050, - "name": "price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1307, - "src": "15896:5:5", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3072, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3034, + "src": "12587:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "12552:41:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - { + "falseExpression": { "argumentTypes": null, "arguments": [ { @@ -53758,32 +38203,120 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3052, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "15920:5:5", + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3079, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3034, + "src": "12666:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3077, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "12644:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 3078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9992, + "src": "12644:21:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12644:29:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3076, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "12630:13:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "id": 3081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12630:44:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "id": 3053, + "id": 3082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 10145, - "src": "15920:14:5", + "referencedDeclaration": 12985, + "src": "12630:53:11", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 3054, + "id": 3083, "isConstant": false, "isLValue": false, "isPure": false, @@ -53791,7 +38324,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15920:16:5", + "src": "12630:55:11", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -53805,20 +38338,20 @@ "typeString": "uint8" } ], - "id": 3051, + "id": 3075, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15915:4:5", + "src": "12625:4:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 3055, + "id": 3084, "isConstant": false, "isLValue": false, "isPure": false, @@ -53826,424 +38359,395 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15915:22:5", + "src": "12625:61:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - { + "id": 3085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12552:134:11", + "trueExpression": { "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 3060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3056, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "15951:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 3057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "METHOD_ETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 5303, - "src": "15951:29:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15951:31:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3059, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2995, - "src": "15986:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "15951:41:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "hexValue": "3138", + "id": 3074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12608:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" }, - "falseExpression": { + "value": "18" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12540:146:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3087, + "nodeType": "ExpressionStatement", + "src": "12540:146:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3088, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "12696:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 3090, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12703:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12696:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3066, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2995, - "src": "16073:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3064, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1305, - "src": "16051:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 3065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "16051:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 3067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16051:29:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3063, - "name": "DetailedERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10168, - "src": "16037:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$10168_$", - "typeString": "type(contract DetailedERC20)" - } - }, - "id": 3068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16037:44:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - } - }, - "id": 3069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 10145, - "src": "16037:53:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 3070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16037:55:5", + "id": 3094, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13524, + "src": "12732:4:11", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", + "typeString": "contract W12Crowdsale" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16032:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16032:61:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "15951:142:5", - "trueExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16011:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3076, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10559, - "src": "16131:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", - "typeString": "contract W12Crowdsale" - } + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", + "typeString": "contract W12Crowdsale" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", - "typeString": "contract W12Crowdsale" - } - ], - "id": 3075, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16123:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16123:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "16107:5:5", + ], + "id": 3093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12724:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 3074, + "id": 3095, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "16107:15:5", + "names": [], + "nodeType": "FunctionCall", + "src": "12724:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 3091, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "12708:5:11", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "id": 3078, + "id": 3092, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16107:30:5", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "12708:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 3096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12708:30:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12696:42:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3098, + "nodeType": "ExpressionStatement", + "src": "12696:42:11" + } + ] + }, + "documentation": null, + "id": 3100, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_getInvoiceByTokenAmountLastArguments", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3035, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3034, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 3100, + "src": "12365:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3033, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12365:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12364:16:11" + }, + "payable": false, + "returnParameters": { + "id": 3040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3039, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 3100, + "src": "12404:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 3036, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12404:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3038, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 3037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12409:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "12404:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12403:16:11" + }, + "scope": 3302, + "src": "12318:427:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3119, + "nodeType": "Block", + "src": "12825:99:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3113, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3102, + "src": "12865:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { + }, + { + "argumentTypes": null, + "id": 3114, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "12878:4:11", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - { + } + }, + { + "argumentTypes": null, + "id": 3115, + "name": "serviceFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1857, + "src": "12884:10:11", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - }, - { + } + }, + { + "argumentTypes": null, + "id": 3116, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1859, + "src": "12896:20:11", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, + } + } + ], + "expression": { + "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -54263,32 +38767,32 @@ ], "expression": { "argumentTypes": null, - "id": 3030, + "id": 3111, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "15646:18:5", + "referencedDeclaration": 7269, + "src": "12842:18:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 3031, + "id": 3112, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "invoiceByTokenAmount", + "memberName": "fee", "nodeType": "MemberAccess", - "referencedDeclaration": 5703, - "src": "15646:39:5", + "referencedDeclaration": 6896, + "src": "12842:22:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$4_memory_ptr_$", - "typeString": "function (bytes32,uint256,uint256,uint256[] memory,uint256[] memory,uint256,uint256,uint256,uint256,uint256) view returns (uint256[4] memory)" + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", + "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256[2] memory)" } }, - "id": 3079, + "id": 3117, "isConstant": false, "isLValue": false, "isPure": false, @@ -54296,52 +38800,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15646:501:5", + "src": "12842:75:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", - "typeString": "uint256[4] memory" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" } }, - "functionReturnParameters": 3003, - "id": 3080, + "functionReturnParameters": 3110, + "id": 3118, "nodeType": "Return", - "src": "15639:508:5" + "src": "12835:82:11" } ] }, "documentation": null, - "id": 3082, + "id": 3120, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getInvoiceByTokenAmount", + "name": "getFee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2998, + "id": 3105, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2995, - "name": "method", + "id": 3102, + "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 3082, - "src": "15328:14:5", + "scope": 3120, + "src": "12767:16:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 2994, - "name": "bytes32", + "id": 3101, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "15328:7:5", + "src": "12767:4:11", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -54349,11 +38853,11 @@ }, { "constant": false, - "id": 2997, - "name": "tokenAmount", + "id": 3104, + "name": "cost", "nodeType": "VariableDeclaration", - "scope": 3082, - "src": "15344:16:5", + "scope": 3120, + "src": "12785:9:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -54361,10 +38865,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2996, + "id": 3103, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "15344:4:5", + "src": "12785:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -54374,106 +38878,308 @@ "visibility": "internal" } ], - "src": "15327:34:5" + "src": "12766:29:11" }, "payable": false, "returnParameters": { - "id": 3003, + "id": 3110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3002, + "id": 3109, "name": "", "nodeType": "VariableDeclaration", - "scope": 3082, - "src": "15383:7:5", + "scope": 3120, + "src": "12816:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", - "typeString": "uint256[4]" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" }, "typeName": { "baseType": { - "id": 2999, + "id": 3106, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "15383:4:5", + "src": "12816:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3001, + "id": 3108, "length": { "argumentTypes": null, - "hexValue": "34", - "id": 3000, + "hexValue": "32", + "id": 3107, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15388:1:5", + "src": "12821:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, "typeString": null }, - "value": "4" + "value": "2" }, "nodeType": "ArrayTypeName", - "src": "15383:7:5", + "src": "12816:7:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", - "typeString": "uint256[4]" + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" } }, "value": null, "visibility": "internal" } ], - "src": "15382:9:5" + "src": "12815:9:11" }, - "scope": 3279, - "src": "15295:859:5", + "scope": 3302, + "src": "12751:173:11", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3101, + "id": 3155, "nodeType": "Block", - "src": "16234:99:5", + "src": "13002:248:11", "statements": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3095, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3084, - "src": "16274:11:5", + "assignments": [ + 3128, + 3130 + ], + "declarations": [ + { + "constant": false, + "id": 3128, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 3156, + "src": "13013:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3127, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13013:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3130, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 3156, + "src": "13025:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3129, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13025:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3133, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3131, + "name": "getCurrentStageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3204 + ], + "referencedDeclaration": 3204, + "src": "13039:20:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view returns (uint256,bool)" + } + }, + "id": 3132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13039:22:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13012:49:11" + }, + { + "condition": { + "argumentTypes": null, + "id": 3135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13076:6:11", + "subExpression": { + "argumentTypes": null, + "id": 3134, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "13077:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3137, + "nodeType": "IfStatement", + "src": "13072:19:11", + "trueBody": { + "expression": null, + "functionReturnParameters": 3126, + "id": 3136, + "nodeType": "Return", + "src": "13084:7:11" + } + }, + { + "assignments": [ + 3141 + ], + "declarations": [ + { + "constant": false, + "id": 3141, + "name": "stage", + "nodeType": "VariableDeclaration", + "scope": 3156, + "src": "13101:29:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" + }, + "typeName": { + "contractScope": null, + "id": 3140, + "name": "Crowdsale.Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4449, + "src": "13101:15:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3145, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3142, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "13133:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 3144, + "indexExpression": { + "argumentTypes": null, + "id": 3143, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3128, + "src": "13140:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13133:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13101:45:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "id": 3096, - "name": "cost", + "id": 3148, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "16287:4:5", + "referencedDeclaration": 3122, + "src": "13192:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -54481,28 +39187,60 @@ }, { "argumentTypes": null, - "id": 3097, - "name": "serviceFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1309, - "src": "16293:10:5", + "expression": { + "argumentTypes": null, + "id": 3149, + "name": "stage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3141, + "src": "13199:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage storage pointer" + } + }, + "id": 3150, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 4445, + "src": "13199:22:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } }, { "argumentTypes": null, - "id": 3098, - "name": "WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1311, - "src": "16305:20:5", + "expression": { + "argumentTypes": null, + "id": 3151, + "name": "stage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3141, + "src": "13223:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage storage pointer" + } + }, + "id": 3152, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 4448, + "src": "13223:19:11", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } } ], @@ -54513,46 +39251,42 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } ], "expression": { "argumentTypes": null, - "id": 3093, + "id": 3146, "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "16251:18:5", + "referencedDeclaration": 7269, + "src": "13164:18:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$7269_$", "typeString": "type(library PurchaseProcessing)" } }, - "id": 3094, + "id": 3147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "fee", + "memberName": "getBonus", "nodeType": "MemberAccess", - "referencedDeclaration": 5745, - "src": "16251:22:5", + "referencedDeclaration": 7268, + "src": "13164:27:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256[2] memory)" + "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256[] memory,uint256[] memory) view returns (uint256)" } }, - "id": 3099, + "id": 3153, "isConstant": false, "isLValue": false, "isPure": false, @@ -54560,64 +39294,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16251:75:5", + "src": "13164:79:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 3092, - "id": 3100, + "functionReturnParameters": 3126, + "id": 3154, "nodeType": "Return", - "src": "16244:82:5" + "src": "13157:86:11" } ] }, "documentation": null, - "id": 3102, + "id": 3156, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getFee", + "name": "getSaleVolumeBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 3087, + "id": 3123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3084, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 3102, - "src": "16176:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3083, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16176:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3086, - "name": "cost", + "id": 3122, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 3102, - "src": "16194:9:5", + "scope": 3156, + "src": "12958:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -54625,10 +39333,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3085, + "id": 3121, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "16194:4:5", + "src": "12958:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -54638,486 +39346,20 @@ "visibility": "internal" } ], - "src": "16175:29:5" + "src": "12957:12:11" }, "payable": false, "returnParameters": { - "id": 3092, + "id": 3126, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3091, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3102, - "src": "16225:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" - }, - "typeName": { - "baseType": { - "id": 3088, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16225:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3090, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 3089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16230:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "16225:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16224:9:5" - }, - "scope": 3279, - "src": "16160:173:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3135, - "nodeType": "Block", - "src": "16411:238:5", - "statements": [ - { - "assignments": [ - 3110, - 3112 - ], - "declarations": [ - { - "constant": false, - "id": 3110, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 3136, - "src": "16422:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3109, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16422:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3112, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 3136, - "src": "16434:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3111, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16434:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3115, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3113, - "name": "getCurrentStageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3182, - "src": "16448:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view returns (uint256,bool)" - } - }, - "id": 3114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16448:22:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16421:49:5" - }, - { - "condition": { - "argumentTypes": null, - "id": 3117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16485:6:5", - "subExpression": { - "argumentTypes": null, - "id": 3116, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3112, - "src": "16486:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3119, - "nodeType": "IfStatement", - "src": "16481:19:5", - "trueBody": { - "expression": null, - "functionReturnParameters": 3108, - "id": 3118, - "nodeType": "Return", - "src": "16493:7:5" - } - }, - { - "assignments": [ - 3121 - ], - "declarations": [ - { - "constant": false, - "id": 3121, - "name": "stage", - "nodeType": "VariableDeclaration", - "scope": 3136, - "src": "16510:19:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" - }, - "typeName": { - "contractScope": null, - "id": 3120, - "name": "Stage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1338, - "src": "16510:5:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" - } - }, - "value": null, - "visibility": "internal" - } - ], "id": 3125, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3122, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "16532:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 3124, - "indexExpression": { - "argumentTypes": null, - "id": 3123, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3110, - "src": "16539:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16532:13:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16510:35:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3128, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3104, - "src": "16591:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3129, - "name": "stage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "16598:5:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" - } - }, - "id": 3130, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBoundaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "16598:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3131, - "name": "stage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "16622:5:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" - } - }, - "id": 3132, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBonuses", - "nodeType": "MemberAccess", - "referencedDeclaration": 1337, - "src": "16622:19:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3126, - "name": "PurchaseProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6118, - "src": "16563:18:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$6118_$", - "typeString": "type(library PurchaseProcessing)" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getBonus", - "nodeType": "MemberAccess", - "referencedDeclaration": 6117, - "src": "16563:27:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256[] memory,uint256[] memory) view returns (uint256)" - } - }, - "id": 3133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16563:79:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3108, - "id": 3134, - "nodeType": "Return", - "src": "16556:86:5" - } - ] - }, - "documentation": null, - "id": 3136, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSaleVolumeBonus", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3104, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 3136, - "src": "16367:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3103, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16367:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16366:12:5" - }, - "payable": false, - "returnParameters": { - "id": 3108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3107, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 3136, - "src": "16399:10:5", + "scope": 3156, + "src": "12990:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55125,10 +39367,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3106, + "id": 3124, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "16399:4:5", + "src": "12990:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55138,85 +39380,85 @@ "visibility": "internal" } ], - "src": "16398:12:5" + "src": "12989:12:11" }, - "scope": 3279, - "src": "16339:310:5", + "scope": 3302, + "src": "12930:320:11", "stateMutability": "view", - "superFunction": 1201, + "superFunction": 1737, "visibility": "public" }, { "body": { - "id": 3181, + "id": 3203, "nodeType": "Block", - "src": "16732:254:5", + "src": "13333:264:11", "statements": [ { "body": { - "id": 3175, + "id": 3197, "nodeType": "Block", - "src": "16782:170:5", + "src": "13383:180:11", "statements": [ { "assignments": [ - 3155 + 3177 ], "declarations": [ { "constant": false, - "id": 3155, + "id": 3177, "name": "stage", "nodeType": "VariableDeclaration", - "scope": 3182, - "src": "16796:19:5", + "scope": 3204, + "src": "13397:29:11", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" }, "typeName": { "contractScope": null, - "id": 3154, - "name": "Stage", + "id": 3176, + "name": "Crowdsale.Stage", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1338, - "src": "16796:5:5", + "referencedDeclaration": 4449, + "src": "13397:15:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage" } }, "value": null, "visibility": "internal" } ], - "id": 3159, + "id": 3181, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3156, + "id": 3178, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "16818:6:5", + "referencedDeclaration": 1868, + "src": "13429:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 3158, + "id": 3180, "indexExpression": { "argumentTypes": null, - "id": 3157, + "id": 3179, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3144, - "src": "16825:1:5", + "referencedDeclaration": 3164, + "src": "13436:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55227,14 +39469,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16818:9:5", + "src": "13429:9:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "16796:31:5" + "src": "13397:41:11" }, { "condition": { @@ -55243,7 +39485,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3168, + "id": 3190, "isConstant": false, "isLValue": false, "isPure": false, @@ -55254,7 +39496,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3163, + "id": 3185, "isConstant": false, "isLValue": false, "isPure": false, @@ -55263,26 +39505,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3160, + "id": 3182, "name": "stage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3155, - "src": "16846:5:5", + "referencedDeclaration": 3177, + "src": "13457:5:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage storage pointer" } }, - "id": 3161, + "id": 3183, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "startDate", "nodeType": "MemberAccess", - "referencedDeclaration": 1325, - "src": "16846:15:5", + "referencedDeclaration": 4436, + "src": "13457:15:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -55292,18 +39534,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 3162, + "id": 3184, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "16865:3:5", + "referencedDeclaration": 13443, + "src": "13476:3:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "16846:22:5", + "src": "13457:22:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -55317,7 +39559,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3167, + "id": 3189, "isConstant": false, "isLValue": false, "isPure": false, @@ -55326,26 +39568,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3164, + "id": 3186, "name": "stage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3155, - "src": "16872:5:5", + "referencedDeclaration": 3177, + "src": "13483:5:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" + "typeIdentifier": "t_struct$_Stage_$4449_storage_ptr", + "typeString": "struct Crowdsale.Stage storage pointer" } }, - "id": 3165, + "id": 3187, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 1327, - "src": "16872:13:5", + "referencedDeclaration": 4438, + "src": "13483:13:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -55355,37 +39597,37 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 3166, + "id": 3188, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "16888:3:5", + "referencedDeclaration": 13443, + "src": "13499:3:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "16872:19:5", + "src": "13483:19:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "16846:45:5", + "src": "13457:45:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3174, + "id": 3196, "nodeType": "IfStatement", - "src": "16842:100:5", + "src": "13453:100:11", "trueBody": { - "id": 3173, + "id": 3195, "nodeType": "Block", - "src": "16893:49:5", + "src": "13504:49:11", "statements": [ { "expression": { @@ -55393,12 +39635,12 @@ "components": [ { "argumentTypes": null, - "id": 3169, + "id": 3191, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3144, - "src": "16919:1:5", + "referencedDeclaration": 3164, + "src": "13530:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55407,14 +39649,14 @@ { "argumentTypes": null, "hexValue": "74727565", - "id": 3170, + "id": 3192, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "16922:4:5", + "src": "13533:4:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -55423,23 +39665,23 @@ "value": "true" } ], - "id": 3171, + "id": 3193, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "16918:9:5", + "src": "13529:9:11", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, - "functionReturnParameters": 3142, - "id": 3172, + "functionReturnParameters": 3162, + "id": 3194, "nodeType": "Return", - "src": "16911:16:5" + "src": "13522:16:11" } ] } @@ -55452,19 +39694,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3150, + "id": 3170, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3147, + "id": 3167, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3144, - "src": "16758:1:5", + "referencedDeclaration": 3164, + "src": "13359:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55476,18 +39718,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3148, + "id": 3168, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "16762:6:5", + "referencedDeclaration": 1868, + "src": "13363:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 3149, + "id": 3169, "isConstant": false, "isLValue": true, "isPure": false, @@ -55495,31 +39737,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "16762:13:5", + "src": "13363:13:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "16758:17:5", + "src": "13359:17:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3176, + "id": 3198, "initializationExpression": { "assignments": [ - 3144 + 3164 ], "declarations": [ { "constant": false, - "id": 3144, + "id": 3164, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3182, - "src": "16746:6:5", + "scope": 3204, + "src": "13347:6:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55527,10 +39769,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3143, + "id": 3163, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "16746:4:5", + "src": "13347:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55540,18 +39782,18 @@ "visibility": "internal" } ], - "id": 3146, + "id": 3166, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3145, + "id": 3165, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16755:1:5", + "src": "13356:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -55560,12 +39802,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "16746:10:5" + "src": "13347:10:11" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 3152, + "id": 3172, "isConstant": false, "isLValue": false, "isPure": false, @@ -55573,15 +39815,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "16777:3:5", + "src": "13378:3:11", "subExpression": { "argumentTypes": null, - "id": 3151, + "id": 3171, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3144, - "src": "16777:1:5", + "referencedDeclaration": 3164, + "src": "13378:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55592,12 +39834,12 @@ "typeString": "uint256" } }, - "id": 3153, + "id": 3173, "nodeType": "ExpressionStatement", - "src": "16777:3:5" + "src": "13378:3:11" }, "nodeType": "ForStatement", - "src": "16742:210:5" + "src": "13343:220:11" }, { "expression": { @@ -55606,14 +39848,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3177, + "id": 3199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16970:1:5", + "src": "13581:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -55624,14 +39866,14 @@ { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3178, + "id": 3200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "16973:5:5", + "src": "13584:5:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -55640,28 +39882,28 @@ "value": "false" } ], - "id": 3179, + "id": 3201, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "16969:10:5", + "src": "13580:10:11", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", "typeString": "tuple(int_const 0,bool)" } }, - "functionReturnParameters": 3142, - "id": 3180, + "functionReturnParameters": 3162, + "id": 3202, "nodeType": "Return", - "src": "16962:17:5" + "src": "13573:17:11" } ] }, "documentation": null, - "id": 3182, + "id": 3204, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -55669,23 +39911,23 @@ "name": "getCurrentStageIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 3137, + "id": 3157, "nodeType": "ParameterList", "parameters": [], - "src": "16684:2:5" + "src": "13285:2:11" }, "payable": false, "returnParameters": { - "id": 3142, + "id": 3162, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3139, + "id": 3159, "name": "index", "nodeType": "VariableDeclaration", - "scope": 3182, - "src": "16708:10:5", + "scope": 3204, + "src": "13309:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55693,10 +39935,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3138, + "id": 3158, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "16708:4:5", + "src": "13309:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55707,11 +39949,11 @@ }, { "constant": false, - "id": 3141, + "id": 3161, "name": "found", "nodeType": "VariableDeclaration", - "scope": 3182, - "src": "16720:10:5", + "scope": 3204, + "src": "13321:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55719,10 +39961,10 @@ "typeString": "bool" }, "typeName": { - "id": 3140, + "id": 3160, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "16720:4:5", + "src": "13321:4:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -55732,19 +39974,19 @@ "visibility": "internal" } ], - "src": "16707:24:5" + "src": "13308:24:11" }, - "scope": 3279, - "src": "16655:331:5", + "scope": 3302, + "src": "13256:341:11", "stateMutability": "view", - "superFunction": 1194, + "superFunction": 1730, "visibility": "public" }, { "body": { - "id": 3214, + "id": 3238, "nodeType": "Block", - "src": "17043:189:5", + "src": "13661:199:11", "statements": [ { "expression": { @@ -55755,18 +39997,20 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3188, + "id": 3210, "name": "isEnded", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3236, - "src": "17061:7:5", + "overloadedDeclarations": [ + 3260 + ], + "referencedDeclaration": 3260, + "src": "13679:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 3189, + "id": 3211, "isConstant": false, "isLValue": false, "isPure": false, @@ -55774,7 +40018,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17061:9:5", + "src": "13679:9:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -55788,21 +40032,21 @@ "typeString": "bool" } ], - "id": 3187, + "id": 3209, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "17053:7:5", + "referencedDeclaration": 13444, + "src": "13671:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3190, + "id": 3212, "isConstant": false, "isLValue": false, "isPure": false, @@ -55810,28 +40054,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17053:18:5", + "src": "13671:18:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3191, + "id": 3213, "nodeType": "ExpressionStatement", - "src": "17053:18:5" + "src": "13671:18:11" }, { "assignments": [ - 3193 + 3215 ], "declarations": [ { "constant": false, - "id": 3193, + "id": 3215, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3215, - "src": "17082:11:5", + "scope": 3239, + "src": "13700:11:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55839,10 +40083,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3192, + "id": 3214, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "17082:4:5", + "src": "13700:4:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55852,7 +40096,7 @@ "visibility": "internal" } ], - "id": 3200, + "id": 3222, "initialValue": { "argumentTypes": null, "arguments": [ @@ -55861,14 +40105,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3197, + "id": 3219, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10559, - "src": "17120:4:5", + "referencedDeclaration": 13524, + "src": "13738:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", "typeString": "contract W12Crowdsale" } } @@ -55876,24 +40120,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", "typeString": "contract W12Crowdsale" } ], - "id": 3196, + "id": 3218, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17112:7:5", + "src": "13730:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3198, + "id": 3220, "isConstant": false, "isLValue": false, "isPure": false, @@ -55901,7 +40145,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17112:13:5", + "src": "13730:13:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -55917,32 +40161,32 @@ ], "expression": { "argumentTypes": null, - "id": 3194, + "id": 3216, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "17096:5:5", + "referencedDeclaration": 1847, + "src": "13714:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "id": 3195, + "id": 3217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "17096:15:5", + "referencedDeclaration": 13028, + "src": "13714:15:11", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 3199, + "id": 3221, "isConstant": false, "isLValue": false, "isPure": false, @@ -55950,14 +40194,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17096:30:5", + "src": "13714:30:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "17082:44:5" + "src": "13700:44:11" }, { "expression": { @@ -55968,12 +40212,28 @@ "arguments": [ { "argumentTypes": null, - "id": 3204, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10052, - "src": "17160:5:5", + "expression": { + "argumentTypes": null, + "id": 3226, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "13778:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13778:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -55981,12 +40241,12 @@ }, { "argumentTypes": null, - "id": 3205, + "id": 3228, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3193, - "src": "17167:6:5", + "referencedDeclaration": 3215, + "src": "13790:6:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -56006,32 +40266,32 @@ ], "expression": { "argumentTypes": null, - "id": 3202, + "id": 3224, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "17145:5:5", + "referencedDeclaration": 1847, + "src": "13763:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "id": 3203, + "id": 3225, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "17145:14:5", + "referencedDeclaration": 13046, + "src": "13763:14:11", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3206, + "id": 3229, "isConstant": false, "isLValue": false, "isPure": false, @@ -56039,7 +40299,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17145:29:5", + "src": "13763:34:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -56053,21 +40313,21 @@ "typeString": "bool" } ], - "id": 3201, + "id": 3223, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "17137:7:5", + "referencedDeclaration": 13444, + "src": "13755:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3207, + "id": 3230, "isConstant": false, "isLValue": false, "isPure": false, @@ -56075,15 +40335,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17137:38:5", + "src": "13755:43:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3208, + "id": 3231, "nodeType": "ExpressionStatement", - "src": "17137:38:5" + "src": "13755:43:11" }, { "eventCall": { @@ -56091,12 +40351,28 @@ "arguments": [ { "argumentTypes": null, - "id": 3210, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10052, - "src": "17211:5:5", + "expression": { + "argumentTypes": null, + "id": 3233, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "13834:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13834:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -56104,12 +40380,12 @@ }, { "argumentTypes": null, - "id": 3211, + "id": 3235, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3193, - "src": "17218:6:5", + "referencedDeclaration": 3215, + "src": "13846:6:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -56127,18 +40403,18 @@ "typeString": "uint256" } ], - "id": 3209, + "id": 3232, "name": "UnsoldTokenReturned", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1377, - "src": "17191:19:5", + "referencedDeclaration": 1897, + "src": "13814:19:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 3212, + "id": 3236, "isConstant": false, "isLValue": false, "isPure": false, @@ -56146,70 +40422,70 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17191:34:5", + "src": "13814:39:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3213, + "id": 3237, "nodeType": "EmitStatement", - "src": "17186:39:5" + "src": "13809:44:11" } ] }, "documentation": null, - "id": 3215, + "id": 3239, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3185, + "id": 3207, "modifierName": { "argumentTypes": null, - "id": 3184, - "name": "onlyOwner", + "id": 3206, + "name": "onlyProjectOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "17033:9:5", + "referencedDeclaration": 1564, + "src": "13644:16:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "17033:9:5" + "src": "13644:16:11" } ], "name": "claimRemainingTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 3183, + "id": 3205, "nodeType": "ParameterList", "parameters": [], - "src": "17021:2:5" + "src": "13632:2:11" }, "payable": false, "returnParameters": { - "id": 3186, + "id": 3208, "nodeType": "ParameterList", "parameters": [], - "src": "17043:0:5" + "src": "13661:0:11" }, - "scope": 3279, - "src": "16992:240:5", + "scope": 3302, + "src": "13603:257:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3235, + "id": 3259, "nodeType": "Block", - "src": "17284:85:5", + "src": "13912:85:11", "statements": [ { "expression": { @@ -56218,7 +40494,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3233, + "id": 3257, "isConstant": false, "isLValue": false, "isPure": false, @@ -56229,7 +40505,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3223, + "id": 3247, "isConstant": false, "isLValue": false, "isPure": false, @@ -56238,18 +40514,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3220, + "id": 3244, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "17301:6:5", + "referencedDeclaration": 1868, + "src": "13929:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 3221, + "id": 3245, "isConstant": false, "isLValue": true, "isPure": false, @@ -56257,7 +40533,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "17301:13:5", + "src": "13929:13:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -56268,14 +40544,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3222, + "id": 3246, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17318:1:5", + "src": "13946:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -56283,7 +40559,7 @@ }, "value": "0" }, - "src": "17301:18:5", + "src": "13929:18:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -56297,7 +40573,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3232, + "id": 3256, "isConstant": false, "isLValue": false, "isPure": false, @@ -56308,25 +40584,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3224, + "id": 3248, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "17323:6:5", + "referencedDeclaration": 1868, + "src": "13951:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 3229, + "id": 3253, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3228, + "id": 3252, "isConstant": false, "isLValue": false, "isPure": false, @@ -56335,18 +40611,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3225, + "id": 3249, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "17330:6:5", + "referencedDeclaration": 1868, + "src": "13958:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 3226, + "id": 3250, "isConstant": false, "isLValue": true, "isPure": false, @@ -56354,7 +40630,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "17330:13:5", + "src": "13958:13:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -56365,14 +40641,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3227, + "id": 3251, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17346:1:5", + "src": "13974:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -56380,7 +40656,7 @@ }, "value": "1" }, - "src": "17330:17:5", + "src": "13958:17:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -56391,21 +40667,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17323:25:5", + "src": "13951:25:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 3230, + "id": 3254, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 1327, - "src": "17323:33:5", + "referencedDeclaration": 4438, + "src": "13951:33:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -56415,38 +40691,38 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 3231, + "id": 3255, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "17359:3:5", + "referencedDeclaration": 13443, + "src": "13987:3:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "17323:39:5", + "src": "13951:39:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "17301:61:5", + "src": "13929:61:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3219, - "id": 3234, + "functionReturnParameters": 3243, + "id": 3258, "nodeType": "Return", - "src": "17294:68:5" + "src": "13922:68:11" } ] }, "documentation": null, - "id": 3236, + "id": 3260, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -56454,23 +40730,23 @@ "name": "isEnded", "nodeType": "FunctionDefinition", "parameters": { - "id": 3216, + "id": 3240, "nodeType": "ParameterList", "parameters": [], - "src": "17254:2:5" + "src": "13882:2:11" }, "payable": false, "returnParameters": { - "id": 3219, + "id": 3243, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3218, + "id": 3242, "name": "", "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "17278:4:5", + "scope": 3260, + "src": "13906:4:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56478,10 +40754,10 @@ "typeString": "bool" }, "typeName": { - "id": 3217, + "id": 3241, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "17278:4:5", + "src": "13906:4:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -56491,34 +40767,34 @@ "visibility": "internal" } ], - "src": "17277:6:5" + "src": "13905:6:11" }, - "scope": 3279, - "src": "17238:131:5", + "scope": 3302, + "src": "13866:131:11", "stateMutability": "view", - "superFunction": 1206, + "superFunction": 1742, "visibility": "public" }, { "body": { - "id": 3248, + "id": 3272, "nodeType": "Block", - "src": "17426:79:5", + "src": "14054:79:11", "statements": [ { "assignments": [ null, - 3242 + 3266 ], "declarations": [ null, { "constant": false, - "id": 3242, + "id": 3266, "name": "found", "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "17439:10:5", + "scope": 3273, + "src": "14067:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56526,10 +40802,10 @@ "typeString": "bool" }, "typeName": { - "id": 3241, + "id": 3265, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "17439:4:5", + "src": "14067:4:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -56539,24 +40815,26 @@ "visibility": "internal" } ], - "id": 3245, + "id": 3269, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 3243, + "id": 3267, "name": "getCurrentStageIndex", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3182, - "src": "17453:20:5", + "overloadedDeclarations": [ + 3204 + ], + "referencedDeclaration": 3204, + "src": "14081:20:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view returns (uint256,bool)" } }, - "id": 3244, + "id": 3268, "isConstant": false, "isLValue": false, "isPure": false, @@ -56564,38 +40842,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17453:22:5", + "src": "14081:22:11", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "17436:39:5" + "src": "14064:39:11" }, { "expression": { "argumentTypes": null, - "id": 3246, + "id": 3270, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3242, - "src": "17493:5:5", + "referencedDeclaration": 3266, + "src": "14121:5:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3240, - "id": 3247, + "functionReturnParameters": 3264, + "id": 3271, "nodeType": "Return", - "src": "17486:12:5" + "src": "14114:12:11" } ] }, "documentation": null, - "id": 3249, + "id": 3273, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -56603,23 +40881,23 @@ "name": "isSaleActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 3237, + "id": 3261, "nodeType": "ParameterList", "parameters": [], - "src": "17396:2:5" + "src": "14024:2:11" }, "payable": false, "returnParameters": { - "id": 3240, + "id": 3264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3239, + "id": 3263, "name": "", "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "17420:4:5", + "scope": 3273, + "src": "14048:4:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56627,10 +40905,10 @@ "typeString": "bool" }, "typeName": { - "id": 3238, + "id": 3262, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "17420:4:5", + "src": "14048:4:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -56640,19 +40918,19 @@ "visibility": "internal" } ], - "src": "17419:6:5" + "src": "14047:6:11" }, - "scope": 3279, - "src": "17375:130:5", + "scope": 3302, + "src": "14003:130:11", "stateMutability": "view", - "superFunction": 1211, + "superFunction": 1747, "visibility": "public" }, { "body": { - "id": 3267, + "id": 3291, "nodeType": "Block", - "src": "17538:110:5", + "src": "14166:110:11", "statements": [ { "condition": { @@ -56661,7 +40939,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3254, + "id": 3278, "isConstant": false, "isLValue": false, "isPure": false, @@ -56670,18 +40948,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3251, + "id": 3275, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "17552:6:5", + "referencedDeclaration": 1868, + "src": "14180:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 3252, + "id": 3276, "isConstant": false, "isLValue": true, "isPure": false, @@ -56689,7 +40967,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "17552:13:5", + "src": "14180:13:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -56700,14 +40978,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3253, + "id": 3277, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17568:1:5", + "src": "14196:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -56715,20 +40993,20 @@ }, "value": "0" }, - "src": "17552:17:5", + "src": "14180:17:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3265, + "id": 3289, "nodeType": "IfStatement", - "src": "17548:82:5", + "src": "14176:82:11", "trueBody": { - "id": 3264, + "id": 3288, "nodeType": "Block", - "src": "17571:59:5", + "src": "14199:59:11", "statements": [ { "expression": { @@ -56740,7 +41018,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3261, + "id": 3285, "isConstant": false, "isLValue": false, "isPure": false, @@ -56751,29 +41029,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3256, + "id": 3280, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "17593:6:5", + "referencedDeclaration": 1868, + "src": "14221:6:11", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$1338_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_array$_t_struct$_Stage_$4449_storage_$dyn_storage", + "typeString": "struct Crowdsale.Stage storage ref[] storage ref" } }, - "id": 3258, + "id": 3282, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3257, + "id": 3281, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17600:1:5", + "src": "14228:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -56786,21 +41064,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17593:9:5", + "src": "14221:9:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$1338_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_struct$_Stage_$4449_storage", + "typeString": "struct Crowdsale.Stage storage ref" } }, - "id": 3259, + "id": 3283, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "startDate", "nodeType": "MemberAccess", - "referencedDeclaration": 1325, - "src": "17593:19:5", + "referencedDeclaration": 4436, + "src": "14221:19:11", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -56810,18 +41088,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 3260, + "id": 3284, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "17615:3:5", + "referencedDeclaration": 13443, + "src": "14243:3:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "17593:25:5", + "src": "14221:25:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -56835,21 +41113,21 @@ "typeString": "bool" } ], - "id": 3255, + "id": 3279, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "17585:7:5", + "referencedDeclaration": 13444, + "src": "14213:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3262, + "id": 3286, "isConstant": false, "isLValue": false, "isPure": false, @@ -56857,44 +41135,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17585:34:5", + "src": "14213:34:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3263, + "id": 3287, "nodeType": "ExpressionStatement", - "src": "17585:34:5" + "src": "14213:34:11" } ] } }, { - "id": 3266, + "id": 3290, "nodeType": "PlaceholderStatement", - "src": "17640:1:5" + "src": "14268:1:11" } ] }, "documentation": null, - "id": 3268, + "id": 3292, "name": "beforeSaleStart", "nodeType": "ModifierDefinition", "parameters": { - "id": 3250, + "id": 3274, "nodeType": "ParameterList", "parameters": [], - "src": "17535:2:5" + "src": "14163:2:11" }, - "src": "17511:137:5", + "src": "14139:137:11", "visibility": "internal" }, { "body": { - "id": 3277, + "id": 3300, "nodeType": "Block", - "src": "17684:79:5", + "src": "14312:52:11", "statements": [ { "expression": { @@ -56905,18 +41183,20 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3271, + "id": 3295, "name": "isSaleActive", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3249, - "src": "17702:12:5", + "overloadedDeclarations": [ + 3273 + ], + "referencedDeclaration": 3273, + "src": "14330:12:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 3272, + "id": 3296, "isConstant": false, "isLValue": false, "isPure": false, @@ -56924,29 +41204,11 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17702:14:5", + "src": "14330:14:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - { - "argumentTypes": null, - "hexValue": "53616c65206973206e6f74207374617274656420796574", - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17718:25:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5d3dac2c5e5eaf55904e5c5b3584f31d9fc0f4cb1622762f2b62bd65063805dc", - "typeString": "literal_string \"Sale is not started yet\"" - }, - "value": "Sale is not started yet" } ], "expression": { @@ -56954,27 +41216,23 @@ { "typeIdentifier": "t_bool", "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5d3dac2c5e5eaf55904e5c5b3584f31d9fc0f4cb1622762f2b62bd65063805dc", - "typeString": "literal_string \"Sale is not started yet\"" } ], - "id": 3270, + "id": 3294, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10492, - "src": "17694:7:5", + "referencedDeclaration": 13444, + "src": "14322:7:11", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 3274, + "id": 3297, "isConstant": false, "isLValue": false, "isPure": false, @@ -56982,42 +41240,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17694:50:5", + "src": "14322:23:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3275, + "id": 3298, "nodeType": "ExpressionStatement", - "src": "17694:50:5" + "src": "14322:23:11" }, { - "id": 3276, + "id": 3299, "nodeType": "PlaceholderStatement", - "src": "17755:1:5" + "src": "14356:1:11" } ] }, "documentation": null, - "id": 3278, + "id": 3301, "name": "onlyWhenSaleActive", "nodeType": "ModifierDefinition", "parameters": { - "id": 3269, + "id": 3293, "nodeType": "ParameterList", "parameters": [], - "src": "17681:2:5" + "src": "14309:2:11" }, - "src": "17654:109:5", + "src": "14282:82:11", "visibility": "internal" } ], - "scope": 3280, - "src": "667:17098:5" + "scope": 3303, + "src": "741:13625:11" } ], - "src": "0:17766:5" + "src": "0:14367:11" }, "compiler": { "name": "solc", @@ -57027,11 +41285,14 @@ "4": { "events": {}, "links": { - "Percent": "0x0b4828a3e62b5ae0029d86d76fa68887ea9748ec", - "Utils": "0x3a1732ce8e94619c9daf43a86323077ce770b9f4" + "Percent": "0x04596c9a67ad5870686616d58c2a8198f8b94b34", + "Utils": "0x3a1732ce8e94619c9daf43a86323077ce770b9f4", + "PaymentMethods": "0x075acd6e2c3889534b118c25e987a7c54e310334", + "PurchaseProcessing": "0xc188f0bc72e1a4f928fcf81132dc444bd0846871", + "Crowdsale": "0x7e8264c85babb6c0b41734622ac220c2bf7d57a0" } } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:55:06.446Z" + "updatedAt": "2018-12-06T13:18:18.818Z" } \ No newline at end of file diff --git a/build/contracts/W12CrowdsaleFactory.json b/build/contracts/W12CrowdsaleFactory.json index dbbf8e16..c260368f 100644 --- a/build/contracts/W12CrowdsaleFactory.json +++ b/build/contracts/W12CrowdsaleFactory.json @@ -37,11 +37,6 @@ { "anonymous": false, "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, { "indexed": true, "name": "token", @@ -97,8 +92,8 @@ "type": "address" }, { - "name": "owner", - "type": "address" + "name": "owners", + "type": "address[]" } ], "name": "createCrowdsale", @@ -113,24 +108,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506040516060806153ce8339810160409081528151602083015191909201516000839055600160a060020a038216151561004957600080fd5b600160a060020a038116151561005e57600080fd5b60018054600160a060020a03938416600160a060020a03199182161790915560028054929093169116179055506153348061009a6000396000f3006080604052600436106100325763ffffffff60e060020a60003504166354fd4d508114610037578063aa1322f71461005e575b600080fd5b34801561004357600080fd5b5061004c6100c4565b60408051918252519081900360200190f35b34801561006a57600080fd5b506100a8600160a060020a03600435811690602435811690604435906064358116906084359060a4359060c4359060e43581169061010435166100ca565b60408051600160a060020a039092168252519081900360200190f35b60005481565b600154604080517f17444626000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152898116602483015260448201879052915160009384931691631744462691606480830192602092919082900301818787803b15801561014257600080fd5b505af1158015610156573d6000803e3d6000fd5b505050506040513d602081101561016c57600080fd5b5051600054600254919250908c908c908c908c9089908d908d908990600160a060020a03166101996103ea565b998a52600160a060020a0398891660208b01529688166040808b019190915260608a0196909652938716608089015291861660a088015260c087015260e086015283166101008501529116610120830152519081900361014001906000f080158015610209573d6000803e3d6000fd5b50915081600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561026757600080fd5b505af115801561027b573d6000803e3d6000fd5b5050505080600160a060020a031663483a20b2836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156102da57600080fd5b505af11580156102ee573d6000803e3d6000fd5b5050505080600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561034d57600080fd5b505af1158015610361573d6000803e3d6000fd5b5050505089600160a060020a031683600160a060020a03167f5c5f2ecd800afaa9861ac6ebf9ef843dfc826dedb68c6fc1447d0879f383629f84846040518083600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019250505060405180910390a3509998505050505050505050565b604051614f0e806103fb833901905600608060405260016002553480156200001657600080fd5b506040516101408062004f0e83398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015161012090990151600088905560018054600160a060020a03191633179055969895969495939492939192909190600160a060020a03891615156200009857600080fd5b600160a060020a0388161515620000ae57600080fd5b620000c7846401000000006200430d6200020b82021704565b8015620000ec57506064620000ea8564010000000062004b626200024882021704565b105b1515620000f857600080fd5b62000111836401000000006200430d6200020b82021704565b80156200013657506064620001348464010000000062004b626200024882021704565b105b15156200014257600080fd5b600160a060020a03821615156200015857600080fd5b600160a060020a03851615156200016e57600080fd5b600160a060020a03811615156200018457600080fd5b6200019987876401000000006200029a810204565b60038054600160a060020a0319908116600160a060020a039a8b16179091556004805482169a8a169a909a17909955600893909355600b80548916948816949094179093556009556005805487169286169290921790915560068054909516931692909217909255506200033f915050565b600062000220640100000000620002e5810204565b82101580156200024257506200023e640100000000620002ea810204565b8211155b92915050565b60006200025e826401000000006200020b810204565b15156200026a57600080fd5b620002426200028164010000000062000307810204565b8390600a0a6401000000006200475b6200030c82021704565b60008211620002a857600080fd5b600160a060020a0381161515620002be57600080fd5b600791909155600a8054600160a060020a031916600160a060020a03909216919091179055565b600090565b6000620002ff64010000000062000322810204565b600a0a905090565b600290565b600081838115156200031a57fe5b049392505050565b60006200033764010000000062000307810204565b600201905090565b614bbf806200034f6000396000f3006080604052600436106101b35763ffffffff60e060020a60003504166307f5d63381146101b857806311eb8c9f146101c857806313096a41146101f457806314f66d3414610225578063208853c9146102535780632442e1cb1461027d5780632e325020146103b35780632fbe5990146104a4578063313602d4146104b95780633baba4d7146104ce5780634090cb64146104e357806343f48fbd146104f857806354fd4d501461050d578063550fd742146105225780635641f3c314610587578063564566a81461059c578063715018a6146105b1578063792c02ea146105c65780638119c065146105db578063845ddcb2146105f05780638abdf5aa146106395780638aea2af81461064e5780638da5cb5b146106a15780638edd6eb6146106b6578063a035b1fe146106cb578063a4fd6f56146106e0578063b1356488146106f5578063b60d428814610723578063d250185c14610738578063d5b226231461076a578063d6d65f3d146107c6578063daa4cf88146107db578063e89e4ed6146107f0578063e93b054014610808578063f2fde38b14610820578063f6cf09dc14610841578063fc0c546a14610871575b600080fd5b6101c6600435602435610886565b005b3480156101d457600080fd5b506101e0600435610a8d565b604080519115158252519081900360200190f35b34801561020057600080fd5b50610209610aa6565b60408051600160a060020a039092168252519081900360200190f35b34801561023157600080fd5b5061023a610ab5565b6040805192835290151560208301528051918290030190f35b34801561025f57600080fd5b5061026b600435610ae8565b60408051918252519081900360200190f35b34801561028957600080fd5b50610295600435610bde565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103125781810151838201526020016102fa565b50505050905090810190601f16801561033f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561037257818101518382015260200161035a565b50505050905090810190601f16801561039f5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156103bf57600080fd5b506103cb600435610e0b565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561044b578181015183820152602001610433565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561048a578181015183820152602001610472565b505050509050019850505050505050505060405180910390f35b3480156104b057600080fd5b5061026b610fb1565b3480156104c557600080fd5b506101c6610fb7565b3480156104da57600080fd5b5061026b611166565b3480156104ef57600080fd5b5061020961116d565b34801561050457600080fd5b5061020961117c565b34801561051957600080fd5b5061026b61118b565b34801561052e57600080fd5b50610537611191565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561057357818101518382015260200161055b565b505050509050019250505060405180910390f35b34801561059357600080fd5b506102096111a2565b3480156105a857600080fd5b506101e06111b1565b3480156105bd57600080fd5b506101c66111c7565b3480156105d257600080fd5b5061026b611235565b3480156105e757600080fd5b5061020961123b565b3480156105fc57600080fd5b5061060860043561124a565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561064557600080fd5b5061026b611290565b34801561065a57600080fd5b50610669600435602435611296565b604051808260a080838360005b8381101561068e578181015183820152602001610676565b5050505090500191505060405180910390f35b3480156106ad57600080fd5b50610209611721565b3480156106c257600080fd5b50610209611730565b3480156106d757600080fd5b5061026b61173f565b3480156106ec57600080fd5b506101e0611745565b34801561070157600080fd5b5061070a61178c565b6040805163ffffffff9092168252519081900360200190f35b34801561072f57600080fd5b506102096117d3565b34801561074457600080fd5b506107536004356024356117e2565b604080518251815290819083908083836020610676565b34801561077657600080fd5b506101c6602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a435918201910135611801565b3480156107d257600080fd5b5061023a611b2f565b3480156107e757600080fd5b5061023a611baa565b3480156107fc57600080fd5b50610295600435611c2d565b34801561081457600080fd5b506101c6600435611d9b565b34801561082c57600080fd5b506101c6600160a060020a0360043516611e09565b34801561084d57600080fd5b5061085c600435602435611e29565b60405181518152808260808083836020610676565b34801561087d57600080fd5b506102096122a9565b60006108906148a8565b6108986148c7565b6002546001146108a757600080fd5b600280556108b36111b1565b151561092057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b846109296122b8565b146109be576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b15801561097e57600080fd5b505af1158015610992573d6000803e3d6000fd5b505050506040513d60208110156109a857600080fd5b5051600160a060020a031614156109be57600080fd5b6109c6611baa565b5092506109d38585611296565b805160208201519193506109e6916117e2565b90506109f281866122dc565b610a268282600e86815481101515610a0657fe5b600091825260209091206002600590920201015463ffffffff1688612414565b610a3182828761253d565b8151602080840151606080860151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a250506001600255505050565b6000610aa0600c8363ffffffff6127fb16565b92915050565b600454600160a060020a031681565b600f5460009081901580610ace5750610acc611745565b155b15610ad857610ae4565b5050600f546000190160015b9091565b600080600080610af6611baa565b92509250811515610b0657610bd6565b600e805484908110610b1457fe5b90600052602060002090600502019050610bd38582600301805480602002602001604051908101604052809291908181526020018280548015610b7657602002820191906000526020600020905b815481526020019060010190808311610b62575b505050505083600401805480602002602001604051908101604052809291908181526020018280548015610bc957602002820191906000526020600020905b815481526020019060010190808311610bb5575b5050505050612814565b93505b505050919050565b600080600080606080600f87815481101515610bf657fe5b6000918252602090912060059091020154600f805463ffffffff9092169189908110610c1e57fe5b906000526020600020906005020160010154600f89815481101515610c3f57fe5b6000918252602090912060026005909202010154600f805463ffffffff909216918b908110610c6a57fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600f8b815481101515610c9b57fe5b9060005260206000209060050201600301600f8c815481101515610cbb57fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d615780601f10610d3657610100808354040283529160200191610d61565b820191906000526020600020905b815481529060010190602001808311610d4457829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295975086945092508401905082828015610def5780601f10610dc457610100808354040283529160200191610def565b820191906000526020600020905b815481529060010190602001808311610dd257829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600e87815481101515610e2357fe5b6000918252602090912060059091020154600e805463ffffffff9092169189908110610e4b57fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600e89815481101515610e7c57fe5b906000526020600020906005020160010154600e8a815481101515610e9d57fe5b6000918252602090912060026005909202010154600e805463ffffffff909216918c908110610ec857fe5b9060005260206000209060050201600301600e8c815481101515610ee857fe5b906000526020600020906005020160040181805480602002602001604051908101604052809291908181526020018280548015610f4457602002820191906000526020600020905b815481526020019060010190808311610f30575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610def57602002820191906000526020600020905b815481526020019060010190808311610f82575050505050905095509550955095509550955091939550919395565b60095481565b600154600090600160a060020a03163314610fd157600080fd5b610fd9611745565b1515610fe457600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050506040513d602081101561107457600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156110ea57600080fd5b505af11580156110fe573d6000803e3d6000fd5b505050506040513d602081101561111457600080fd5b5051151561112157600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600f545b90565b600354600160a060020a031690565b600654600160a060020a031681565b60005481565b606061119d600c612873565b905090565b600a54600160a060020a031681565b6000806111bc611baa565b9150508091505b5090565b600154600160a060020a031633146111de57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600e5490565b600b54600160a060020a031681565b600e80548290811061125857fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60085481565b61129e6148a8565b6000806112a9611baa565b915091508015156112b957611719565b846112c26122b8565b1461134f576006546040805160e060020a63cfec719f028152600481018890529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561131857600080fd5b505af115801561132c573d6000803e3d6000fd5b505050506040513d602081101561134257600080fd5b5051151561134f57611719565b6117168585600e8581548110151561136357fe5b906000526020600020906005020160010154600e8681548110151561138457fe5b90600052602060002090600502016003018054806020026020016040519081016040528092919081815260200182805480156113df57602002820191906000526020600020905b8154815260200190600101908083116113cb575b5050505050600e878154811015156113f357fe5b906000526020600020906005020160040180548060200260200160405190810160405280929190818152602001828054801561144e57602002820191906000526020600020905b81548152602001906001019080831161143a575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156114b957600080fd5b505af11580156114cd573d6000803e3d6000fd5b505050506040513d60208110156114e357600080fd5b50516007546003546040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b505050506040513d602081101561155c57600080fd5b505160ff168d61156a6122b8565b1461167c57600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115d557600080fd5b505af11580156115e9573d6000803e3d6000fd5b505050506040513d60208110156115ff57600080fd5b50516040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561164857600080fd5b505af115801561165c573d6000803e3d6000fd5b505050506040513d602081101561167257600080fd5b505160ff1661167f565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156116e557600080fd5b505af11580156116f9573d6000803e3d6000fd5b505050506040513d602081101561170f57600080fd5b50516128d0565b92505b505092915050565b600154600160a060020a031681565b600554600160a060020a031690565b60075481565b600e54600090158061119d5750600e8054429190600019810190811061176757fe5b6000918252602090912060059091020154640100000000900463ffffffff1610919050565b600e54600090811061179d57600080fd5b600e805460001981019081106117af57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600554600160a060020a031681565b6117ea6148c7565b6117fa8383600854600954612d0e565b9392505050565b600154600090600160a060020a0316331461181b57600080fd5b600e54600010156118585742600e600081548110151561183757fe5b600091825260209091206005909102015463ffffffff161161185857600080fd5b8b151561186457600080fd5b60ff8c111561187257600080fd5b60ff88111561188057600080fd5b60028604881461188f57600080fd5b6002840488111561189f57600080fd5b8115156118ab57600080fd5b5060005b8181101561195757600654600160a060020a0316637d20abf88484848181106118d457fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b15801561191857600080fd5b505af115801561192c573d6000803e3d6000fd5b505050506040513d602081101561194257600080fd5b5051151561194f57600080fd5b6001016118af565b6119f08d8d808060200260200160405190810160405280939291908181526020016000905b828210156119b8576040805160c0818101909252908084028701906006908390839080828437505050918352505060019091019060200161197c565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612d59945050505050565b611ab78989808060200260200160405190810160405280939291908181526020016000905b82821015611a51576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611a15565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750613262945050505050565b611af783838080602002602001604051908101604052809392919081815260200183836020028082843750600c9594505063ffffffff6137c01692505050565b6040517f072792b04aecd99b2250bc76fb25f9bca793c3b7383cb4c7255a7a01e8f5a12e90600090a150505050505050505050505050565b600f5460009081901580611b485750611b46611745565b155b15611b5257610ae4565b5060015b600f546000190182108015611b9a5750600f805483908110611b7457fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610ae457600190910190611b56565b60008080805b600e54821015611c1f57600e805483908110611bc857fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611c03575080544264010000000090910463ffffffff16115b15611c145781600193509350611c27565b600190910190611bb0565b600093508392505b50509091565b600f805482908110611c3b57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611d015780601f10611cd657610100808354040283529160200191611d01565b820191906000526020600020905b815481529060010190602001808311611ce457829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015611d915780601f10611d6657610100808354040283529160200191611d91565b820191906000526020600020905b815481529060010190602001808311611d7457829003601f168201915b5050505050905086565b600154600160a060020a03163314611db257600080fd5b600e5460001015611def5742600e6000815481101515611dce57fe5b600091825260209091206005909102015463ffffffff1611611def57600080fd5b600a54611e06908290600160a060020a0316613891565b50565b600154600160a060020a03163314611e2057600080fd5b611e06816138e7565b611e316148e2565b600080611e3c611baa565b91509150801515611e4c57611719565b84611e556122b8565b14611ee2576006546040805160e060020a63cfec719f028152600481018890529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611eab57600080fd5b505af1158015611ebf573d6000803e3d6000fd5b505050506040513d6020811015611ed557600080fd5b50511515611ee257611719565b6117168585600e85815481101515611ef657fe5b906000526020600020906005020160010154600e86815481101515611f1757fe5b9060005260206000209060050201600301805480602002602001604051908101604052809291908181526020018280548015611f7257602002820191906000526020600020905b815481526020019060010190808311611f5e575b5050505050600e87815481101515611f8657fe5b9060005260206000209060050201600401805480602002602001604051908101604052809291908181526020018280548015611fe157602002820191906000526020600020905b815481526020019060010190808311611fcd575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561204c57600080fd5b505af1158015612060573d6000803e3d6000fd5b505050506040513d602081101561207657600080fd5b50516007546003546040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b1580156120c557600080fd5b505af11580156120d9573d6000803e3d6000fd5b505050506040513d60208110156120ef57600080fd5b505160ff168d6120fd6122b8565b1461220f57600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561216857600080fd5b505af115801561217c573d6000803e3d6000fd5b505050506040513d602081101561219257600080fd5b50516040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b1580156121db57600080fd5b505af11580156121ef573d6000803e3d6000fd5b505050506040513d602081101561220557600080fd5b505160ff16612212565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561227857600080fd5b505af115801561228c573d6000803e3d6000fd5b505050506040513d60208110156122a257600080fd5b5051613965565b600354600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b6006546040805160e060020a63cfec719f0281526004810184905290516124109285928592600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561233557600080fd5b505af1158015612349573d6000803e3d6000fd5b505050506040513d602081101561235f57600080fd5b505161236c5760006123ea565b6006546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156123bd57600080fd5b505af11580156123d1573d6000803e3d6000fd5b505050506040513d60208110156123e757600080fd5b50515b600354600454600b54600a54600160a060020a0393841693928316929182169116613bda565b5050565b6006546040805160e060020a63cfec719f028152600481018490529051612537928792879287928792600160a060020a039091169163cfec719f916024808201926020929091908290030181600087803b15801561247157600080fd5b505af1158015612485573d6000803e3d6000fd5b505050506040513d602081101561249b57600080fd5b50516124a8576000612526565b6006546040805160e460020a630b12e441028152600481018990529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156124f957600080fd5b505af115801561250d573d6000803e3d6000fd5b505050506040513d602081101561252357600080fd5b50515b600354600160a060020a0316613f69565b50505050565b6125456122b8565b81141561261957600554600160a060020a031663d0baf2f561257d84600160200201518660015b60200201519063ffffffff61425916565b855160208601513391908690612595908a600161256c565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b1580156125fb57600080fd5b505af115801561260f573d6000803e3d6000fd5b50505050506127f6565b6006546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561266a57600080fd5b505af115801561267e573d6000803e3d6000fd5b505050506040513d602081101561269457600080fd5b5051600554600160a060020a039182169163a9059cbb91166126c08560015b602002015187600161256c565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561271257600080fd5b505af1158015612726573d6000803e3d6000fd5b505050506040513d602081101561273c57600080fd5b5051151561274957600080fd5b600554600160a060020a031663d0baf2f533856000602002015184612777876001602002015189600161256c565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b1580156127dd57600080fd5b505af11580156127f1573d6000803e3d6000fd5b505050505b505050565b6000908152600191909101602052604090205460ff1690565b6000805b835181101561286b57838181518110151561282f57fe5b60209081029091010151851061285e57828181518110151561284d57fe5b906020019060200201519150612863565b61286b565b600101612818565b509392505050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156128c457602002820191906000526020600020905b815481526001909101906020018083116128af575b50505050509050919050565b6128d86148a8565b60006128e98c8c8989878a8a61426b565b15156128f457600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561295657600080fd5b505af415801561296a573d6000803e3d6000fd5b505050506040513d602081101561298057600080fd5b50516040830181905286111561299557600080fd5b6129a88260025b60200201518a8a612814565b905060008a116129b85785612a3e565b612a3e8a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612a0357600080fd5b505af4158015612a17573d6000803e3d6000fd5b505050506040513d6020811015612a2d57600080fd5b50518891900363ffffffff6142c316565b82600460200201818152505073__Utils_________________________________63a5a55fcf612af5612aea8473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ab257600080fd5b505af4158015612ac6573d6000803e3d6000fd5b505050506040513d6020811015612adc57600080fd5b50519063ffffffff6142ec16565b6040860151906142f9565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612b4357600080fd5b505af4158015612b57573d6000803e3d6000fd5b505050506040513d6020811015612b6d57600080fd5b5051808352831015612c2c576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015612bf757600080fd5b505af4158015612c0b573d6000803e3d6000fd5b505050506040513d6020811015612c2157600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612c9557600080fd5b505af4158015612ca9573d6000803e3d6000fd5b505050506040513d6020811015612cbf57600080fd5b5051602083018190521580612cd357508151155b15612cea5760008083526020830181905260408301525b6020820151612cfa908c90614259565b6060830152509a9950505050505050505050565b612d166148c7565b6000831115612d3257612d2f858463ffffffff6142f916565b81525b6000821115612d5157612d4b848363ffffffff6142f916565b60208201525b949350505050565b600f54600090811015612db657825183906000198101908110612d7857fe5b6020908102919091018101510151600f80546000908110612d9557fe5b600091825260209091206005909102015463ffffffff1611612db657600080fd5b612dc2600e6000614901565b5060005b82518160ff16101561323457825163ffffffff90849060ff8416908110612de957fe5b6020908102919091010151511115612e0057600080fd5b825163ffffffff90849060ff8416908110612e1757fe5b60209081029190910181015101511115612e3057600080fd5b825163ffffffff90849060ff8416908110612e4757fe5b6020908102919091010151606001511115612e6157600080fd5b825160ff908490838316908110612e7457fe5b6020908102919091010151608001511115612e8e57600080fd5b825160ff908490838316908110612ea157fe5b602090810291909101015160a001511115612ebb57600080fd5b42838260ff16815181101515612ecd57fe5b60209081029190910101515111612ee357600080fd5b828160ff16815181101515612ef457fe5b60209081029190910181015101518351849060ff8416908110612f1357fe5b60209081029190910101515110612f2957600080fd5b60008160ff161115612f8057828160ff16815181101515612f4657fe5b6020908102919091010151518351849060ff600019850116908110612f6757fe5b60209081029190910181015101511115612f8057600080fd5b612fab838260ff16815181101515612f9457fe5b6020908102909101015160025b602002015161430d565b1515612fb657600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ffd57600080fd5b505af4158015613011573d6000803e3d6000fd5b505050506040513d602081101561302757600080fd5b50518351849060ff841690811061303a57fe5b6020908102919091010151604001511061305357600080fd5b600e60c060405190810160405280858460ff1681518110151561307257fe5b6020908102919091018101515163ffffffff1682528651910190869060ff861690811061309b57fe5b602090810290910101516001602002015163ffffffff168152602001858460ff168151811015156130c857fe5b60209081029091010151600260200201518152602001858460ff168151811015156130ef57fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff0000000019166401000000009187169190910217825560408601519382019390935560608501516002820180549094169416939093179091556080830151805191946131ba92600385019290910190614922565b5060a082015180516131d6916004840191602090910190614922565b5050505061322c6001600e8054905003848360ff168151811015156131f757fe5b6020908102919091010151608001518551869060ff861690811061321757fe5b602090810291909101015160a0015185614332565b600101612dc6565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600e8054905011156132cf5788600081518110151561328857fe5b602090810291909101015151600e805460001981019081106132a657fe5b6000918252602090912060059091020154640100000000900463ffffffff16106132cf57600080fd5b6132db600f6000614969565b600095506000945060009350600092505b88518360ff16101561370e57885163ffffffff908a9060ff861690811061330f57fe5b602090810291909101015151111561332657600080fd5b885163ffffffff908a9060ff861690811061333d57fe5b6020908102919091018101510151111561335657600080fd5b885163ffffffff908a9060ff861690811061336d57fe5b602090810291909101015160400151111561338757600080fd5b42898460ff1681518110151561339957fe5b602090810291909101015151116133af57600080fd5b888360ff168151811015156133c057fe5b60209081029190910101515189518a9060ff86169081106133dd57fe5b6020908102919091018101510151116133f557600080fd5b888360ff1681518110151561340657fe5b602090810291909101810151015189518a9060ff861690811061342557fe5b6020908102919091010151604001511161343e57600080fd5b60008360ff16111561349557888360ff1681518110151561345b57fe5b60209081029190910101515189518a9060ff60001987011690811061347c57fe5b6020908102919091010151604001511061349557600080fd5b6134ba898460ff168151811015156134a957fe5b602090810290910101516003612fa1565b15156134c557600080fd5b6134f78689878151811015156134d757fe5b9060200190602002015163ffffffff168961469f9092919063ffffffff16565b9150613529888681518110151561350a57fe5b9060200190602002015163ffffffff16876142ec90919063ffffffff16565b95506135408689876001018151811015156134d757fe5b9050613556888660010181518110151561350a57fe5b955061356985600263ffffffff6142ec16565b9450613595898460ff1681518110151561357f57fe5b60209081029190910101516060015185906142ec565b9350600f60c0604051908101604052808b8660ff168151811015156135b657fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff88169081106135df57fe5b602090810290910101516003602002015181526020018b8660ff1681518110151561360657fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff1681518110151561363357fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff00000000199390951693169290921716919091179055608083015180516136e2926003850192019061498a565b5060a082015180516136fe91600484019160209091019061498a565b5050600190940193506132ec9050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561375557600080fd5b505af4158015613769573d6000803e3d6000fd5b505050506040513d602081101561377f57600080fd5b5051841461378c57600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b815460009015613823575060005b825481101561382357600083600101600085600001848154811015156137f057fe5b60009182526020808320919091015483528201929092526040019020805460ff19169115159190911790556001016137ce565b815161383590849060208501906149f7565b508151156127f6575060005b81518110156127f6576001836001016000848481518110151561386057fe5b6020908102919091018101518252810191909152604001600020805460ff1916911515919091179055600101613841565b6000821161389e57600080fd5b600160a060020a03811615156138b357600080fd5b600791909155600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156138fc57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b61396d6148e2565b600061397e8c8c8989878a8a61426b565b151561398957600080fd5b8a83101561399557829a505b8a825260008a116139a657856139f1565b6139f18a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612a0357600080fd5b60608301819052604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018e90526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015613a7157600080fd5b505af4158015613a85573d6000803e3d6000fd5b505050506040513d6020811015613a9b57600080fd5b505160408301819052861115613ab057600080fd5b613abb82600261299c565b905073__Utils_________________________________63a5a55fcf836002602002015186613b3b613b2e8673__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ab257600080fd5b8c9063ffffffff6142f916565b6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015613b8057600080fd5b505af4158015613b94573d6000803e3d6000fd5b505050506040513d6020811015613baa57600080fd5b5051602083018190521515613bcb5760008083526020830181905260408301525b509a9950505050505050505050565b600160a060020a0383161515613bef57600080fd5b600160a060020a0384161515613c0457600080fd5b600160a060020a0382161515613c1957600080fd5b600160a060020a0381161515613c2e57600080fd5b60208701516000108015613c495750613c456122b8565b8614155b15613c6357600160a060020a0385161515613c6357600080fd5b865160001015613dc1578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b158015613ce457600080fd5b505af1158015613cf8573d6000803e3d6000fd5b505050506040513d6020811015613d0e57600080fd5b50511515613d1b57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b158015613d8a57600080fd5b505af1158015613d9e573d6000803e3d6000fd5b505050506040513d6020811015613db457600080fd5b50511515613dc157600080fd5b6020870151600010156127f157613dd66122b8565b861415613e1c576020870151604051600160a060020a0383169180156108fc02916000818181858888f19350505050158015613e16573d6000803e3d6000fd5b506127f1565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b158015613e8857600080fd5b505af1158015613e9c573d6000803e3d6000fd5b505050506040513d6020811015613eb257600080fd5b50511015613ebf57600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b158015613f3257600080fd5b505af1158015613f46573d6000803e3d6000fd5b505050506040513d6020811015613f5c57600080fd5b505115156127f157600080fd5b600160a060020a0381161515613f7e57600080fd5b85511515613f8b57600080fd5b60208601511515613f9b57600080fd5b8451865111613fa957600080fd5b6020808601519087015111613fbd57600080fd5b613fc56122b8565b831415613fdd576020860151341015613fdd57600080fd5b613fe56122b8565b831461415857600160a060020a038216151561400057600080fd5b61400b8560016126b3565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b15801561407257600080fd5b505af1158015614086573d6000803e3d6000fd5b505050506040513d602081101561409c57600080fd5b505110156140a957600080fd5b600160a060020a0382166323b872dd33306140cd89600160200201518b600161256c565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561412157600080fd5b505af1158015614135573d6000803e3d6000fd5b505050506040513d602081101561414b57600080fd5b5051151561415857600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b1580156141ce57600080fd5b505af11580156141e2573d6000803e3d6000fd5b505050506040513d60208110156141f857600080fd5b5051151561420557600080fd5b6060860151600010156142515761421a6122b8565b831415614251576060860151604051339180156108fc02916000818181858888f193505050501580156127f1573d6000803e3d6000fd5b505050505050565b60008282111561426557fe5b50900390565b6000808711801561427c5750600086115b80156142885750600085115b8015614297575082600a0a8410155b90506142a16122b8565b8814156142b8578080156142b55750816012145b90505b979650505050505050565b60006117fa6142d0614720565b6142e0858563ffffffff61473216565b9063ffffffff61475b16565b81810182811015610aa057fe5b60006117fa8383614308614720565b614770565b600061431761488c565b8210158015610aa05750614329614720565b90911115919050565b606080600060ff8616158015614349575060ff8516155b156143d757604080516000815260208101909152600e805460ff8a1690811061436e57fe5b90600052602060002090600502016003019080519060200190614392929190614922565b50604080516000815260208101909152600e805460ff8a169081106143b357fe5b90600052602060002090600502016004019080519060200190613e16929190614922565b835160ff861611156143e857600080fd5b60ff808616908716106143fa57600080fd5b600186161561440857600080fd5b600185161561441657600080fd5b600260ff878703160460ff1660405190808252806020026020018201604052801561444b578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015614483578160200160208202803883390190505b509150600090505b8460ff168660ff161015614626576144bf848760010160ff168151811015156144b057fe5b9060200190602002015161430d565b15156144ca57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561451157600080fd5b505af4158015614525573d6000803e3d6000fd5b505050506040513d602081101561453b57600080fd5b50518451859060ff60018a011690811061455157fe5b602090810290910101511061456557600080fd5b60008111156145ae57838660ff1681518110151561457f57fe5b90602001906020020151836001830381518110151561459a57fe5b60209081029091010151106145ae57600080fd5b838660ff168151811015156145bf57fe5b9060200190602002015183828151811015156145d757fe5b602090810290910101528351849060ff60018901169081106145f557fe5b90602001906020020151828281518110151561460d57fe5b602090810290910101526002959095019460010161448b565b82600e8860ff1681548110151561463957fe5b9060005260206000209060050201600301908051906020019061465d929190614922565b5081600e8860ff1681548110151561467157fe5b90600052602060002090600502016004019080519060200190614695929190614922565b5050505050505050565b6060808284018551101515156146b457600080fd5b821580156146cd57604051915060208201604052614717565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156147065780518352602092830192016146ee565b5050858452601f01601f1916604052505b50949350505050565b600061472a614891565b600a0a905090565b600082151561474357506000610aa0565b5081810281838281151561475357fe5b0414610aa057fe5b6000818381151561476857fe5b049392505050565b60008080808085151561477f57fe5b87158061478a575086155b1561479457614881565b6147a66000198863ffffffff61475b16565b92508288116147ca576147c3866142e08a8a63ffffffff61473216565b9450614881565b858814156147da57869450614881565b858714156147ea57879450614881565b871561486b578783116147fd57826147ff565b875b9150614811828863ffffffff61473216565b9050614833614826828863ffffffff61475b16565b869063ffffffff6142ec16565b9450614852868281151561484357fe5b8691900663ffffffff6142ec16565b9350614864888363ffffffff61425916565b97506147ea565b61487e614826858863ffffffff61475b16565b94505b505050509392505050565b600090565b600061489b6148a3565b600201905090565b600290565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b6080604051908101604052806004906020820280388339509192915050565b5080546000825560050290600052602060002090810190611e069190614a34565b82805482825590600052602060002090810192821561495d579160200282015b8281111561495d578251825591602001919060010190614942565b506111c3929150614a8d565b5080546000825560050290600052602060002090810190611e069190614aa7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106149cb57805160ff191683800117855561495d565b8280016001018555821561495d579182018281111561495d578251825591602001919060010190614942565b82805482825590600052602060002090810192821561495d579160200282015b8281111561495d5782518255602090920191600190910190614a17565b61116a91905b808211156111c357805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff19169055614a766003830182614b00565b614a84600483016000614b00565b50600501614a3a565b61116a91905b808211156111c35760008155600101614a93565b61116a91905b808211156111c357805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff19169055614ae96003830182614b1e565b614af7600483016000614b1e565b50600501614aad565b5080546000825590600052602060002090810190611e069190614a8d565b50805460018160011615610100020316600290046000825580601f10614b445750611e06565b601f016020900490600052602060002090810190611e069190614a8d565b6000614b6d8261430d565b1515614b7857600080fd5b610aa0614b836148a3565b8390600a0a63ffffffff61475b165600a165627a7a72305820938dc08c061efee504c137c642d16f82d63109e65a90ce6e561fb602a775adc90029a165627a7a723058209ee8f24801d45f0d79d87f8f3faa704b1f55965310f2cbafe5be1036601aad010029", - "deployedBytecode": "0x6080604052600436106100325763ffffffff60e060020a60003504166354fd4d508114610037578063aa1322f71461005e575b600080fd5b34801561004357600080fd5b5061004c6100c4565b60408051918252519081900360200190f35b34801561006a57600080fd5b506100a8600160a060020a03600435811690602435811690604435906064358116906084359060a4359060c4359060e43581169061010435166100ca565b60408051600160a060020a039092168252519081900360200190f35b60005481565b600154604080517f17444626000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152898116602483015260448201879052915160009384931691631744462691606480830192602092919082900301818787803b15801561014257600080fd5b505af1158015610156573d6000803e3d6000fd5b505050506040513d602081101561016c57600080fd5b5051600054600254919250908c908c908c908c9089908d908d908990600160a060020a03166101996103ea565b998a52600160a060020a0398891660208b01529688166040808b019190915260608a0196909652938716608089015291861660a088015260c087015260e086015283166101008501529116610120830152519081900361014001906000f080158015610209573d6000803e3d6000fd5b50915081600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561026757600080fd5b505af115801561027b573d6000803e3d6000fd5b5050505080600160a060020a031663483a20b2836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156102da57600080fd5b505af11580156102ee573d6000803e3d6000fd5b5050505080600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561034d57600080fd5b505af1158015610361573d6000803e3d6000fd5b5050505089600160a060020a031683600160a060020a03167f5c5f2ecd800afaa9861ac6ebf9ef843dfc826dedb68c6fc1447d0879f383629f84846040518083600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019250505060405180910390a3509998505050505050505050565b604051614f0e806103fb833901905600608060405260016002553480156200001657600080fd5b506040516101408062004f0e83398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015161012090990151600088905560018054600160a060020a03191633179055969895969495939492939192909190600160a060020a03891615156200009857600080fd5b600160a060020a0388161515620000ae57600080fd5b620000c7846401000000006200430d6200020b82021704565b8015620000ec57506064620000ea8564010000000062004b626200024882021704565b105b1515620000f857600080fd5b62000111836401000000006200430d6200020b82021704565b80156200013657506064620001348464010000000062004b626200024882021704565b105b15156200014257600080fd5b600160a060020a03821615156200015857600080fd5b600160a060020a03851615156200016e57600080fd5b600160a060020a03811615156200018457600080fd5b6200019987876401000000006200029a810204565b60038054600160a060020a0319908116600160a060020a039a8b16179091556004805482169a8a169a909a17909955600893909355600b80548916948816949094179093556009556005805487169286169290921790915560068054909516931692909217909255506200033f915050565b600062000220640100000000620002e5810204565b82101580156200024257506200023e640100000000620002ea810204565b8211155b92915050565b60006200025e826401000000006200020b810204565b15156200026a57600080fd5b620002426200028164010000000062000307810204565b8390600a0a6401000000006200475b6200030c82021704565b60008211620002a857600080fd5b600160a060020a0381161515620002be57600080fd5b600791909155600a8054600160a060020a031916600160a060020a03909216919091179055565b600090565b6000620002ff64010000000062000322810204565b600a0a905090565b600290565b600081838115156200031a57fe5b049392505050565b60006200033764010000000062000307810204565b600201905090565b614bbf806200034f6000396000f3006080604052600436106101b35763ffffffff60e060020a60003504166307f5d63381146101b857806311eb8c9f146101c857806313096a41146101f457806314f66d3414610225578063208853c9146102535780632442e1cb1461027d5780632e325020146103b35780632fbe5990146104a4578063313602d4146104b95780633baba4d7146104ce5780634090cb64146104e357806343f48fbd146104f857806354fd4d501461050d578063550fd742146105225780635641f3c314610587578063564566a81461059c578063715018a6146105b1578063792c02ea146105c65780638119c065146105db578063845ddcb2146105f05780638abdf5aa146106395780638aea2af81461064e5780638da5cb5b146106a15780638edd6eb6146106b6578063a035b1fe146106cb578063a4fd6f56146106e0578063b1356488146106f5578063b60d428814610723578063d250185c14610738578063d5b226231461076a578063d6d65f3d146107c6578063daa4cf88146107db578063e89e4ed6146107f0578063e93b054014610808578063f2fde38b14610820578063f6cf09dc14610841578063fc0c546a14610871575b600080fd5b6101c6600435602435610886565b005b3480156101d457600080fd5b506101e0600435610a8d565b604080519115158252519081900360200190f35b34801561020057600080fd5b50610209610aa6565b60408051600160a060020a039092168252519081900360200190f35b34801561023157600080fd5b5061023a610ab5565b6040805192835290151560208301528051918290030190f35b34801561025f57600080fd5b5061026b600435610ae8565b60408051918252519081900360200190f35b34801561028957600080fd5b50610295600435610bde565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103125781810151838201526020016102fa565b50505050905090810190601f16801561033f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561037257818101518382015260200161035a565b50505050905090810190601f16801561039f5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156103bf57600080fd5b506103cb600435610e0b565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561044b578181015183820152602001610433565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561048a578181015183820152602001610472565b505050509050019850505050505050505060405180910390f35b3480156104b057600080fd5b5061026b610fb1565b3480156104c557600080fd5b506101c6610fb7565b3480156104da57600080fd5b5061026b611166565b3480156104ef57600080fd5b5061020961116d565b34801561050457600080fd5b5061020961117c565b34801561051957600080fd5b5061026b61118b565b34801561052e57600080fd5b50610537611191565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561057357818101518382015260200161055b565b505050509050019250505060405180910390f35b34801561059357600080fd5b506102096111a2565b3480156105a857600080fd5b506101e06111b1565b3480156105bd57600080fd5b506101c66111c7565b3480156105d257600080fd5b5061026b611235565b3480156105e757600080fd5b5061020961123b565b3480156105fc57600080fd5b5061060860043561124a565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561064557600080fd5b5061026b611290565b34801561065a57600080fd5b50610669600435602435611296565b604051808260a080838360005b8381101561068e578181015183820152602001610676565b5050505090500191505060405180910390f35b3480156106ad57600080fd5b50610209611721565b3480156106c257600080fd5b50610209611730565b3480156106d757600080fd5b5061026b61173f565b3480156106ec57600080fd5b506101e0611745565b34801561070157600080fd5b5061070a61178c565b6040805163ffffffff9092168252519081900360200190f35b34801561072f57600080fd5b506102096117d3565b34801561074457600080fd5b506107536004356024356117e2565b604080518251815290819083908083836020610676565b34801561077657600080fd5b506101c6602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a435918201910135611801565b3480156107d257600080fd5b5061023a611b2f565b3480156107e757600080fd5b5061023a611baa565b3480156107fc57600080fd5b50610295600435611c2d565b34801561081457600080fd5b506101c6600435611d9b565b34801561082c57600080fd5b506101c6600160a060020a0360043516611e09565b34801561084d57600080fd5b5061085c600435602435611e29565b60405181518152808260808083836020610676565b34801561087d57600080fd5b506102096122a9565b60006108906148a8565b6108986148c7565b6002546001146108a757600080fd5b600280556108b36111b1565b151561092057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b846109296122b8565b146109be576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b15801561097e57600080fd5b505af1158015610992573d6000803e3d6000fd5b505050506040513d60208110156109a857600080fd5b5051600160a060020a031614156109be57600080fd5b6109c6611baa565b5092506109d38585611296565b805160208201519193506109e6916117e2565b90506109f281866122dc565b610a268282600e86815481101515610a0657fe5b600091825260209091206002600590920201015463ffffffff1688612414565b610a3182828761253d565b8151602080840151606080860151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a250506001600255505050565b6000610aa0600c8363ffffffff6127fb16565b92915050565b600454600160a060020a031681565b600f5460009081901580610ace5750610acc611745565b155b15610ad857610ae4565b5050600f546000190160015b9091565b600080600080610af6611baa565b92509250811515610b0657610bd6565b600e805484908110610b1457fe5b90600052602060002090600502019050610bd38582600301805480602002602001604051908101604052809291908181526020018280548015610b7657602002820191906000526020600020905b815481526020019060010190808311610b62575b505050505083600401805480602002602001604051908101604052809291908181526020018280548015610bc957602002820191906000526020600020905b815481526020019060010190808311610bb5575b5050505050612814565b93505b505050919050565b600080600080606080600f87815481101515610bf657fe5b6000918252602090912060059091020154600f805463ffffffff9092169189908110610c1e57fe5b906000526020600020906005020160010154600f89815481101515610c3f57fe5b6000918252602090912060026005909202010154600f805463ffffffff909216918b908110610c6a57fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600f8b815481101515610c9b57fe5b9060005260206000209060050201600301600f8c815481101515610cbb57fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d615780601f10610d3657610100808354040283529160200191610d61565b820191906000526020600020905b815481529060010190602001808311610d4457829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295975086945092508401905082828015610def5780601f10610dc457610100808354040283529160200191610def565b820191906000526020600020905b815481529060010190602001808311610dd257829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600e87815481101515610e2357fe5b6000918252602090912060059091020154600e805463ffffffff9092169189908110610e4b57fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600e89815481101515610e7c57fe5b906000526020600020906005020160010154600e8a815481101515610e9d57fe5b6000918252602090912060026005909202010154600e805463ffffffff909216918c908110610ec857fe5b9060005260206000209060050201600301600e8c815481101515610ee857fe5b906000526020600020906005020160040181805480602002602001604051908101604052809291908181526020018280548015610f4457602002820191906000526020600020905b815481526020019060010190808311610f30575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610def57602002820191906000526020600020905b815481526020019060010190808311610f82575050505050905095509550955095509550955091939550919395565b60095481565b600154600090600160a060020a03163314610fd157600080fd5b610fd9611745565b1515610fe457600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050506040513d602081101561107457600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156110ea57600080fd5b505af11580156110fe573d6000803e3d6000fd5b505050506040513d602081101561111457600080fd5b5051151561112157600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600f545b90565b600354600160a060020a031690565b600654600160a060020a031681565b60005481565b606061119d600c612873565b905090565b600a54600160a060020a031681565b6000806111bc611baa565b9150508091505b5090565b600154600160a060020a031633146111de57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600e5490565b600b54600160a060020a031681565b600e80548290811061125857fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60085481565b61129e6148a8565b6000806112a9611baa565b915091508015156112b957611719565b846112c26122b8565b1461134f576006546040805160e060020a63cfec719f028152600481018890529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561131857600080fd5b505af115801561132c573d6000803e3d6000fd5b505050506040513d602081101561134257600080fd5b5051151561134f57611719565b6117168585600e8581548110151561136357fe5b906000526020600020906005020160010154600e8681548110151561138457fe5b90600052602060002090600502016003018054806020026020016040519081016040528092919081815260200182805480156113df57602002820191906000526020600020905b8154815260200190600101908083116113cb575b5050505050600e878154811015156113f357fe5b906000526020600020906005020160040180548060200260200160405190810160405280929190818152602001828054801561144e57602002820191906000526020600020905b81548152602001906001019080831161143a575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156114b957600080fd5b505af11580156114cd573d6000803e3d6000fd5b505050506040513d60208110156114e357600080fd5b50516007546003546040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b505050506040513d602081101561155c57600080fd5b505160ff168d61156a6122b8565b1461167c57600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115d557600080fd5b505af11580156115e9573d6000803e3d6000fd5b505050506040513d60208110156115ff57600080fd5b50516040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561164857600080fd5b505af115801561165c573d6000803e3d6000fd5b505050506040513d602081101561167257600080fd5b505160ff1661167f565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156116e557600080fd5b505af11580156116f9573d6000803e3d6000fd5b505050506040513d602081101561170f57600080fd5b50516128d0565b92505b505092915050565b600154600160a060020a031681565b600554600160a060020a031690565b60075481565b600e54600090158061119d5750600e8054429190600019810190811061176757fe5b6000918252602090912060059091020154640100000000900463ffffffff1610919050565b600e54600090811061179d57600080fd5b600e805460001981019081106117af57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600554600160a060020a031681565b6117ea6148c7565b6117fa8383600854600954612d0e565b9392505050565b600154600090600160a060020a0316331461181b57600080fd5b600e54600010156118585742600e600081548110151561183757fe5b600091825260209091206005909102015463ffffffff161161185857600080fd5b8b151561186457600080fd5b60ff8c111561187257600080fd5b60ff88111561188057600080fd5b60028604881461188f57600080fd5b6002840488111561189f57600080fd5b8115156118ab57600080fd5b5060005b8181101561195757600654600160a060020a0316637d20abf88484848181106118d457fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b15801561191857600080fd5b505af115801561192c573d6000803e3d6000fd5b505050506040513d602081101561194257600080fd5b5051151561194f57600080fd5b6001016118af565b6119f08d8d808060200260200160405190810160405280939291908181526020016000905b828210156119b8576040805160c0818101909252908084028701906006908390839080828437505050918352505060019091019060200161197c565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612d59945050505050565b611ab78989808060200260200160405190810160405280939291908181526020016000905b82821015611a51576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611a15565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750613262945050505050565b611af783838080602002602001604051908101604052809392919081815260200183836020028082843750600c9594505063ffffffff6137c01692505050565b6040517f072792b04aecd99b2250bc76fb25f9bca793c3b7383cb4c7255a7a01e8f5a12e90600090a150505050505050505050505050565b600f5460009081901580611b485750611b46611745565b155b15611b5257610ae4565b5060015b600f546000190182108015611b9a5750600f805483908110611b7457fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610ae457600190910190611b56565b60008080805b600e54821015611c1f57600e805483908110611bc857fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611c03575080544264010000000090910463ffffffff16115b15611c145781600193509350611c27565b600190910190611bb0565b600093508392505b50509091565b600f805482908110611c3b57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611d015780601f10611cd657610100808354040283529160200191611d01565b820191906000526020600020905b815481529060010190602001808311611ce457829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015611d915780601f10611d6657610100808354040283529160200191611d91565b820191906000526020600020905b815481529060010190602001808311611d7457829003601f168201915b5050505050905086565b600154600160a060020a03163314611db257600080fd5b600e5460001015611def5742600e6000815481101515611dce57fe5b600091825260209091206005909102015463ffffffff1611611def57600080fd5b600a54611e06908290600160a060020a0316613891565b50565b600154600160a060020a03163314611e2057600080fd5b611e06816138e7565b611e316148e2565b600080611e3c611baa565b91509150801515611e4c57611719565b84611e556122b8565b14611ee2576006546040805160e060020a63cfec719f028152600481018890529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611eab57600080fd5b505af1158015611ebf573d6000803e3d6000fd5b505050506040513d6020811015611ed557600080fd5b50511515611ee257611719565b6117168585600e85815481101515611ef657fe5b906000526020600020906005020160010154600e86815481101515611f1757fe5b9060005260206000209060050201600301805480602002602001604051908101604052809291908181526020018280548015611f7257602002820191906000526020600020905b815481526020019060010190808311611f5e575b5050505050600e87815481101515611f8657fe5b9060005260206000209060050201600401805480602002602001604051908101604052809291908181526020018280548015611fe157602002820191906000526020600020905b815481526020019060010190808311611fcd575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561204c57600080fd5b505af1158015612060573d6000803e3d6000fd5b505050506040513d602081101561207657600080fd5b50516007546003546040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b1580156120c557600080fd5b505af11580156120d9573d6000803e3d6000fd5b505050506040513d60208110156120ef57600080fd5b505160ff168d6120fd6122b8565b1461220f57600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561216857600080fd5b505af115801561217c573d6000803e3d6000fd5b505050506040513d602081101561219257600080fd5b50516040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b1580156121db57600080fd5b505af11580156121ef573d6000803e3d6000fd5b505050506040513d602081101561220557600080fd5b505160ff16612212565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561227857600080fd5b505af115801561228c573d6000803e3d6000fd5b505050506040513d60208110156122a257600080fd5b5051613965565b600354600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b6006546040805160e060020a63cfec719f0281526004810184905290516124109285928592600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561233557600080fd5b505af1158015612349573d6000803e3d6000fd5b505050506040513d602081101561235f57600080fd5b505161236c5760006123ea565b6006546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156123bd57600080fd5b505af11580156123d1573d6000803e3d6000fd5b505050506040513d60208110156123e757600080fd5b50515b600354600454600b54600a54600160a060020a0393841693928316929182169116613bda565b5050565b6006546040805160e060020a63cfec719f028152600481018490529051612537928792879287928792600160a060020a039091169163cfec719f916024808201926020929091908290030181600087803b15801561247157600080fd5b505af1158015612485573d6000803e3d6000fd5b505050506040513d602081101561249b57600080fd5b50516124a8576000612526565b6006546040805160e460020a630b12e441028152600481018990529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156124f957600080fd5b505af115801561250d573d6000803e3d6000fd5b505050506040513d602081101561252357600080fd5b50515b600354600160a060020a0316613f69565b50505050565b6125456122b8565b81141561261957600554600160a060020a031663d0baf2f561257d84600160200201518660015b60200201519063ffffffff61425916565b855160208601513391908690612595908a600161256c565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b1580156125fb57600080fd5b505af115801561260f573d6000803e3d6000fd5b50505050506127f6565b6006546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561266a57600080fd5b505af115801561267e573d6000803e3d6000fd5b505050506040513d602081101561269457600080fd5b5051600554600160a060020a039182169163a9059cbb91166126c08560015b602002015187600161256c565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561271257600080fd5b505af1158015612726573d6000803e3d6000fd5b505050506040513d602081101561273c57600080fd5b5051151561274957600080fd5b600554600160a060020a031663d0baf2f533856000602002015184612777876001602002015189600161256c565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b1580156127dd57600080fd5b505af11580156127f1573d6000803e3d6000fd5b505050505b505050565b6000908152600191909101602052604090205460ff1690565b6000805b835181101561286b57838181518110151561282f57fe5b60209081029091010151851061285e57828181518110151561284d57fe5b906020019060200201519150612863565b61286b565b600101612818565b509392505050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156128c457602002820191906000526020600020905b815481526001909101906020018083116128af575b50505050509050919050565b6128d86148a8565b60006128e98c8c8989878a8a61426b565b15156128f457600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561295657600080fd5b505af415801561296a573d6000803e3d6000fd5b505050506040513d602081101561298057600080fd5b50516040830181905286111561299557600080fd5b6129a88260025b60200201518a8a612814565b905060008a116129b85785612a3e565b612a3e8a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612a0357600080fd5b505af4158015612a17573d6000803e3d6000fd5b505050506040513d6020811015612a2d57600080fd5b50518891900363ffffffff6142c316565b82600460200201818152505073__Utils_________________________________63a5a55fcf612af5612aea8473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ab257600080fd5b505af4158015612ac6573d6000803e3d6000fd5b505050506040513d6020811015612adc57600080fd5b50519063ffffffff6142ec16565b6040860151906142f9565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612b4357600080fd5b505af4158015612b57573d6000803e3d6000fd5b505050506040513d6020811015612b6d57600080fd5b5051808352831015612c2c576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015612bf757600080fd5b505af4158015612c0b573d6000803e3d6000fd5b505050506040513d6020811015612c2157600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612c9557600080fd5b505af4158015612ca9573d6000803e3d6000fd5b505050506040513d6020811015612cbf57600080fd5b5051602083018190521580612cd357508151155b15612cea5760008083526020830181905260408301525b6020820151612cfa908c90614259565b6060830152509a9950505050505050505050565b612d166148c7565b6000831115612d3257612d2f858463ffffffff6142f916565b81525b6000821115612d5157612d4b848363ffffffff6142f916565b60208201525b949350505050565b600f54600090811015612db657825183906000198101908110612d7857fe5b6020908102919091018101510151600f80546000908110612d9557fe5b600091825260209091206005909102015463ffffffff1611612db657600080fd5b612dc2600e6000614901565b5060005b82518160ff16101561323457825163ffffffff90849060ff8416908110612de957fe5b6020908102919091010151511115612e0057600080fd5b825163ffffffff90849060ff8416908110612e1757fe5b60209081029190910181015101511115612e3057600080fd5b825163ffffffff90849060ff8416908110612e4757fe5b6020908102919091010151606001511115612e6157600080fd5b825160ff908490838316908110612e7457fe5b6020908102919091010151608001511115612e8e57600080fd5b825160ff908490838316908110612ea157fe5b602090810291909101015160a001511115612ebb57600080fd5b42838260ff16815181101515612ecd57fe5b60209081029190910101515111612ee357600080fd5b828160ff16815181101515612ef457fe5b60209081029190910181015101518351849060ff8416908110612f1357fe5b60209081029190910101515110612f2957600080fd5b60008160ff161115612f8057828160ff16815181101515612f4657fe5b6020908102919091010151518351849060ff600019850116908110612f6757fe5b60209081029190910181015101511115612f8057600080fd5b612fab838260ff16815181101515612f9457fe5b6020908102909101015160025b602002015161430d565b1515612fb657600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ffd57600080fd5b505af4158015613011573d6000803e3d6000fd5b505050506040513d602081101561302757600080fd5b50518351849060ff841690811061303a57fe5b6020908102919091010151604001511061305357600080fd5b600e60c060405190810160405280858460ff1681518110151561307257fe5b6020908102919091018101515163ffffffff1682528651910190869060ff861690811061309b57fe5b602090810290910101516001602002015163ffffffff168152602001858460ff168151811015156130c857fe5b60209081029091010151600260200201518152602001858460ff168151811015156130ef57fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff0000000019166401000000009187169190910217825560408601519382019390935560608501516002820180549094169416939093179091556080830151805191946131ba92600385019290910190614922565b5060a082015180516131d6916004840191602090910190614922565b5050505061322c6001600e8054905003848360ff168151811015156131f757fe5b6020908102919091010151608001518551869060ff861690811061321757fe5b602090810291909101015160a0015185614332565b600101612dc6565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600e8054905011156132cf5788600081518110151561328857fe5b602090810291909101015151600e805460001981019081106132a657fe5b6000918252602090912060059091020154640100000000900463ffffffff16106132cf57600080fd5b6132db600f6000614969565b600095506000945060009350600092505b88518360ff16101561370e57885163ffffffff908a9060ff861690811061330f57fe5b602090810291909101015151111561332657600080fd5b885163ffffffff908a9060ff861690811061333d57fe5b6020908102919091018101510151111561335657600080fd5b885163ffffffff908a9060ff861690811061336d57fe5b602090810291909101015160400151111561338757600080fd5b42898460ff1681518110151561339957fe5b602090810291909101015151116133af57600080fd5b888360ff168151811015156133c057fe5b60209081029190910101515189518a9060ff86169081106133dd57fe5b6020908102919091018101510151116133f557600080fd5b888360ff1681518110151561340657fe5b602090810291909101810151015189518a9060ff861690811061342557fe5b6020908102919091010151604001511161343e57600080fd5b60008360ff16111561349557888360ff1681518110151561345b57fe5b60209081029190910101515189518a9060ff60001987011690811061347c57fe5b6020908102919091010151604001511061349557600080fd5b6134ba898460ff168151811015156134a957fe5b602090810290910101516003612fa1565b15156134c557600080fd5b6134f78689878151811015156134d757fe5b9060200190602002015163ffffffff168961469f9092919063ffffffff16565b9150613529888681518110151561350a57fe5b9060200190602002015163ffffffff16876142ec90919063ffffffff16565b95506135408689876001018151811015156134d757fe5b9050613556888660010181518110151561350a57fe5b955061356985600263ffffffff6142ec16565b9450613595898460ff1681518110151561357f57fe5b60209081029190910101516060015185906142ec565b9350600f60c0604051908101604052808b8660ff168151811015156135b657fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff88169081106135df57fe5b602090810290910101516003602002015181526020018b8660ff1681518110151561360657fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff1681518110151561363357fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff00000000199390951693169290921716919091179055608083015180516136e2926003850192019061498a565b5060a082015180516136fe91600484019160209091019061498a565b5050600190940193506132ec9050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561375557600080fd5b505af4158015613769573d6000803e3d6000fd5b505050506040513d602081101561377f57600080fd5b5051841461378c57600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b815460009015613823575060005b825481101561382357600083600101600085600001848154811015156137f057fe5b60009182526020808320919091015483528201929092526040019020805460ff19169115159190911790556001016137ce565b815161383590849060208501906149f7565b508151156127f6575060005b81518110156127f6576001836001016000848481518110151561386057fe5b6020908102919091018101518252810191909152604001600020805460ff1916911515919091179055600101613841565b6000821161389e57600080fd5b600160a060020a03811615156138b357600080fd5b600791909155600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156138fc57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b61396d6148e2565b600061397e8c8c8989878a8a61426b565b151561398957600080fd5b8a83101561399557829a505b8a825260008a116139a657856139f1565b6139f18a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612a0357600080fd5b60608301819052604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018e90526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015613a7157600080fd5b505af4158015613a85573d6000803e3d6000fd5b505050506040513d6020811015613a9b57600080fd5b505160408301819052861115613ab057600080fd5b613abb82600261299c565b905073__Utils_________________________________63a5a55fcf836002602002015186613b3b613b2e8673__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ab257600080fd5b8c9063ffffffff6142f916565b6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015613b8057600080fd5b505af4158015613b94573d6000803e3d6000fd5b505050506040513d6020811015613baa57600080fd5b5051602083018190521515613bcb5760008083526020830181905260408301525b509a9950505050505050505050565b600160a060020a0383161515613bef57600080fd5b600160a060020a0384161515613c0457600080fd5b600160a060020a0382161515613c1957600080fd5b600160a060020a0381161515613c2e57600080fd5b60208701516000108015613c495750613c456122b8565b8614155b15613c6357600160a060020a0385161515613c6357600080fd5b865160001015613dc1578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b158015613ce457600080fd5b505af1158015613cf8573d6000803e3d6000fd5b505050506040513d6020811015613d0e57600080fd5b50511515613d1b57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b158015613d8a57600080fd5b505af1158015613d9e573d6000803e3d6000fd5b505050506040513d6020811015613db457600080fd5b50511515613dc157600080fd5b6020870151600010156127f157613dd66122b8565b861415613e1c576020870151604051600160a060020a0383169180156108fc02916000818181858888f19350505050158015613e16573d6000803e3d6000fd5b506127f1565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b158015613e8857600080fd5b505af1158015613e9c573d6000803e3d6000fd5b505050506040513d6020811015613eb257600080fd5b50511015613ebf57600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b158015613f3257600080fd5b505af1158015613f46573d6000803e3d6000fd5b505050506040513d6020811015613f5c57600080fd5b505115156127f157600080fd5b600160a060020a0381161515613f7e57600080fd5b85511515613f8b57600080fd5b60208601511515613f9b57600080fd5b8451865111613fa957600080fd5b6020808601519087015111613fbd57600080fd5b613fc56122b8565b831415613fdd576020860151341015613fdd57600080fd5b613fe56122b8565b831461415857600160a060020a038216151561400057600080fd5b61400b8560016126b3565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b15801561407257600080fd5b505af1158015614086573d6000803e3d6000fd5b505050506040513d602081101561409c57600080fd5b505110156140a957600080fd5b600160a060020a0382166323b872dd33306140cd89600160200201518b600161256c565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561412157600080fd5b505af1158015614135573d6000803e3d6000fd5b505050506040513d602081101561414b57600080fd5b5051151561415857600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b1580156141ce57600080fd5b505af11580156141e2573d6000803e3d6000fd5b505050506040513d60208110156141f857600080fd5b5051151561420557600080fd5b6060860151600010156142515761421a6122b8565b831415614251576060860151604051339180156108fc02916000818181858888f193505050501580156127f1573d6000803e3d6000fd5b505050505050565b60008282111561426557fe5b50900390565b6000808711801561427c5750600086115b80156142885750600085115b8015614297575082600a0a8410155b90506142a16122b8565b8814156142b8578080156142b55750816012145b90505b979650505050505050565b60006117fa6142d0614720565b6142e0858563ffffffff61473216565b9063ffffffff61475b16565b81810182811015610aa057fe5b60006117fa8383614308614720565b614770565b600061431761488c565b8210158015610aa05750614329614720565b90911115919050565b606080600060ff8616158015614349575060ff8516155b156143d757604080516000815260208101909152600e805460ff8a1690811061436e57fe5b90600052602060002090600502016003019080519060200190614392929190614922565b50604080516000815260208101909152600e805460ff8a169081106143b357fe5b90600052602060002090600502016004019080519060200190613e16929190614922565b835160ff861611156143e857600080fd5b60ff808616908716106143fa57600080fd5b600186161561440857600080fd5b600185161561441657600080fd5b600260ff878703160460ff1660405190808252806020026020018201604052801561444b578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015614483578160200160208202803883390190505b509150600090505b8460ff168660ff161015614626576144bf848760010160ff168151811015156144b057fe5b9060200190602002015161430d565b15156144ca57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561451157600080fd5b505af4158015614525573d6000803e3d6000fd5b505050506040513d602081101561453b57600080fd5b50518451859060ff60018a011690811061455157fe5b602090810290910101511061456557600080fd5b60008111156145ae57838660ff1681518110151561457f57fe5b90602001906020020151836001830381518110151561459a57fe5b60209081029091010151106145ae57600080fd5b838660ff168151811015156145bf57fe5b9060200190602002015183828151811015156145d757fe5b602090810290910101528351849060ff60018901169081106145f557fe5b90602001906020020151828281518110151561460d57fe5b602090810290910101526002959095019460010161448b565b82600e8860ff1681548110151561463957fe5b9060005260206000209060050201600301908051906020019061465d929190614922565b5081600e8860ff1681548110151561467157fe5b90600052602060002090600502016004019080519060200190614695929190614922565b5050505050505050565b6060808284018551101515156146b457600080fd5b821580156146cd57604051915060208201604052614717565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156147065780518352602092830192016146ee565b5050858452601f01601f1916604052505b50949350505050565b600061472a614891565b600a0a905090565b600082151561474357506000610aa0565b5081810281838281151561475357fe5b0414610aa057fe5b6000818381151561476857fe5b049392505050565b60008080808085151561477f57fe5b87158061478a575086155b1561479457614881565b6147a66000198863ffffffff61475b16565b92508288116147ca576147c3866142e08a8a63ffffffff61473216565b9450614881565b858814156147da57869450614881565b858714156147ea57879450614881565b871561486b578783116147fd57826147ff565b875b9150614811828863ffffffff61473216565b9050614833614826828863ffffffff61475b16565b869063ffffffff6142ec16565b9450614852868281151561484357fe5b8691900663ffffffff6142ec16565b9350614864888363ffffffff61425916565b97506147ea565b61487e614826858863ffffffff61475b16565b94505b505050509392505050565b600090565b600061489b6148a3565b600201905090565b600290565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b6080604051908101604052806004906020820280388339509192915050565b5080546000825560050290600052602060002090810190611e069190614a34565b82805482825590600052602060002090810192821561495d579160200282015b8281111561495d578251825591602001919060010190614942565b506111c3929150614a8d565b5080546000825560050290600052602060002090810190611e069190614aa7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106149cb57805160ff191683800117855561495d565b8280016001018555821561495d579182018281111561495d578251825591602001919060010190614942565b82805482825590600052602060002090810192821561495d579160200282015b8281111561495d5782518255602090920191600190910190614a17565b61116a91905b808211156111c357805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff19169055614a766003830182614b00565b614a84600483016000614b00565b50600501614a3a565b61116a91905b808211156111c35760008155600101614a93565b61116a91905b808211156111c357805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff19169055614ae96003830182614b1e565b614af7600483016000614b1e565b50600501614aad565b5080546000825590600052602060002090810190611e069190614a8d565b50805460018160011615610100020316600290046000825580601f10614b445750611e06565b601f016020900490600052602060002090810190611e069190614a8d565b6000614b6d8261430d565b1515614b7857600080fd5b610aa0614b836148a3565b8390600a0a63ffffffff61475b165600a165627a7a72305820938dc08c061efee504c137c642d16f82d63109e65a90ce6e561fb602a775adc90029a165627a7a723058209ee8f24801d45f0d79d87f8f3faa704b1f55965310f2cbafe5be1036601aad010029", - "sourceMap": "202:1421:9:-;;;464:251;8:9:-1;5:2;;;30:1;27;20:12;5:2;464:251:9;;;;;;;;;;;;;;;;;;;;;;;;;123:7:37;:18;;;-1:-1:-1;;;;;581:26:9;;;;573:35;;;;;;-1:-1:-1;;;;;626:20:9;;;;618:29;;;;;;658:11;:26;;-1:-1:-1;;;;;658:26:9;;;-1:-1:-1;;;;;;658:26:9;;;;;;;694:5;:14;;;;;;;;;;;-1:-1:-1;202:1421:9;;;;;;", - "deployedSourceMap": "202:1421:9:-;;;;;;;;;-1:-1:-1;;;202:1421:9;;;;;;;;;;;;;;;;;;53:19:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:37;;;;;;;;;;;;;;;;;;;;721:900:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;721:900:9;-1:-1:-1;;;;;721:900:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;721:900:9;;;;;;;;;;;;;;53:19:37;;;;:::o;721:900:9:-;1079:11;;:62;;;;;;-1:-1:-1;;;;;1079:62:9;;;;;;;;;;;;;;;;;;;;;;1027:20;;;;1079:11;;:22;;:62;;;;;;;;;;;;;;1027:20;1079:11;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;1079:62:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1079:62:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1079:62:9;1191:7;;1405:5;;1079:62;;-1:-1:-1;1191:7:9;1212:12;;1238:13;;1265:5;;1284:13;;1311:4;;1329:10;;1353:20;;1079:62;;-1:-1:-1;;;;;1405:5:9;1161:259;;:::i;:::-;;;;-1:-1:-1;;;;;1161:259:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1161:259:9;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1161:259:9;1152:268;;1431:6;-1:-1:-1;;;;;1431:24:9;;1456:5;1431:31;;;;;-1:-1:-1;;;1431:31:9;;;;;;;-1:-1:-1;;;;;1431:31:9;-1:-1:-1;;;;;1431:31:9;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1431:31:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1431:31:9;;;;1473:4;-1:-1:-1;;;;;1473:17:9;;1491:6;1473:25;;;;;-1:-1:-1;;;1473:25:9;;;;;;;-1:-1:-1;;;;;1473:25:9;-1:-1:-1;;;;;1473:25:9;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1473:25:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1473:25:9;;;;1508:4;-1:-1:-1;;;;;1508:22:9;;1531:5;1508:29;;;;;-1:-1:-1;;;1508:29:9;;;;;;;-1:-1:-1;;;;;1508:29:9;-1:-1:-1;;;;;1508:29:9;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1508:29:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1508:29:9;;;;1577:13;-1:-1:-1;;;;;1553:61:9;1570:5;-1:-1:-1;;;;;1553:61:9;;1600:6;1609:4;1553:61;;;;-1:-1:-1;;;;;1553:61:9;-1:-1:-1;;;;;1553:61:9;;;;;;-1:-1:-1;;;;;1553:61:9;-1:-1:-1;;;;;1553:61:9;;;;;;;;;;;;;;;;721:900;;;;;;;;;;;;:::o;202:1421::-;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"./IW12CrowdsaleFactory.sol\";\nimport \"./IW12FundFactory.sol\";\nimport \"../../rates/IRates.sol\";\nimport \"../../versioning/Versionable.sol\";\nimport \"../W12Crowdsale.sol\";\n\ncontract W12CrowdsaleFactory is Versionable, IW12CrowdsaleFactory {\n IW12FundFactory private fundFactory;\n IRates private rates;\n\n event CrowdsaleCreated(address indexed owner, address indexed token, address crowdsaleAddress, address fundAddress);\n\n constructor(uint version, IW12FundFactory _fundFactory, IRates _rates) Versionable(version) public {\n require(_fundFactory != address(0));\n require(_rates != address(0));\n\n fundFactory = _fundFactory;\n rates = _rates;\n }\n\n function createCrowdsale(\n address tokenAddress,\n address wTokenAddress,\n uint price,\n address serviceWallet,\n uint serviceFee,\n uint WTokenSaleFeePercent,\n uint trancheFeePercent,\n address swap,\n address owner\n )\n external returns (IW12Crowdsale result)\n {\n IW12Fund fund = fundFactory.createFund(swap, serviceWallet, trancheFeePercent);\n\n result = new W12Crowdsale(\n version,\n tokenAddress,\n wTokenAddress,\n price,\n serviceWallet,\n swap,\n serviceFee,\n WTokenSaleFeePercent,\n fund,\n rates\n );\n\n result.transferOwnership(owner);\n\n fund.setCrowdsale(result);\n fund.transferOwnership(owner);\n\n emit CrowdsaleCreated(owner, wTokenAddress, address(result), fund);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b506040516060806142138339810160409081528151602083015191909201516000839055600160a060020a038216151561004957600080fd5b600160a060020a038116151561005e57600080fd5b60018054600160a060020a03938416600160a060020a03199182161790915560028054929093169116179055506141798061009a6000396000f300608060405260043610620000355763ffffffff60e060020a60003504166354fd4d5081146200003a578063868b16d91462000064575b600080fd5b3480156200004757600080fd5b5062000052620000d5565b60408051918252519081900360200190f35b3480156200007157600080fd5b50620000b9600160a060020a036004803582169160248035821692604435926064358116926084359260a4359260c4359260e4359091169161010435918201910135620000db565b60408051600160a060020a039092168252519081900360200190f35b60005481565b600154604080517f17444626000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301528a811660248301526044820188905291516000938493849391169163174446269160648082019260209290919082900301818787803b1580156200015857600080fd5b505af11580156200016d573d6000803e3d6000fd5b505050506040513d60208110156200018457600080fd5b5051600054600254919350908e908e908e908e908b908f908f908a90600160a060020a0316620001b36200084b565b998a52600160a060020a0398891660208b01529688166040808b019190915260608a0196909652938716608089015291861660a088015260c087015260e086015283166101008501529116610120830152519081900361014001906000f08015801562000224573d6000803e3d6000fd5b50925081600160a060020a031663483a20b2846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156200028357600080fd5b505af115801562000298573d6000803e3d6000fd5b5050505081600160a060020a03166370480275846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015620002f857600080fd5b505af11580156200030d573d6000803e3d6000fd5b50505050600090505b83811015620004865760008585838181106200032e57fe5b90506020020135600160a060020a0316600160a060020a0316141515156200035557600080fd5b600160a060020a038316633bcdb1648686848181106200037157fe5b90506020020135600160a060020a03166040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015620003cd57600080fd5b505af1158015620003e2573d6000803e3d6000fd5b5050505081600160a060020a0316633bcdb16486868481811015156200040457fe5b90506020020135600160a060020a03166040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156200046057600080fd5b505af115801562000475573d6000803e3d6000fd5b505060019092019150620003169050565b604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03841691637048027591602480830192600092919082900301818387803b158015620004e757600080fd5b505af1158015620004fc573d6000803e3d6000fd5b5050604080517f2348238c0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0386169350632348238c9250602480830192600092919082900301818387803b1580156200056157600080fd5b505af115801562000576573d6000803e3d6000fd5b5050505081600160a060020a0316638bad0c0a6040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015620005b957600080fd5b505af1158015620005ce573d6000803e3d6000fd5b5050505081600160a060020a031663d0934d616040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156200061157600080fd5b505af115801562000626573d6000803e3d6000fd5b5050604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038716935063704802759250602480830192600092919082900301818387803b1580156200068b57600080fd5b505af1158015620006a0573d6000803e3d6000fd5b5050604080517f2348238c0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0387169350632348238c9250602480830192600092919082900301818387803b1580156200070557600080fd5b505af11580156200071a573d6000803e3d6000fd5b5050505082600160a060020a0316638bad0c0a6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156200075d57600080fd5b505af115801562000772573d6000803e3d6000fd5b5050505082600160a060020a031663d0934d616040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015620007b557600080fd5b505af1158015620007ca573d6000803e3d6000fd5b505050508b600160a060020a03167f50c0bc8e997d259dfe177ef636db3fee4d2e51ba70b0cc2d920e44584a79432684846040518083600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019250505060405180910390a250509a9950505050505050505050565b6040516138f1806200085d83390190560060806040523480156200001157600080fd5b5060405161014080620038f183398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015161012090990151969895969495939492939192909190896200007b336401000000006200047d810204565b6200008f33640100000000620004cf810204565b60025560038054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a16001600455600160a060020a0389161515620000fe57600080fd5b600160a060020a03881615156200011457600080fd5b8373__Percent_______________________________63520b006690916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156200018257600080fd5b505af415801562000197573d6000803e3d6000fd5b505050506040513d6020811015620001ae57600080fd5b5051801562000258575060648473__Percent_______________________________630fe9114790916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156200022857600080fd5b505af41580156200023d573d6000803e3d6000fd5b505050506040513d60208110156200025457600080fd5b5051105b15156200026457600080fd5b8273__Percent_______________________________63520b006690916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015620002d257600080fd5b505af4158015620002e7573d6000803e3d6000fd5b505050506040513d6020811015620002fe57600080fd5b50518015620003a8575060648373__Percent_______________________________630fe9114790916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156200037857600080fd5b505af41580156200038d573d6000803e3d6000fd5b505050506040513d6020811015620003a457600080fd5b5051105b1515620003b457600080fd5b600160a060020a0382161515620003ca57600080fd5b600160a060020a0385161515620003e057600080fd5b600160a060020a0381161515620003f657600080fd5b6200040b878764010000000062000521810204565b60058054600160a060020a0319908116600160a060020a039a8b16179091556006805482169a8a169a909a17909955600a93909355600d8054891694881694909417909355600b55600780548716928616929092179091556008805490951693169290921790925550620005ff915050565b620004986000826401000000006200320f6200056c82021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b620004ea6001826401000000006200320f6200056c82021704565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600082116200052f57600080fd5b600160a060020a03811615156200054557600080fd5b600991909155600c8054600160a060020a031916600160a060020a03909216919091179055565b600160a060020a03811615156200058257600080fd5b620005978282640100000000620005c7810204565b15620005a257600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620005df57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6132e2806200060f6000396000f3006080604052600436106102005763ffffffff60e060020a60003504166307f5d633811461020557806311eb8c9f1461021557806313096a411461024157806314f66d34146102725780631785f53c146102a0578063208853c9146102c15780632348238c146102eb5780632442e1cb1461030c57806324d7806c146104425780632e325020146104635780632fbe599014610554578063313602d4146105695780633baba4d71461057e5780633bcdb164146105935780634090cb64146105b457806343f48fbd146105c957806354fd4d50146105de578063550fd742146105f35780635641f3c314610658578063564566a81461066d5780637048027514610682578063792c02ea146106a35780638119c065146106b8578063845ddcb2146106cd5780638abdf5aa146107165780638aea2af81461072b5780638bad0c0a1461077e5780638edd6eb614610793578063a035b1fe146107a8578063a4fd6f56146107bd578063b1356488146107d2578063b60d428814610800578063c6dbdf6114610815578063d0934d611461082a578063d155790b1461083f578063d250185c14610860578063d5b2262314610892578063d6d65f3d146108ee578063d8e9ce6414610903578063daa4cf8814610924578063e89e4ed614610939578063e93b054014610951578063f6cf09dc14610969578063fc0c546a14610999575b600080fd5b6102136004356024356109ae565b005b34801561022157600080fd5b5061022d600435610b55565b604080519115158252519081900360200190f35b34801561024d57600080fd5b50610256610bfd565b60408051600160a060020a039092168252519081900360200190f35b34801561027e57600080fd5b50610287610c0c565b6040805192835290151560208301528051918290030190f35b3480156102ac57600080fd5b50610213600160a060020a0360043516610c3f565b3480156102cd57600080fd5b506102d9600435610c5f565b60408051918252519081900360200190f35b3480156102f757600080fd5b50610213600160a060020a0360043516610db6565b34801561031857600080fd5b50610324600435610e49565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103a1578181015183820152602001610389565b50505050905090810190601f1680156103ce5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156104015781810151838201526020016103e9565b50505050905090810190601f16801561042e5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561044e57600080fd5b5061022d600160a060020a0360043516611076565b34801561046f57600080fd5b5061047b60043561108e565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156104fb5781810151838201526020016104e3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561053a578181015183820152602001610522565b505050509050019850505050505050505060405180910390f35b34801561056057600080fd5b506102d9611234565b34801561057557600080fd5b5061021361123a565b34801561058a57600080fd5b506102d96113d5565b34801561059f57600080fd5b50610213600160a060020a03600435166113db565b3480156105c057600080fd5b506102566113f8565b3480156105d557600080fd5b50610256611407565b3480156105ea57600080fd5b506102d9611416565b3480156105ff57600080fd5b5061060861141c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561064457818101518382015260200161062c565b505050509050019250505060405180910390f35b34801561066457600080fd5b50610256611503565b34801561067957600080fd5b5061022d611512565b34801561068e57600080fd5b50610213600160a060020a0360043516611524565b3480156106af57600080fd5b506102d9611541565b3480156106c457600080fd5b50610256611547565b3480156106d957600080fd5b506106e5600435611556565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561072257600080fd5b506102d961159c565b34801561073757600080fd5b506107466004356024356115a2565b604051808260a080838360005b8381101561076b578181015183820152602001610753565b5050505090500191505060405180910390f35b34801561078a57600080fd5b50610213611854565b34801561079f57600080fd5b5061025661185f565b3480156107b457600080fd5b506102d961186e565b3480156107c957600080fd5b5061022d611874565b3480156107de57600080fd5b506107e76118bc565b6040805163ffffffff9092168252519081900360200190f35b34801561080c57600080fd5b50610256611903565b34801561082157600080fd5b50610256611912565b34801561083657600080fd5b50610213611921565b34801561084b57600080fd5b50610213600160a060020a036004351661192a565b34801561086c57600080fd5b5061087b600435602435611947565b604080518251815290819083908083836020610753565b34801561089e57600080fd5b50610213602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a4359182019101356119fd565b3480156108fa57600080fd5b50610287611d8e565b34801561090f57600080fd5b5061022d600160a060020a0360043516611e09565b34801561093057600080fd5b50610287611e1c565b34801561094557600080fd5b50610324600435611e9f565b34801561095d57600080fd5b5061021360043561200d565b34801561097557600080fd5b50610984600435602435612078565b60405181518152808260808083836020610753565b3480156109a557600080fd5b5061025661231d565b60006109b861325d565b6109c061327c565b60048054600101908190556109d3611512565b15156109de57600080fd5b856109e761232c565b14610a7c576008546040805160e460020a630b12e441028152600481018990529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b158015610a3c57600080fd5b505af1158015610a50573d6000803e3d6000fd5b505050506040513d6020811015610a6657600080fd5b5051600160a060020a03161415610a7c57600080fd5b610a84611e1c565b509350610a9186866115a2565b80516020820151919450610aa491611947565b9150610ab08287612350565b610ae48383601087815481101515610ac457fe5b600091825260209091206002600590920201015463ffffffff1689612542565b610aef838388612754565b8251602080850151606080870151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a26004548114610b4d57600080fd5b505050505050565b604080517f77df0856000000000000000000000000000000000000000000000000000000008152600e600482015260248101839052905160009173__PaymentMethods________________________916377df085691604480820192602092909190829003018186803b158015610bcb57600080fd5b505af4158015610bdf573d6000803e3d6000fd5b505050506040513d6020811015610bf557600080fd5b505192915050565b600654600160a060020a031681565b60115460009081901580610c255750610c23611874565b155b15610c2f57610c3b565b50506011546000190160015b9091565b610c4833611076565b1515610c5357600080fd5b610c5c81612a11565b50565b600080600080610c6d611e1c565b92509250811515610c7d57610dae565b6010805484908110610c8b57fe5b9060005260206000209060050201905073__PurchaseProcessing____________________63b8005df28683600301846004016040518463ffffffff1660e060020a0281526004018084815260200180602001806020018381038352858181548152602001915080548015610d1f57602002820191906000526020600020905b815481526020019060010190808311610d0b575b50508381038252848181548152602001915080548015610d5e57602002820191906000526020600020905b815481526020019060010190808311610d4a575b50509550505050505060206040518083038186803b158015610d7f57600080fd5b505af4158015610d93573d6000803e3d6000fd5b505050506040513d6020811015610da957600080fd5b505193505b505050919050565b600354600160a060020a03163314610dcd57600080fd5b600160a060020a0381161515610de257600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600080600080606080601187815481101515610e6157fe5b60009182526020909120600590910201546011805463ffffffff9092169189908110610e8957fe5b906000526020600020906005020160010154601189815481101515610eaa57fe5b60009182526020909120600260059092020101546011805463ffffffff909216918b908110610ed557fe5b906000526020600020906005020160020160049054906101000a900463ffffffff1660118b815481101515610f0657fe5b906000526020600020906005020160030160118c815481101515610f2657fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fcc5780601f10610fa157610100808354040283529160200191610fcc565b820191906000526020600020905b815481529060010190602001808311610faf57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529597508694509250840190508282801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b5050505050905095509550955095509550955091939550919395565b6000611088818363ffffffff612a5916565b92915050565b6000806000806060806010878154811015156110a657fe5b60009182526020909120600590910201546010805463ffffffff90921691899081106110ce57fe5b906000526020600020906005020160000160049054906101000a900463ffffffff166010898154811015156110ff57fe5b90600052602060002090600502016001015460108a81548110151561112057fe5b60009182526020909120600260059092020101546010805463ffffffff909216918c90811061114b57fe5b906000526020600020906005020160030160108c81548110151561116b57fe5b9060005260206000209060050201600401818054806020026020016040519081016040528092919081815260200182805480156111c757602002820191906000526020600020905b8154815260200190600101908083116111b3575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561105a57602002820191906000526020600020905b815481526020019060010190808311611205575050505050905095509550955095509550955091939550919395565b600b5481565b600061124533611e09565b151561125057600080fd5b611258611874565b151561126357600080fd5b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156112c957600080fd5b505af11580156112dd573d6000803e3d6000fd5b505050506040513d60208110156112f357600080fd5b5051600554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b15801561136557600080fd5b505af1158015611379573d6000803e3d6000fd5b505050506040513d602081101561138f57600080fd5b5051151561139c57600080fd5b60408051828152905133917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f8919081900360200190a250565b60115490565b6113e433611076565b15156113ef57600080fd5b610c5c81612a90565b600554600160a060020a031690565b600854600160a060020a031681565b60025481565b6060600e73__PaymentMethods________________________633b3d1a2290916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561147357600080fd5b505af4158015611487573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156114b057600080fd5b8101908080516401000000008111156114c857600080fd5b820160208101848111156114db57600080fd5b81518560208202830111640100000000821117156114f857600080fd5b509094505050505090565b600c54600160a060020a031681565b60008061151d611e1c565b9392505050565b61152d33611076565b151561153857600080fd5b610c5c81612ad8565b60105490565b600d54600160a060020a031681565b601080548290811061156457fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b600a5481565b6115aa61325d565b6000806115b561325d565b6115bd611e1c565b925092508115156115cd5761184b565b856115d661232c565b14611663576008546040805160e060020a63cfec719f028152600481018990529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561162c57600080fd5b505af1158015611640573d6000803e3d6000fd5b505050506040513d602081101561165657600080fd5b505115156116635761184b565b61166c86612b20565b905073__PurchaseProcessing____________________6391bfca31878760108781548110151561169957fe5b9060005260206000209060050201600101546010888154811015156116ba57fe5b90600052602060002090600502016003016010898154811015156116da57fe5b6000918252602082206004600590920201019088906020020151886001602002015189600260200201518a600360200201518b600460200201516040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a81815481526020019150805480156117a757602002820191906000526020600020905b815481526020019060010190808311611793575b505083810382528981815481526020019150805480156117e657602002820191906000526020600020905b8154815260200190600101908083116117d2575b50509c5050505050505050505050505060a06040518083038186803b15801561180e57600080fd5b505af4158015611822573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a081101561184757600080fd5b5093505b50505092915050565b61185d33612a11565b565b600754600160a060020a031690565b60095481565b60105460009015806118b7575060108054429190600019810190811061189657fe5b6000918252602090912060059091020154640100000000900463ffffffff16105b905090565b60105460009081106118cd57600080fd5b6010805460001981019081106118df57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600754600160a060020a031681565b600354600160a060020a031690565b61185d33612e17565b61193333611076565b151561193e57600080fd5b610c5c81612e17565b61194f61327c565b73__PurchaseProcessing____________________636cd5c0568484600a54600b546040518563ffffffff1660e060020a02815260040180858152602001848152602001838152602001828152602001945050505050604080518083038186803b1580156119bc57600080fd5b505af41580156119d0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060408110156119f557600080fd5b509392505050565b6000611a0833611e09565b1515611a1357600080fd5b60105460001015611a50574260106000815481101515611a2f57fe5b600091825260209091206005909102015463ffffffff1611611a5057600080fd5b8b1515611a5c57600080fd5b60ff8c1115611a6a57600080fd5b60ff881115611a7857600080fd5b600286048814611a8757600080fd5b60028404881115611a9757600080fd5b811515611aa357600080fd5b5060005b81811015611b4f57600854600160a060020a0316637d20abf8848484818110611acc57fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b158015611b1057600080fd5b505af1158015611b24573d6000803e3d6000fd5b505050506040513d6020811015611b3a57600080fd5b50511515611b4757600080fd5b600101611aa7565b611be88d8d808060200260200160405190810160405280939291908181526020016000905b82821015611bb0576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611b74565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612e5f945050505050565b611caf8989808060200260200160405190810160405280939291908181526020016000905b82821015611c49576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611c0d565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750612fa5945050505050565b604080517ff24950e2000000000000000000000000000000000000000000000000000000008152600e60048201818152602483019384526044830186905273__PaymentMethods________________________9363f24950e293889288929091606401846020850280828437820191505094505050505060006040518083038186803b158015611d3e57600080fd5b505af4158015611d52573d6000803e3d6000fd5b50506040517f072792b04aecd99b2250bc76fb25f9bca793c3b7383cb4c7255a7a01e8f5a12e925060009150a150505050505050505050505050565b60115460009081901580611da75750611da5611874565b155b15611db157610c3b565b5060015b6011546000190182108015611df957506011805483908110611dd357fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610c3b57600190910190611db5565b600061108860018363ffffffff612a5916565b60008080805b601054821015611e91576010805483908110611e3a57fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611e75575080544264010000000090910463ffffffff16115b15611e865781600193509350611e99565b600190910190611e22565b600093508392505b50509091565b6011805482908110611ead57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611f735780601f10611f4857610100808354040283529160200191611f73565b820191906000526020600020905b815481529060010190602001808311611f5657829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156120035780601f10611fd857610100808354040283529160200191612003565b820191906000526020600020905b815481529060010190602001808311611fe657829003601f168201915b5050505050905086565b600354600160a060020a0316331461202457600080fd5b6010546000101561206157426010600081548110151561204057fe5b600091825260209091206005909102015463ffffffff161161206157600080fd5b600c54610c5c908290600160a060020a0316613156565b612080613297565b60008061208b61325d565b612093611e1c565b925092508115156120a35761184b565b856120ac61232c565b14612139576008546040805160e060020a63cfec719f028152600481018990529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561210257600080fd5b505af1158015612116573d6000803e3d6000fd5b505050506040513d602081101561212c57600080fd5b505115156121395761184b565b61214286612b20565b905073__PurchaseProcessing____________________6391dab422878760108781548110151561216f57fe5b90600052602060002090600502016001015460108881548110151561219057fe5b90600052602060002090600502016003016010898154811015156121b057fe5b6000918252602082206004600590920201019088906020020151886001602002015189600260200201518a600360200201518b600460200201516040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a818154815260200191508054801561227d57602002820191906000526020600020905b815481526020019060010190808311612269575b505083810382528981815481526020019150805480156122bc57602002820191906000526020600020905b8154815260200190600101908083116122a8575b50509c5050505050505050505050505060806040518083038186803b1580156122e457600080fd5b505af41580156122f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250608081101561184757600080fd5b600554600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b6008546040805160e060020a63cfec719f02815260048101849052905173__PurchaseProcessing____________________92633676737c9286928692600160a060020a03169163cfec719f9160248083019260209291908290030181600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506040513d60208110156123e857600080fd5b50516123f5576000612473565b6008546040805160e460020a630b12e441028152600481018890529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561244657600080fd5b505af115801561245a573d6000803e3d6000fd5b505050506040513d602081101561247057600080fd5b50515b600554600654600d54600c546040805163ffffffff8a1660e060020a028152600160a060020a0395861695948516949384169390921691600401908190899080838360005b838110156124d05781810151838201526020016124b8565b50505050919091019788525050600160a060020a039485166020870152928416604080870191909152918416606086015283166080850152911660a08301525160c08083019350600092829003018186803b15801561252e57600080fd5b505af4158015610b4d573d6000803e3d6000fd5b6008546040805160e060020a63cfec719f02815260048101849052905173__PurchaseProcessing____________________92634bb1e9ff928892889288928892600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156125b757600080fd5b505af11580156125cb573d6000803e3d6000fd5b505050506040513d60208110156125e157600080fd5b50516125ee57600061266c565b6008546040805160e460020a630b12e441028152600481018a90529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561263f57600080fd5b505af1158015612653573d6000803e3d6000fd5b505050506040513d602081101561266957600080fd5b50515b60055460405160e060020a63ffffffff8916028152600160a060020a0390911690600401808760a080838360005b838110156126b257818101518382015260200161269a565b5050505090500186600260200280838360005b838110156126dd5781810151838201526020016126c5565b50505063ffffffff909816920191825250602081019490945250600160a060020a039182166040808501919091529116606083015251608080830195506000945090925090829003018186803b15801561273657600080fd5b505af415801561274a573d6000803e3d6000fd5b5050505050505050565b61275c61232c565b81141561283057600754600160a060020a031663d0baf2f561279484600160200201518660015b60200201519063ffffffff6131ac16565b8551602086015133919086906127ac908a6001612783565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b15801561281257600080fd5b505af1158015612826573d6000803e3d6000fd5b5050505050612a0c565b6008546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561288157600080fd5b505af1158015612895573d6000803e3d6000fd5b505050506040513d60208110156128ab57600080fd5b5051600754600160a060020a039182169163a9059cbb91166128d68560016020020151876001612783565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561292857600080fd5b505af115801561293c573d6000803e3d6000fd5b505050506040513d602081101561295257600080fd5b5051151561295f57600080fd5b600754600160a060020a031663d0baf2f53385600060200201518461298d8760016020020151896001612783565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b1580156129f357600080fd5b505af1158015612a07573d6000803e3d6000fd5b505050505b505050565b612a2260008263ffffffff6131c316565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515612a7057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b612aa160018263ffffffff61320f16565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b612ae960008263ffffffff61320f16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b612b2861325d565b600854604080517f8eaa6ac0000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691638eaa6ac0916024808201926020929091908290030181600087803b158015612b8f57600080fd5b505af1158015612ba3573d6000803e3d6000fd5b505050506040513d6020811015612bb957600080fd5b50518152600954602080830191909152600554604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263313ce567926004808401938290030181600087803b158015612c2357600080fd5b505af1158015612c37573d6000803e3d6000fd5b505050506040513d6020811015612c4d57600080fd5b505160ff16604082015281612c6061232c565b14612d73576008546040805160e460020a630b12e441028152600481018590529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612cb657600080fd5b505af1158015612cca573d6000803e3d6000fd5b505050506040513d6020811015612ce057600080fd5b5051604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b158015612d3f57600080fd5b505af1158015612d53573d6000803e3d6000fd5b505050506040513d6020811015612d6957600080fd5b505160ff16612d76565b60125b6060820152600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015612de157600080fd5b505af1158015612df5573d6000803e3d6000fd5b505050506040513d6020811015612e0b57600080fd5b50516080820152919050565b612e2860018263ffffffff6131c316565b604051600160a060020a038216907fa3bfdef3d8149bacf15b7b64199fca8228c0fd4f8fcdd11cc7871829baf319c390600090a250565b73__Crowdsale_____________________________63ae1c60546010601185856040518563ffffffff1660e060020a0281526004018085815260200184815260200180602001806020018381038352858181518152602001915080516000925b81841015612f015760208085028401015160c080838360005b83811015612ef0578181015183820152602001612ed8565b505050509050019260010192612ebf565b868103855287518152875160209182019450818901935002905080838360005b83811015612f39578181015183820152602001612f21565b50505050905001965050505050505060006040518083038186803b158015612f6057600080fd5b505af4158015612f74573d6000803e3d6000fd5b50506040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e6925060009150a15050565b73__Crowdsale_____________________________63e1231f1e601060118686866040518663ffffffff1660e060020a028152600401808681526020018581526020018060200180602001806020018481038452878181518152602001915080516000925b8184101561304c57602080850284010151608080838360005b8381101561303b578181015183820152602001613023565b50505050905001926001019261300a565b878103865289518152895160209182019450818b01935002905080838360005b8381101561308457818101518382015260200161306c565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156130c05781810151838201526020016130a8565b50505050905090810190601f1680156130ed5780820380516001836020036101000a031916815260200191505b509850505050505050505060006040518083038186803b15801561311057600080fd5b505af4158015613124573d6000803e3d6000fd5b50506040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca925060009150a1505050565b6000821161316357600080fd5b600160a060020a038116151561317857600080fd5b600991909155600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600080838311156131bc57600080fd5b5050900390565b600160a060020a03811615156131d857600080fd5b6131e28282612a59565b15156131ed57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a038116151561322457600080fd5b61322e8282612a59565b1561323857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b60806040519081016040528060049060208202803883395091929150505600a165627a7a723058205764eaf376f5cb24c4af6d62f551ccb0be08befceceb38c1563d18ddec1d03270029a165627a7a72305820f1a3eab15ae5fee9719178e800756c58c570a6113aa332dc1a50d5165a014f600029", + "deployedBytecode": "0x608060405260043610620000355763ffffffff60e060020a60003504166354fd4d5081146200003a578063868b16d91462000064575b600080fd5b3480156200004757600080fd5b5062000052620000d5565b60408051918252519081900360200190f35b3480156200007157600080fd5b50620000b9600160a060020a036004803582169160248035821692604435926064358116926084359260a4359260c4359260e4359091169161010435918201910135620000db565b60408051600160a060020a039092168252519081900360200190f35b60005481565b600154604080517f17444626000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301528a811660248301526044820188905291516000938493849391169163174446269160648082019260209290919082900301818787803b1580156200015857600080fd5b505af11580156200016d573d6000803e3d6000fd5b505050506040513d60208110156200018457600080fd5b5051600054600254919350908e908e908e908e908b908f908f908a90600160a060020a0316620001b36200084b565b998a52600160a060020a0398891660208b01529688166040808b019190915260608a0196909652938716608089015291861660a088015260c087015260e086015283166101008501529116610120830152519081900361014001906000f08015801562000224573d6000803e3d6000fd5b50925081600160a060020a031663483a20b2846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156200028357600080fd5b505af115801562000298573d6000803e3d6000fd5b5050505081600160a060020a03166370480275846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015620002f857600080fd5b505af11580156200030d573d6000803e3d6000fd5b50505050600090505b83811015620004865760008585838181106200032e57fe5b90506020020135600160a060020a0316600160a060020a0316141515156200035557600080fd5b600160a060020a038316633bcdb1648686848181106200037157fe5b90506020020135600160a060020a03166040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015620003cd57600080fd5b505af1158015620003e2573d6000803e3d6000fd5b5050505081600160a060020a0316633bcdb16486868481811015156200040457fe5b90506020020135600160a060020a03166040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156200046057600080fd5b505af115801562000475573d6000803e3d6000fd5b505060019092019150620003169050565b604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03841691637048027591602480830192600092919082900301818387803b158015620004e757600080fd5b505af1158015620004fc573d6000803e3d6000fd5b5050604080517f2348238c0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0386169350632348238c9250602480830192600092919082900301818387803b1580156200056157600080fd5b505af115801562000576573d6000803e3d6000fd5b5050505081600160a060020a0316638bad0c0a6040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015620005b957600080fd5b505af1158015620005ce573d6000803e3d6000fd5b5050505081600160a060020a031663d0934d616040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156200061157600080fd5b505af115801562000626573d6000803e3d6000fd5b5050604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038716935063704802759250602480830192600092919082900301818387803b1580156200068b57600080fd5b505af1158015620006a0573d6000803e3d6000fd5b5050604080517f2348238c0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0387169350632348238c9250602480830192600092919082900301818387803b1580156200070557600080fd5b505af11580156200071a573d6000803e3d6000fd5b5050505082600160a060020a0316638bad0c0a6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156200075d57600080fd5b505af115801562000772573d6000803e3d6000fd5b5050505082600160a060020a031663d0934d616040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015620007b557600080fd5b505af1158015620007ca573d6000803e3d6000fd5b505050508b600160a060020a03167f50c0bc8e997d259dfe177ef636db3fee4d2e51ba70b0cc2d920e44584a79432684846040518083600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019250505060405180910390a250509a9950505050505050505050565b6040516138f1806200085d83390190560060806040523480156200001157600080fd5b5060405161014080620038f183398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015161012090990151969895969495939492939192909190896200007b336401000000006200047d810204565b6200008f33640100000000620004cf810204565b60025560038054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a16001600455600160a060020a0389161515620000fe57600080fd5b600160a060020a03881615156200011457600080fd5b8373__Percent_______________________________63520b006690916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156200018257600080fd5b505af415801562000197573d6000803e3d6000fd5b505050506040513d6020811015620001ae57600080fd5b5051801562000258575060648473__Percent_______________________________630fe9114790916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156200022857600080fd5b505af41580156200023d573d6000803e3d6000fd5b505050506040513d60208110156200025457600080fd5b5051105b15156200026457600080fd5b8273__Percent_______________________________63520b006690916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015620002d257600080fd5b505af4158015620002e7573d6000803e3d6000fd5b505050506040513d6020811015620002fe57600080fd5b50518015620003a8575060648373__Percent_______________________________630fe9114790916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156200037857600080fd5b505af41580156200038d573d6000803e3d6000fd5b505050506040513d6020811015620003a457600080fd5b5051105b1515620003b457600080fd5b600160a060020a0382161515620003ca57600080fd5b600160a060020a0385161515620003e057600080fd5b600160a060020a0381161515620003f657600080fd5b6200040b878764010000000062000521810204565b60058054600160a060020a0319908116600160a060020a039a8b16179091556006805482169a8a169a909a17909955600a93909355600d8054891694881694909417909355600b55600780548716928616929092179091556008805490951693169290921790925550620005ff915050565b620004986000826401000000006200320f6200056c82021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b620004ea6001826401000000006200320f6200056c82021704565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600082116200052f57600080fd5b600160a060020a03811615156200054557600080fd5b600991909155600c8054600160a060020a031916600160a060020a03909216919091179055565b600160a060020a03811615156200058257600080fd5b620005978282640100000000620005c7810204565b15620005a257600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620005df57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6132e2806200060f6000396000f3006080604052600436106102005763ffffffff60e060020a60003504166307f5d633811461020557806311eb8c9f1461021557806313096a411461024157806314f66d34146102725780631785f53c146102a0578063208853c9146102c15780632348238c146102eb5780632442e1cb1461030c57806324d7806c146104425780632e325020146104635780632fbe599014610554578063313602d4146105695780633baba4d71461057e5780633bcdb164146105935780634090cb64146105b457806343f48fbd146105c957806354fd4d50146105de578063550fd742146105f35780635641f3c314610658578063564566a81461066d5780637048027514610682578063792c02ea146106a35780638119c065146106b8578063845ddcb2146106cd5780638abdf5aa146107165780638aea2af81461072b5780638bad0c0a1461077e5780638edd6eb614610793578063a035b1fe146107a8578063a4fd6f56146107bd578063b1356488146107d2578063b60d428814610800578063c6dbdf6114610815578063d0934d611461082a578063d155790b1461083f578063d250185c14610860578063d5b2262314610892578063d6d65f3d146108ee578063d8e9ce6414610903578063daa4cf8814610924578063e89e4ed614610939578063e93b054014610951578063f6cf09dc14610969578063fc0c546a14610999575b600080fd5b6102136004356024356109ae565b005b34801561022157600080fd5b5061022d600435610b55565b604080519115158252519081900360200190f35b34801561024d57600080fd5b50610256610bfd565b60408051600160a060020a039092168252519081900360200190f35b34801561027e57600080fd5b50610287610c0c565b6040805192835290151560208301528051918290030190f35b3480156102ac57600080fd5b50610213600160a060020a0360043516610c3f565b3480156102cd57600080fd5b506102d9600435610c5f565b60408051918252519081900360200190f35b3480156102f757600080fd5b50610213600160a060020a0360043516610db6565b34801561031857600080fd5b50610324600435610e49565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103a1578181015183820152602001610389565b50505050905090810190601f1680156103ce5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156104015781810151838201526020016103e9565b50505050905090810190601f16801561042e5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561044e57600080fd5b5061022d600160a060020a0360043516611076565b34801561046f57600080fd5b5061047b60043561108e565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156104fb5781810151838201526020016104e3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561053a578181015183820152602001610522565b505050509050019850505050505050505060405180910390f35b34801561056057600080fd5b506102d9611234565b34801561057557600080fd5b5061021361123a565b34801561058a57600080fd5b506102d96113d5565b34801561059f57600080fd5b50610213600160a060020a03600435166113db565b3480156105c057600080fd5b506102566113f8565b3480156105d557600080fd5b50610256611407565b3480156105ea57600080fd5b506102d9611416565b3480156105ff57600080fd5b5061060861141c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561064457818101518382015260200161062c565b505050509050019250505060405180910390f35b34801561066457600080fd5b50610256611503565b34801561067957600080fd5b5061022d611512565b34801561068e57600080fd5b50610213600160a060020a0360043516611524565b3480156106af57600080fd5b506102d9611541565b3480156106c457600080fd5b50610256611547565b3480156106d957600080fd5b506106e5600435611556565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561072257600080fd5b506102d961159c565b34801561073757600080fd5b506107466004356024356115a2565b604051808260a080838360005b8381101561076b578181015183820152602001610753565b5050505090500191505060405180910390f35b34801561078a57600080fd5b50610213611854565b34801561079f57600080fd5b5061025661185f565b3480156107b457600080fd5b506102d961186e565b3480156107c957600080fd5b5061022d611874565b3480156107de57600080fd5b506107e76118bc565b6040805163ffffffff9092168252519081900360200190f35b34801561080c57600080fd5b50610256611903565b34801561082157600080fd5b50610256611912565b34801561083657600080fd5b50610213611921565b34801561084b57600080fd5b50610213600160a060020a036004351661192a565b34801561086c57600080fd5b5061087b600435602435611947565b604080518251815290819083908083836020610753565b34801561089e57600080fd5b50610213602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a4359182019101356119fd565b3480156108fa57600080fd5b50610287611d8e565b34801561090f57600080fd5b5061022d600160a060020a0360043516611e09565b34801561093057600080fd5b50610287611e1c565b34801561094557600080fd5b50610324600435611e9f565b34801561095d57600080fd5b5061021360043561200d565b34801561097557600080fd5b50610984600435602435612078565b60405181518152808260808083836020610753565b3480156109a557600080fd5b5061025661231d565b60006109b861325d565b6109c061327c565b60048054600101908190556109d3611512565b15156109de57600080fd5b856109e761232c565b14610a7c576008546040805160e460020a630b12e441028152600481018990529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b158015610a3c57600080fd5b505af1158015610a50573d6000803e3d6000fd5b505050506040513d6020811015610a6657600080fd5b5051600160a060020a03161415610a7c57600080fd5b610a84611e1c565b509350610a9186866115a2565b80516020820151919450610aa491611947565b9150610ab08287612350565b610ae48383601087815481101515610ac457fe5b600091825260209091206002600590920201015463ffffffff1689612542565b610aef838388612754565b8251602080850151606080870151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a26004548114610b4d57600080fd5b505050505050565b604080517f77df0856000000000000000000000000000000000000000000000000000000008152600e600482015260248101839052905160009173__PaymentMethods________________________916377df085691604480820192602092909190829003018186803b158015610bcb57600080fd5b505af4158015610bdf573d6000803e3d6000fd5b505050506040513d6020811015610bf557600080fd5b505192915050565b600654600160a060020a031681565b60115460009081901580610c255750610c23611874565b155b15610c2f57610c3b565b50506011546000190160015b9091565b610c4833611076565b1515610c5357600080fd5b610c5c81612a11565b50565b600080600080610c6d611e1c565b92509250811515610c7d57610dae565b6010805484908110610c8b57fe5b9060005260206000209060050201905073__PurchaseProcessing____________________63b8005df28683600301846004016040518463ffffffff1660e060020a0281526004018084815260200180602001806020018381038352858181548152602001915080548015610d1f57602002820191906000526020600020905b815481526020019060010190808311610d0b575b50508381038252848181548152602001915080548015610d5e57602002820191906000526020600020905b815481526020019060010190808311610d4a575b50509550505050505060206040518083038186803b158015610d7f57600080fd5b505af4158015610d93573d6000803e3d6000fd5b505050506040513d6020811015610da957600080fd5b505193505b505050919050565b600354600160a060020a03163314610dcd57600080fd5b600160a060020a0381161515610de257600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600080600080606080601187815481101515610e6157fe5b60009182526020909120600590910201546011805463ffffffff9092169189908110610e8957fe5b906000526020600020906005020160010154601189815481101515610eaa57fe5b60009182526020909120600260059092020101546011805463ffffffff909216918b908110610ed557fe5b906000526020600020906005020160020160049054906101000a900463ffffffff1660118b815481101515610f0657fe5b906000526020600020906005020160030160118c815481101515610f2657fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fcc5780601f10610fa157610100808354040283529160200191610fcc565b820191906000526020600020905b815481529060010190602001808311610faf57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529597508694509250840190508282801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b5050505050905095509550955095509550955091939550919395565b6000611088818363ffffffff612a5916565b92915050565b6000806000806060806010878154811015156110a657fe5b60009182526020909120600590910201546010805463ffffffff90921691899081106110ce57fe5b906000526020600020906005020160000160049054906101000a900463ffffffff166010898154811015156110ff57fe5b90600052602060002090600502016001015460108a81548110151561112057fe5b60009182526020909120600260059092020101546010805463ffffffff909216918c90811061114b57fe5b906000526020600020906005020160030160108c81548110151561116b57fe5b9060005260206000209060050201600401818054806020026020016040519081016040528092919081815260200182805480156111c757602002820191906000526020600020905b8154815260200190600101908083116111b3575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561105a57602002820191906000526020600020905b815481526020019060010190808311611205575050505050905095509550955095509550955091939550919395565b600b5481565b600061124533611e09565b151561125057600080fd5b611258611874565b151561126357600080fd5b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156112c957600080fd5b505af11580156112dd573d6000803e3d6000fd5b505050506040513d60208110156112f357600080fd5b5051600554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b15801561136557600080fd5b505af1158015611379573d6000803e3d6000fd5b505050506040513d602081101561138f57600080fd5b5051151561139c57600080fd5b60408051828152905133917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f8919081900360200190a250565b60115490565b6113e433611076565b15156113ef57600080fd5b610c5c81612a90565b600554600160a060020a031690565b600854600160a060020a031681565b60025481565b6060600e73__PaymentMethods________________________633b3d1a2290916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561147357600080fd5b505af4158015611487573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156114b057600080fd5b8101908080516401000000008111156114c857600080fd5b820160208101848111156114db57600080fd5b81518560208202830111640100000000821117156114f857600080fd5b509094505050505090565b600c54600160a060020a031681565b60008061151d611e1c565b9392505050565b61152d33611076565b151561153857600080fd5b610c5c81612ad8565b60105490565b600d54600160a060020a031681565b601080548290811061156457fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b600a5481565b6115aa61325d565b6000806115b561325d565b6115bd611e1c565b925092508115156115cd5761184b565b856115d661232c565b14611663576008546040805160e060020a63cfec719f028152600481018990529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561162c57600080fd5b505af1158015611640573d6000803e3d6000fd5b505050506040513d602081101561165657600080fd5b505115156116635761184b565b61166c86612b20565b905073__PurchaseProcessing____________________6391bfca31878760108781548110151561169957fe5b9060005260206000209060050201600101546010888154811015156116ba57fe5b90600052602060002090600502016003016010898154811015156116da57fe5b6000918252602082206004600590920201019088906020020151886001602002015189600260200201518a600360200201518b600460200201516040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a81815481526020019150805480156117a757602002820191906000526020600020905b815481526020019060010190808311611793575b505083810382528981815481526020019150805480156117e657602002820191906000526020600020905b8154815260200190600101908083116117d2575b50509c5050505050505050505050505060a06040518083038186803b15801561180e57600080fd5b505af4158015611822573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a081101561184757600080fd5b5093505b50505092915050565b61185d33612a11565b565b600754600160a060020a031690565b60095481565b60105460009015806118b7575060108054429190600019810190811061189657fe5b6000918252602090912060059091020154640100000000900463ffffffff16105b905090565b60105460009081106118cd57600080fd5b6010805460001981019081106118df57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600754600160a060020a031681565b600354600160a060020a031690565b61185d33612e17565b61193333611076565b151561193e57600080fd5b610c5c81612e17565b61194f61327c565b73__PurchaseProcessing____________________636cd5c0568484600a54600b546040518563ffffffff1660e060020a02815260040180858152602001848152602001838152602001828152602001945050505050604080518083038186803b1580156119bc57600080fd5b505af41580156119d0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060408110156119f557600080fd5b509392505050565b6000611a0833611e09565b1515611a1357600080fd5b60105460001015611a50574260106000815481101515611a2f57fe5b600091825260209091206005909102015463ffffffff1611611a5057600080fd5b8b1515611a5c57600080fd5b60ff8c1115611a6a57600080fd5b60ff881115611a7857600080fd5b600286048814611a8757600080fd5b60028404881115611a9757600080fd5b811515611aa357600080fd5b5060005b81811015611b4f57600854600160a060020a0316637d20abf8848484818110611acc57fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b158015611b1057600080fd5b505af1158015611b24573d6000803e3d6000fd5b505050506040513d6020811015611b3a57600080fd5b50511515611b4757600080fd5b600101611aa7565b611be88d8d808060200260200160405190810160405280939291908181526020016000905b82821015611bb0576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611b74565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612e5f945050505050565b611caf8989808060200260200160405190810160405280939291908181526020016000905b82821015611c49576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611c0d565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750612fa5945050505050565b604080517ff24950e2000000000000000000000000000000000000000000000000000000008152600e60048201818152602483019384526044830186905273__PaymentMethods________________________9363f24950e293889288929091606401846020850280828437820191505094505050505060006040518083038186803b158015611d3e57600080fd5b505af4158015611d52573d6000803e3d6000fd5b50506040517f072792b04aecd99b2250bc76fb25f9bca793c3b7383cb4c7255a7a01e8f5a12e925060009150a150505050505050505050505050565b60115460009081901580611da75750611da5611874565b155b15611db157610c3b565b5060015b6011546000190182108015611df957506011805483908110611dd357fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610c3b57600190910190611db5565b600061108860018363ffffffff612a5916565b60008080805b601054821015611e91576010805483908110611e3a57fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611e75575080544264010000000090910463ffffffff16115b15611e865781600193509350611e99565b600190910190611e22565b600093508392505b50509091565b6011805482908110611ead57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611f735780601f10611f4857610100808354040283529160200191611f73565b820191906000526020600020905b815481529060010190602001808311611f5657829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156120035780601f10611fd857610100808354040283529160200191612003565b820191906000526020600020905b815481529060010190602001808311611fe657829003601f168201915b5050505050905086565b600354600160a060020a0316331461202457600080fd5b6010546000101561206157426010600081548110151561204057fe5b600091825260209091206005909102015463ffffffff161161206157600080fd5b600c54610c5c908290600160a060020a0316613156565b612080613297565b60008061208b61325d565b612093611e1c565b925092508115156120a35761184b565b856120ac61232c565b14612139576008546040805160e060020a63cfec719f028152600481018990529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561210257600080fd5b505af1158015612116573d6000803e3d6000fd5b505050506040513d602081101561212c57600080fd5b505115156121395761184b565b61214286612b20565b905073__PurchaseProcessing____________________6391dab422878760108781548110151561216f57fe5b90600052602060002090600502016001015460108881548110151561219057fe5b90600052602060002090600502016003016010898154811015156121b057fe5b6000918252602082206004600590920201019088906020020151886001602002015189600260200201518a600360200201518b600460200201516040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a818154815260200191508054801561227d57602002820191906000526020600020905b815481526020019060010190808311612269575b505083810382528981815481526020019150805480156122bc57602002820191906000526020600020905b8154815260200190600101908083116122a8575b50509c5050505050505050505050505060806040518083038186803b1580156122e457600080fd5b505af41580156122f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250608081101561184757600080fd5b600554600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b6008546040805160e060020a63cfec719f02815260048101849052905173__PurchaseProcessing____________________92633676737c9286928692600160a060020a03169163cfec719f9160248083019260209291908290030181600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506040513d60208110156123e857600080fd5b50516123f5576000612473565b6008546040805160e460020a630b12e441028152600481018890529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561244657600080fd5b505af115801561245a573d6000803e3d6000fd5b505050506040513d602081101561247057600080fd5b50515b600554600654600d54600c546040805163ffffffff8a1660e060020a028152600160a060020a0395861695948516949384169390921691600401908190899080838360005b838110156124d05781810151838201526020016124b8565b50505050919091019788525050600160a060020a039485166020870152928416604080870191909152918416606086015283166080850152911660a08301525160c08083019350600092829003018186803b15801561252e57600080fd5b505af4158015610b4d573d6000803e3d6000fd5b6008546040805160e060020a63cfec719f02815260048101849052905173__PurchaseProcessing____________________92634bb1e9ff928892889288928892600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156125b757600080fd5b505af11580156125cb573d6000803e3d6000fd5b505050506040513d60208110156125e157600080fd5b50516125ee57600061266c565b6008546040805160e460020a630b12e441028152600481018a90529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561263f57600080fd5b505af1158015612653573d6000803e3d6000fd5b505050506040513d602081101561266957600080fd5b50515b60055460405160e060020a63ffffffff8916028152600160a060020a0390911690600401808760a080838360005b838110156126b257818101518382015260200161269a565b5050505090500186600260200280838360005b838110156126dd5781810151838201526020016126c5565b50505063ffffffff909816920191825250602081019490945250600160a060020a039182166040808501919091529116606083015251608080830195506000945090925090829003018186803b15801561273657600080fd5b505af415801561274a573d6000803e3d6000fd5b5050505050505050565b61275c61232c565b81141561283057600754600160a060020a031663d0baf2f561279484600160200201518660015b60200201519063ffffffff6131ac16565b8551602086015133919086906127ac908a6001612783565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b15801561281257600080fd5b505af1158015612826573d6000803e3d6000fd5b5050505050612a0c565b6008546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561288157600080fd5b505af1158015612895573d6000803e3d6000fd5b505050506040513d60208110156128ab57600080fd5b5051600754600160a060020a039182169163a9059cbb91166128d68560016020020151876001612783565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561292857600080fd5b505af115801561293c573d6000803e3d6000fd5b505050506040513d602081101561295257600080fd5b5051151561295f57600080fd5b600754600160a060020a031663d0baf2f53385600060200201518461298d8760016020020151896001612783565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b1580156129f357600080fd5b505af1158015612a07573d6000803e3d6000fd5b505050505b505050565b612a2260008263ffffffff6131c316565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515612a7057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b612aa160018263ffffffff61320f16565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b612ae960008263ffffffff61320f16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b612b2861325d565b600854604080517f8eaa6ac0000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691638eaa6ac0916024808201926020929091908290030181600087803b158015612b8f57600080fd5b505af1158015612ba3573d6000803e3d6000fd5b505050506040513d6020811015612bb957600080fd5b50518152600954602080830191909152600554604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263313ce567926004808401938290030181600087803b158015612c2357600080fd5b505af1158015612c37573d6000803e3d6000fd5b505050506040513d6020811015612c4d57600080fd5b505160ff16604082015281612c6061232c565b14612d73576008546040805160e460020a630b12e441028152600481018590529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612cb657600080fd5b505af1158015612cca573d6000803e3d6000fd5b505050506040513d6020811015612ce057600080fd5b5051604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b158015612d3f57600080fd5b505af1158015612d53573d6000803e3d6000fd5b505050506040513d6020811015612d6957600080fd5b505160ff16612d76565b60125b6060820152600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015612de157600080fd5b505af1158015612df5573d6000803e3d6000fd5b505050506040513d6020811015612e0b57600080fd5b50516080820152919050565b612e2860018263ffffffff6131c316565b604051600160a060020a038216907fa3bfdef3d8149bacf15b7b64199fca8228c0fd4f8fcdd11cc7871829baf319c390600090a250565b73__Crowdsale_____________________________63ae1c60546010601185856040518563ffffffff1660e060020a0281526004018085815260200184815260200180602001806020018381038352858181518152602001915080516000925b81841015612f015760208085028401015160c080838360005b83811015612ef0578181015183820152602001612ed8565b505050509050019260010192612ebf565b868103855287518152875160209182019450818901935002905080838360005b83811015612f39578181015183820152602001612f21565b50505050905001965050505050505060006040518083038186803b158015612f6057600080fd5b505af4158015612f74573d6000803e3d6000fd5b50506040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e6925060009150a15050565b73__Crowdsale_____________________________63e1231f1e601060118686866040518663ffffffff1660e060020a028152600401808681526020018581526020018060200180602001806020018481038452878181518152602001915080516000925b8184101561304c57602080850284010151608080838360005b8381101561303b578181015183820152602001613023565b50505050905001926001019261300a565b878103865289518152895160209182019450818b01935002905080838360005b8381101561308457818101518382015260200161306c565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156130c05781810151838201526020016130a8565b50505050905090810190601f1680156130ed5780820380516001836020036101000a031916815260200191505b509850505050505050505060006040518083038186803b15801561311057600080fd5b505af4158015613124573d6000803e3d6000fd5b50506040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca925060009150a1505050565b6000821161316357600080fd5b600160a060020a038116151561317857600080fd5b600991909155600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600080838311156131bc57600080fd5b5050900390565b600160a060020a03811615156131d857600080fd5b6131e28282612a59565b15156131ed57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a038116151561322457600080fd5b61322e8282612a59565b1561323857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b60806040519081016040528060049060208202803883395091929150505600a165627a7a723058205764eaf376f5cb24c4af6d62f551ccb0be08befceceb38c1563d18ddec1d03270029a165627a7a72305820f1a3eab15ae5fee9719178e800756c58c570a6113aa332dc1a50d5165a014f600029", + "sourceMap": "202:2055:15:-;;;441:251;8:9:-1;5:2;;;30:1;27;20:12;5:2;441:251:15;;;;;;;;;;;;;;;;;;;;;;;;;123:7:48;:18;;;-1:-1:-1;;;;;558:26:15;;;;550:35;;;;;;-1:-1:-1;;;;;603:20:15;;;;595:29;;;;;;635:11;:26;;-1:-1:-1;;;;;635:26:15;;;-1:-1:-1;;;;;;635:26:15;;;;;;;671:5;:14;;;;;;;;;;;-1:-1:-1;202:2055:15;;;;;;", + "deployedSourceMap": "202:2055:15:-;;;;;;;;;-1:-1:-1;;;202:2055:15;;;;;;;;;;;;;;;;;;53:19:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:48;;;;;;;;;;;;;;;;;;;;698:1557:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;698:1557:15;-1:-1:-1;;;;;698:1557:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;698:1557:15;;;;;;;;;;;;;;53:19:48;;;;:::o;698:1557:15:-;1059:11;;:62;;;;;;-1:-1:-1;;;;;1059:62:15;;;;;;;;;;;;;;;;;;;;;;1007:20;;;;;;1059:11;;;:22;;:62;;;;;;;;;;;;;;;1007:20;1059:11;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;1059:62:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1059:62:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1059:62:15;1171:7;;1385:5;;1059:62;;-1:-1:-1;1171:7:15;1192:12;;1218:13;;1245:5;;1264:13;;1291:4;;1309:10;;1333:20;;1059:62;;-1:-1:-1;;;;;1385:5:15;1141:259;;:::i;:::-;;;;-1:-1:-1;;;;;1141:259:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1141:259:15;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1141:259:15;1132:268;;1411:4;-1:-1:-1;;;;;1411:17:15;;1429:6;1411:25;;;;;-1:-1:-1;;;1411:25:15;;;;;;;-1:-1:-1;;;;;1411:25:15;-1:-1:-1;;;;;1411:25:15;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1411:25:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1411:25:15;;;;1480:4;-1:-1:-1;;;;;1480:13:15;;1502:6;1480:30;;;;;-1:-1:-1;;;1480:30:15;;;;;;;-1:-1:-1;;;;;1480:30:15;-1:-1:-1;;;;;1480:30:15;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1480:30:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1480:30:15;;;;1603:1;1594:10;;1590:190;1606:17;;;1590:190;;;1673:1;1652:6;;1659:1;1652:9;;;;;;;;;;;;;-1:-1:-1;;;;;1652:9:15;-1:-1:-1;;;;;1652:23:15;;;1644:32;;;;;;;;-1:-1:-1;;;;;1691:22:15;;;1714:6;;1721:1;1714:9;;;;;;;;;;;;;-1:-1:-1;;;;;1714:9:15;1691:33;;;;;-1:-1:-1;;;1691:33:15;;;;;;;-1:-1:-1;;;;;1691:33:15;-1:-1:-1;;;;;1691:33:15;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1691:33:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1691:33:15;;;;1738:4;-1:-1:-1;;;;;1738:20:15;;1759:6;;1766:1;1759:9;;;;;;;;;;;;;;;-1:-1:-1;;;;;1759:9:15;1738:31;;;;;-1:-1:-1;;;1738:31:15;;;;;;;-1:-1:-1;;;;;1738:31:15;-1:-1:-1;;;;;1738:31:15;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1738:31:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;1625:3:15;;;;;-1:-1:-1;1590:190:15;;-1:-1:-1;1590:190:15;;1836:25;;;;;;1850:10;1836:25;;;;;;-1:-1:-1;;;;;1836:13:15;;;;;:25;;;;;-1:-1:-1;;1836:25:15;;;;;;;-1:-1:-1;1836:13:15;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;1836:25:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;1871:32:15;;;;;;1892:10;1871:32;;;;;;-1:-1:-1;;;;;1871:20:15;;;-1:-1:-1;1871:20:15;;-1:-1:-1;1871:32:15;;;;;-1:-1:-1;;1871:32:15;;;;;;;-1:-1:-1;1871:20:15;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;1871:32:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1871:32:15;;;;1913:4;-1:-1:-1;;;;;1913:18:15;;:20;;;;;-1:-1:-1;;;1913:20:15;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1913:20:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1913:20:15;;;;1943:4;-1:-1:-1;;;;;1943:25:15;;:27;;;;;-1:-1:-1;;;1943:27:15;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1943:27:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2027:27:15;;;;;;2043:10;2027:27;;;;;;-1:-1:-1;;;;;2027:15:15;;;-1:-1:-1;2027:15:15;;-1:-1:-1;2027:27:15;;;;;-1:-1:-1;;2027:27:15;;;;;;;-1:-1:-1;2027:15:15;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;2027:27:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2064:34:15;;;;;;2087:10;2064:34;;;;;;-1:-1:-1;;;;;2064:22:15;;;-1:-1:-1;2064:22:15;;-1:-1:-1;2064:34:15;;;;;-1:-1:-1;;2064:34:15;;;;;;;-1:-1:-1;2064:22:15;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;2064:34:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2064:34:15;;;;2108:6;-1:-1:-1;;;;;2108:20:15;;:22;;;;;-1:-1:-1;;;2108:22:15;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2108:22:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2108:22:15;;;;2140:6;-1:-1:-1;;;;;2140:27:15;;:29;;;;;-1:-1:-1;;;2140:29:15;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2140:29:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2140:29:15;;;;2202:13;-1:-1:-1;;;;;2185:63:15;;2225:6;2242:4;2185:63;;;;-1:-1:-1;;;;;2185:63:15;-1:-1:-1;;;;;2185:63:15;;;;;;-1:-1:-1;;;;;2185:63:15;-1:-1:-1;;;;;2185:63:15;;;;;;;;;;;;;;;;698:1557;;;;;;;;;;;;;;:::o;202:2055::-;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"./IW12CrowdsaleFactory.sol\";\nimport \"./IW12FundFactory.sol\";\nimport \"../../rates/IRates.sol\";\nimport \"../../versioning/Versionable.sol\";\nimport \"../W12Crowdsale.sol\";\n\ncontract W12CrowdsaleFactory is Versionable, IW12CrowdsaleFactory {\n IW12FundFactory private fundFactory;\n IRates private rates;\n\n event CrowdsaleCreated(address indexed token, address crowdsaleAddress, address fundAddress);\n\n constructor(uint version, IW12FundFactory _fundFactory, IRates _rates) Versionable(version) public {\n require(_fundFactory != address(0));\n require(_rates != address(0));\n\n fundFactory = _fundFactory;\n rates = _rates;\n }\n\n function createCrowdsale(\n address tokenAddress,\n address wTokenAddress,\n uint price,\n address serviceWallet,\n uint serviceFee,\n uint WTokenSaleFeePercent,\n uint trancheFeePercent,\n address swap,\n address[] owners\n )\n external returns (IW12Crowdsale result)\n {\n IW12Fund fund = fundFactory.createFund(swap, serviceWallet, trancheFeePercent);\n\n result = new W12Crowdsale(\n version,\n tokenAddress,\n wTokenAddress,\n price,\n serviceWallet,\n swap,\n serviceFee,\n WTokenSaleFeePercent,\n fund,\n rates\n );\n\n fund.setCrowdsale(result);\n // make crowdsale a admin\n fund.addAdmin(address(result));\n\n // give the project owner role to addresses from owners list\n for(uint i = 0; i < owners.length; i++) {\n require(owners[i] != address(0));\n\n result.addProjectOwner(owners[i]);\n fund.addProjectOwner(owners[i]);\n }\n\n // transfer all permissions to sender\n fund.addAdmin(msg.sender);\n fund.transferPrimary(msg.sender);\n fund.renounceAdmin();\n fund.renounceProjectOwner();\n\n // transfer all permissions to sender\n result.addAdmin(msg.sender);\n result.transferPrimary(msg.sender);\n result.renounceAdmin();\n result.renounceProjectOwner();\n\n emit CrowdsaleCreated(wTokenAddress, address(result), address(fund));\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/crowdsale/factories/W12CrowdsaleFactory.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/W12CrowdsaleFactory.sol", "exportedSymbols": { "W12CrowdsaleFactory": [ - 4716 + 4321 ] }, - "id": 4717, + "id": 4322, "nodeType": "SourceUnit", "nodes": [ { - "id": 4579, + "id": 4101, "literals": [ "solidity", "^", @@ -138,60 +133,60 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:9" + "src": "0:24:15" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", "file": "./IW12CrowdsaleFactory.sol", - "id": 4580, + "id": 4102, "nodeType": "ImportDirective", - "scope": 4717, - "sourceUnit": 4563, - "src": "26:36:9", + "scope": 4322, + "sourceUnit": 4085, + "src": "26:36:15", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", "file": "./IW12FundFactory.sol", - "id": 4581, + "id": 4103, "nodeType": "ImportDirective", - "scope": 4717, - "sourceUnit": 4578, - "src": "63:31:9", + "scope": 4322, + "sourceUnit": 4100, + "src": "63:31:15", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "file": "../../rates/IRates.sol", - "id": 4582, + "id": 4104, "nodeType": "ImportDirective", - "scope": 4717, - "sourceUnit": 7280, - "src": "95:32:9", + "scope": 4322, + "sourceUnit": 10015, + "src": "95:32:15", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "../../versioning/Versionable.sol", - "id": 4583, + "id": 4105, "nodeType": "ImportDirective", - "scope": 4717, - "sourceUnit": 9517, - "src": "128:42:9", + "scope": 4322, + "sourceUnit": 11834, + "src": "128:42:15", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", "file": "../W12Crowdsale.sol", - "id": 4584, + "id": 4106, "nodeType": "ImportDirective", - "scope": 4717, - "sourceUnit": 3280, - "src": "171:29:9", + "scope": 4322, + "sourceUnit": 3303, + "src": "171:29:15", "symbolAliases": [], "unitAlias": "" }, @@ -201,78 +196,78 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4585, + "id": 4107, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "234:11:9", + "referencedDeclaration": 11833, + "src": "234:11:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", + "typeIdentifier": "t_contract$_Versionable_$11833", "typeString": "contract Versionable" } }, - "id": 4586, + "id": 4108, "nodeType": "InheritanceSpecifier", - "src": "234:11:9" + "src": "234:11:15" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 4587, + "id": 4109, "name": "IW12CrowdsaleFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4562, - "src": "247:20:9", + "referencedDeclaration": 4084, + "src": "247:20:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, - "id": 4588, + "id": 4110, "nodeType": "InheritanceSpecifier", - "src": "247:20:9" + "src": "247:20:15" } ], "contractDependencies": [ - 3279, - 4562, - 9516 + 3302, + 4084, + 11833 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 4716, + "id": 4321, "linearizedBaseContracts": [ - 4716, - 4562, - 9516 + 4321, + 4084, + 11833 ], "name": "W12CrowdsaleFactory", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 4590, + "id": 4112, "name": "fundFactory", "nodeType": "VariableDeclaration", - "scope": 4716, - "src": "274:35:9", + "scope": 4321, + "src": "274:35:15", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" }, "typeName": { "contractScope": null, - "id": 4589, + "id": 4111, "name": "IW12FundFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4577, - "src": "274:15:9", + "referencedDeclaration": 4099, + "src": "274:15:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" } }, @@ -281,26 +276,26 @@ }, { "constant": false, - "id": 4592, + "id": 4114, "name": "rates", "nodeType": "VariableDeclaration", - "scope": 4716, - "src": "315:20:9", + "scope": 4321, + "src": "315:20:15", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 4591, + "id": 4113, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "315:6:9", + "referencedDeclaration": 10014, + "src": "315:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -310,48 +305,21 @@ { "anonymous": false, "documentation": null, - "id": 4602, + "id": 4122, "name": "CrowdsaleCreated", "nodeType": "EventDefinition", "parameters": { - "id": 4601, + "id": 4121, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4594, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 4602, - "src": "365:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4593, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "365:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4596, + "id": 4116, "indexed": true, "name": "token", "nodeType": "VariableDeclaration", - "scope": 4602, - "src": "388:21:9", + "scope": 4122, + "src": "365:21:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -359,10 +327,10 @@ "typeString": "address" }, "typeName": { - "id": 4595, + "id": 4115, "name": "address", "nodeType": "ElementaryTypeName", - "src": "388:7:9", + "src": "365:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -373,12 +341,12 @@ }, { "constant": false, - "id": 4598, + "id": 4118, "indexed": false, "name": "crowdsaleAddress", "nodeType": "VariableDeclaration", - "scope": 4602, - "src": "411:24:9", + "scope": 4122, + "src": "388:24:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -386,10 +354,10 @@ "typeString": "address" }, "typeName": { - "id": 4597, + "id": 4117, "name": "address", "nodeType": "ElementaryTypeName", - "src": "411:7:9", + "src": "388:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -400,12 +368,12 @@ }, { "constant": false, - "id": 4600, + "id": 4120, "indexed": false, "name": "fundAddress", "nodeType": "VariableDeclaration", - "scope": 4602, - "src": "437:19:9", + "scope": 4122, + "src": "414:19:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -413,10 +381,10 @@ "typeString": "address" }, "typeName": { - "id": 4599, + "id": 4119, "name": "address", "nodeType": "ElementaryTypeName", - "src": "437:7:9", + "src": "414:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -426,15 +394,15 @@ "visibility": "internal" } ], - "src": "364:93:9" + "src": "364:70:15" }, - "src": "342:116:9" + "src": "342:93:15" }, { "body": { - "id": 4638, + "id": 4158, "nodeType": "Block", - "src": "563:152:9", + "src": "540:152:15", "statements": [ { "expression": { @@ -446,21 +414,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 4619, + "id": 4139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4615, + "id": 4135, "name": "_fundFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4606, - "src": "581:12:9", + "referencedDeclaration": 4126, + "src": "558:12:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" } }, @@ -472,14 +440,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 4617, + "id": 4137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "605:1:9", + "src": "582:1:15", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -495,20 +463,20 @@ "typeString": "int_const 0" } ], - "id": 4616, + "id": 4136, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "597:7:9", + "src": "574:7:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4618, + "id": 4138, "isConstant": false, "isLValue": false, "isPure": true, @@ -516,13 +484,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "597:10:9", + "src": "574:10:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "581:26:9", + "src": "558:26:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -536,21 +504,21 @@ "typeString": "bool" } ], - "id": 4614, + "id": 4134, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "573:7:9", + "referencedDeclaration": 13444, + "src": "550:7:15", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4620, + "id": 4140, "isConstant": false, "isLValue": false, "isPure": false, @@ -558,15 +526,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "573:35:9", + "src": "550:35:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4621, + "id": 4141, "nodeType": "ExpressionStatement", - "src": "573:35:9" + "src": "550:35:15" }, { "expression": { @@ -578,21 +546,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 4627, + "id": 4147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4623, + "id": 4143, "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4608, - "src": "626:6:9", + "referencedDeclaration": 4128, + "src": "603:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -604,14 +572,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 4625, + "id": 4145, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "644:1:9", + "src": "621:1:15", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -627,20 +595,20 @@ "typeString": "int_const 0" } ], - "id": 4624, + "id": 4144, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "636:7:9", + "src": "613:7:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4626, + "id": 4146, "isConstant": false, "isLValue": false, "isPure": true, @@ -648,13 +616,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "636:10:9", + "src": "613:10:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "626:20:9", + "src": "603:20:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -668,21 +636,21 @@ "typeString": "bool" } ], - "id": 4622, + "id": 4142, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "618:7:9", + "referencedDeclaration": 13444, + "src": "595:7:15", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4628, + "id": 4148, "isConstant": false, "isLValue": false, "isPure": false, @@ -690,34 +658,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "618:29:9", + "src": "595:29:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4629, + "id": 4149, "nodeType": "ExpressionStatement", - "src": "618:29:9" + "src": "595:29:15" }, { "expression": { "argumentTypes": null, - "id": 4632, + "id": 4152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4630, + "id": 4150, "name": "fundFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4590, - "src": "658:11:9", + "referencedDeclaration": 4112, + "src": "635:11:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" } }, @@ -725,45 +693,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4631, + "id": 4151, "name": "_fundFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4606, - "src": "672:12:9", + "referencedDeclaration": 4126, + "src": "649:12:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" } }, - "src": "658:26:9", + "src": "635:26:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" } }, - "id": 4633, + "id": 4153, "nodeType": "ExpressionStatement", - "src": "658:26:9" + "src": "635:26:15" }, { "expression": { "argumentTypes": null, - "id": 4636, + "id": 4156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4634, + "id": 4154, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4592, - "src": "694:5:9", + "referencedDeclaration": 4114, + "src": "671:5:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -771,31 +739,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4635, + "id": 4155, "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4608, - "src": "702:6:9", + "referencedDeclaration": 4128, + "src": "679:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "src": "694:14:9", + "src": "671:14:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 4637, + "id": 4157, "nodeType": "ExpressionStatement", - "src": "694:14:9" + "src": "671:14:15" } ] }, "documentation": null, - "id": 4639, + "id": 4159, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -804,49 +772,49 @@ "arguments": [ { "argumentTypes": null, - "id": 4611, + "id": 4131, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4604, - "src": "547:7:9", + "referencedDeclaration": 4124, + "src": "524:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 4612, + "id": 4132, "modifierName": { "argumentTypes": null, - "id": 4610, + "id": 4130, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "535:11:9", + "referencedDeclaration": 11833, + "src": "512:11:15", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "535:20:9" + "src": "512:20:15" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 4609, + "id": 4129, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4604, + "id": 4124, "name": "version", "nodeType": "VariableDeclaration", - "scope": 4639, - "src": "476:12:9", + "scope": 4159, + "src": "453:12:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -854,10 +822,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4603, + "id": 4123, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "476:4:9", + "src": "453:4:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -868,26 +836,26 @@ }, { "constant": false, - "id": 4606, + "id": 4126, "name": "_fundFactory", "nodeType": "VariableDeclaration", - "scope": 4639, - "src": "490:28:9", + "scope": 4159, + "src": "467:28:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" }, "typeName": { "contractScope": null, - "id": 4605, + "id": 4125, "name": "IW12FundFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4577, - "src": "490:15:9", + "referencedDeclaration": 4099, + "src": "467:15:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" } }, @@ -896,26 +864,26 @@ }, { "constant": false, - "id": 4608, + "id": 4128, "name": "_rates", "nodeType": "VariableDeclaration", - "scope": 4639, - "src": "520:13:9", + "scope": 4159, + "src": "497:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 4607, + "id": 4127, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "520:6:9", + "referencedDeclaration": 10014, + "src": "497:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -923,54 +891,54 @@ "visibility": "internal" } ], - "src": "475:59:9" + "src": "452:59:15" }, "payable": false, "returnParameters": { - "id": 4613, + "id": 4133, "nodeType": "ParameterList", "parameters": [], - "src": "563:0:9" + "src": "540:0:15" }, - "scope": 4716, - "src": "464:251:9", + "scope": 4321, + "src": "441:251:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4714, + "id": 4319, "nodeType": "Block", - "src": "1053:568:9", + "src": "1033:1222:15", "statements": [ { "assignments": [ - 4663 + 4184 ], "declarations": [ { "constant": false, - "id": 4663, + "id": 4184, "name": "fund", "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "1063:13:9", + "scope": 4320, + "src": "1043:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 4662, + "id": 4183, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "1063:8:9", + "referencedDeclaration": 1803, + "src": "1043:8:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -978,18 +946,18 @@ "visibility": "internal" } ], - "id": 4670, + "id": 4191, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4666, + "id": 4187, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4655, - "src": "1102:4:9", + "referencedDeclaration": 4175, + "src": "1082:4:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -997,12 +965,12 @@ }, { "argumentTypes": null, - "id": 4667, + "id": 4188, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4647, - "src": "1108:13:9", + "referencedDeclaration": 4167, + "src": "1088:13:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1010,12 +978,12 @@ }, { "argumentTypes": null, - "id": 4668, + "id": 4189, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4653, - "src": "1123:17:9", + "referencedDeclaration": 4173, + "src": "1103:17:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1039,32 +1007,32 @@ ], "expression": { "argumentTypes": null, - "id": 4664, + "id": 4185, "name": "fundFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4590, - "src": "1079:11:9", + "referencedDeclaration": 4112, + "src": "1059:11:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" } }, - "id": 4665, + "id": 4186, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "createFund", "nodeType": "MemberAccess", - "referencedDeclaration": 4576, - "src": "1079:22:9", + "referencedDeclaration": 4098, + "src": "1059:22:15", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_IW12Fund_$1261_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_IW12Fund_$1803_$", "typeString": "function (address,address,uint256) external returns (contract IW12Fund)" } }, - "id": 4669, + "id": 4190, "isConstant": false, "isLValue": false, "isPure": false, @@ -1072,33 +1040,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1079:62:9", + "src": "1059:62:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, "nodeType": "VariableDeclarationStatement", - "src": "1063:78:9" + "src": "1043:78:15" }, { "expression": { "argumentTypes": null, - "id": 4685, + "id": 4206, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4671, + "id": 4192, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4660, - "src": "1152:6:9", + "referencedDeclaration": 4181, + "src": "1132:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, @@ -1109,12 +1077,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4674, + "id": 4195, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9505, - "src": "1191:7:9", + "referencedDeclaration": 11822, + "src": "1171:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1122,12 +1090,12 @@ }, { "argumentTypes": null, - "id": 4675, + "id": 4196, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4641, - "src": "1212:12:9", + "referencedDeclaration": 4161, + "src": "1192:12:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1135,12 +1103,12 @@ }, { "argumentTypes": null, - "id": 4676, + "id": 4197, "name": "wTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4643, - "src": "1238:13:9", + "referencedDeclaration": 4163, + "src": "1218:13:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1148,12 +1116,12 @@ }, { "argumentTypes": null, - "id": 4677, + "id": 4198, "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4645, - "src": "1265:5:9", + "referencedDeclaration": 4165, + "src": "1245:5:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1161,12 +1129,12 @@ }, { "argumentTypes": null, - "id": 4678, + "id": 4199, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4647, - "src": "1284:13:9", + "referencedDeclaration": 4167, + "src": "1264:13:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1174,12 +1142,12 @@ }, { "argumentTypes": null, - "id": 4679, + "id": 4200, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4655, - "src": "1311:4:9", + "referencedDeclaration": 4175, + "src": "1291:4:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1187,12 +1155,12 @@ }, { "argumentTypes": null, - "id": 4680, + "id": 4201, "name": "serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4649, - "src": "1329:10:9", + "referencedDeclaration": 4169, + "src": "1309:10:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1200,12 +1168,12 @@ }, { "argumentTypes": null, - "id": 4681, + "id": 4202, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4651, - "src": "1353:20:9", + "referencedDeclaration": 4171, + "src": "1333:20:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1213,27 +1181,27 @@ }, { "argumentTypes": null, - "id": 4682, + "id": 4203, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4663, - "src": "1387:4:9", + "referencedDeclaration": 4184, + "src": "1367:4:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, { "argumentTypes": null, - "id": 4683, + "id": 4204, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4592, - "src": "1405:5:9", + "referencedDeclaration": 4114, + "src": "1385:5:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } } @@ -1273,39 +1241,39 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" }, { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } ], - "id": 4673, + "id": 4194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "1161:16:9", + "src": "1141:16:15", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_contract$_IW12Fund_$1261_$_t_contract$_IRates_$7279_$returns$_t_contract$_W12Crowdsale_$3279_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_contract$_IW12Fund_$1803_$_t_contract$_IRates_$10014_$returns$_t_contract$_W12Crowdsale_$3302_$", "typeString": "function (uint256,address,address,uint256,address,address,uint256,uint256,contract IW12Fund,contract IRates) returns (contract W12Crowdsale)" }, "typeName": { "contractScope": null, - "id": 4672, + "id": 4193, "name": "W12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3279, - "src": "1165:12:9", + "referencedDeclaration": 3302, + "src": "1145:12:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", "typeString": "contract W12Crowdsale" } } }, - "id": 4684, + "id": 4205, "isConstant": false, "isLValue": false, "isPure": false, @@ -1313,91 +1281,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1161:259:9", + "src": "1141:259:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", "typeString": "contract W12Crowdsale" } }, - "src": "1152:268:9", + "src": "1132:268:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, - "id": 4686, - "nodeType": "ExpressionStatement", - "src": "1152:268:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4690, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4657, - "src": "1456:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4687, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4660, - "src": "1431:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 4689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 1223, - "src": "1431:24:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 4691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1431:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4692, + "id": 4207, "nodeType": "ExpressionStatement", - "src": "1431:31:9" + "src": "1132:268:15" }, { "expression": { @@ -1405,14 +1303,14 @@ "arguments": [ { "argumentTypes": null, - "id": 4696, + "id": 4211, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4660, - "src": "1491:6:9", + "referencedDeclaration": 4181, + "src": "1429:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } } @@ -1420,38 +1318,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } ], "expression": { "argumentTypes": null, - "id": 4693, + "id": 4208, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4663, - "src": "1473:4:9", + "referencedDeclaration": 4184, + "src": "1411:4:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, - "id": 4695, + "id": 4210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCrowdsale", "nodeType": "MemberAccess", - "referencedDeclaration": 1232, - "src": "1473:17:9", + "referencedDeclaration": 1774, + "src": "1411:17:15", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IW12Crowdsale_$1224_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IW12Crowdsale_$1760_$returns$__$", "typeString": "function (contract IW12Crowdsale) external" } }, - "id": 4697, + "id": 4212, "isConstant": false, "isLValue": false, "isPure": false, @@ -1459,129 +1357,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1473:25:9", + "src": "1411:25:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4698, + "id": 4213, "nodeType": "ExpressionStatement", - "src": "1473:25:9" + "src": "1411:25:15" }, { "expression": { "argumentTypes": null, "arguments": [ - { - "argumentTypes": null, - "id": 4702, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4657, - "src": "1531:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4699, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4663, - "src": "1508:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "id": 4701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 1247, - "src": "1508:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 4703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1508:29:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4704, - "nodeType": "ExpressionStatement", - "src": "1508:29:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4706, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4657, - "src": "1570:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4707, - "name": "wTokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4643, - "src": "1577:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4709, + "id": 4218, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4660, - "src": "1600:6:9", + "referencedDeclaration": 4181, + "src": "1502:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } } @@ -1589,24 +1391,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } ], - "id": 4708, + "id": 4217, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1592:7:9", + "src": "1494:7:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4710, + "id": 4219, "isConstant": false, "isLValue": false, "isPure": false, @@ -1614,24 +1416,11 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1592:15:9", + "src": "1494:15:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 4711, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4663, - "src": "1609:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } } ], "expression": { @@ -1639,32 +1428,36 @@ { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" } ], - "id": 4705, - "name": "CrowdsaleCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4602, - "src": "1553:16:9", + "expression": { + "argumentTypes": null, + "id": 4214, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1480:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "1480:13:15", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address,address)" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" } }, - "id": 4712, + "id": 4220, "isConstant": false, "isLValue": false, "isPure": false, @@ -1672,389 +1465,1625 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1553:61:9", + "src": "1480:30:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4713, - "nodeType": "EmitStatement", - "src": "1548:66:9" - } - ] - }, - "documentation": null, - "id": 4715, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createCrowdsale", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4658, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4641, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "755:20:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4640, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "755:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4643, - "name": "wTokenAddress", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "785:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4642, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "785:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" + "id": 4221, + "nodeType": "ExpressionStatement", + "src": "1480:30:15" }, { - "constant": false, - "id": 4645, - "name": "price", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "816:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "body": { + "id": 4259, + "nodeType": "Block", + "src": "1630:150:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4234, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4178, + "src": "1652:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 4236, + "indexExpression": { + "argumentTypes": null, + "id": 4235, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "1659:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1652:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1673:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1665:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1665:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1652:23:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4233, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1644:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1644:32:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4242, + "nodeType": "ExpressionStatement", + "src": "1644:32:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4246, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4178, + "src": "1714:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 4248, + "indexExpression": { + "argumentTypes": null, + "id": 4247, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "1721:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1714:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4243, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4181, + "src": "1691:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 4245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addProjectOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1412, + "src": "1691:22:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1691:33:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4250, + "nodeType": "ExpressionStatement", + "src": "1691:33:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4254, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4178, + "src": "1759:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 4256, + "indexExpression": { + "argumentTypes": null, + "id": 4255, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "1766:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1759:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4251, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1738:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addProjectOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1412, + "src": "1738:20:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1738:31:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4258, + "nodeType": "ExpressionStatement", + "src": "1738:31:15" + } + ] }, - "typeName": { - "id": 4644, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "816:4:9", - "typeDescriptions": { + "condition": { + "argumentTypes": null, + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4647, - "name": "serviceWallet", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "836:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4646, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "836:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4649, - "name": "serviceFee", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "867:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4648, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "867:4:9", + }, + "id": 4229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4226, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "1606:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4227, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4178, + "src": "1610:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 4228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1610:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1606:17:15", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4651, - "name": "WTokenSaleFeePercent", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "892:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 4260, + "initializationExpression": { + "assignments": [ + 4223 + ], + "declarations": [ + { + "constant": false, + "id": 4223, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "1594:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4222, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1594:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4225, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1603:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1594:10:15" }, - "typeName": { - "id": 4650, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "892:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1625:3:15", + "subExpression": { + "argumentTypes": null, + "id": 4230, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "1625:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4232, + "nodeType": "ExpressionStatement", + "src": "1625:3:15" }, - "value": null, - "visibility": "internal" + "nodeType": "ForStatement", + "src": "1590:190:15" }, { - "constant": false, - "id": 4653, - "name": "trancheFeePercent", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "927:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4652, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "927:4:9", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4264, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "1850:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1850:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4261, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1836:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "1836:13:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1836:25:15", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 4267, + "nodeType": "ExpressionStatement", + "src": "1836:25:15" }, { - "constant": false, - "id": 4655, - "name": "swap", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "959:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4654, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "959:7:9", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4271, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "1892:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1892:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4268, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1871:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferPrimary", + "nodeType": "MemberAccess", + "referencedDeclaration": 1789, + "src": "1871:20:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1871:32:15", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 4274, + "nodeType": "ExpressionStatement", + "src": "1871:32:15" }, { - "constant": false, - "id": 4657, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "981:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "981:7:9", + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4275, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1913:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "renounceAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1369, + "src": "1913:18:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 4278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1913:20:15", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "745:255:9" - }, - "payable": false, - "returnParameters": { - "id": 4661, - "nodeType": "ParameterList", - "parameters": [ + "id": 4279, + "nodeType": "ExpressionStatement", + "src": "1913:20:15" + }, { - "constant": false, - "id": 4660, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "1027:20:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - }, - "typeName": { - "contractScope": null, - "id": 4659, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "1027:13:9", + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4280, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1943:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "renounceProjectOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1415, + "src": "1943:25:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 4283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1943:27:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "1026:22:9" - }, - "scope": 4716, - "src": "721:900:9", - "stateMutability": "nonpayable", - "superFunction": 4561, - "visibility": "external" - } - ], - "scope": 4717, - "src": "202:1421:9" - } - ], - "src": "0:1624:9" - }, - "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/W12CrowdsaleFactory.sol", - "exportedSymbols": { - "W12CrowdsaleFactory": [ - 4716 - ] - }, - "id": 4717, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4579, - "literals": [ - "solidity", - "^", + "id": 4284, + "nodeType": "ExpressionStatement", + "src": "1943:27:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4288, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2043:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2043:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4285, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4181, + "src": "2027:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 4287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "2027:15:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2027:27:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4291, + "nodeType": "ExpressionStatement", + "src": "2027:27:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4295, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2087:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2087:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4292, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4181, + "src": "2064:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 4294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferPrimary", + "nodeType": "MemberAccess", + "referencedDeclaration": 1759, + "src": "2064:22:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2064:34:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4298, + "nodeType": "ExpressionStatement", + "src": "2064:34:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4299, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4181, + "src": "2108:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 4301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "renounceAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1369, + "src": "2108:20:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 4302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2108:22:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4303, + "nodeType": "ExpressionStatement", + "src": "2108:22:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4304, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4181, + "src": "2140:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 4306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "renounceProjectOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1415, + "src": "2140:27:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 4307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2140:29:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4308, + "nodeType": "ExpressionStatement", + "src": "2140:29:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4310, + "name": "wTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4163, + "src": "2202:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4312, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4181, + "src": "2225:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 4311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2217:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2217:15:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4315, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "2242:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + ], + "id": 4314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2234:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2234:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4309, + "name": "CrowdsaleCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4122, + "src": "2185:16:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 4317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2185:63:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4318, + "nodeType": "EmitStatement", + "src": "2180:68:15" + } + ] + }, + "documentation": null, + "id": 4320, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4161, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "732:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "732:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4163, + "name": "wTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "762:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4162, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "762:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4165, + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "793:10:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4164, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "793:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4167, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "813:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4166, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "813:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4169, + "name": "serviceFee", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "844:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4168, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "844:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4171, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "869:25:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4170, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "869:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4173, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "904:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4172, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "904:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4175, + "name": "swap", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "936:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "936:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4178, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "958:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "958:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4177, + "length": null, + "nodeType": "ArrayTypeName", + "src": "958:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "722:258:15" + }, + "payable": false, + "returnParameters": { + "id": 4182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4181, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "1007:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 4180, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "1007:13:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1006:22:15" + }, + "scope": 4321, + "src": "698:1557:15", + "stateMutability": "nonpayable", + "superFunction": 4083, + "visibility": "external" + } + ], + "scope": 4322, + "src": "202:2055:15" + } + ], + "src": "0:2258:15" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/W12CrowdsaleFactory.sol", + "exportedSymbols": { + "W12CrowdsaleFactory": [ + 4321 + ] + }, + "id": 4322, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4101, + "literals": [ + "solidity", + "^", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:9" + "src": "0:24:15" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", "file": "./IW12CrowdsaleFactory.sol", - "id": 4580, + "id": 4102, "nodeType": "ImportDirective", - "scope": 4717, - "sourceUnit": 4563, - "src": "26:36:9", + "scope": 4322, + "sourceUnit": 4085, + "src": "26:36:15", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", "file": "./IW12FundFactory.sol", - "id": 4581, + "id": 4103, "nodeType": "ImportDirective", - "scope": 4717, - "sourceUnit": 4578, - "src": "63:31:9", + "scope": 4322, + "sourceUnit": 4100, + "src": "63:31:15", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "file": "../../rates/IRates.sol", - "id": 4582, + "id": 4104, "nodeType": "ImportDirective", - "scope": 4717, - "sourceUnit": 7280, - "src": "95:32:9", + "scope": 4322, + "sourceUnit": 10015, + "src": "95:32:15", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "../../versioning/Versionable.sol", - "id": 4583, + "id": 4105, "nodeType": "ImportDirective", - "scope": 4717, - "sourceUnit": 9517, - "src": "128:42:9", + "scope": 4322, + "sourceUnit": 11834, + "src": "128:42:15", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", "file": "../W12Crowdsale.sol", - "id": 4584, + "id": 4106, "nodeType": "ImportDirective", - "scope": 4717, - "sourceUnit": 3280, - "src": "171:29:9", + "scope": 4322, + "sourceUnit": 3303, + "src": "171:29:15", "symbolAliases": [], "unitAlias": "" }, @@ -2064,78 +3093,78 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4585, + "id": 4107, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "234:11:9", + "referencedDeclaration": 11833, + "src": "234:11:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", + "typeIdentifier": "t_contract$_Versionable_$11833", "typeString": "contract Versionable" } }, - "id": 4586, + "id": 4108, "nodeType": "InheritanceSpecifier", - "src": "234:11:9" + "src": "234:11:15" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 4587, + "id": 4109, "name": "IW12CrowdsaleFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4562, - "src": "247:20:9", + "referencedDeclaration": 4084, + "src": "247:20:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, - "id": 4588, + "id": 4110, "nodeType": "InheritanceSpecifier", - "src": "247:20:9" + "src": "247:20:15" } ], "contractDependencies": [ - 3279, - 4562, - 9516 + 3302, + 4084, + 11833 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 4716, + "id": 4321, "linearizedBaseContracts": [ - 4716, - 4562, - 9516 + 4321, + 4084, + 11833 ], "name": "W12CrowdsaleFactory", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 4590, + "id": 4112, "name": "fundFactory", "nodeType": "VariableDeclaration", - "scope": 4716, - "src": "274:35:9", + "scope": 4321, + "src": "274:35:15", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" }, "typeName": { "contractScope": null, - "id": 4589, + "id": 4111, "name": "IW12FundFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4577, - "src": "274:15:9", + "referencedDeclaration": 4099, + "src": "274:15:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" } }, @@ -2144,26 +3173,26 @@ }, { "constant": false, - "id": 4592, + "id": 4114, "name": "rates", "nodeType": "VariableDeclaration", - "scope": 4716, - "src": "315:20:9", + "scope": 4321, + "src": "315:20:15", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 4591, + "id": 4113, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "315:6:9", + "referencedDeclaration": 10014, + "src": "315:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -2173,62 +3202,530 @@ { "anonymous": false, "documentation": null, - "id": 4602, + "id": 4122, "name": "CrowdsaleCreated", "nodeType": "EventDefinition", "parameters": { - "id": 4601, + "id": 4121, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4594, - "indexed": true, - "name": "owner", + "id": 4116, + "indexed": true, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 4122, + "src": "365:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4118, + "indexed": false, + "name": "crowdsaleAddress", + "nodeType": "VariableDeclaration", + "scope": 4122, + "src": "388:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "388:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4120, + "indexed": false, + "name": "fundAddress", "nodeType": "VariableDeclaration", - "scope": 4602, - "src": "365:21:9", + "scope": 4122, + "src": "414:19:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4593, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "365:7:9", + "typeName": { + "id": 4119, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "414:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "364:70:15" + }, + "src": "342:93:15" + }, + { + "body": { + "id": 4158, + "nodeType": "Block", + "src": "540:152:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4135, + "name": "_fundFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4126, + "src": "558:12:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", + "typeString": "contract IW12FundFactory" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "582:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4136, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "574:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "574:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "558:26:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4134, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "550:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "550:35:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4141, + "nodeType": "ExpressionStatement", + "src": "550:35:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4143, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4128, + "src": "603:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "621:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "613:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "613:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "603:20:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4142, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "595:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "595:29:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4149, + "nodeType": "ExpressionStatement", + "src": "595:29:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 4152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4150, + "name": "fundFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4112, + "src": "635:11:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", + "typeString": "contract IW12FundFactory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4151, + "name": "_fundFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4126, + "src": "649:12:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", + "typeString": "contract IW12FundFactory" + } + }, + "src": "635:26:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", + "typeString": "contract IW12FundFactory" + } + }, + "id": 4153, + "nodeType": "ExpressionStatement", + "src": "635:26:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 4156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4154, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4114, + "src": "671:5:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4155, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4128, + "src": "679:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "src": "671:14:15", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } }, - "value": null, - "visibility": "internal" + "id": 4157, + "nodeType": "ExpressionStatement", + "src": "671:14:15" + } + ] + }, + "documentation": null, + "id": 4159, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 4131, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4124, + "src": "524:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4132, + "modifierName": { + "argumentTypes": null, + "id": 4130, + "name": "Versionable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11833, + "src": "512:11:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", + "typeString": "type(contract Versionable)" + } }, + "nodeType": "ModifierInvocation", + "src": "512:20:15" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4129, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 4596, - "indexed": true, - "name": "token", + "id": 4124, + "name": "version", "nodeType": "VariableDeclaration", - "scope": 4602, - "src": "388:21:9", + "scope": 4159, + "src": "453:12:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 4595, - "name": "address", + "id": 4123, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "388:7:9", + "src": "453:4:15", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -2236,26 +3733,27 @@ }, { "constant": false, - "id": 4598, - "indexed": false, - "name": "crowdsaleAddress", + "id": 4126, + "name": "_fundFactory", "nodeType": "VariableDeclaration", - "scope": 4602, - "src": "411:24:9", + "scope": 4159, + "src": "467:28:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", + "typeString": "contract IW12FundFactory" }, "typeName": { - "id": 4597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "411:7:9", + "contractScope": null, + "id": 4125, + "name": "IW12FundFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4099, + "src": "467:15:15", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", + "typeString": "contract IW12FundFactory" } }, "value": null, @@ -2263,157 +3761,175 @@ }, { "constant": false, - "id": 4600, - "indexed": false, - "name": "fundAddress", + "id": 4128, + "name": "_rates", "nodeType": "VariableDeclaration", - "scope": 4602, - "src": "437:19:9", + "scope": 4159, + "src": "497:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" }, "typeName": { - "id": 4599, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "437:7:9", + "contractScope": null, + "id": 4127, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10014, + "src": "497:6:15", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } }, "value": null, "visibility": "internal" } ], - "src": "364:93:9" + "src": "452:59:15" + }, + "payable": false, + "returnParameters": { + "id": 4133, + "nodeType": "ParameterList", + "parameters": [], + "src": "540:0:15" }, - "src": "342:116:9" + "scope": 4321, + "src": "441:251:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, { "body": { - "id": 4638, + "id": 4319, "nodeType": "Block", - "src": "563:152:9", + "src": "1033:1222:15", "statements": [ { - "expression": { + "assignments": [ + 4184 + ], + "declarations": [ + { + "constant": false, + "id": 4184, + "name": "fund", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "1043:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 4183, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "1043:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4191, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 4187, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4175, + "src": "1082:4:15", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "id": 4619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4615, - "name": "_fundFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4606, - "src": "581:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", - "typeString": "contract IW12FundFactory" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "605:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "597:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4618, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "597:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "581:26:9", + } + }, + { + "argumentTypes": null, + "id": 4188, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4167, + "src": "1088:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4189, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4173, + "src": "1103:17:15", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 4614, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "573:7:9", + "expression": { + "argumentTypes": null, + "id": 4185, + "name": "fundFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4112, + "src": "1059:11:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", + "typeString": "contract IW12FundFactory" + } + }, + "id": 4186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "createFund", + "nodeType": "MemberAccess", + "referencedDeclaration": 4098, + "src": "1059:22:15", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_IW12Fund_$1803_$", + "typeString": "function (address,address,uint256) external returns (contract IW12Fund)" } }, - "id": 4620, + "id": 4190, "isConstant": false, "isLValue": false, "isPure": false, @@ -2421,467 +3937,386 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "573:35:9", + "src": "1059:62:15", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } }, - "id": 4621, - "nodeType": "ExpressionStatement", - "src": "573:35:9" + "nodeType": "VariableDeclarationStatement", + "src": "1043:78:15" }, { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "id": 4206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4192, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4181, + "src": "1132:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4195, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11822, + "src": "1171:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "id": 4627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { "argumentTypes": null, - "id": 4623, - "name": "_rates", + "id": 4196, + "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4608, - "src": "626:6:9", + "referencedDeclaration": 4161, + "src": "1192:12:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4625, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "644:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "636:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "id": 4197, + "name": "wTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4163, + "src": "1218:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4198, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4165, + "src": "1245:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4199, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4167, + "src": "1264:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4200, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4175, + "src": "1291:4:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4201, + "name": "serviceFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4169, + "src": "1309:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4202, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4171, + "src": "1333:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4203, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1367:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + { + "argumentTypes": null, + "id": 4204, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4114, + "src": "1385:5:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 4626, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "636:10:9", + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + }, + { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + ], + "id": 4194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1141:16:15", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_contract$_IW12Fund_$1803_$_t_contract$_IRates_$10014_$returns$_t_contract$_W12Crowdsale_$3302_$", + "typeString": "function (uint256,address,address,uint256,address,address,uint256,uint256,contract IW12Fund,contract IRates) returns (contract W12Crowdsale)" + }, + "typeName": { + "contractScope": null, + "id": 4193, + "name": "W12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3302, + "src": "1145:12:15", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", + "typeString": "contract W12Crowdsale" } - }, - "src": "626:20:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" } - ], - "id": 4622, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "618:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "618:29:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4629, - "nodeType": "ExpressionStatement", - "src": "618:29:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 4632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4630, - "name": "fundFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4590, - "src": "658:11:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", - "typeString": "contract IW12FundFactory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4631, - "name": "_fundFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4606, - "src": "672:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", - "typeString": "contract IW12FundFactory" - } - }, - "src": "658:26:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", - "typeString": "contract IW12FundFactory" - } - }, - "id": 4633, - "nodeType": "ExpressionStatement", - "src": "658:26:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 4636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4634, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4592, - "src": "694:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4635, - "name": "_rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4608, - "src": "702:6:9", + }, + "id": 4205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1141:259:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", + "typeString": "contract W12Crowdsale" } }, - "src": "694:14:9", + "src": "1132:268:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, - "id": 4637, + "id": 4207, "nodeType": "ExpressionStatement", - "src": "694:14:9" - } - ] - }, - "documentation": null, - "id": 4639, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4611, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4604, - "src": "547:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4612, - "modifierName": { - "argumentTypes": null, - "id": 4610, - "name": "Versionable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "535:11:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", - "typeString": "type(contract Versionable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "535:20:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4609, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4604, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 4639, - "src": "476:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4603, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "476:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4606, - "name": "_fundFactory", - "nodeType": "VariableDeclaration", - "scope": 4639, - "src": "490:28:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", - "typeString": "contract IW12FundFactory" - }, - "typeName": { - "contractScope": null, - "id": 4605, - "name": "IW12FundFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4577, - "src": "490:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", - "typeString": "contract IW12FundFactory" - } - }, - "value": null, - "visibility": "internal" + "src": "1132:268:15" }, - { - "constant": false, - "id": 4608, - "name": "_rates", - "nodeType": "VariableDeclaration", - "scope": 4639, - "src": "520:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - }, - "typeName": { - "contractScope": null, - "id": 4607, - "name": "IRates", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "520:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "475:59:9" - }, - "payable": false, - "returnParameters": { - "id": 4613, - "nodeType": "ParameterList", - "parameters": [], - "src": "563:0:9" - }, - "scope": 4716, - "src": "464:251:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4714, - "nodeType": "Block", - "src": "1053:568:9", - "statements": [ - { - "assignments": [ - 4663 - ], - "declarations": [ - { - "constant": false, - "id": 4663, - "name": "fund", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "1063:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - }, - "typeName": { - "contractScope": null, - "id": 4662, - "name": "IW12Fund", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "1063:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4670, - "initialValue": { + { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4666, - "name": "swap", + "id": 4211, + "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4655, - "src": "1102:4:9", + "referencedDeclaration": 4181, + "src": "1429:6:15", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } - }, - { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "expression": { "argumentTypes": null, - "id": 4667, - "name": "serviceWallet", + "id": 4208, + "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4647, - "src": "1108:13:9", + "referencedDeclaration": 4184, + "src": "1411:4:15", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } }, + "id": 4210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setCrowdsale", + "nodeType": "MemberAccess", + "referencedDeclaration": 1774, + "src": "1411:17:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IW12Crowdsale_$1760_$returns$__$", + "typeString": "function (contract IW12Crowdsale) external" + } + }, + "id": 4212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1411:25:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4213, + "nodeType": "ExpressionStatement", + "src": "1411:25:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "id": 4668, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4653, - "src": "1123:17:9", + "arguments": [ + { + "argumentTypes": null, + "id": 4218, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4181, + "src": "1502:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 4217, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1494:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1494:15:15", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } } ], @@ -2890,307 +4325,652 @@ { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 4664, - "name": "fundFactory", + "id": 4214, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1480:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "1480:13:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1480:30:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4221, + "nodeType": "ExpressionStatement", + "src": "1480:30:15" + }, + { + "body": { + "id": 4259, + "nodeType": "Block", + "src": "1630:150:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4234, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4178, + "src": "1652:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 4236, + "indexExpression": { + "argumentTypes": null, + "id": 4235, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "1659:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1652:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1673:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1665:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1665:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1652:23:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4233, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1644:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1644:32:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4242, + "nodeType": "ExpressionStatement", + "src": "1644:32:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4246, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4178, + "src": "1714:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 4248, + "indexExpression": { + "argumentTypes": null, + "id": 4247, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "1721:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1714:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4243, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4181, + "src": "1691:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 4245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addProjectOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1412, + "src": "1691:22:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1691:33:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4250, + "nodeType": "ExpressionStatement", + "src": "1691:33:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4254, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4178, + "src": "1759:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 4256, + "indexExpression": { + "argumentTypes": null, + "id": 4255, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "1766:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1759:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4251, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1738:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addProjectOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1412, + "src": "1738:20:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1738:31:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4258, + "nodeType": "ExpressionStatement", + "src": "1738:31:15" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4226, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "1606:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4227, + "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4590, - "src": "1079:11:9", + "referencedDeclaration": 4178, + "src": "1610:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", - "typeString": "contract IW12FundFactory" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" } }, - "id": 4665, + "id": 4228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "createFund", + "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 4576, - "src": "1079:22:9", + "referencedDeclaration": null, + "src": "1610:13:15", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_IW12Fund_$1261_$", - "typeString": "function (address,address,uint256) external returns (contract IW12Fund)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 4669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1079:62:9", + "src": "1606:17:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "1063:78:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 4685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4671, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4660, - "src": "1152:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4674, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9505, - "src": "1191:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4675, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4641, - "src": "1212:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4676, - "name": "wTokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4643, - "src": "1238:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4677, - "name": "price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4645, - "src": "1265:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4678, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4647, - "src": "1284:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4679, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4655, - "src": "1311:4:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4680, - "name": "serviceFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4649, - "src": "1329:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 4260, + "initializationExpression": { + "assignments": [ + 4223 + ], + "declarations": [ + { + "constant": false, + "id": 4223, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "1594:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - { - "argumentTypes": null, - "id": 4681, - "name": "WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4651, - "src": "1353:20:9", + "typeName": { + "id": 4222, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1594:4:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - { + "value": null, + "visibility": "internal" + } + ], + "id": 4225, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1603:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1594:10:15" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1625:3:15", + "subExpression": { + "argumentTypes": null, + "id": 4230, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "1625:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4232, + "nodeType": "ExpressionStatement", + "src": "1625:3:15" + }, + "nodeType": "ForStatement", + "src": "1590:190:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 4682, - "name": "fund", + "id": 4264, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4663, - "src": "1387:4:9", + "referencedDeclaration": 13441, + "src": "1850:3:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - { - "argumentTypes": null, - "id": 4683, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4592, - "src": "1405:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - }, - { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - ], - "id": 4673, + "id": 4265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1161:16:9", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1850:10:15", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_contract$_IW12Fund_$1261_$_t_contract$_IRates_$7279_$returns$_t_contract$_W12Crowdsale_$3279_$", - "typeString": "function (uint256,address,address,uint256,address,address,uint256,uint256,contract IW12Fund,contract IRates) returns (contract W12Crowdsale)" - }, - "typeName": { - "contractScope": null, - "id": 4672, - "name": "W12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3279, - "src": "1165:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", - "typeString": "contract W12Crowdsale" - } + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4261, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1836:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } }, - "id": 4684, + "id": 4263, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1161:259:9", + "memberName": "addAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "1836:13:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", - "typeString": "contract W12Crowdsale" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" } }, - "src": "1152:268:9", + "id": 4266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1836:25:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 4686, + "id": 4267, "nodeType": "ExpressionStatement", - "src": "1152:268:9" + "src": "1836:25:15" }, { "expression": { @@ -3198,12 +4978,28 @@ "arguments": [ { "argumentTypes": null, - "id": 4690, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4657, - "src": "1456:5:9", + "expression": { + "argumentTypes": null, + "id": 4271, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "1892:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1892:10:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3219,32 +5015,32 @@ ], "expression": { "argumentTypes": null, - "id": 4687, - "name": "result", + "id": 4268, + "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4660, - "src": "1431:6:9", + "referencedDeclaration": 4184, + "src": "1871:4:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } }, - "id": 4689, + "id": 4270, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transferOwnership", + "memberName": "transferPrimary", "nodeType": "MemberAccess", - "referencedDeclaration": 1223, - "src": "1431:24:9", + "referencedDeclaration": 1789, + "src": "1871:20:15", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 4691, + "id": 4273, "isConstant": false, "isLValue": false, "isPure": false, @@ -3252,69 +5048,187 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1431:31:9", + "src": "1871:32:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4692, + "id": 4274, "nodeType": "ExpressionStatement", - "src": "1431:31:9" + "src": "1871:32:15" }, { "expression": { "argumentTypes": null, - "arguments": [ - { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "argumentTypes": null, - "id": 4696, - "name": "result", + "id": 4275, + "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4660, - "src": "1491:6:9", + "referencedDeclaration": 4184, + "src": "1913:4:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "renounceAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1369, + "src": "1913:18:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 4278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1913:20:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4279, + "nodeType": "ExpressionStatement", + "src": "1913:20:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4280, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1943:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "renounceProjectOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1415, + "src": "1943:25:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 4283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1943:27:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4284, + "nodeType": "ExpressionStatement", + "src": "1943:27:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4288, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2043:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2043:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { "argumentTypes": null, - "id": 4693, - "name": "fund", + "id": 4285, + "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4663, - "src": "1473:4:9", + "referencedDeclaration": 4181, + "src": "2027:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, - "id": 4695, + "id": 4287, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "setCrowdsale", + "memberName": "addAdmin", "nodeType": "MemberAccess", - "referencedDeclaration": 1232, - "src": "1473:17:9", + "referencedDeclaration": 1366, + "src": "2027:15:15", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IW12Crowdsale_$1224_$returns$__$", - "typeString": "function (contract IW12Crowdsale) external" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" } }, - "id": 4697, + "id": 4290, "isConstant": false, "isLValue": false, "isPure": false, @@ -3322,15 +5236,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1473:25:9", + "src": "2027:27:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4698, + "id": 4291, "nodeType": "ExpressionStatement", - "src": "1473:25:9" + "src": "2027:27:15" }, { "expression": { @@ -3338,12 +5252,28 @@ "arguments": [ { "argumentTypes": null, - "id": 4702, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4657, - "src": "1531:5:9", + "expression": { + "argumentTypes": null, + "id": 4295, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2087:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2087:10:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3359,32 +5289,32 @@ ], "expression": { "argumentTypes": null, - "id": 4699, - "name": "fund", + "id": 4292, + "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4663, - "src": "1508:4:9", + "referencedDeclaration": 4181, + "src": "2064:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, - "id": 4701, + "id": 4294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transferOwnership", + "memberName": "transferPrimary", "nodeType": "MemberAccess", - "referencedDeclaration": 1247, - "src": "1508:22:9", + "referencedDeclaration": 1759, + "src": "2064:22:15", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 4703, + "id": 4297, "isConstant": false, "isLValue": false, "isPure": false, @@ -3392,41 +5322,130 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1508:29:9", + "src": "2064:34:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4704, + "id": 4298, "nodeType": "ExpressionStatement", - "src": "1508:29:9" + "src": "2064:34:15" }, { - "eventCall": { + "expression": { "argumentTypes": null, - "arguments": [ - { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "argumentTypes": null, - "id": 4706, - "name": "owner", + "id": 4299, + "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4657, - "src": "1570:5:9", + "referencedDeclaration": 4181, + "src": "2108:6:15", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 4301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "renounceAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1369, + "src": "2108:20:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 4302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2108:22:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4303, + "nodeType": "ExpressionStatement", + "src": "2108:22:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4304, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4181, + "src": "2140:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, + "id": 4306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "renounceProjectOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1415, + "src": "2140:27:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 4307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2140:29:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4308, + "nodeType": "ExpressionStatement", + "src": "2140:29:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "id": 4707, + "id": 4310, "name": "wTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4643, - "src": "1577:13:9", + "referencedDeclaration": 4163, + "src": "2202:13:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3437,14 +5456,14 @@ "arguments": [ { "argumentTypes": null, - "id": 4709, + "id": 4312, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4660, - "src": "1600:6:9", + "referencedDeclaration": 4181, + "src": "2225:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } } @@ -3452,24 +5471,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } ], - "id": 4708, + "id": 4311, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1592:7:9", + "src": "2217:7:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4710, + "id": 4313, "isConstant": false, "isLValue": false, "isPure": false, @@ -3477,7 +5496,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1592:15:9", + "src": "2217:15:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3485,15 +5504,53 @@ }, { "argumentTypes": null, - "id": 4711, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4663, - "src": "1609:4:9", + "arguments": [ + { + "argumentTypes": null, + "id": 4315, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "2242:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + ], + "id": 4314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2234:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2234:13:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_address", + "typeString": "address" } } ], @@ -3510,24 +5567,20 @@ { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" } ], - "id": 4705, + "id": 4309, "name": "CrowdsaleCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4602, - "src": "1553:16:9", + "referencedDeclaration": 4122, + "src": "2185:16:15", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address,address)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" } }, - "id": 4712, + "id": 4317, "isConstant": false, "isLValue": false, "isPure": false, @@ -3535,20 +5588,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1553:61:9", + "src": "2185:63:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4713, + "id": 4318, "nodeType": "EmitStatement", - "src": "1548:66:9" + "src": "2180:68:15" } ] }, "documentation": null, - "id": 4715, + "id": 4320, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3556,16 +5609,16 @@ "name": "createCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 4658, + "id": 4179, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4641, + "id": 4161, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "755:20:9", + "scope": 4320, + "src": "732:20:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3573,10 +5626,10 @@ "typeString": "address" }, "typeName": { - "id": 4640, + "id": 4160, "name": "address", "nodeType": "ElementaryTypeName", - "src": "755:7:9", + "src": "732:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3587,11 +5640,11 @@ }, { "constant": false, - "id": 4643, + "id": 4163, "name": "wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "785:21:9", + "scope": 4320, + "src": "762:21:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3599,10 +5652,10 @@ "typeString": "address" }, "typeName": { - "id": 4642, + "id": 4162, "name": "address", "nodeType": "ElementaryTypeName", - "src": "785:7:9", + "src": "762:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3613,11 +5666,11 @@ }, { "constant": false, - "id": 4645, + "id": 4165, "name": "price", "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "816:10:9", + "scope": 4320, + "src": "793:10:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3625,10 +5678,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4644, + "id": 4164, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "816:4:9", + "src": "793:4:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3639,11 +5692,11 @@ }, { "constant": false, - "id": 4647, + "id": 4167, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "836:21:9", + "scope": 4320, + "src": "813:21:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3651,10 +5704,10 @@ "typeString": "address" }, "typeName": { - "id": 4646, + "id": 4166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "836:7:9", + "src": "813:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3665,11 +5718,11 @@ }, { "constant": false, - "id": 4649, + "id": 4169, "name": "serviceFee", "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "867:15:9", + "scope": 4320, + "src": "844:15:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3677,10 +5730,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4648, + "id": 4168, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "867:4:9", + "src": "844:4:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3691,11 +5744,11 @@ }, { "constant": false, - "id": 4651, + "id": 4171, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "892:25:9", + "scope": 4320, + "src": "869:25:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3703,10 +5756,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4650, + "id": 4170, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "892:4:9", + "src": "869:4:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3717,11 +5770,11 @@ }, { "constant": false, - "id": 4653, + "id": 4173, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "927:22:9", + "scope": 4320, + "src": "904:22:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3729,10 +5782,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4652, + "id": 4172, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "927:4:9", + "src": "904:4:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3743,11 +5796,11 @@ }, { "constant": false, - "id": 4655, + "id": 4175, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "959:12:9", + "scope": 4320, + "src": "936:12:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3755,10 +5808,10 @@ "typeString": "address" }, "typeName": { - "id": 4654, + "id": 4174, "name": "address", "nodeType": "ElementaryTypeName", - "src": "959:7:9", + "src": "936:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3769,60 +5822,70 @@ }, { "constant": false, - "id": 4657, - "name": "owner", + "id": 4178, + "name": "owners", "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "981:13:9", + "scope": 4320, + "src": "958:16:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" }, "typeName": { - "id": 4656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "981:7:9", + "baseType": { + "id": 4176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "958:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4177, + "length": null, + "nodeType": "ArrayTypeName", + "src": "958:9:15", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], - "src": "745:255:9" + "src": "722:258:15" }, "payable": false, "returnParameters": { - "id": 4661, + "id": 4182, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4660, + "id": 4181, "name": "result", "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "1027:20:9", + "scope": 4320, + "src": "1007:20:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 4659, + "id": 4180, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "1027:13:9", + "referencedDeclaration": 1760, + "src": "1007:13:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, @@ -3830,20 +5893,20 @@ "visibility": "internal" } ], - "src": "1026:22:9" + "src": "1006:22:15" }, - "scope": 4716, - "src": "721:900:9", + "scope": 4321, + "src": "698:1557:15", "stateMutability": "nonpayable", - "superFunction": 4561, + "superFunction": 4083, "visibility": "external" } ], - "scope": 4717, - "src": "202:1421:9" + "scope": 4322, + "src": "202:2055:15" } ], - "src": "0:1624:9" + "src": "0:2258:15" }, "compiler": { "name": "solc", @@ -3853,13 +5916,16 @@ "4": { "events": {}, "links": { - "Percent": "0x0b4828a3e62b5ae0029d86d76fa68887ea9748ec", - "Utils": "0x3a1732ce8e94619c9daf43a86323077ce770b9f4" + "Percent": "0x04596c9a67ad5870686616d58c2a8198f8b94b34", + "Utils": "0x3a1732ce8e94619c9daf43a86323077ce770b9f4", + "PaymentMethods": "0x075acd6e2c3889534b118c25e987a7c54e310334", + "PurchaseProcessing": "0xc188f0bc72e1a4f928fcf81132dc444bd0846871", + "Crowdsale": "0x7e8264c85babb6c0b41734622ac220c2bf7d57a0" }, - "address": "0x126386a647851d6419bd5afae5cd563f66b99f10", - "transactionHash": "0xc68f95c26c76c873536d950998173327030df5afb53cbcd17e1959a14c0c2657" + "address": "0x7d930832111f2b268967de1b579f7474efb638dd", + "transactionHash": "0xbb646c3cf142e7652d3bdabbeecd60e25fa81d81f55bbf465ddbbdb40bb49a94" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:56:22.020Z" + "updatedAt": "2018-12-06T13:20:48.547Z" } \ No newline at end of file diff --git a/build/contracts/W12CrowdsaleFundStub.json b/build/contracts/W12CrowdsaleFundStub.json index 83d77bec..a26d761e 100644 --- a/build/contracts/W12CrowdsaleFundStub.json +++ b/build/contracts/W12CrowdsaleFundStub.json @@ -47,11 +47,123 @@ "constant": false, "inputs": [ { - "name": "newOwner", + "name": "_address", "type": "address" } ], - "name": "transferOwnership", + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -136,24 +248,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061023f806100206000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166323bffccc8114610087578063483a20b2146100875780635773caaf146100aa578063acb3c07314610087578063d0baf2f5146100cb578063d3f19508146100eb578063f2fde38b14610087575b600080fd5b34801561009357600080fd5b506100a8600160a060020a036004351661013d565b005b3480156100b657600080fd5b506100a8600160a060020a0360043516610140565b6100a8600160a060020a036004351660243560443560643560843561017a565b3480156100f757600080fd5b506101006101ed565b60408051600160a060020a0390971687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b50565b604051600160a060020a03821690303180156108fc02916000818181858888f19350505050158015610176573d6000803e3d6000fd5b5050565b6040805160c081018252600160a060020a039096168087526020870186905290860184905260608601839052608086018290523460a09096018690526000805473ffffffffffffffffffffffffffffffffffffffff19169091179055600193909355600291909155600355600455600555565b600054600154600254600354600454600554600160a060020a03909516949091929394955600a165627a7a72305820a24b83e3602dbec84dea6db52d93775e04d9166443a4247fb543aa4cd3a360d40029", - "deployedBytecode": "0x6080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166323bffccc8114610087578063483a20b2146100875780635773caaf146100aa578063acb3c07314610087578063d0baf2f5146100cb578063d3f19508146100eb578063f2fde38b14610087575b600080fd5b34801561009357600080fd5b506100a8600160a060020a036004351661013d565b005b3480156100b657600080fd5b506100a8600160a060020a0360043516610140565b6100a8600160a060020a036004351660243560443560643560843561017a565b3480156100f757600080fd5b506101006101ed565b60408051600160a060020a0390971687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b50565b604051600160a060020a03821690303180156108fc02916000818181858888f19350505050158015610176573d6000803e3d6000fd5b5050565b6040805160c081018252600160a060020a039096168087526020870186905290860184905260608601839052608086018290523460a09096018690526000805473ffffffffffffffffffffffffffffffffffffffff19169091179055600193909355600291909155600355600455600555565b600054600154600254600354600454600554600160a060020a03909516949091929394955600a165627a7a72305820a24b83e3602dbec84dea6db52d93775e04d9166443a4247fb543aa4cd3a360d40029", - "sourceMap": "197:1499:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;197:1499:17;;;;;;;", - "deployedSourceMap": "197:1499:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;311:61;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;311:61:17;-1:-1:-1;;;;;311:61:17;;;;;;;1596:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1596:98:17;-1:-1:-1;;;;;1596:98:17;;;;;1161:429;;-1:-1:-1;;;;;1161:429:17;;;;;;;;;;;;;729:426;;8:9:-1;5:2;;;30:1;27;20:12;5:2;729:426:17;;;;;;;;-1:-1:-1;;;;;729:426:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;311:61;;:::o;1596:98::-;1653:34;;-1:-1:-1;;;;;1653:11:17;;;1673:4;1665:21;1653:34;;;;;;;;;1665:21;1653:11;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1653:34:17;1596:98;:::o;1161:429::-;1364:219;;;;;;;;-1:-1:-1;;;;;1364:219:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1563:9;1364:219;;;;;;;-1:-1:-1;1335:248:17;;-1:-1:-1;;1335:248:17;;;;;;;;;;;;;;;;;;;;;;1161:429::o;729:426::-;791:7;864:35;;913:38;965:33;;1012:31;;1057:34;;1105:33;;-1:-1:-1;;;;;864:35:17;;;;729:426;;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"../../rates/IRates.sol\";\nimport \"../../crowdsale/W12Fund.sol\";\nimport \"../../token/IWToken.sol\";\n\n\ncontract W12CrowdsaleFundStub is IW12Fund {\n\n function setCrowdsale(IW12Crowdsale _crowdsale) external {}\n\n function setServiceWallet(address _serviceWallet) external {}\n\n function setSwap(address _swap) external {}\n\n function transferOwnership(address newOwner) external {}\n\n struct RecordPurchaseCallResult {\n address investor;\n uint tokenAmount;\n bytes32 symbol;\n uint cost;\n uint costUSD;\n uint _value;\n }\n\n RecordPurchaseCallResult __recordPurchaseCallResult;\n function _getRecordPurchaseCallResult() external view returns(address, uint, bytes32, uint, uint, uint) {\n return (\n __recordPurchaseCallResult.investor,\n __recordPurchaseCallResult.tokenAmount,\n __recordPurchaseCallResult.symbol,\n __recordPurchaseCallResult.cost,\n __recordPurchaseCallResult.costUSD,\n __recordPurchaseCallResult._value\n );\n }\n\n function recordPurchase(\n address investor,\n uint tokenAmount,\n bytes32 symbol,\n uint cost,\n uint costUSD\n ) external payable {\n __recordPurchaseCallResult = RecordPurchaseCallResult({\n investor: investor,\n tokenAmount: tokenAmount,\n symbol: symbol,\n cost: cost,\n costUSD: costUSD,\n _value: msg.value\n });\n }\n\n function _outEther(address to) external {\n return to.transfer(address(this).balance);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b506102e9806100206000396000f3006080604052600436106100da5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631785f53c81146100df5780632348238c146100df57806323bffccc146100df57806324d7806c146101025780633bcdb164146100df578063483a20b2146100df5780635773caaf1461013757806370480275146100df5780638bad0c0a14610158578063acb3c073146100df578063d0934d6114610158578063d0baf2f51461016d578063d155790b146100df578063d3f195081461018d578063d8e9ce6414610102575b600080fd5b3480156100eb57600080fd5b50610100600160a060020a03600435166101df565b005b34801561010e57600080fd5b50610123600160a060020a03600435166101e2565b604080519115158252519081900360200190f35b34801561014357600080fd5b50610100600160a060020a03600435166101e8565b34801561016457600080fd5b50610100610222565b610100600160a060020a0360043516602435604435606435608435610224565b34801561019957600080fd5b506101a2610297565b60408051600160a060020a0390971687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b50565b50600090565b604051600160a060020a03821690303180156108fc02916000818181858888f1935050505015801561021e573d6000803e3d6000fd5b5050565b565b6040805160c081018252600160a060020a039096168087526020870186905290860184905260608601839052608086018290523460a09096018690526000805473ffffffffffffffffffffffffffffffffffffffff19169091179055600193909355600291909155600355600455600555565b600054600154600254600354600454600554600160a060020a03909516949091929394955600a165627a7a7230582051f845d7e8983a9d2ff59828394efede8a7bd067e5e508d186aebf9aeb3af8900029", + "deployedBytecode": "0x6080604052600436106100da5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631785f53c81146100df5780632348238c146100df57806323bffccc146100df57806324d7806c146101025780633bcdb164146100df578063483a20b2146100df5780635773caaf1461013757806370480275146100df5780638bad0c0a14610158578063acb3c073146100df578063d0934d6114610158578063d0baf2f51461016d578063d155790b146100df578063d3f195081461018d578063d8e9ce6414610102575b600080fd5b3480156100eb57600080fd5b50610100600160a060020a03600435166101df565b005b34801561010e57600080fd5b50610123600160a060020a03600435166101e2565b604080519115158252519081900360200190f35b34801561014357600080fd5b50610100600160a060020a03600435166101e8565b34801561016457600080fd5b50610100610222565b610100600160a060020a0360043516602435604435606435608435610224565b34801561019957600080fd5b506101a2610297565b60408051600160a060020a0390971687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b50565b50600090565b604051600160a060020a03821690303180156108fc02916000818181858888f1935050505015801561021e573d6000803e3d6000fd5b5050565b565b6040805160c081018252600160a060020a039096168087526020870186905290860184905260608601839052608086018290523460a09096018690526000805473ffffffffffffffffffffffffffffffffffffffff19169091179055600193909355600291909155600355600455600555565b600054600154600254600354600454600554600160a060020a03909516949091929394955600a165627a7a7230582051f845d7e8983a9d2ff59828394efede8a7bd067e5e508d186aebf9aeb3af8900029", + "sourceMap": "133:1947:25:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;133:1947:25;;;;;;;", + "deployedSourceMap": "133:1947:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;580:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;580:47:25;-1:-1:-1;;;;;580:47:25;;;;;;;421:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;421:63:25;-1:-1:-1;;;;;421:63:25;;;;;;;;;;;;;;;;;;;;;;;1980:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1980:98:25;-1:-1:-1;;;;;1980:98:25;;;;;540:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;540:34:25;;;;1545:429;;-1:-1:-1;;;;;1545:429:25;;;;;;;;;;;;;1113:426;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1113:426:25;;;;;;;;-1:-1:-1;;;;;1113:426:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;580:47;;:::o;421:63::-;-1:-1:-1;476:4:25;;421:63::o;1980:98::-;2037:34;;-1:-1:-1;;;;;2037:11:25;;;2057:4;2049:21;2037:34;;;;;;;;;2049:21;2037:11;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2037:34:25;1980:98;:::o;540:34::-;:::o;1545:429::-;1748:219;;;;;;;;-1:-1:-1;;;;;1748:219:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1947:9;1748:219;;;;;;;-1:-1:-1;1719:248:25;;-1:-1:-1;;1719:248:25;;;;;;;;;;;;;;;;;;;;;;1545:429::o;1113:426::-;1175:7;1248:35;;1297:38;1349:33;;1396:31;;1441:34;;1489:33;;-1:-1:-1;;;;;1248:35:25;;;;1113:426;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"../../rates/IRates.sol\";\nimport \"../../crowdsale/W12Fund.sol\";\nimport \"../../token/IWToken.sol\";\n\n\ncontract W12CrowdsaleFundStub is IW12Fund {\n\n function setCrowdsale(IW12Crowdsale _crowdsale) external {}\n\n function setServiceWallet(address _serviceWallet) external {}\n\n function setSwap(address _swap) external {}\n\n function transferPrimary(address _address) public {}\n\n function isAdmin(address account) public view returns (bool) {}\n\n function addAdmin(address account) public {}\n\n function renounceAdmin() public {}\n\n function removeAdmin(address account) public {}\n\n function isProjectOwner(address account) public view returns (bool) {}\n\n function addProjectOwner(address account) public {}\n\n function renounceProjectOwner() public {}\n\n function removeProjectOwner(address account) public {}\n\n struct RecordPurchaseCallResult {\n address investor;\n uint tokenAmount;\n bytes32 symbol;\n uint cost;\n uint costUSD;\n uint _value;\n }\n\n RecordPurchaseCallResult __recordPurchaseCallResult;\n function _getRecordPurchaseCallResult() external view returns(address, uint, bytes32, uint, uint, uint) {\n return (\n __recordPurchaseCallResult.investor,\n __recordPurchaseCallResult.tokenAmount,\n __recordPurchaseCallResult.symbol,\n __recordPurchaseCallResult.cost,\n __recordPurchaseCallResult.costUSD,\n __recordPurchaseCallResult._value\n );\n }\n\n function recordPurchase(\n address investor,\n uint tokenAmount,\n bytes32 symbol,\n uint cost,\n uint costUSD\n ) external payable {\n __recordPurchaseCallResult = RecordPurchaseCallResult({\n investor: investor,\n tokenAmount: tokenAmount,\n symbol: symbol,\n cost: cost,\n costUSD: costUSD,\n _value: msg.value\n });\n }\n\n function _outEther(address to) external {\n return to.transfer(address(this).balance);\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleFundStub.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleFundStub.sol", "exportedSymbols": { "W12CrowdsaleFundStub": [ - 6442 + 8543 ] }, - "id": 6443, + "id": 8544, "nodeType": "SourceUnit", "nodes": [ { - "id": 6326, + "id": 8380, "literals": [ "solidity", "^", @@ -161,49 +273,38 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:17" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 6327, - "nodeType": "ImportDirective", - "scope": 6443, - "sourceUnit": 10212, - "src": "26:63:17", - "symbolAliases": [], - "unitAlias": "" + "src": "0:24:25" }, { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "file": "../../rates/IRates.sol", - "id": 6328, + "id": 8381, "nodeType": "ImportDirective", - "scope": 6443, - "sourceUnit": 7280, - "src": "90:32:17", + "scope": 8544, + "sourceUnit": 10015, + "src": "26:32:25", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", "file": "../../crowdsale/W12Fund.sol", - "id": 6329, + "id": 8382, "nodeType": "ImportDirective", - "scope": 6443, - "sourceUnit": 4536, - "src": "123:37:17", + "scope": 8544, + "sourceUnit": 4057, + "src": "59:37:25", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", "file": "../../token/IWToken.sol", - "id": 6330, + "id": 8383, "nodeType": "ImportDirective", - "scope": 6443, - "sourceUnit": 7895, - "src": "161:33:17", + "scope": 8544, + "sourceUnit": 10486, + "src": "97:33:25", "symbolAliases": [], "unitAlias": "" }, @@ -213,44 +314,48 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6331, + "id": 8384, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "230:8:17", + "referencedDeclaration": 1803, + "src": "166:8:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, - "id": 6332, + "id": 8385, "nodeType": "InheritanceSpecifier", - "src": "230:8:17" + "src": "166:8:25" } ], "contractDependencies": [ - 1261 + 1375, + 1421, + 1803 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6442, + "id": 8543, "linearizedBaseContracts": [ - 6442, - 1261 + 8543, + 1803, + 1421, + 1375 ], "name": "W12CrowdsaleFundStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 6337, + "id": 8390, "nodeType": "Block", - "src": "303:2:17", + "src": "239:2:25", "statements": [] }, "documentation": null, - "id": 6338, + "id": 8391, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -258,31 +363,31 @@ "name": "setCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 6335, + "id": 8388, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6334, + "id": 8387, "name": "_crowdsale", "nodeType": "VariableDeclaration", - "scope": 6338, - "src": "268:24:17", + "scope": 8391, + "src": "204:24:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 6333, + "id": 8386, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "268:13:17", + "referencedDeclaration": 1760, + "src": "204:13:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, @@ -290,30 +395,30 @@ "visibility": "internal" } ], - "src": "267:26:17" + "src": "203:26:25" }, "payable": false, "returnParameters": { - "id": 6336, + "id": 8389, "nodeType": "ParameterList", "parameters": [], - "src": "303:0:17" + "src": "239:0:25" }, - "scope": 6442, - "src": "246:59:17", + "scope": 8543, + "src": "182:59:25", "stateMutability": "nonpayable", - "superFunction": 1232, + "superFunction": 1774, "visibility": "external" }, { "body": { - "id": 6343, + "id": 8396, "nodeType": "Block", - "src": "370:2:17", + "src": "306:2:25", "statements": [] }, "documentation": null, - "id": 6344, + "id": 8397, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -321,16 +426,16 @@ "name": "setServiceWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 6341, + "id": 8394, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6340, + "id": 8393, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 6344, - "src": "337:22:17", + "scope": 8397, + "src": "273:22:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -338,10 +443,10 @@ "typeString": "address" }, "typeName": { - "id": 6339, + "id": 8392, "name": "address", "nodeType": "ElementaryTypeName", - "src": "337:7:17", + "src": "273:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -351,30 +456,30 @@ "visibility": "internal" } ], - "src": "336:24:17" + "src": "272:24:25" }, "payable": false, "returnParameters": { - "id": 6342, + "id": 8395, "nodeType": "ParameterList", "parameters": [], - "src": "370:0:17" + "src": "306:0:25" }, - "scope": 6442, - "src": "311:61:17", + "scope": 8543, + "src": "247:61:25", "stateMutability": "nonpayable", - "superFunction": 1237, + "superFunction": 1779, "visibility": "external" }, { "body": { - "id": 6349, + "id": 8402, "nodeType": "Block", - "src": "419:2:17", + "src": "355:2:25", "statements": [] }, "documentation": null, - "id": 6350, + "id": 8403, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -382,16 +487,16 @@ "name": "setSwap", "nodeType": "FunctionDefinition", "parameters": { - "id": 6347, + "id": 8400, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6346, + "id": 8399, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 6350, - "src": "395:13:17", + "scope": 8403, + "src": "331:13:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -399,10 +504,10 @@ "typeString": "address" }, "typeName": { - "id": 6345, + "id": 8398, "name": "address", "nodeType": "ElementaryTypeName", - "src": "395:7:17", + "src": "331:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -412,47 +517,47 @@ "visibility": "internal" } ], - "src": "394:15:17" + "src": "330:15:25" }, "payable": false, "returnParameters": { - "id": 6348, + "id": 8401, "nodeType": "ParameterList", "parameters": [], - "src": "419:0:17" + "src": "355:0:25" }, - "scope": 6442, - "src": "378:43:17", + "scope": 8543, + "src": "314:43:25", "stateMutability": "nonpayable", - "superFunction": 1242, + "superFunction": 1784, "visibility": "external" }, { "body": { - "id": 6355, + "id": 8408, "nodeType": "Block", - "src": "481:2:17", + "src": "413:2:25", "statements": [] }, "documentation": null, - "id": 6356, + "id": 8409, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "transferOwnership", + "name": "transferPrimary", "nodeType": "FunctionDefinition", "parameters": { - "id": 6353, + "id": 8406, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6352, - "name": "newOwner", + "id": 8405, + "name": "_address", "nodeType": "VariableDeclaration", - "scope": 6356, - "src": "454:16:17", + "scope": 8409, + "src": "388:16:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -460,10 +565,10 @@ "typeString": "address" }, "typeName": { - "id": 6351, + "id": 8404, "name": "address", "nodeType": "ElementaryTypeName", - "src": "454:7:17", + "src": "388:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -473,136 +578,624 @@ "visibility": "internal" } ], - "src": "453:18:17" + "src": "387:18:25" }, "payable": false, "returnParameters": { - "id": 6354, + "id": 8407, "nodeType": "ParameterList", "parameters": [], - "src": "481:0:17" + "src": "413:0:25" }, - "scope": 6442, - "src": "427:56:17", + "scope": 8543, + "src": "363:52:25", "stateMutability": "nonpayable", - "superFunction": 1247, - "visibility": "external" + "superFunction": 1789, + "visibility": "public" }, { - "canonicalName": "W12CrowdsaleFundStub.RecordPurchaseCallResult", - "id": 6369, - "members": [ - { - "constant": false, - "id": 6358, - "name": "investor", - "nodeType": "VariableDeclaration", - "scope": 6369, - "src": "531:16:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6357, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "531:7:17", + "body": { + "id": 8416, + "nodeType": "Block", + "src": "482:2:25", + "statements": [] + }, + "documentation": null, + "id": 8417, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8412, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8411, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8417, + "src": "438:15:25", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6360, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 6369, - "src": "557:16:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6359, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "557:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6362, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 6369, - "src": "583:14:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6361, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "583:7:17", + }, + "typeName": { + "id": 8410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "438:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "437:17:25" + }, + "payable": false, + "returnParameters": { + "id": 8415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8414, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8417, + "src": "476:4:25", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6364, - "name": "cost", - "nodeType": "VariableDeclaration", - "scope": 6369, - "src": "607:9:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6363, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "607:4:17", + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8413, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "476:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "475:6:25" + }, + "scope": 8543, + "src": "421:63:25", + "stateMutability": "view", + "superFunction": 1361, + "visibility": "public" + }, + { + "body": { + "id": 8422, + "nodeType": "Block", + "src": "532:2:25", + "statements": [] + }, + "documentation": null, + "id": 8423, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8420, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8419, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8423, + "src": "508:15:25", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8418, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "508:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "507:17:25" + }, + "payable": false, + "returnParameters": { + "id": 8421, + "nodeType": "ParameterList", + "parameters": [], + "src": "532:0:25" + }, + "scope": 8543, + "src": "490:44:25", + "stateMutability": "nonpayable", + "superFunction": 1366, + "visibility": "public" + }, + { + "body": { + "id": 8426, + "nodeType": "Block", + "src": "572:2:25", + "statements": [] + }, + "documentation": null, + "id": 8427, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8424, + "nodeType": "ParameterList", + "parameters": [], + "src": "562:2:25" + }, + "payable": false, + "returnParameters": { + "id": 8425, + "nodeType": "ParameterList", + "parameters": [], + "src": "572:0:25" + }, + "scope": 8543, + "src": "540:34:25", + "stateMutability": "nonpayable", + "superFunction": 1369, + "visibility": "public" + }, + { + "body": { + "id": 8432, + "nodeType": "Block", + "src": "625:2:25", + "statements": [] + }, + "documentation": null, + "id": 8433, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8430, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8429, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8433, + "src": "601:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "601:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "600:17:25" + }, + "payable": false, + "returnParameters": { + "id": 8431, + "nodeType": "ParameterList", + "parameters": [], + "src": "625:0:25" + }, + "scope": 8543, + "src": "580:47:25", + "stateMutability": "nonpayable", + "superFunction": 1374, + "visibility": "public" + }, + { + "body": { + "id": 8440, + "nodeType": "Block", + "src": "701:2:25", + "statements": [] + }, + "documentation": null, + "id": 8441, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8436, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8435, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8441, + "src": "657:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8434, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "657:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "656:17:25" + }, + "payable": false, + "returnParameters": { + "id": 8439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8438, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8441, + "src": "695:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8437, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "695:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "694:6:25" + }, + "scope": 8543, + "src": "633:70:25", + "stateMutability": "view", + "superFunction": 1407, + "visibility": "public" + }, + { + "body": { + "id": 8446, + "nodeType": "Block", + "src": "758:2:25", + "statements": [] + }, + "documentation": null, + "id": 8447, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8443, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8447, + "src": "734:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "734:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "733:17:25" + }, + "payable": false, + "returnParameters": { + "id": 8445, + "nodeType": "ParameterList", + "parameters": [], + "src": "758:0:25" + }, + "scope": 8543, + "src": "709:51:25", + "stateMutability": "nonpayable", + "superFunction": 1412, + "visibility": "public" + }, + { + "body": { + "id": 8450, + "nodeType": "Block", + "src": "805:2:25", + "statements": [] + }, + "documentation": null, + "id": 8451, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8448, + "nodeType": "ParameterList", + "parameters": [], + "src": "795:2:25" + }, + "payable": false, + "returnParameters": { + "id": 8449, + "nodeType": "ParameterList", + "parameters": [], + "src": "805:0:25" + }, + "scope": 8543, + "src": "766:41:25", + "stateMutability": "nonpayable", + "superFunction": 1415, + "visibility": "public" + }, + { + "body": { + "id": 8456, + "nodeType": "Block", + "src": "865:2:25", + "statements": [] + }, + "documentation": null, + "id": 8457, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8454, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8453, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "841:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8452, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "841:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "840:17:25" + }, + "payable": false, + "returnParameters": { + "id": 8455, + "nodeType": "ParameterList", + "parameters": [], + "src": "865:0:25" + }, + "scope": 8543, + "src": "813:54:25", + "stateMutability": "nonpayable", + "superFunction": 1420, + "visibility": "public" + }, + { + "canonicalName": "W12CrowdsaleFundStub.RecordPurchaseCallResult", + "id": 8470, + "members": [ + { + "constant": false, + "id": 8459, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 8470, + "src": "915:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8458, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "915:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, "value": null, "visibility": "internal" }, { "constant": false, - "id": 6366, + "id": 8461, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 8470, + "src": "941:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8460, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "941:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8463, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 8470, + "src": "967:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8462, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "967:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8465, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 8470, + "src": "991:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8464, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "991:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8467, "name": "costUSD", "nodeType": "VariableDeclaration", - "scope": 6369, - "src": "626:12:17", + "scope": 8470, + "src": "1010:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -610,10 +1203,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6365, + "id": 8466, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "626:4:17", + "src": "1010:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -624,11 +1217,11 @@ }, { "constant": false, - "id": 6368, + "id": 8469, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 6369, - "src": "648:11:17", + "scope": 8470, + "src": "1032:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -636,10 +1229,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6367, + "id": 8468, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "648:4:17", + "src": "1032:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -651,32 +1244,32 @@ ], "name": "RecordPurchaseCallResult", "nodeType": "StructDefinition", - "scope": 6442, - "src": "489:177:17", + "scope": 8543, + "src": "873:177:25", "visibility": "public" }, { "constant": false, - "id": 6371, + "id": 8472, "name": "__recordPurchaseCallResult", "nodeType": "VariableDeclaration", - "scope": 6442, - "src": "672:51:17", + "scope": 8543, + "src": "1056:51:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult" }, "typeName": { "contractScope": null, - "id": 6370, + "id": 8471, "name": "RecordPurchaseCallResult", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6369, - "src": "672:24:17", + "referencedDeclaration": 8470, + "src": "1056:24:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage_ptr", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage_ptr", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult" } }, @@ -685,9 +1278,9 @@ }, { "body": { - "id": 6400, + "id": 8501, "nodeType": "Block", - "src": "833:322:17", + "src": "1217:322:25", "statements": [ { "expression": { @@ -697,26 +1290,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6386, + "id": 8487, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "864:26:17", + "referencedDeclaration": 8472, + "src": "1248:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6387, + "id": 8488, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "investor", "nodeType": "MemberAccess", - "referencedDeclaration": 6358, - "src": "864:35:17", + "referencedDeclaration": 8459, + "src": "1248:35:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -726,26 +1319,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6388, + "id": 8489, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "913:26:17", + "referencedDeclaration": 8472, + "src": "1297:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6389, + "id": 8490, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 6360, - "src": "913:38:17", + "referencedDeclaration": 8461, + "src": "1297:38:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -755,26 +1348,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6390, + "id": 8491, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "965:26:17", + "referencedDeclaration": 8472, + "src": "1349:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6391, + "id": 8492, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "symbol", "nodeType": "MemberAccess", - "referencedDeclaration": 6362, - "src": "965:33:17", + "referencedDeclaration": 8463, + "src": "1349:33:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -784,26 +1377,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6392, + "id": 8493, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "1012:26:17", + "referencedDeclaration": 8472, + "src": "1396:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6393, + "id": 8494, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "cost", "nodeType": "MemberAccess", - "referencedDeclaration": 6364, - "src": "1012:31:17", + "referencedDeclaration": 8465, + "src": "1396:31:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -813,26 +1406,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6394, + "id": 8495, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "1057:26:17", + "referencedDeclaration": 8472, + "src": "1441:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6395, + "id": 8496, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "costUSD", "nodeType": "MemberAccess", - "referencedDeclaration": 6366, - "src": "1057:34:17", + "referencedDeclaration": 8467, + "src": "1441:34:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -842,54 +1435,54 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6396, + "id": 8497, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "1105:26:17", + "referencedDeclaration": 8472, + "src": "1489:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6397, + "id": 8498, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 6368, - "src": "1105:33:17", + "referencedDeclaration": 8469, + "src": "1489:33:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 6398, + "id": 8499, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "850:298:17", + "src": "1234:298:25", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$", "typeString": "tuple(address,uint256,bytes32,uint256,uint256,uint256)" } }, - "functionReturnParameters": 6385, - "id": 6399, + "functionReturnParameters": 8486, + "id": 8500, "nodeType": "Return", - "src": "843:305:17" + "src": "1227:305:25" } ] }, "documentation": null, - "id": 6401, + "id": 8502, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -897,23 +1490,23 @@ "name": "_getRecordPurchaseCallResult", "nodeType": "FunctionDefinition", "parameters": { - "id": 6372, + "id": 8473, "nodeType": "ParameterList", "parameters": [], - "src": "766:2:17" + "src": "1150:2:25" }, "payable": false, "returnParameters": { - "id": 6385, + "id": 8486, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6374, + "id": 8475, "name": "", "nodeType": "VariableDeclaration", - "scope": 6401, - "src": "791:7:17", + "scope": 8502, + "src": "1175:7:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -921,10 +1514,10 @@ "typeString": "address" }, "typeName": { - "id": 6373, + "id": 8474, "name": "address", "nodeType": "ElementaryTypeName", - "src": "791:7:17", + "src": "1175:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -935,11 +1528,11 @@ }, { "constant": false, - "id": 6376, + "id": 8477, "name": "", "nodeType": "VariableDeclaration", - "scope": 6401, - "src": "800:4:17", + "scope": 8502, + "src": "1184:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -947,10 +1540,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6375, + "id": 8476, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "800:4:17", + "src": "1184:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -961,11 +1554,11 @@ }, { "constant": false, - "id": 6378, + "id": 8479, "name": "", "nodeType": "VariableDeclaration", - "scope": 6401, - "src": "806:7:17", + "scope": 8502, + "src": "1190:7:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -973,10 +1566,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 6377, + "id": 8478, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "806:7:17", + "src": "1190:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -987,11 +1580,11 @@ }, { "constant": false, - "id": 6380, + "id": 8481, "name": "", "nodeType": "VariableDeclaration", - "scope": 6401, - "src": "815:4:17", + "scope": 8502, + "src": "1199:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -999,10 +1592,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6379, + "id": 8480, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "815:4:17", + "src": "1199:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1013,11 +1606,11 @@ }, { "constant": false, - "id": 6382, + "id": 8483, "name": "", "nodeType": "VariableDeclaration", - "scope": 6401, - "src": "821:4:17", + "scope": 8502, + "src": "1205:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1025,10 +1618,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6381, + "id": 8482, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "821:4:17", + "src": "1205:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1039,11 +1632,11 @@ }, { "constant": false, - "id": 6384, + "id": 8485, "name": "", "nodeType": "VariableDeclaration", - "scope": 6401, - "src": "827:4:17", + "scope": 8502, + "src": "1211:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1051,10 +1644,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6383, + "id": 8484, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:17", + "src": "1211:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1064,38 +1657,38 @@ "visibility": "internal" } ], - "src": "790:42:17" + "src": "1174:42:25" }, - "scope": 6442, - "src": "729:426:17", + "scope": 8543, + "src": "1113:426:25", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6426, + "id": 8527, "nodeType": "Block", - "src": "1325:265:17", + "src": "1709:265:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 6424, + "id": 8525, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6414, + "id": 8515, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "1335:26:17", + "referencedDeclaration": 8472, + "src": "1719:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, @@ -1106,12 +1699,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6416, + "id": 8517, "name": "investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6403, - "src": "1413:8:17", + "referencedDeclaration": 8504, + "src": "1797:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1119,12 +1712,12 @@ }, { "argumentTypes": null, - "id": 6417, + "id": 8518, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6405, - "src": "1448:11:17", + "referencedDeclaration": 8506, + "src": "1832:11:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1132,12 +1725,12 @@ }, { "argumentTypes": null, - "id": 6418, + "id": 8519, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6407, - "src": "1481:6:17", + "referencedDeclaration": 8508, + "src": "1865:6:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1145,12 +1738,12 @@ }, { "argumentTypes": null, - "id": 6419, + "id": 8520, "name": "cost", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6409, - "src": "1507:4:17", + "referencedDeclaration": 8510, + "src": "1891:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1158,12 +1751,12 @@ }, { "argumentTypes": null, - "id": 6420, + "id": 8521, "name": "costUSD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6411, - "src": "1534:7:17", + "referencedDeclaration": 8512, + "src": "1918:7:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1172,389 +1765,884 @@ { "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 6421, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1563:3:17", + "argumentTypes": null, + "id": 8522, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "1947:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1947:9:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 8516, + "name": "RecordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8470, + "src": "1748:24:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_RecordPurchaseCallResult_$8470_storage_ptr_$", + "typeString": "type(struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage pointer)" + } + }, + "id": 8524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "investor", + "tokenAmount", + "symbol", + "cost", + "costUSD", + "_value" + ], + "nodeType": "FunctionCall", + "src": "1748:219:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_memory", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult memory" + } + }, + "src": "1719:248:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 8526, + "nodeType": "ExpressionStatement", + "src": "1719:248:25" + } + ] + }, + "documentation": null, + "id": 8528, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "recordPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8504, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 8528, + "src": "1578:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8503, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1578:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8506, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 8528, + "src": "1604:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8505, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1604:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8508, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 8528, + "src": "1630:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8507, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1630:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8510, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 8528, + "src": "1654:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8509, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1654:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8512, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 8528, + "src": "1673:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8511, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1673:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1568:123:25" + }, + "payable": true, + "returnParameters": { + "id": 8514, + "nodeType": "ParameterList", + "parameters": [], + "src": "1709:0:25" + }, + "scope": 8543, + "src": "1545:429:25", + "stateMutability": "payable", + "superFunction": 1802, + "visibility": "external" + }, + { + "body": { + "id": 8541, + "nodeType": "Block", + "src": "2020:58:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8536, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13538, + "src": "2057:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12CrowdsaleFundStub_$8543", + "typeString": "contract W12CrowdsaleFundStub" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12CrowdsaleFundStub_$8543", + "typeString": "contract W12CrowdsaleFundStub" + } + ], + "id": 8535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2049:7:25", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 6422, + "id": 8537, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1563:9:17", + "names": [], + "nodeType": "FunctionCall", + "src": "2049:13:25", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } + }, + "id": 8538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2049:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 6415, - "name": "RecordPurchaseCallResult", + "id": 8533, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6369, - "src": "1364:24:17", + "referencedDeclaration": 8530, + "src": "2037:2:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_RecordPurchaseCallResult_$6369_storage_ptr_$", - "typeString": "type(struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage pointer)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 6423, + "id": 8534, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "structConstructorCall", "lValueRequested": false, - "names": [ - "investor", - "tokenAmount", - "symbol", - "cost", - "costUSD", - "_value" - ], - "nodeType": "FunctionCall", - "src": "1364:219:17", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2037:11:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_memory", - "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult memory" + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "src": "1335:248:17", + "id": 8539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2037:34:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", - "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 6425, - "nodeType": "ExpressionStatement", - "src": "1335:248:17" + "functionReturnParameters": 8532, + "id": 8540, + "nodeType": "Return", + "src": "2030:41:25" } ] }, "documentation": null, - "id": 6427, + "id": 8542, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_outEther", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8531, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8530, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 8542, + "src": "1999:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8529, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1999:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1998:12:25" + }, + "payable": false, + "returnParameters": { + "id": 8532, + "nodeType": "ParameterList", + "parameters": [], + "src": "2020:0:25" + }, + "scope": 8543, + "src": "1980:98:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 8544, + "src": "133:1947:25" + } + ], + "src": "0:2081:25" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleFundStub.sol", + "exportedSymbols": { + "W12CrowdsaleFundStub": [ + 8543 + ] + }, + "id": 8544, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8380, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:25" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../../rates/IRates.sol", + "id": 8381, + "nodeType": "ImportDirective", + "scope": 8544, + "sourceUnit": 10015, + "src": "26:32:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", + "file": "../../crowdsale/W12Fund.sol", + "id": 8382, + "nodeType": "ImportDirective", + "scope": 8544, + "sourceUnit": 4057, + "src": "59:37:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../../token/IWToken.sol", + "id": 8383, + "nodeType": "ImportDirective", + "scope": 8544, + "sourceUnit": 10486, + "src": "97:33:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 8384, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "166:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 8385, + "nodeType": "InheritanceSpecifier", + "src": "166:8:25" + } + ], + "contractDependencies": [ + 1375, + 1421, + 1803 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 8543, + "linearizedBaseContracts": [ + 8543, + 1803, + 1421, + 1375 + ], + "name": "W12CrowdsaleFundStub", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 8390, + "nodeType": "Block", + "src": "239:2:25", + "statements": [] + }, + "documentation": null, + "id": 8391, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "recordPurchase", + "name": "setCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 6412, + "id": 8388, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6403, - "name": "investor", - "nodeType": "VariableDeclaration", - "scope": 6427, - "src": "1194:16:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6402, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1194:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6405, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 6427, - "src": "1220:16:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6404, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1220:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6407, - "name": "symbol", + "id": 8387, + "name": "_crowdsale", "nodeType": "VariableDeclaration", - "scope": 6427, - "src": "1246:14:17", + "scope": 8391, + "src": "204:24:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" }, "typeName": { - "id": 6406, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1246:7:17", + "contractScope": null, + "id": 8386, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "204:13:25", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, "value": null, "visibility": "internal" - }, + } + ], + "src": "203:26:25" + }, + "payable": false, + "returnParameters": { + "id": 8389, + "nodeType": "ParameterList", + "parameters": [], + "src": "239:0:25" + }, + "scope": 8543, + "src": "182:59:25", + "stateMutability": "nonpayable", + "superFunction": 1774, + "visibility": "external" + }, + { + "body": { + "id": 8396, + "nodeType": "Block", + "src": "306:2:25", + "statements": [] + }, + "documentation": null, + "id": 8397, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setServiceWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8394, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 6409, - "name": "cost", + "id": 8393, + "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 6427, - "src": "1270:9:17", + "scope": 8397, + "src": "273:22:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 6408, - "name": "uint", + "id": 8392, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "1270:4:17", + "src": "273:7:25", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" - }, + } + ], + "src": "272:24:25" + }, + "payable": false, + "returnParameters": { + "id": 8395, + "nodeType": "ParameterList", + "parameters": [], + "src": "306:0:25" + }, + "scope": 8543, + "src": "247:61:25", + "stateMutability": "nonpayable", + "superFunction": 1779, + "visibility": "external" + }, + { + "body": { + "id": 8402, + "nodeType": "Block", + "src": "355:2:25", + "statements": [] + }, + "documentation": null, + "id": 8403, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setSwap", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8400, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 6411, - "name": "costUSD", + "id": 8399, + "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 6427, - "src": "1289:12:17", + "scope": 8403, + "src": "331:13:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 6410, - "name": "uint", + "id": 8398, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "1289:4:17", + "src": "331:7:25", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "1184:123:17" + "src": "330:15:25" }, - "payable": true, + "payable": false, "returnParameters": { - "id": 6413, + "id": 8401, "nodeType": "ParameterList", "parameters": [], - "src": "1325:0:17" + "src": "355:0:25" }, - "scope": 6442, - "src": "1161:429:17", - "stateMutability": "payable", - "superFunction": 1260, + "scope": 8543, + "src": "314:43:25", + "stateMutability": "nonpayable", + "superFunction": 1784, "visibility": "external" }, { "body": { - "id": 6440, + "id": 8408, "nodeType": "Block", - "src": "1636:58:17", - "statements": [ + "src": "413:2:25", + "statements": [] + }, + "documentation": null, + "id": 8409, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferPrimary", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8406, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6435, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10573, - "src": "1673:4:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12CrowdsaleFundStub_$6442", - "typeString": "contract W12CrowdsaleFundStub" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12CrowdsaleFundStub_$6442", - "typeString": "contract W12CrowdsaleFundStub" - } - ], - "id": 6434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1665:7:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1665:13:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1665:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6432, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6429, - "src": "1653:2:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1653:11:17", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 6438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1653:34:17", + "constant": false, + "id": 8405, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 8409, + "src": "388:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "388:7:25", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "functionReturnParameters": 6431, - "id": 6439, - "nodeType": "Return", - "src": "1646:41:17" + "value": null, + "visibility": "internal" } - ] + ], + "src": "387:18:25" + }, + "payable": false, + "returnParameters": { + "id": 8407, + "nodeType": "ParameterList", + "parameters": [], + "src": "413:0:25" + }, + "scope": 8543, + "src": "363:52:25", + "stateMutability": "nonpayable", + "superFunction": 1789, + "visibility": "public" + }, + { + "body": { + "id": 8416, + "nodeType": "Block", + "src": "482:2:25", + "statements": [] + }, + "documentation": null, + "id": 8417, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8412, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8411, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8417, + "src": "438:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "438:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "437:17:25" + }, + "payable": false, + "returnParameters": { + "id": 8415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8414, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8417, + "src": "476:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8413, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "476:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "475:6:25" + }, + "scope": 8543, + "src": "421:63:25", + "stateMutability": "view", + "superFunction": 1361, + "visibility": "public" + }, + { + "body": { + "id": 8422, + "nodeType": "Block", + "src": "532:2:25", + "statements": [] }, "documentation": null, - "id": 6441, + "id": 8423, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "_outEther", + "name": "addAdmin", "nodeType": "FunctionDefinition", "parameters": { - "id": 6430, + "id": 8420, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6429, - "name": "to", + "id": 8419, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 6441, - "src": "1615:10:17", + "scope": 8423, + "src": "508:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1562,10 +2650,10 @@ "typeString": "address" }, "typeName": { - "id": 6428, + "id": 8418, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1615:7:17", + "src": "508:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1575,217 +2663,142 @@ "visibility": "internal" } ], - "src": "1614:12:17" + "src": "507:17:25" }, "payable": false, "returnParameters": { - "id": 6431, + "id": 8421, "nodeType": "ParameterList", "parameters": [], - "src": "1636:0:17" + "src": "532:0:25" }, - "scope": 6442, - "src": "1596:98:17", + "scope": 8543, + "src": "490:44:25", "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 6443, - "src": "197:1499:17" - } - ], - "src": "0:1697:17" - }, - "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleFundStub.sol", - "exportedSymbols": { - "W12CrowdsaleFundStub": [ - 6442 - ] - }, - "id": 6443, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6326, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:17" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 6327, - "nodeType": "ImportDirective", - "scope": 6443, - "sourceUnit": 10212, - "src": "26:63:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", - "file": "../../rates/IRates.sol", - "id": 6328, - "nodeType": "ImportDirective", - "scope": 6443, - "sourceUnit": 7280, - "src": "90:32:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", - "file": "../../crowdsale/W12Fund.sol", - "id": 6329, - "nodeType": "ImportDirective", - "scope": 6443, - "sourceUnit": 4536, - "src": "123:37:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", - "file": "../../token/IWToken.sol", - "id": 6330, - "nodeType": "ImportDirective", - "scope": 6443, - "sourceUnit": 7895, - "src": "161:33:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ + "superFunction": 1366, + "visibility": "public" + }, { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 6331, - "name": "IW12Fund", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "230:8:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } + "body": { + "id": 8426, + "nodeType": "Block", + "src": "572:2:25", + "statements": [] }, - "id": 6332, - "nodeType": "InheritanceSpecifier", - "src": "230:8:17" - } - ], - "contractDependencies": [ - 1261 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 6442, - "linearizedBaseContracts": [ - 6442, - 1261 - ], - "name": "W12CrowdsaleFundStub", - "nodeType": "ContractDefinition", - "nodes": [ + "documentation": null, + "id": 8427, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8424, + "nodeType": "ParameterList", + "parameters": [], + "src": "562:2:25" + }, + "payable": false, + "returnParameters": { + "id": 8425, + "nodeType": "ParameterList", + "parameters": [], + "src": "572:0:25" + }, + "scope": 8543, + "src": "540:34:25", + "stateMutability": "nonpayable", + "superFunction": 1369, + "visibility": "public" + }, { "body": { - "id": 6337, + "id": 8432, "nodeType": "Block", - "src": "303:2:17", + "src": "625:2:25", "statements": [] }, "documentation": null, - "id": 6338, + "id": 8433, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "setCrowdsale", + "name": "removeAdmin", "nodeType": "FunctionDefinition", "parameters": { - "id": 6335, + "id": 8430, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6334, - "name": "_crowdsale", + "id": 8429, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 6338, - "src": "268:24:17", + "scope": 8433, + "src": "601:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "contractScope": null, - "id": 6333, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "268:13:17", + "id": 8428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "601:7:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "267:26:17" + "src": "600:17:25" }, "payable": false, "returnParameters": { - "id": 6336, + "id": 8431, "nodeType": "ParameterList", "parameters": [], - "src": "303:0:17" + "src": "625:0:25" }, - "scope": 6442, - "src": "246:59:17", + "scope": 8543, + "src": "580:47:25", "stateMutability": "nonpayable", - "superFunction": 1232, - "visibility": "external" + "superFunction": 1374, + "visibility": "public" }, { "body": { - "id": 6343, + "id": 8440, "nodeType": "Block", - "src": "370:2:17", + "src": "701:2:25", "statements": [] }, "documentation": null, - "id": 6344, + "id": 8441, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "setServiceWallet", + "name": "isProjectOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 6341, + "id": 8436, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6340, - "name": "_serviceWallet", + "id": 8435, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 6344, - "src": "337:22:17", + "scope": 8441, + "src": "657:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1793,10 +2806,10 @@ "typeString": "address" }, "typeName": { - "id": 6339, + "id": 8434, "name": "address", "nodeType": "ElementaryTypeName", - "src": "337:7:17", + "src": "657:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1806,47 +2819,74 @@ "visibility": "internal" } ], - "src": "336:24:17" + "src": "656:17:25" }, "payable": false, "returnParameters": { - "id": 6342, + "id": 8439, "nodeType": "ParameterList", - "parameters": [], - "src": "370:0:17" + "parameters": [ + { + "constant": false, + "id": 8438, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8441, + "src": "695:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8437, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "695:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "694:6:25" }, - "scope": 6442, - "src": "311:61:17", - "stateMutability": "nonpayable", - "superFunction": 1237, - "visibility": "external" + "scope": 8543, + "src": "633:70:25", + "stateMutability": "view", + "superFunction": 1407, + "visibility": "public" }, { "body": { - "id": 6349, + "id": 8446, "nodeType": "Block", - "src": "419:2:17", + "src": "758:2:25", "statements": [] }, "documentation": null, - "id": 6350, + "id": 8447, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "setSwap", + "name": "addProjectOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 6347, + "id": 8444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6346, - "name": "_swap", + "id": 8443, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 6350, - "src": "395:13:17", + "scope": 8447, + "src": "734:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1854,10 +2894,10 @@ "typeString": "address" }, "typeName": { - "id": 6345, + "id": 8442, "name": "address", "nodeType": "ElementaryTypeName", - "src": "395:7:17", + "src": "734:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1867,47 +2907,81 @@ "visibility": "internal" } ], - "src": "394:15:17" + "src": "733:17:25" }, "payable": false, "returnParameters": { - "id": 6348, + "id": 8445, "nodeType": "ParameterList", "parameters": [], - "src": "419:0:17" + "src": "758:0:25" }, - "scope": 6442, - "src": "378:43:17", + "scope": 8543, + "src": "709:51:25", "stateMutability": "nonpayable", - "superFunction": 1242, - "visibility": "external" + "superFunction": 1412, + "visibility": "public" + }, + { + "body": { + "id": 8450, + "nodeType": "Block", + "src": "805:2:25", + "statements": [] + }, + "documentation": null, + "id": 8451, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8448, + "nodeType": "ParameterList", + "parameters": [], + "src": "795:2:25" + }, + "payable": false, + "returnParameters": { + "id": 8449, + "nodeType": "ParameterList", + "parameters": [], + "src": "805:0:25" + }, + "scope": 8543, + "src": "766:41:25", + "stateMutability": "nonpayable", + "superFunction": 1415, + "visibility": "public" }, { "body": { - "id": 6355, + "id": 8456, "nodeType": "Block", - "src": "481:2:17", + "src": "865:2:25", "statements": [] }, "documentation": null, - "id": 6356, + "id": 8457, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "transferOwnership", + "name": "removeProjectOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 6353, + "id": 8454, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6352, - "name": "newOwner", + "id": 8453, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 6356, - "src": "454:16:17", + "scope": 8457, + "src": "841:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1915,10 +2989,10 @@ "typeString": "address" }, "typeName": { - "id": 6351, + "id": 8452, "name": "address", "nodeType": "ElementaryTypeName", - "src": "454:7:17", + "src": "841:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1928,32 +3002,32 @@ "visibility": "internal" } ], - "src": "453:18:17" + "src": "840:17:25" }, "payable": false, "returnParameters": { - "id": 6354, + "id": 8455, "nodeType": "ParameterList", "parameters": [], - "src": "481:0:17" + "src": "865:0:25" }, - "scope": 6442, - "src": "427:56:17", + "scope": 8543, + "src": "813:54:25", "stateMutability": "nonpayable", - "superFunction": 1247, - "visibility": "external" + "superFunction": 1420, + "visibility": "public" }, { "canonicalName": "W12CrowdsaleFundStub.RecordPurchaseCallResult", - "id": 6369, + "id": 8470, "members": [ { "constant": false, - "id": 6358, + "id": 8459, "name": "investor", "nodeType": "VariableDeclaration", - "scope": 6369, - "src": "531:16:17", + "scope": 8470, + "src": "915:16:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1961,10 +3035,10 @@ "typeString": "address" }, "typeName": { - "id": 6357, + "id": 8458, "name": "address", "nodeType": "ElementaryTypeName", - "src": "531:7:17", + "src": "915:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1975,11 +3049,11 @@ }, { "constant": false, - "id": 6360, + "id": 8461, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 6369, - "src": "557:16:17", + "scope": 8470, + "src": "941:16:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1987,10 +3061,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6359, + "id": 8460, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "557:4:17", + "src": "941:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2001,11 +3075,11 @@ }, { "constant": false, - "id": 6362, + "id": 8463, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 6369, - "src": "583:14:17", + "scope": 8470, + "src": "967:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2013,10 +3087,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 6361, + "id": 8462, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "583:7:17", + "src": "967:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2027,11 +3101,11 @@ }, { "constant": false, - "id": 6364, + "id": 8465, "name": "cost", "nodeType": "VariableDeclaration", - "scope": 6369, - "src": "607:9:17", + "scope": 8470, + "src": "991:9:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2039,10 +3113,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6363, + "id": 8464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "607:4:17", + "src": "991:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2053,11 +3127,11 @@ }, { "constant": false, - "id": 6366, + "id": 8467, "name": "costUSD", "nodeType": "VariableDeclaration", - "scope": 6369, - "src": "626:12:17", + "scope": 8470, + "src": "1010:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2065,10 +3139,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6365, + "id": 8466, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "626:4:17", + "src": "1010:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2079,11 +3153,11 @@ }, { "constant": false, - "id": 6368, + "id": 8469, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 6369, - "src": "648:11:17", + "scope": 8470, + "src": "1032:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2091,10 +3165,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6367, + "id": 8468, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "648:4:17", + "src": "1032:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2106,32 +3180,32 @@ ], "name": "RecordPurchaseCallResult", "nodeType": "StructDefinition", - "scope": 6442, - "src": "489:177:17", + "scope": 8543, + "src": "873:177:25", "visibility": "public" }, { "constant": false, - "id": 6371, + "id": 8472, "name": "__recordPurchaseCallResult", "nodeType": "VariableDeclaration", - "scope": 6442, - "src": "672:51:17", + "scope": 8543, + "src": "1056:51:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult" }, "typeName": { "contractScope": null, - "id": 6370, + "id": 8471, "name": "RecordPurchaseCallResult", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6369, - "src": "672:24:17", + "referencedDeclaration": 8470, + "src": "1056:24:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage_ptr", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage_ptr", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult" } }, @@ -2140,9 +3214,9 @@ }, { "body": { - "id": 6400, + "id": 8501, "nodeType": "Block", - "src": "833:322:17", + "src": "1217:322:25", "statements": [ { "expression": { @@ -2152,26 +3226,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6386, + "id": 8487, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "864:26:17", + "referencedDeclaration": 8472, + "src": "1248:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6387, + "id": 8488, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "investor", "nodeType": "MemberAccess", - "referencedDeclaration": 6358, - "src": "864:35:17", + "referencedDeclaration": 8459, + "src": "1248:35:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2181,26 +3255,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6388, + "id": 8489, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "913:26:17", + "referencedDeclaration": 8472, + "src": "1297:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6389, + "id": 8490, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 6360, - "src": "913:38:17", + "referencedDeclaration": 8461, + "src": "1297:38:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2210,26 +3284,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6390, + "id": 8491, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "965:26:17", + "referencedDeclaration": 8472, + "src": "1349:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6391, + "id": 8492, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "symbol", "nodeType": "MemberAccess", - "referencedDeclaration": 6362, - "src": "965:33:17", + "referencedDeclaration": 8463, + "src": "1349:33:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2239,26 +3313,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6392, + "id": 8493, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "1012:26:17", + "referencedDeclaration": 8472, + "src": "1396:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6393, + "id": 8494, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "cost", "nodeType": "MemberAccess", - "referencedDeclaration": 6364, - "src": "1012:31:17", + "referencedDeclaration": 8465, + "src": "1396:31:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2268,26 +3342,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6394, + "id": 8495, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "1057:26:17", + "referencedDeclaration": 8472, + "src": "1441:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6395, + "id": 8496, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "costUSD", "nodeType": "MemberAccess", - "referencedDeclaration": 6366, - "src": "1057:34:17", + "referencedDeclaration": 8467, + "src": "1441:34:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2297,54 +3371,54 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6396, + "id": 8497, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "1105:26:17", + "referencedDeclaration": 8472, + "src": "1489:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6397, + "id": 8498, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 6368, - "src": "1105:33:17", + "referencedDeclaration": 8469, + "src": "1489:33:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 6398, + "id": 8499, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "850:298:17", + "src": "1234:298:25", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$", "typeString": "tuple(address,uint256,bytes32,uint256,uint256,uint256)" } }, - "functionReturnParameters": 6385, - "id": 6399, + "functionReturnParameters": 8486, + "id": 8500, "nodeType": "Return", - "src": "843:305:17" + "src": "1227:305:25" } ] }, "documentation": null, - "id": 6401, + "id": 8502, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2352,23 +3426,23 @@ "name": "_getRecordPurchaseCallResult", "nodeType": "FunctionDefinition", "parameters": { - "id": 6372, + "id": 8473, "nodeType": "ParameterList", "parameters": [], - "src": "766:2:17" + "src": "1150:2:25" }, "payable": false, "returnParameters": { - "id": 6385, + "id": 8486, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6374, + "id": 8475, "name": "", "nodeType": "VariableDeclaration", - "scope": 6401, - "src": "791:7:17", + "scope": 8502, + "src": "1175:7:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2376,10 +3450,10 @@ "typeString": "address" }, "typeName": { - "id": 6373, + "id": 8474, "name": "address", "nodeType": "ElementaryTypeName", - "src": "791:7:17", + "src": "1175:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2390,11 +3464,11 @@ }, { "constant": false, - "id": 6376, + "id": 8477, "name": "", "nodeType": "VariableDeclaration", - "scope": 6401, - "src": "800:4:17", + "scope": 8502, + "src": "1184:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2402,10 +3476,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6375, + "id": 8476, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "800:4:17", + "src": "1184:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2416,11 +3490,11 @@ }, { "constant": false, - "id": 6378, + "id": 8479, "name": "", "nodeType": "VariableDeclaration", - "scope": 6401, - "src": "806:7:17", + "scope": 8502, + "src": "1190:7:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2428,10 +3502,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 6377, + "id": 8478, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "806:7:17", + "src": "1190:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2442,11 +3516,11 @@ }, { "constant": false, - "id": 6380, + "id": 8481, "name": "", "nodeType": "VariableDeclaration", - "scope": 6401, - "src": "815:4:17", + "scope": 8502, + "src": "1199:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2454,10 +3528,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6379, + "id": 8480, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "815:4:17", + "src": "1199:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2468,11 +3542,11 @@ }, { "constant": false, - "id": 6382, + "id": 8483, "name": "", "nodeType": "VariableDeclaration", - "scope": 6401, - "src": "821:4:17", + "scope": 8502, + "src": "1205:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2480,10 +3554,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6381, + "id": 8482, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "821:4:17", + "src": "1205:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2494,11 +3568,11 @@ }, { "constant": false, - "id": 6384, + "id": 8485, "name": "", "nodeType": "VariableDeclaration", - "scope": 6401, - "src": "827:4:17", + "scope": 8502, + "src": "1211:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2506,10 +3580,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6383, + "id": 8484, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:17", + "src": "1211:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2519,38 +3593,38 @@ "visibility": "internal" } ], - "src": "790:42:17" + "src": "1174:42:25" }, - "scope": 6442, - "src": "729:426:17", + "scope": 8543, + "src": "1113:426:25", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6426, + "id": 8527, "nodeType": "Block", - "src": "1325:265:17", + "src": "1709:265:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 6424, + "id": 8525, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6414, + "id": 8515, "name": "__recordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6371, - "src": "1335:26:17", + "referencedDeclaration": 8472, + "src": "1719:26:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, @@ -2561,12 +3635,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6416, + "id": 8517, "name": "investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6403, - "src": "1413:8:17", + "referencedDeclaration": 8504, + "src": "1797:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2574,12 +3648,12 @@ }, { "argumentTypes": null, - "id": 6417, + "id": 8518, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6405, - "src": "1448:11:17", + "referencedDeclaration": 8506, + "src": "1832:11:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2587,12 +3661,12 @@ }, { "argumentTypes": null, - "id": 6418, + "id": 8519, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6407, - "src": "1481:6:17", + "referencedDeclaration": 8508, + "src": "1865:6:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2600,12 +3674,12 @@ }, { "argumentTypes": null, - "id": 6419, + "id": 8520, "name": "cost", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6409, - "src": "1507:4:17", + "referencedDeclaration": 8510, + "src": "1891:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2613,12 +3687,12 @@ }, { "argumentTypes": null, - "id": 6420, + "id": 8521, "name": "costUSD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6411, - "src": "1534:7:17", + "referencedDeclaration": 8512, + "src": "1918:7:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2628,18 +3702,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6421, + "id": 8522, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1563:3:17", + "referencedDeclaration": 13441, + "src": "1947:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6422, + "id": 8523, "isConstant": false, "isLValue": false, "isPure": false, @@ -2647,7 +3721,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1563:9:17", + "src": "1947:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2656,18 +3730,18 @@ ], "expression": { "argumentTypes": null, - "id": 6415, + "id": 8516, "name": "RecordPurchaseCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6369, - "src": "1364:24:17", + "referencedDeclaration": 8470, + "src": "1748:24:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_RecordPurchaseCallResult_$6369_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_RecordPurchaseCallResult_$8470_storage_ptr_$", "typeString": "type(struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage pointer)" } }, - "id": 6423, + "id": 8524, "isConstant": false, "isLValue": false, "isPure": false, @@ -2682,26 +3756,26 @@ "_value" ], "nodeType": "FunctionCall", - "src": "1364:219:17", + "src": "1748:219:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_memory", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_memory", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult memory" } }, - "src": "1335:248:17", + "src": "1719:248:25", "typeDescriptions": { - "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6369_storage", + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$8470_storage", "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" } }, - "id": 6425, + "id": 8526, "nodeType": "ExpressionStatement", - "src": "1335:248:17" + "src": "1719:248:25" } ] }, "documentation": null, - "id": 6427, + "id": 8528, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2709,16 +3783,16 @@ "name": "recordPurchase", "nodeType": "FunctionDefinition", "parameters": { - "id": 6412, + "id": 8513, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6403, + "id": 8504, "name": "investor", "nodeType": "VariableDeclaration", - "scope": 6427, - "src": "1194:16:17", + "scope": 8528, + "src": "1578:16:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2726,10 +3800,10 @@ "typeString": "address" }, "typeName": { - "id": 6402, + "id": 8503, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1194:7:17", + "src": "1578:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2740,11 +3814,11 @@ }, { "constant": false, - "id": 6405, + "id": 8506, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 6427, - "src": "1220:16:17", + "scope": 8528, + "src": "1604:16:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2752,10 +3826,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6404, + "id": 8505, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1220:4:17", + "src": "1604:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2766,11 +3840,11 @@ }, { "constant": false, - "id": 6407, + "id": 8508, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 6427, - "src": "1246:14:17", + "scope": 8528, + "src": "1630:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2778,10 +3852,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 6406, + "id": 8507, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1246:7:17", + "src": "1630:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2792,11 +3866,11 @@ }, { "constant": false, - "id": 6409, + "id": 8510, "name": "cost", "nodeType": "VariableDeclaration", - "scope": 6427, - "src": "1270:9:17", + "scope": 8528, + "src": "1654:9:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2804,10 +3878,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6408, + "id": 8509, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1270:4:17", + "src": "1654:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2818,11 +3892,11 @@ }, { "constant": false, - "id": 6411, + "id": 8512, "name": "costUSD", "nodeType": "VariableDeclaration", - "scope": 6427, - "src": "1289:12:17", + "scope": 8528, + "src": "1673:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2830,10 +3904,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6410, + "id": 8511, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1289:4:17", + "src": "1673:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2843,26 +3917,26 @@ "visibility": "internal" } ], - "src": "1184:123:17" + "src": "1568:123:25" }, "payable": true, "returnParameters": { - "id": 6413, + "id": 8514, "nodeType": "ParameterList", "parameters": [], - "src": "1325:0:17" + "src": "1709:0:25" }, - "scope": 6442, - "src": "1161:429:17", + "scope": 8543, + "src": "1545:429:25", "stateMutability": "payable", - "superFunction": 1260, + "superFunction": 1802, "visibility": "external" }, { "body": { - "id": 6440, + "id": 8541, "nodeType": "Block", - "src": "1636:58:17", + "src": "2020:58:25", "statements": [ { "expression": { @@ -2875,14 +3949,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6435, + "id": 8536, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10573, - "src": "1673:4:17", + "referencedDeclaration": 13538, + "src": "2057:4:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12CrowdsaleFundStub_$6442", + "typeIdentifier": "t_contract$_W12CrowdsaleFundStub_$8543", "typeString": "contract W12CrowdsaleFundStub" } } @@ -2890,24 +3964,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_W12CrowdsaleFundStub_$6442", + "typeIdentifier": "t_contract$_W12CrowdsaleFundStub_$8543", "typeString": "contract W12CrowdsaleFundStub" } ], - "id": 6434, + "id": 8535, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1665:7:17", + "src": "2049:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6436, + "id": 8537, "isConstant": false, "isLValue": false, "isPure": false, @@ -2915,13 +3989,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1665:13:17", + "src": "2049:13:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6437, + "id": 8538, "isConstant": false, "isLValue": false, "isPure": false, @@ -2929,7 +4003,7 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1665:21:17", + "src": "2049:21:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2945,18 +4019,18 @@ ], "expression": { "argumentTypes": null, - "id": 6432, + "id": 8533, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6429, - "src": "1653:2:17", + "referencedDeclaration": 8530, + "src": "2037:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6433, + "id": 8534, "isConstant": false, "isLValue": false, "isPure": false, @@ -2964,13 +4038,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1653:11:17", + "src": "2037:11:25", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 6438, + "id": 8539, "isConstant": false, "isLValue": false, "isPure": false, @@ -2978,21 +4052,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1653:34:17", + "src": "2037:34:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "functionReturnParameters": 6431, - "id": 6439, + "functionReturnParameters": 8532, + "id": 8540, "nodeType": "Return", - "src": "1646:41:17" + "src": "2030:41:25" } ] }, "documentation": null, - "id": 6441, + "id": 8542, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3000,16 +4074,16 @@ "name": "_outEther", "nodeType": "FunctionDefinition", "parameters": { - "id": 6430, + "id": 8531, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6429, + "id": 8530, "name": "to", "nodeType": "VariableDeclaration", - "scope": 6441, - "src": "1615:10:17", + "scope": 8542, + "src": "1999:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3017,10 +4091,10 @@ "typeString": "address" }, "typeName": { - "id": 6428, + "id": 8529, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1615:7:17", + "src": "1999:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3030,27 +4104,27 @@ "visibility": "internal" } ], - "src": "1614:12:17" + "src": "1998:12:25" }, "payable": false, "returnParameters": { - "id": 6431, + "id": 8532, "nodeType": "ParameterList", "parameters": [], - "src": "1636:0:17" + "src": "2020:0:25" }, - "scope": 6442, - "src": "1596:98:17", + "scope": 8543, + "src": "1980:98:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 6443, - "src": "197:1499:17" + "scope": 8544, + "src": "133:1947:25" } ], - "src": "0:1697:17" + "src": "0:2081:25" }, "compiler": { "name": "solc", @@ -3058,5 +4132,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.307Z" + "updatedAt": "2018-12-06T13:14:33.080Z" } \ No newline at end of file diff --git a/build/contracts/W12CrowdsaleStub.json b/build/contracts/W12CrowdsaleStub.json index 9c30bd00..6dd4f533 100644 --- a/build/contracts/W12CrowdsaleStub.json +++ b/build/contracts/W12CrowdsaleStub.json @@ -70,6 +70,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [ @@ -89,6 +103,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [ @@ -128,6 +156,25 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -204,6 +251,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -290,8 +351,13 @@ }, { "constant": false, - "inputs": [], - "name": "renounceOwnership", + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -394,17 +460,12 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], + "name": "renounceAdmin", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { @@ -477,6 +538,43 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [ @@ -552,6 +650,25 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], @@ -623,20 +740,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [ @@ -795,16 +898,28 @@ "name": "UnsoldTokenReturned", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, { "anonymous": false, "inputs": [ { "indexed": true, - "name": "previousOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipRenounced", + "name": "ProjectOwnerAdded", "type": "event" }, { @@ -812,16 +927,35 @@ "inputs": [ { "indexed": true, - "name": "previousOwner", + "name": "account", "type": "address" - }, + } + ], + "name": "ProjectOwnerRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": true, - "name": "newOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminRemoved", "type": "event" }, { @@ -876,24 +1010,24 @@ "type": "function" } ], - "bytecode": "0x608060405260016002553480156200001657600080fd5b50604051610140806200507e83398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015161012090990151600088905560018054600160a060020a0319163317905596989596949593949293919290919089898989898989898989600160a060020a0389161515620000a257600080fd5b600160a060020a0388161515620000b857600080fd5b620000d184640100000000620044696200021f82021704565b8015620000f657506064620000f48564010000000062004cbe6200025c82021704565b105b15156200010257600080fd5b6200011b83640100000000620044696200021f82021704565b801562000140575060646200013e8464010000000062004cbe6200025c82021704565b105b15156200014c57600080fd5b600160a060020a03821615156200016257600080fd5b600160a060020a03851615156200017857600080fd5b600160a060020a03811615156200018e57600080fd5b620001a38787640100000000620002ae810204565b60038054600160a060020a0319908116600160a060020a039a8b16179091556004805482169a8a169a909a17909955600893909355600b8054891694881694909417909355600955600580548716928616929092179091556006805490951693169290921790925550620003539b505050505050505050505050565b600062000234640100000000620002f9810204565b821015801562000256575062000252640100000000620002fe810204565b8211155b92915050565b600062000272826401000000006200021f810204565b15156200027e57600080fd5b62000256620002956401000000006200031b810204565b8390600a0a640100000000620048b76200032082021704565b60008211620002bc57600080fd5b600160a060020a0381161515620002d257600080fd5b600791909155600a8054600160a060020a031916600160a060020a03909216919091179055565b600090565b60006200031364010000000062000336810204565b600a0a905090565b600290565b600081838115156200032e57fe5b049392505050565b60006200034b6401000000006200031b810204565b600201905090565b614d1b80620003636000396000f3006080604052600436106101d45763ffffffff60e060020a60003504166307f5d63381146101d957806311eb8c9f146101e957806313096a411461021557806314f66d34146102465780631aecc19f14610274578063208853c9146102985780632442e1cb146102c25780632e325020146103f85780632fbe5990146104e9578063313602d4146104fe5780633baba4d7146105135780634090cb641461052857806343f48fbd1461053d57806354fd4d5014610552578063550fd742146105675780635641f3c3146105cc578063564566a8146105e15780635773caaf146105f6578063715018a614610617578063792c02ea1461062c5780638119c06514610641578063845ddcb2146106565780638abdf5aa1461069f5780638aea2af8146106b45780638da5cb5b146107075780638edd6eb61461071c578063a035b1fe14610731578063a4fd6f5614610746578063b13564881461075b578063b60d428814610789578063ca7348a31461079e578063d250185c146107b6578063d5b22623146107e8578063d6d65f3d14610844578063daa4cf8814610859578063e89e4ed61461086e578063e93b054014610886578063f2fde38b1461089e578063f6cf09dc146108bf578063fc0c546a146108ef575b600080fd5b6101e7600435602435610904565b005b3480156101f557600080fd5b50610201600435610b0b565b604080519115158252519081900360200190f35b34801561022157600080fd5b5061022a610b24565b60408051600160a060020a039092168252519081900360200190f35b34801561025257600080fd5b5061025b610b33565b6040805192835290151560208301528051918290030190f35b34801561028057600080fd5b50610201600160a060020a0360043516602435610b66565b3480156102a457600080fd5b506102b0600435610c0b565b60408051918252519081900360200190f35b3480156102ce57600080fd5b506102da600435610d01565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561035757818101518382015260200161033f565b50505050905090810190601f1680156103845780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156103b757818101518382015260200161039f565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561040457600080fd5b50610410600435610f2e565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610490578181015183820152602001610478565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156104cf5781810151838201526020016104b7565b505050509050019850505050505050505060405180910390f35b3480156104f557600080fd5b506102b06110d4565b34801561050a57600080fd5b506101e76110da565b34801561051f57600080fd5b506102b0611289565b34801561053457600080fd5b5061022a611290565b34801561054957600080fd5b5061022a61129f565b34801561055e57600080fd5b506102b06112ae565b34801561057357600080fd5b5061057c6112b4565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105b85781810151838201526020016105a0565b505050509050019250505060405180910390f35b3480156105d857600080fd5b5061022a6112c5565b3480156105ed57600080fd5b506102016112d4565b34801561060257600080fd5b506101e7600160a060020a03600435166112ea565b34801561062357600080fd5b506101e7611325565b34801561063857600080fd5b506102b0611393565b34801561064d57600080fd5b5061022a611399565b34801561066257600080fd5b5061066e6004356113a8565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b3480156106ab57600080fd5b506102b06113ee565b3480156106c057600080fd5b506106cf6004356024356113f4565b604051808260a080838360005b838110156106f45781810151838201526020016106dc565b5050505090500191505060405180910390f35b34801561071357600080fd5b5061022a61187f565b34801561072857600080fd5b5061022a61188e565b34801561073d57600080fd5b506102b061189d565b34801561075257600080fd5b506102016118a3565b34801561076757600080fd5b506107706118ea565b6040805163ffffffff9092168252519081900360200190f35b34801561079557600080fd5b5061022a611931565b3480156107aa57600080fd5b506101e7600435611940565b3480156107c257600080fd5b506107d1600435602435611945565b6040805182518152908190839080838360206106dc565b3480156107f457600080fd5b506101e7602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a435918201910135611964565b34801561085057600080fd5b5061025b611c92565b34801561086557600080fd5b5061025b611d0d565b34801561087a57600080fd5b506102da600435611d90565b34801561089257600080fd5b506101e7600435611efe565b3480156108aa57600080fd5b506101e7600160a060020a0360043516611f69565b3480156108cb57600080fd5b506108da600435602435611f89565b604051815181528082608080838360206106dc565b3480156108fb57600080fd5b5061022a612409565b600061090e614a04565b610916614a23565b60025460011461092557600080fd5b600280556109316112d4565b151561099e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b846109a7612418565b14610a3c576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b1580156109fc57600080fd5b505af1158015610a10573d6000803e3d6000fd5b505050506040513d6020811015610a2657600080fd5b5051600160a060020a03161415610a3c57600080fd5b610a44611d0d565b509250610a5185856113f4565b80516020820151919350610a6491611945565b9050610a70818661243c565b610aa48282600e86815481101515610a8457fe5b600091825260209091206002600590920201015463ffffffff1688612570565b610aaf828287612699565b8151602080840151606080860151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a250506001600255505050565b6000610b1e600c8363ffffffff61295716565b92915050565b600454600160a060020a031681565b600f5460009081901580610b4c5750610b4a6118a3565b155b15610b5657610b62565b5050600f546000190160015b9091565b600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151600093929092169163a9059cbb9160448082019260209290919082900301818787803b158015610bd857600080fd5b505af1158015610bec573d6000803e3d6000fd5b505050506040513d6020811015610c0257600080fd5b50519392505050565b600080600080610c19611d0d565b92509250811515610c2957610cf9565b600e805484908110610c3757fe5b90600052602060002090600502019050610cf68582600301805480602002602001604051908101604052809291908181526020018280548015610c9957602002820191906000526020600020905b815481526020019060010190808311610c85575b505050505083600401805480602002602001604051908101604052809291908181526020018280548015610cec57602002820191906000526020600020905b815481526020019060010190808311610cd8575b5050505050612970565b93505b505050919050565b600080600080606080600f87815481101515610d1957fe5b6000918252602090912060059091020154600f805463ffffffff9092169189908110610d4157fe5b906000526020600020906005020160010154600f89815481101515610d6257fe5b6000918252602090912060026005909202010154600f805463ffffffff909216918b908110610d8d57fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600f8b815481101515610dbe57fe5b9060005260206000209060050201600301600f8c815481101515610dde57fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e845780601f10610e5957610100808354040283529160200191610e84565b820191906000526020600020905b815481529060010190602001808311610e6757829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295975086945092508401905082828015610f125780601f10610ee757610100808354040283529160200191610f12565b820191906000526020600020905b815481529060010190602001808311610ef557829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600e87815481101515610f4657fe5b6000918252602090912060059091020154600e805463ffffffff9092169189908110610f6e57fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600e89815481101515610f9f57fe5b906000526020600020906005020160010154600e8a815481101515610fc057fe5b6000918252602090912060026005909202010154600e805463ffffffff909216918c908110610feb57fe5b9060005260206000209060050201600301600e8c81548110151561100b57fe5b90600052602060002090600502016004018180548060200260200160405190810160405280929190818152602001828054801561106757602002820191906000526020600020905b815481526020019060010190808311611053575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610f1257602002820191906000526020600020905b8154815260200190600101908083116110a5575050505050905095509550955095509550955091939550919395565b60095481565b600154600090600160a060020a031633146110f457600080fd5b6110fc6118a3565b151561110757600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561116d57600080fd5b505af1158015611181573d6000803e3d6000fd5b505050506040513d602081101561119757600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b15801561120d57600080fd5b505af1158015611221573d6000803e3d6000fd5b505050506040513d602081101561123757600080fd5b5051151561124457600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600f545b90565b600354600160a060020a031690565b600654600160a060020a031681565b60005481565b60606112c0600c6129cf565b905090565b600a54600160a060020a031681565b6000806112df611d0d565b9150508091505b5090565b604051600160a060020a03821690303180156108fc02916000818181858888f19350505050158015611320573d6000803e3d6000fd5b505b50565b600154600160a060020a0316331461133c57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600e5490565b600b54600160a060020a031681565b600e8054829081106113b657fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60085481565b6113fc614a04565b600080611407611d0d565b9150915080151561141757611877565b84611420612418565b146114ad576006546040805160e060020a63cfec719f028152600481018890529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561147657600080fd5b505af115801561148a573d6000803e3d6000fd5b505050506040513d60208110156114a057600080fd5b505115156114ad57611877565b6118748585600e858154811015156114c157fe5b906000526020600020906005020160010154600e868154811015156114e257fe5b906000526020600020906005020160030180548060200260200160405190810160405280929190818152602001828054801561153d57602002820191906000526020600020905b815481526020019060010190808311611529575b5050505050600e8781548110151561155157fe5b90600052602060002090600502016004018054806020026020016040519081016040528092919081815260200182805480156115ac57602002820191906000526020600020905b815481526020019060010190808311611598575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561161757600080fd5b505af115801561162b573d6000803e3d6000fd5b505050506040513d602081101561164157600080fd5b50516007546003546040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561169057600080fd5b505af11580156116a4573d6000803e3d6000fd5b505050506040513d60208110156116ba57600080fd5b505160ff168d6116c8612418565b146117da57600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b505050506040513d602081101561175d57600080fd5b50516040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b1580156117a657600080fd5b505af11580156117ba573d6000803e3d6000fd5b505050506040513d60208110156117d057600080fd5b505160ff166117dd565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561184357600080fd5b505af1158015611857573d6000803e3d6000fd5b505050506040513d602081101561186d57600080fd5b5051612a2c565b92505b505092915050565b600154600160a060020a031681565b600554600160a060020a031690565b60075481565b600e5460009015806112c05750600e805442919060001981019081106118c557fe5b6000918252602090912060059091020154640100000000900463ffffffff1610919050565b600e5460009081106118fb57600080fd5b600e8054600019810190811061190d57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600554600160a060020a031681565b600955565b61194d614a23565b61195d8383600854600954612e6a565b9392505050565b600154600090600160a060020a0316331461197e57600080fd5b600e54600010156119bb5742600e600081548110151561199a57fe5b600091825260209091206005909102015463ffffffff16116119bb57600080fd5b8b15156119c757600080fd5b60ff8c11156119d557600080fd5b60ff8811156119e357600080fd5b6002860488146119f257600080fd5b60028404881115611a0257600080fd5b811515611a0e57600080fd5b5060005b81811015611aba57600654600160a060020a0316637d20abf8848484818110611a3757fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b158015611a7b57600080fd5b505af1158015611a8f573d6000803e3d6000fd5b505050506040513d6020811015611aa557600080fd5b50511515611ab257600080fd5b600101611a12565b611b538d8d808060200260200160405190810160405280939291908181526020016000905b82821015611b1b576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611adf565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612eb5945050505050565b611c1a8989808060200260200160405190810160405280939291908181526020016000905b82821015611bb4576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611b78565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b92508291508401838280828437506133be945050505050565b611c5a83838080602002602001604051908101604052809392919081815260200183836020028082843750600c9594505063ffffffff61391c1692505050565b6040517f072792b04aecd99b2250bc76fb25f9bca793c3b7383cb4c7255a7a01e8f5a12e90600090a150505050505050505050505050565b600f5460009081901580611cab5750611ca96118a3565b155b15611cb557610b62565b5060015b600f546000190182108015611cfd5750600f805483908110611cd757fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610b6257600190910190611cb9565b60008080805b600e54821015611d8257600e805483908110611d2b57fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611d66575080544264010000000090910463ffffffff16115b15611d775781600193509350611d8a565b600190910190611d13565b600093508392505b50509091565b600f805482908110611d9e57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611e645780601f10611e3957610100808354040283529160200191611e64565b820191906000526020600020905b815481529060010190602001808311611e4757829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015611ef45780601f10611ec957610100808354040283529160200191611ef4565b820191906000526020600020905b815481529060010190602001808311611ed757829003601f168201915b5050505050905086565b600154600160a060020a03163314611f1557600080fd5b600e5460001015611f525742600e6000815481101515611f3157fe5b600091825260209091206005909102015463ffffffff1611611f5257600080fd5b600a54611322908290600160a060020a03166139ed565b600154600160a060020a03163314611f8057600080fd5b61132281613a43565b611f91614a3e565b600080611f9c611d0d565b91509150801515611fac57611877565b84611fb5612418565b14612042576006546040805160e060020a63cfec719f028152600481018890529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561200b57600080fd5b505af115801561201f573d6000803e3d6000fd5b505050506040513d602081101561203557600080fd5b5051151561204257611877565b6118748585600e8581548110151561205657fe5b906000526020600020906005020160010154600e8681548110151561207757fe5b90600052602060002090600502016003018054806020026020016040519081016040528092919081815260200182805480156120d257602002820191906000526020600020905b8154815260200190600101908083116120be575b5050505050600e878154811015156120e657fe5b906000526020600020906005020160040180548060200260200160405190810160405280929190818152602001828054801561214157602002820191906000526020600020905b81548152602001906001019080831161212d575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156121ac57600080fd5b505af11580156121c0573d6000803e3d6000fd5b505050506040513d60208110156121d657600080fd5b50516007546003546040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561222557600080fd5b505af1158015612239573d6000803e3d6000fd5b505050506040513d602081101561224f57600080fd5b505160ff168d61225d612418565b1461236f57600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156122c857600080fd5b505af11580156122dc573d6000803e3d6000fd5b505050506040513d60208110156122f257600080fd5b50516040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561233b57600080fd5b505af115801561234f573d6000803e3d6000fd5b505050506040513d602081101561236557600080fd5b505160ff16612372565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156123d857600080fd5b505af11580156123ec573d6000803e3d6000fd5b505050506040513d602081101561240257600080fd5b5051613ac1565b600354600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b6006546040805160e060020a63cfec719f0281526004810184905290516113209285928592600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561249557600080fd5b505af11580156124a9573d6000803e3d6000fd5b505050506040513d60208110156124bf57600080fd5b50516124cc57600061254a565b6006546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561251d57600080fd5b505af1158015612531573d6000803e3d6000fd5b505050506040513d602081101561254757600080fd5b50515b600354600454600b54600a54600160a060020a0393841693928316929182169116613d36565b6006546040805160e060020a63cfec719f028152600481018490529051612693928792879287928792600160a060020a039091169163cfec719f916024808201926020929091908290030181600087803b1580156125cd57600080fd5b505af11580156125e1573d6000803e3d6000fd5b505050506040513d60208110156125f757600080fd5b5051612604576000612682565b6006546040805160e460020a630b12e441028152600481018990529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561265557600080fd5b505af1158015612669573d6000803e3d6000fd5b505050506040513d602081101561267f57600080fd5b50515b600354600160a060020a03166140c5565b50505050565b6126a1612418565b81141561277557600554600160a060020a031663d0baf2f56126d984600160200201518660015b60200201519063ffffffff6143b516565b8551602086015133919086906126f1908a60016126c8565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b15801561275757600080fd5b505af115801561276b573d6000803e3d6000fd5b5050505050612952565b6006546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156127c657600080fd5b505af11580156127da573d6000803e3d6000fd5b505050506040513d60208110156127f057600080fd5b5051600554600160a060020a039182169163a9059cbb911661281c8560015b60200201518760016126c8565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561286e57600080fd5b505af1158015612882573d6000803e3d6000fd5b505050506040513d602081101561289857600080fd5b505115156128a557600080fd5b600554600160a060020a031663d0baf2f5338560006020020151846128d387600160200201518960016126c8565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b15801561293957600080fd5b505af115801561294d573d6000803e3d6000fd5b505050505b505050565b6000908152600191909101602052604090205460ff1690565b6000805b83518110156129c757838181518110151561298b57fe5b6020908102909101015185106129ba5782818151811015156129a957fe5b9060200190602002015191506129bf565b6129c7565b600101612974565b509392505050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a2057602002820191906000526020600020905b81548152600190910190602001808311612a0b575b50505050509050919050565b612a34614a04565b6000612a458c8c8989878a8a6143c7565b1515612a5057600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612ab257600080fd5b505af4158015612ac6573d6000803e3d6000fd5b505050506040513d6020811015612adc57600080fd5b505160408301819052861115612af157600080fd5b612b048260025b60200201518a8a612970565b905060008a11612b145785612b9a565b612b9a8a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612b5f57600080fd5b505af4158015612b73573d6000803e3d6000fd5b505050506040513d6020811015612b8957600080fd5b50518891900363ffffffff61441f16565b82600460200201818152505073__Utils_________________________________63a5a55fcf612c51612c468473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612c0e57600080fd5b505af4158015612c22573d6000803e3d6000fd5b505050506040513d6020811015612c3857600080fd5b50519063ffffffff61444816565b604086015190614455565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612c9f57600080fd5b505af4158015612cb3573d6000803e3d6000fd5b505050506040513d6020811015612cc957600080fd5b5051808352831015612d88576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015612d5357600080fd5b505af4158015612d67573d6000803e3d6000fd5b505050506040513d6020811015612d7d57600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612df157600080fd5b505af4158015612e05573d6000803e3d6000fd5b505050506040513d6020811015612e1b57600080fd5b5051602083018190521580612e2f57508151155b15612e465760008083526020830181905260408301525b6020820151612e56908c906143b5565b6060830152509a9950505050505050505050565b612e72614a23565b6000831115612e8e57612e8b858463ffffffff61445516565b81525b6000821115612ead57612ea7848363ffffffff61445516565b60208201525b949350505050565b600f54600090811015612f1257825183906000198101908110612ed457fe5b6020908102919091018101510151600f80546000908110612ef157fe5b600091825260209091206005909102015463ffffffff1611612f1257600080fd5b612f1e600e6000614a5d565b5060005b82518160ff16101561339057825163ffffffff90849060ff8416908110612f4557fe5b6020908102919091010151511115612f5c57600080fd5b825163ffffffff90849060ff8416908110612f7357fe5b60209081029190910181015101511115612f8c57600080fd5b825163ffffffff90849060ff8416908110612fa357fe5b6020908102919091010151606001511115612fbd57600080fd5b825160ff908490838316908110612fd057fe5b6020908102919091010151608001511115612fea57600080fd5b825160ff908490838316908110612ffd57fe5b602090810291909101015160a00151111561301757600080fd5b42838260ff1681518110151561302957fe5b6020908102919091010151511161303f57600080fd5b828160ff1681518110151561305057fe5b60209081029190910181015101518351849060ff841690811061306f57fe5b6020908102919091010151511061308557600080fd5b60008160ff1611156130dc57828160ff168151811015156130a257fe5b6020908102919091010151518351849060ff6000198501169081106130c357fe5b602090810291909101810151015111156130dc57600080fd5b613107838260ff168151811015156130f057fe5b6020908102909101015160025b6020020151614469565b151561311257600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561315957600080fd5b505af415801561316d573d6000803e3d6000fd5b505050506040513d602081101561318357600080fd5b50518351849060ff841690811061319657fe5b602090810291909101015160400151106131af57600080fd5b600e60c060405190810160405280858460ff168151811015156131ce57fe5b6020908102919091018101515163ffffffff1682528651910190869060ff86169081106131f757fe5b602090810290910101516001602002015163ffffffff168152602001858460ff1681518110151561322457fe5b60209081029091010151600260200201518152602001858460ff1681518110151561324b57fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff00000000191664010000000091871691909102178255604086015193820193909355606085015160028201805490941694169390931790915560808301518051919461331692600385019290910190614a7e565b5060a08201518051613332916004840191602090910190614a7e565b505050506133886001600e8054905003848360ff1681518110151561335357fe5b6020908102919091010151608001518551869060ff861690811061337357fe5b602090810291909101015160a001518561448e565b600101612f22565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600e80549050111561342b578860008151811015156133e457fe5b602090810291909101015151600e8054600019810190811061340257fe5b6000918252602090912060059091020154640100000000900463ffffffff161061342b57600080fd5b613437600f6000614ac5565b600095506000945060009350600092505b88518360ff16101561386a57885163ffffffff908a9060ff861690811061346b57fe5b602090810291909101015151111561348257600080fd5b885163ffffffff908a9060ff861690811061349957fe5b602090810291909101810151015111156134b257600080fd5b885163ffffffff908a9060ff86169081106134c957fe5b60209081029190910101516040015111156134e357600080fd5b42898460ff168151811015156134f557fe5b6020908102919091010151511161350b57600080fd5b888360ff1681518110151561351c57fe5b60209081029190910101515189518a9060ff861690811061353957fe5b60209081029190910181015101511161355157600080fd5b888360ff1681518110151561356257fe5b602090810291909101810151015189518a9060ff861690811061358157fe5b6020908102919091010151604001511161359a57600080fd5b60008360ff1611156135f157888360ff168151811015156135b757fe5b60209081029190910101515189518a9060ff6000198701169081106135d857fe5b602090810291909101015160400151106135f157600080fd5b613616898460ff1681518110151561360557fe5b6020908102909101015160036130fd565b151561362157600080fd5b61365386898781518110151561363357fe5b9060200190602002015163ffffffff16896147fb9092919063ffffffff16565b9150613685888681518110151561366657fe5b9060200190602002015163ffffffff168761444890919063ffffffff16565b955061369c86898760010181518110151561363357fe5b90506136b2888660010181518110151561366657fe5b95506136c585600263ffffffff61444816565b94506136f1898460ff168151811015156136db57fe5b6020908102919091010151606001518590614448565b9350600f60c0604051908101604052808b8660ff1681518110151561371257fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff881690811061373b57fe5b602090810290910101516003602002015181526020018b8660ff1681518110151561376257fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff1681518110151561378f57fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff000000001993909516931692909217169190911790556080830151805161383e9260038501920190614ae6565b5060a0820151805161385a916004840191602090910190614ae6565b5050600190940193506134489050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156138b157600080fd5b505af41580156138c5573d6000803e3d6000fd5b505050506040513d60208110156138db57600080fd5b505184146138e857600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b81546000901561397f575060005b825481101561397f576000836001016000856000018481548110151561394c57fe5b60009182526020808320919091015483528201929092526040019020805460ff191691151591909117905560010161392a565b81516139919084906020850190614b53565b50815115612952575060005b815181101561295257600183600101600084848151811015156139bc57fe5b6020908102919091018101518252810191909152604001600020805460ff191691151591909117905560010161399d565b600082116139fa57600080fd5b600160a060020a0381161515613a0f57600080fd5b600791909155600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a0381161515613a5857600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b613ac9614a3e565b6000613ada8c8c8989878a8a6143c7565b1515613ae557600080fd5b8a831015613af157829a505b8a825260008a11613b025785613b4d565b613b4d8a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612b5f57600080fd5b60608301819052604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018e90526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015613bcd57600080fd5b505af4158015613be1573d6000803e3d6000fd5b505050506040513d6020811015613bf757600080fd5b505160408301819052861115613c0c57600080fd5b613c17826002612af8565b905073__Utils_________________________________63a5a55fcf836002602002015186613c97613c8a8673__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612c0e57600080fd5b8c9063ffffffff61445516565b6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015613cdc57600080fd5b505af4158015613cf0573d6000803e3d6000fd5b505050506040513d6020811015613d0657600080fd5b5051602083018190521515613d275760008083526020830181905260408301525b509a9950505050505050505050565b600160a060020a0383161515613d4b57600080fd5b600160a060020a0384161515613d6057600080fd5b600160a060020a0382161515613d7557600080fd5b600160a060020a0381161515613d8a57600080fd5b60208701516000108015613da55750613da1612418565b8614155b15613dbf57600160a060020a0385161515613dbf57600080fd5b865160001015613f1d578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b158015613e4057600080fd5b505af1158015613e54573d6000803e3d6000fd5b505050506040513d6020811015613e6a57600080fd5b50511515613e7757600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b158015613ee657600080fd5b505af1158015613efa573d6000803e3d6000fd5b505050506040513d6020811015613f1057600080fd5b50511515613f1d57600080fd5b60208701516000101561294d57613f32612418565b861415613f78576020870151604051600160a060020a0383169180156108fc02916000818181858888f19350505050158015613f72573d6000803e3d6000fd5b5061294d565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b158015613fe457600080fd5b505af1158015613ff8573d6000803e3d6000fd5b505050506040513d602081101561400e57600080fd5b5051101561401b57600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561408e57600080fd5b505af11580156140a2573d6000803e3d6000fd5b505050506040513d60208110156140b857600080fd5b5051151561294d57600080fd5b600160a060020a03811615156140da57600080fd5b855115156140e757600080fd5b602086015115156140f757600080fd5b845186511161410557600080fd5b602080860151908701511161411957600080fd5b614121612418565b83141561413957602086015134101561413957600080fd5b614141612418565b83146142b457600160a060020a038216151561415c57600080fd5b61416785600161280f565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b1580156141ce57600080fd5b505af11580156141e2573d6000803e3d6000fd5b505050506040513d60208110156141f857600080fd5b5051101561420557600080fd5b600160a060020a0382166323b872dd333061422989600160200201518b60016126c8565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561427d57600080fd5b505af1158015614291573d6000803e3d6000fd5b505050506040513d60208110156142a757600080fd5b505115156142b457600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b15801561432a57600080fd5b505af115801561433e573d6000803e3d6000fd5b505050506040513d602081101561435457600080fd5b5051151561436157600080fd5b6060860151600010156143ad57614376612418565b8314156143ad576060860151604051339180156108fc02916000818181858888f1935050505015801561294d573d6000803e3d6000fd5b505050505050565b6000828211156143c157fe5b50900390565b600080871180156143d85750600086115b80156143e45750600085115b80156143f3575082600a0a8410155b90506143fd612418565b881415614414578080156144115750816012145b90505b979650505050505050565b600061195d61442c61487c565b61443c858563ffffffff61488e16565b9063ffffffff6148b716565b81810182811015610b1e57fe5b600061195d838361446461487c565b6148cc565b60006144736149e8565b8210158015610b1e575061448561487c565b90911115919050565b606080600060ff86161580156144a5575060ff8516155b1561453357604080516000815260208101909152600e805460ff8a169081106144ca57fe5b906000526020600020906005020160030190805190602001906144ee929190614a7e565b50604080516000815260208101909152600e805460ff8a1690811061450f57fe5b90600052602060002090600502016004019080519060200190613f72929190614a7e565b835160ff8616111561454457600080fd5b60ff8086169087161061455657600080fd5b600186161561456457600080fd5b600185161561457257600080fd5b600260ff878703160460ff166040519080825280602002602001820160405280156145a7578160200160208202803883390190505b509250600260ff878703160460ff166040519080825280602002602001820160405280156145df578160200160208202803883390190505b509150600090505b8460ff168660ff1610156147825761461b848760010160ff1681518110151561460c57fe5b90602001906020020151614469565b151561462657600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561466d57600080fd5b505af4158015614681573d6000803e3d6000fd5b505050506040513d602081101561469757600080fd5b50518451859060ff60018a01169081106146ad57fe5b60209081029091010151106146c157600080fd5b600081111561470a57838660ff168151811015156146db57fe5b9060200190602002015183600183038151811015156146f657fe5b602090810290910101511061470a57600080fd5b838660ff1681518110151561471b57fe5b90602001906020020151838281518110151561473357fe5b602090810290910101528351849060ff600189011690811061475157fe5b90602001906020020151828281518110151561476957fe5b60209081029091010152600295909501946001016145e7565b82600e8860ff1681548110151561479557fe5b906000526020600020906005020160030190805190602001906147b9929190614a7e565b5081600e8860ff168154811015156147cd57fe5b906000526020600020906005020160040190805190602001906147f1929190614a7e565b5050505050505050565b60608082840185511015151561481057600080fd5b8215801561482957604051915060208201604052614873565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561486257805183526020928301920161484a565b5050858452601f01601f1916604052505b50949350505050565b60006148866149ed565b600a0a905090565b600082151561489f57506000610b1e565b508181028183828115156148af57fe5b0414610b1e57fe5b600081838115156148c457fe5b049392505050565b6000808080808515156148db57fe5b8715806148e6575086155b156148f0576149dd565b6149026000198863ffffffff6148b716565b92508288116149265761491f8661443c8a8a63ffffffff61488e16565b94506149dd565b85881415614936578694506149dd565b85871415614946578794506149dd565b87156149c757878311614959578261495b565b875b915061496d828863ffffffff61488e16565b905061498f614982828863ffffffff6148b716565b869063ffffffff61444816565b94506149ae868281151561499f57fe5b8691900663ffffffff61444816565b93506149c0888363ffffffff6143b516565b9750614946565b6149da614982858863ffffffff6148b716565b94505b505050509392505050565b600090565b60006149f76149ff565b600201905090565b600290565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b6080604051908101604052806004906020820280388339509192915050565b50805460008255600502906000526020600020908101906113229190614b90565b828054828255906000526020600020908101928215614ab9579160200282015b82811115614ab9578251825591602001919060010190614a9e565b506112e6929150614be9565b50805460008255600502906000526020600020908101906113229190614c03565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614b2757805160ff1916838001178555614ab9565b82800160010185558215614ab95791820182811115614ab9578251825591602001919060010190614a9e565b828054828255906000526020600020908101928215614ab9579160200282015b82811115614ab95782518255602090920191600190910190614b73565b61128d91905b808211156112e657805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff19169055614bd26003830182614c5c565b614be0600483016000614c5c565b50600501614b96565b61128d91905b808211156112e65760008155600101614bef565b61128d91905b808211156112e657805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff19169055614c456003830182614c7a565b614c53600483016000614c7a565b50600501614c09565b50805460008255906000526020600020908101906113229190614be9565b50805460018160011615610100020316600290046000825580601f10614ca05750611322565b601f0160209004906000526020600020908101906113229190614be9565b6000614cc982614469565b1515614cd457600080fd5b610b1e614cdf6149ff565b8390600a0a63ffffffff6148b7165600a165627a7a72305820180bd1cbabb6d625e6ac040d898b9b4a50b883ae11610f18584ef5c66350772b0029", - "deployedBytecode": "0x6080604052600436106101d45763ffffffff60e060020a60003504166307f5d63381146101d957806311eb8c9f146101e957806313096a411461021557806314f66d34146102465780631aecc19f14610274578063208853c9146102985780632442e1cb146102c25780632e325020146103f85780632fbe5990146104e9578063313602d4146104fe5780633baba4d7146105135780634090cb641461052857806343f48fbd1461053d57806354fd4d5014610552578063550fd742146105675780635641f3c3146105cc578063564566a8146105e15780635773caaf146105f6578063715018a614610617578063792c02ea1461062c5780638119c06514610641578063845ddcb2146106565780638abdf5aa1461069f5780638aea2af8146106b45780638da5cb5b146107075780638edd6eb61461071c578063a035b1fe14610731578063a4fd6f5614610746578063b13564881461075b578063b60d428814610789578063ca7348a31461079e578063d250185c146107b6578063d5b22623146107e8578063d6d65f3d14610844578063daa4cf8814610859578063e89e4ed61461086e578063e93b054014610886578063f2fde38b1461089e578063f6cf09dc146108bf578063fc0c546a146108ef575b600080fd5b6101e7600435602435610904565b005b3480156101f557600080fd5b50610201600435610b0b565b604080519115158252519081900360200190f35b34801561022157600080fd5b5061022a610b24565b60408051600160a060020a039092168252519081900360200190f35b34801561025257600080fd5b5061025b610b33565b6040805192835290151560208301528051918290030190f35b34801561028057600080fd5b50610201600160a060020a0360043516602435610b66565b3480156102a457600080fd5b506102b0600435610c0b565b60408051918252519081900360200190f35b3480156102ce57600080fd5b506102da600435610d01565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561035757818101518382015260200161033f565b50505050905090810190601f1680156103845780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156103b757818101518382015260200161039f565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561040457600080fd5b50610410600435610f2e565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610490578181015183820152602001610478565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156104cf5781810151838201526020016104b7565b505050509050019850505050505050505060405180910390f35b3480156104f557600080fd5b506102b06110d4565b34801561050a57600080fd5b506101e76110da565b34801561051f57600080fd5b506102b0611289565b34801561053457600080fd5b5061022a611290565b34801561054957600080fd5b5061022a61129f565b34801561055e57600080fd5b506102b06112ae565b34801561057357600080fd5b5061057c6112b4565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105b85781810151838201526020016105a0565b505050509050019250505060405180910390f35b3480156105d857600080fd5b5061022a6112c5565b3480156105ed57600080fd5b506102016112d4565b34801561060257600080fd5b506101e7600160a060020a03600435166112ea565b34801561062357600080fd5b506101e7611325565b34801561063857600080fd5b506102b0611393565b34801561064d57600080fd5b5061022a611399565b34801561066257600080fd5b5061066e6004356113a8565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b3480156106ab57600080fd5b506102b06113ee565b3480156106c057600080fd5b506106cf6004356024356113f4565b604051808260a080838360005b838110156106f45781810151838201526020016106dc565b5050505090500191505060405180910390f35b34801561071357600080fd5b5061022a61187f565b34801561072857600080fd5b5061022a61188e565b34801561073d57600080fd5b506102b061189d565b34801561075257600080fd5b506102016118a3565b34801561076757600080fd5b506107706118ea565b6040805163ffffffff9092168252519081900360200190f35b34801561079557600080fd5b5061022a611931565b3480156107aa57600080fd5b506101e7600435611940565b3480156107c257600080fd5b506107d1600435602435611945565b6040805182518152908190839080838360206106dc565b3480156107f457600080fd5b506101e7602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a435918201910135611964565b34801561085057600080fd5b5061025b611c92565b34801561086557600080fd5b5061025b611d0d565b34801561087a57600080fd5b506102da600435611d90565b34801561089257600080fd5b506101e7600435611efe565b3480156108aa57600080fd5b506101e7600160a060020a0360043516611f69565b3480156108cb57600080fd5b506108da600435602435611f89565b604051815181528082608080838360206106dc565b3480156108fb57600080fd5b5061022a612409565b600061090e614a04565b610916614a23565b60025460011461092557600080fd5b600280556109316112d4565b151561099e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b846109a7612418565b14610a3c576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b1580156109fc57600080fd5b505af1158015610a10573d6000803e3d6000fd5b505050506040513d6020811015610a2657600080fd5b5051600160a060020a03161415610a3c57600080fd5b610a44611d0d565b509250610a5185856113f4565b80516020820151919350610a6491611945565b9050610a70818661243c565b610aa48282600e86815481101515610a8457fe5b600091825260209091206002600590920201015463ffffffff1688612570565b610aaf828287612699565b8151602080840151606080860151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a250506001600255505050565b6000610b1e600c8363ffffffff61295716565b92915050565b600454600160a060020a031681565b600f5460009081901580610b4c5750610b4a6118a3565b155b15610b5657610b62565b5050600f546000190160015b9091565b600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151600093929092169163a9059cbb9160448082019260209290919082900301818787803b158015610bd857600080fd5b505af1158015610bec573d6000803e3d6000fd5b505050506040513d6020811015610c0257600080fd5b50519392505050565b600080600080610c19611d0d565b92509250811515610c2957610cf9565b600e805484908110610c3757fe5b90600052602060002090600502019050610cf68582600301805480602002602001604051908101604052809291908181526020018280548015610c9957602002820191906000526020600020905b815481526020019060010190808311610c85575b505050505083600401805480602002602001604051908101604052809291908181526020018280548015610cec57602002820191906000526020600020905b815481526020019060010190808311610cd8575b5050505050612970565b93505b505050919050565b600080600080606080600f87815481101515610d1957fe5b6000918252602090912060059091020154600f805463ffffffff9092169189908110610d4157fe5b906000526020600020906005020160010154600f89815481101515610d6257fe5b6000918252602090912060026005909202010154600f805463ffffffff909216918b908110610d8d57fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600f8b815481101515610dbe57fe5b9060005260206000209060050201600301600f8c815481101515610dde57fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e845780601f10610e5957610100808354040283529160200191610e84565b820191906000526020600020905b815481529060010190602001808311610e6757829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295975086945092508401905082828015610f125780601f10610ee757610100808354040283529160200191610f12565b820191906000526020600020905b815481529060010190602001808311610ef557829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600e87815481101515610f4657fe5b6000918252602090912060059091020154600e805463ffffffff9092169189908110610f6e57fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600e89815481101515610f9f57fe5b906000526020600020906005020160010154600e8a815481101515610fc057fe5b6000918252602090912060026005909202010154600e805463ffffffff909216918c908110610feb57fe5b9060005260206000209060050201600301600e8c81548110151561100b57fe5b90600052602060002090600502016004018180548060200260200160405190810160405280929190818152602001828054801561106757602002820191906000526020600020905b815481526020019060010190808311611053575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610f1257602002820191906000526020600020905b8154815260200190600101908083116110a5575050505050905095509550955095509550955091939550919395565b60095481565b600154600090600160a060020a031633146110f457600080fd5b6110fc6118a3565b151561110757600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561116d57600080fd5b505af1158015611181573d6000803e3d6000fd5b505050506040513d602081101561119757600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b15801561120d57600080fd5b505af1158015611221573d6000803e3d6000fd5b505050506040513d602081101561123757600080fd5b5051151561124457600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600f545b90565b600354600160a060020a031690565b600654600160a060020a031681565b60005481565b60606112c0600c6129cf565b905090565b600a54600160a060020a031681565b6000806112df611d0d565b9150508091505b5090565b604051600160a060020a03821690303180156108fc02916000818181858888f19350505050158015611320573d6000803e3d6000fd5b505b50565b600154600160a060020a0316331461133c57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600e5490565b600b54600160a060020a031681565b600e8054829081106113b657fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60085481565b6113fc614a04565b600080611407611d0d565b9150915080151561141757611877565b84611420612418565b146114ad576006546040805160e060020a63cfec719f028152600481018890529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561147657600080fd5b505af115801561148a573d6000803e3d6000fd5b505050506040513d60208110156114a057600080fd5b505115156114ad57611877565b6118748585600e858154811015156114c157fe5b906000526020600020906005020160010154600e868154811015156114e257fe5b906000526020600020906005020160030180548060200260200160405190810160405280929190818152602001828054801561153d57602002820191906000526020600020905b815481526020019060010190808311611529575b5050505050600e8781548110151561155157fe5b90600052602060002090600502016004018054806020026020016040519081016040528092919081815260200182805480156115ac57602002820191906000526020600020905b815481526020019060010190808311611598575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561161757600080fd5b505af115801561162b573d6000803e3d6000fd5b505050506040513d602081101561164157600080fd5b50516007546003546040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561169057600080fd5b505af11580156116a4573d6000803e3d6000fd5b505050506040513d60208110156116ba57600080fd5b505160ff168d6116c8612418565b146117da57600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b505050506040513d602081101561175d57600080fd5b50516040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b1580156117a657600080fd5b505af11580156117ba573d6000803e3d6000fd5b505050506040513d60208110156117d057600080fd5b505160ff166117dd565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561184357600080fd5b505af1158015611857573d6000803e3d6000fd5b505050506040513d602081101561186d57600080fd5b5051612a2c565b92505b505092915050565b600154600160a060020a031681565b600554600160a060020a031690565b60075481565b600e5460009015806112c05750600e805442919060001981019081106118c557fe5b6000918252602090912060059091020154640100000000900463ffffffff1610919050565b600e5460009081106118fb57600080fd5b600e8054600019810190811061190d57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600554600160a060020a031681565b600955565b61194d614a23565b61195d8383600854600954612e6a565b9392505050565b600154600090600160a060020a0316331461197e57600080fd5b600e54600010156119bb5742600e600081548110151561199a57fe5b600091825260209091206005909102015463ffffffff16116119bb57600080fd5b8b15156119c757600080fd5b60ff8c11156119d557600080fd5b60ff8811156119e357600080fd5b6002860488146119f257600080fd5b60028404881115611a0257600080fd5b811515611a0e57600080fd5b5060005b81811015611aba57600654600160a060020a0316637d20abf8848484818110611a3757fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b158015611a7b57600080fd5b505af1158015611a8f573d6000803e3d6000fd5b505050506040513d6020811015611aa557600080fd5b50511515611ab257600080fd5b600101611a12565b611b538d8d808060200260200160405190810160405280939291908181526020016000905b82821015611b1b576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611adf565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612eb5945050505050565b611c1a8989808060200260200160405190810160405280939291908181526020016000905b82821015611bb4576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611b78565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b92508291508401838280828437506133be945050505050565b611c5a83838080602002602001604051908101604052809392919081815260200183836020028082843750600c9594505063ffffffff61391c1692505050565b6040517f072792b04aecd99b2250bc76fb25f9bca793c3b7383cb4c7255a7a01e8f5a12e90600090a150505050505050505050505050565b600f5460009081901580611cab5750611ca96118a3565b155b15611cb557610b62565b5060015b600f546000190182108015611cfd5750600f805483908110611cd757fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610b6257600190910190611cb9565b60008080805b600e54821015611d8257600e805483908110611d2b57fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611d66575080544264010000000090910463ffffffff16115b15611d775781600193509350611d8a565b600190910190611d13565b600093508392505b50509091565b600f805482908110611d9e57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611e645780601f10611e3957610100808354040283529160200191611e64565b820191906000526020600020905b815481529060010190602001808311611e4757829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015611ef45780601f10611ec957610100808354040283529160200191611ef4565b820191906000526020600020905b815481529060010190602001808311611ed757829003601f168201915b5050505050905086565b600154600160a060020a03163314611f1557600080fd5b600e5460001015611f525742600e6000815481101515611f3157fe5b600091825260209091206005909102015463ffffffff1611611f5257600080fd5b600a54611322908290600160a060020a03166139ed565b600154600160a060020a03163314611f8057600080fd5b61132281613a43565b611f91614a3e565b600080611f9c611d0d565b91509150801515611fac57611877565b84611fb5612418565b14612042576006546040805160e060020a63cfec719f028152600481018890529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561200b57600080fd5b505af115801561201f573d6000803e3d6000fd5b505050506040513d602081101561203557600080fd5b5051151561204257611877565b6118748585600e8581548110151561205657fe5b906000526020600020906005020160010154600e8681548110151561207757fe5b90600052602060002090600502016003018054806020026020016040519081016040528092919081815260200182805480156120d257602002820191906000526020600020905b8154815260200190600101908083116120be575b5050505050600e878154811015156120e657fe5b906000526020600020906005020160040180548060200260200160405190810160405280929190818152602001828054801561214157602002820191906000526020600020905b81548152602001906001019080831161212d575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156121ac57600080fd5b505af11580156121c0573d6000803e3d6000fd5b505050506040513d60208110156121d657600080fd5b50516007546003546040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561222557600080fd5b505af1158015612239573d6000803e3d6000fd5b505050506040513d602081101561224f57600080fd5b505160ff168d61225d612418565b1461236f57600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156122c857600080fd5b505af11580156122dc573d6000803e3d6000fd5b505050506040513d60208110156122f257600080fd5b50516040805160e060020a63313ce5670281529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561233b57600080fd5b505af115801561234f573d6000803e3d6000fd5b505050506040513d602081101561236557600080fd5b505160ff16612372565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156123d857600080fd5b505af11580156123ec573d6000803e3d6000fd5b505050506040513d602081101561240257600080fd5b5051613ac1565b600354600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b6006546040805160e060020a63cfec719f0281526004810184905290516113209285928592600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561249557600080fd5b505af11580156124a9573d6000803e3d6000fd5b505050506040513d60208110156124bf57600080fd5b50516124cc57600061254a565b6006546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561251d57600080fd5b505af1158015612531573d6000803e3d6000fd5b505050506040513d602081101561254757600080fd5b50515b600354600454600b54600a54600160a060020a0393841693928316929182169116613d36565b6006546040805160e060020a63cfec719f028152600481018490529051612693928792879287928792600160a060020a039091169163cfec719f916024808201926020929091908290030181600087803b1580156125cd57600080fd5b505af11580156125e1573d6000803e3d6000fd5b505050506040513d60208110156125f757600080fd5b5051612604576000612682565b6006546040805160e460020a630b12e441028152600481018990529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561265557600080fd5b505af1158015612669573d6000803e3d6000fd5b505050506040513d602081101561267f57600080fd5b50515b600354600160a060020a03166140c5565b50505050565b6126a1612418565b81141561277557600554600160a060020a031663d0baf2f56126d984600160200201518660015b60200201519063ffffffff6143b516565b8551602086015133919086906126f1908a60016126c8565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b15801561275757600080fd5b505af115801561276b573d6000803e3d6000fd5b5050505050612952565b6006546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156127c657600080fd5b505af11580156127da573d6000803e3d6000fd5b505050506040513d60208110156127f057600080fd5b5051600554600160a060020a039182169163a9059cbb911661281c8560015b60200201518760016126c8565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561286e57600080fd5b505af1158015612882573d6000803e3d6000fd5b505050506040513d602081101561289857600080fd5b505115156128a557600080fd5b600554600160a060020a031663d0baf2f5338560006020020151846128d387600160200201518960016126c8565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b15801561293957600080fd5b505af115801561294d573d6000803e3d6000fd5b505050505b505050565b6000908152600191909101602052604090205460ff1690565b6000805b83518110156129c757838181518110151561298b57fe5b6020908102909101015185106129ba5782818151811015156129a957fe5b9060200190602002015191506129bf565b6129c7565b600101612974565b509392505050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a2057602002820191906000526020600020905b81548152600190910190602001808311612a0b575b50505050509050919050565b612a34614a04565b6000612a458c8c8989878a8a6143c7565b1515612a5057600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612ab257600080fd5b505af4158015612ac6573d6000803e3d6000fd5b505050506040513d6020811015612adc57600080fd5b505160408301819052861115612af157600080fd5b612b048260025b60200201518a8a612970565b905060008a11612b145785612b9a565b612b9a8a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612b5f57600080fd5b505af4158015612b73573d6000803e3d6000fd5b505050506040513d6020811015612b8957600080fd5b50518891900363ffffffff61441f16565b82600460200201818152505073__Utils_________________________________63a5a55fcf612c51612c468473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612c0e57600080fd5b505af4158015612c22573d6000803e3d6000fd5b505050506040513d6020811015612c3857600080fd5b50519063ffffffff61444816565b604086015190614455565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612c9f57600080fd5b505af4158015612cb3573d6000803e3d6000fd5b505050506040513d6020811015612cc957600080fd5b5051808352831015612d88576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015612d5357600080fd5b505af4158015612d67573d6000803e3d6000fd5b505050506040513d6020811015612d7d57600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015612df157600080fd5b505af4158015612e05573d6000803e3d6000fd5b505050506040513d6020811015612e1b57600080fd5b5051602083018190521580612e2f57508151155b15612e465760008083526020830181905260408301525b6020820151612e56908c906143b5565b6060830152509a9950505050505050505050565b612e72614a23565b6000831115612e8e57612e8b858463ffffffff61445516565b81525b6000821115612ead57612ea7848363ffffffff61445516565b60208201525b949350505050565b600f54600090811015612f1257825183906000198101908110612ed457fe5b6020908102919091018101510151600f80546000908110612ef157fe5b600091825260209091206005909102015463ffffffff1611612f1257600080fd5b612f1e600e6000614a5d565b5060005b82518160ff16101561339057825163ffffffff90849060ff8416908110612f4557fe5b6020908102919091010151511115612f5c57600080fd5b825163ffffffff90849060ff8416908110612f7357fe5b60209081029190910181015101511115612f8c57600080fd5b825163ffffffff90849060ff8416908110612fa357fe5b6020908102919091010151606001511115612fbd57600080fd5b825160ff908490838316908110612fd057fe5b6020908102919091010151608001511115612fea57600080fd5b825160ff908490838316908110612ffd57fe5b602090810291909101015160a00151111561301757600080fd5b42838260ff1681518110151561302957fe5b6020908102919091010151511161303f57600080fd5b828160ff1681518110151561305057fe5b60209081029190910181015101518351849060ff841690811061306f57fe5b6020908102919091010151511061308557600080fd5b60008160ff1611156130dc57828160ff168151811015156130a257fe5b6020908102919091010151518351849060ff6000198501169081106130c357fe5b602090810291909101810151015111156130dc57600080fd5b613107838260ff168151811015156130f057fe5b6020908102909101015160025b6020020151614469565b151561311257600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561315957600080fd5b505af415801561316d573d6000803e3d6000fd5b505050506040513d602081101561318357600080fd5b50518351849060ff841690811061319657fe5b602090810291909101015160400151106131af57600080fd5b600e60c060405190810160405280858460ff168151811015156131ce57fe5b6020908102919091018101515163ffffffff1682528651910190869060ff86169081106131f757fe5b602090810290910101516001602002015163ffffffff168152602001858460ff1681518110151561322457fe5b60209081029091010151600260200201518152602001858460ff1681518110151561324b57fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff00000000191664010000000091871691909102178255604086015193820193909355606085015160028201805490941694169390931790915560808301518051919461331692600385019290910190614a7e565b5060a08201518051613332916004840191602090910190614a7e565b505050506133886001600e8054905003848360ff1681518110151561335357fe5b6020908102919091010151608001518551869060ff861690811061337357fe5b602090810291909101015160a001518561448e565b600101612f22565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600e80549050111561342b578860008151811015156133e457fe5b602090810291909101015151600e8054600019810190811061340257fe5b6000918252602090912060059091020154640100000000900463ffffffff161061342b57600080fd5b613437600f6000614ac5565b600095506000945060009350600092505b88518360ff16101561386a57885163ffffffff908a9060ff861690811061346b57fe5b602090810291909101015151111561348257600080fd5b885163ffffffff908a9060ff861690811061349957fe5b602090810291909101810151015111156134b257600080fd5b885163ffffffff908a9060ff86169081106134c957fe5b60209081029190910101516040015111156134e357600080fd5b42898460ff168151811015156134f557fe5b6020908102919091010151511161350b57600080fd5b888360ff1681518110151561351c57fe5b60209081029190910101515189518a9060ff861690811061353957fe5b60209081029190910181015101511161355157600080fd5b888360ff1681518110151561356257fe5b602090810291909101810151015189518a9060ff861690811061358157fe5b6020908102919091010151604001511161359a57600080fd5b60008360ff1611156135f157888360ff168151811015156135b757fe5b60209081029190910101515189518a9060ff6000198701169081106135d857fe5b602090810291909101015160400151106135f157600080fd5b613616898460ff1681518110151561360557fe5b6020908102909101015160036130fd565b151561362157600080fd5b61365386898781518110151561363357fe5b9060200190602002015163ffffffff16896147fb9092919063ffffffff16565b9150613685888681518110151561366657fe5b9060200190602002015163ffffffff168761444890919063ffffffff16565b955061369c86898760010181518110151561363357fe5b90506136b2888660010181518110151561366657fe5b95506136c585600263ffffffff61444816565b94506136f1898460ff168151811015156136db57fe5b6020908102919091010151606001518590614448565b9350600f60c0604051908101604052808b8660ff1681518110151561371257fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff881690811061373b57fe5b602090810290910101516003602002015181526020018b8660ff1681518110151561376257fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff1681518110151561378f57fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff000000001993909516931692909217169190911790556080830151805161383e9260038501920190614ae6565b5060a0820151805161385a916004840191602090910190614ae6565b5050600190940193506134489050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156138b157600080fd5b505af41580156138c5573d6000803e3d6000fd5b505050506040513d60208110156138db57600080fd5b505184146138e857600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b81546000901561397f575060005b825481101561397f576000836001016000856000018481548110151561394c57fe5b60009182526020808320919091015483528201929092526040019020805460ff191691151591909117905560010161392a565b81516139919084906020850190614b53565b50815115612952575060005b815181101561295257600183600101600084848151811015156139bc57fe5b6020908102919091018101518252810191909152604001600020805460ff191691151591909117905560010161399d565b600082116139fa57600080fd5b600160a060020a0381161515613a0f57600080fd5b600791909155600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a0381161515613a5857600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b613ac9614a3e565b6000613ada8c8c8989878a8a6143c7565b1515613ae557600080fd5b8a831015613af157829a505b8a825260008a11613b025785613b4d565b613b4d8a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612b5f57600080fd5b60608301819052604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018e90526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015613bcd57600080fd5b505af4158015613be1573d6000803e3d6000fd5b505050506040513d6020811015613bf757600080fd5b505160408301819052861115613c0c57600080fd5b613c17826002612af8565b905073__Utils_________________________________63a5a55fcf836002602002015186613c97613c8a8673__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612c0e57600080fd5b8c9063ffffffff61445516565b6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015613cdc57600080fd5b505af4158015613cf0573d6000803e3d6000fd5b505050506040513d6020811015613d0657600080fd5b5051602083018190521515613d275760008083526020830181905260408301525b509a9950505050505050505050565b600160a060020a0383161515613d4b57600080fd5b600160a060020a0384161515613d6057600080fd5b600160a060020a0382161515613d7557600080fd5b600160a060020a0381161515613d8a57600080fd5b60208701516000108015613da55750613da1612418565b8614155b15613dbf57600160a060020a0385161515613dbf57600080fd5b865160001015613f1d578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b158015613e4057600080fd5b505af1158015613e54573d6000803e3d6000fd5b505050506040513d6020811015613e6a57600080fd5b50511515613e7757600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b158015613ee657600080fd5b505af1158015613efa573d6000803e3d6000fd5b505050506040513d6020811015613f1057600080fd5b50511515613f1d57600080fd5b60208701516000101561294d57613f32612418565b861415613f78576020870151604051600160a060020a0383169180156108fc02916000818181858888f19350505050158015613f72573d6000803e3d6000fd5b5061294d565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b158015613fe457600080fd5b505af1158015613ff8573d6000803e3d6000fd5b505050506040513d602081101561400e57600080fd5b5051101561401b57600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561408e57600080fd5b505af11580156140a2573d6000803e3d6000fd5b505050506040513d60208110156140b857600080fd5b5051151561294d57600080fd5b600160a060020a03811615156140da57600080fd5b855115156140e757600080fd5b602086015115156140f757600080fd5b845186511161410557600080fd5b602080860151908701511161411957600080fd5b614121612418565b83141561413957602086015134101561413957600080fd5b614141612418565b83146142b457600160a060020a038216151561415c57600080fd5b61416785600161280f565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b1580156141ce57600080fd5b505af11580156141e2573d6000803e3d6000fd5b505050506040513d60208110156141f857600080fd5b5051101561420557600080fd5b600160a060020a0382166323b872dd333061422989600160200201518b60016126c8565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561427d57600080fd5b505af1158015614291573d6000803e3d6000fd5b505050506040513d60208110156142a757600080fd5b505115156142b457600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b15801561432a57600080fd5b505af115801561433e573d6000803e3d6000fd5b505050506040513d602081101561435457600080fd5b5051151561436157600080fd5b6060860151600010156143ad57614376612418565b8314156143ad576060860151604051339180156108fc02916000818181858888f1935050505015801561294d573d6000803e3d6000fd5b505050505050565b6000828211156143c157fe5b50900390565b600080871180156143d85750600086115b80156143e45750600085115b80156143f3575082600a0a8410155b90506143fd612418565b881415614414578080156144115750816012145b90505b979650505050505050565b600061195d61442c61487c565b61443c858563ffffffff61488e16565b9063ffffffff6148b716565b81810182811015610b1e57fe5b600061195d838361446461487c565b6148cc565b60006144736149e8565b8210158015610b1e575061448561487c565b90911115919050565b606080600060ff86161580156144a5575060ff8516155b1561453357604080516000815260208101909152600e805460ff8a169081106144ca57fe5b906000526020600020906005020160030190805190602001906144ee929190614a7e565b50604080516000815260208101909152600e805460ff8a1690811061450f57fe5b90600052602060002090600502016004019080519060200190613f72929190614a7e565b835160ff8616111561454457600080fd5b60ff8086169087161061455657600080fd5b600186161561456457600080fd5b600185161561457257600080fd5b600260ff878703160460ff166040519080825280602002602001820160405280156145a7578160200160208202803883390190505b509250600260ff878703160460ff166040519080825280602002602001820160405280156145df578160200160208202803883390190505b509150600090505b8460ff168660ff1610156147825761461b848760010160ff1681518110151561460c57fe5b90602001906020020151614469565b151561462657600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561466d57600080fd5b505af4158015614681573d6000803e3d6000fd5b505050506040513d602081101561469757600080fd5b50518451859060ff60018a01169081106146ad57fe5b60209081029091010151106146c157600080fd5b600081111561470a57838660ff168151811015156146db57fe5b9060200190602002015183600183038151811015156146f657fe5b602090810290910101511061470a57600080fd5b838660ff1681518110151561471b57fe5b90602001906020020151838281518110151561473357fe5b602090810290910101528351849060ff600189011690811061475157fe5b90602001906020020151828281518110151561476957fe5b60209081029091010152600295909501946001016145e7565b82600e8860ff1681548110151561479557fe5b906000526020600020906005020160030190805190602001906147b9929190614a7e565b5081600e8860ff168154811015156147cd57fe5b906000526020600020906005020160040190805190602001906147f1929190614a7e565b5050505050505050565b60608082840185511015151561481057600080fd5b8215801561482957604051915060208201604052614873565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561486257805183526020928301920161484a565b5050858452601f01601f1916604052505b50949350505050565b60006148866149ed565b600a0a905090565b600082151561489f57506000610b1e565b508181028183828115156148af57fe5b0414610b1e57fe5b600081838115156148c457fe5b049392505050565b6000808080808515156148db57fe5b8715806148e6575086155b156148f0576149dd565b6149026000198863ffffffff6148b716565b92508288116149265761491f8661443c8a8a63ffffffff61488e16565b94506149dd565b85881415614936578694506149dd565b85871415614946578794506149dd565b87156149c757878311614959578261495b565b875b915061496d828863ffffffff61488e16565b905061498f614982828863ffffffff6148b716565b869063ffffffff61444816565b94506149ae868281151561499f57fe5b8691900663ffffffff61444816565b93506149c0888363ffffffff6143b516565b9750614946565b6149da614982858863ffffffff6148b716565b94505b505050509392505050565b600090565b60006149f76149ff565b600201905090565b600290565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b6080604051908101604052806004906020820280388339509192915050565b50805460008255600502906000526020600020908101906113229190614b90565b828054828255906000526020600020908101928215614ab9579160200282015b82811115614ab9578251825591602001919060010190614a9e565b506112e6929150614be9565b50805460008255600502906000526020600020908101906113229190614c03565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614b2757805160ff1916838001178555614ab9565b82800160010185558215614ab95791820182811115614ab9578251825591602001919060010190614a9e565b828054828255906000526020600020908101928215614ab9579160200282015b82811115614ab95782518255602090920191600190910190614b73565b61128d91905b808211156112e657805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff19169055614bd26003830182614c5c565b614be0600483016000614c5c565b50600501614b96565b61128d91905b808211156112e65760008155600101614bef565b61128d91905b808211156112e657805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff19169055614c456003830182614c7a565b614c53600483016000614c7a565b50600501614c09565b50805460008255906000526020600020908101906113229190614be9565b50805460018160011615610100020316600290046000825580601f10614ca05750611322565b601f0160209004906000526020600020908101906113229190614be9565b6000614cc982614469565b1515614cd457600080fd5b610b1e614cdf6149ff565b8390600a0a63ffffffff6148b7165600a165627a7a72305820180bd1cbabb6d625e6ac040d898b9b4a50b883ae11610f18584ef5c66350772b0029", - "sourceMap": "103:965:18:-;;;487:1:41;657:51;;151:563:18;8:9:-1;5:2;;;30:1;27;20:12;5:2;151:563:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:7:37;:18;;;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;151:563:18;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2286:26:5;;;;2278:35;;;;;;-1:-1:-1;;;;;2331:20:5;;;;2323:29;;;;;;2370:23;:11;:21;;;;;;:23;:::i;:::-;:58;;;;-1:-1:-1;2425:3:5;2397:25;:11;:23;;;;;;:25;:::i;:::-;:31;2370:58;2362:67;;;;;;;;2447:33;:21;:31;;;;;;:33;:::i;:::-;:78;;;;-1:-1:-1;2522:3:5;2484:35;:21;:33;;;;;;:35;:::i;:::-;:41;2447:78;2439:87;;;;;;;;-1:-1:-1;;;;;2544:19:5;;;;2536:28;;;;;;-1:-1:-1;;;;;2582:19:5;;;;2574:28;;;;;;-1:-1:-1;;;;;2620:20:5;;;;2612:29;;;;;;2652:39;2668:6;2676:14;2652:15;;;;:39;:::i;:::-;2702:5;:23;;-1:-1:-1;;;;;;2702:23:5;;;-1:-1:-1;;;;;2702:23:5;;;;;;;2735:11;:33;;;;;;;;;;;;;;2778:10;:24;;;;2812:4;:12;;;;;;;;;;;;;;2834:20;:44;2888:4;:12;;;;;;;;;;;;;;-1:-1:-1;2910:14:5;;;;;;;;;;;;;;-1:-1:-1;103:965:18;;-1:-1:-1;;;;;;;;;;;;103:965:18;672:107:13;723:4;752:5;:3;;;;:5;:::i;:::-;746:2;:11;;:26;;;;-1:-1:-1;767:5:13;:3;;;;:5;:::i;:::-;761:2;:11;;746:26;739:33;672:107;-1:-1:-1;;672:107:13:o;924:139::-;977:4;1001:13;1011:2;1001:9;;;;:13;:::i;:::-;993:22;;;;;;;;1033:23;1046:9;:7;;;;:9;:::i;:::-;1033:2;;1040;:15;1033:6;;;;;;:23;:::i;4693:219:5:-;4791:1;4782:10;;4774:19;;;;;;-1:-1:-1;;;;;4811:28:5;;;;4803:37;;;;;;4851:5;:14;;;;4875:13;:30;;-1:-1:-1;;;;;;4875:30:5;-1:-1:-1;;;;;4875:30:5;;;;;;;;;4693:219::o;297:55:13:-;333:4;297:55;:::o;357:65::-;393:4;414:5;:3;;;;:5;:::i;:::-;408:2;:11;401:18;;357:65;:::o;161:59::-;216:1;161:59;:::o;665:283:44:-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;225:67:13:-;261:4;280:9;:7;;;;:9;:::i;:::-;276:1;:13;269:20;;225:67;:::o;103:965:18:-;;;;;;;", - "deployedSourceMap": "103:965:18:-;;;;;;;;;-1:-1:-1;;;103:965:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12140:654:5;;;;;;;;;;14325:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14325:135:5;;;;;;;;;;;;;;;;;;;;;;;918:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;918:24:5;;;;;;;;-1:-1:-1;;;;;918:24:5;;;;;;;;;;;;;;4482:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4482:205:5;;;;;;;;;;;;;;;;;;;;;;;;;;;720:119:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;720:119:18;-1:-1:-1;;;;;720:119:18;;;;;;;16339:310:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16339:310:5;;;;;;;;;;;;;;;;;;;;;3137:388;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3137:388:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3137:388:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3137:388:5;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3137:388:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3531:359;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3531:359:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3531:359:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3531:359:5;;;;;;;;;;;;;;;;;;;;;;;1050:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1050:32:5;;;;16992:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16992:240:5;;;;3033:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3033:98:5;;;;14036:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14036:81:5;;;;974:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;974:19:5;;;;53::37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:37;;;;14208:111:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14208:111:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14208:111:5;;;;;;;;;;;;;;;;;1088:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1088:28:5;;;;17375:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17375:130:5;;;;845:98:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;845:98:18;-1:-1:-1;;;;;845:98:18;;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;2937:90:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2937:90:5;;;;1122:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1122:19:5;;;;1223:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1223:21:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1022:22:5;;;;14466:823;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14466:823:5;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14466:823:5;;;;;;;;;;;;;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;14123:79:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14123:79:5;;;;999:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;999:17:5;;;;17238:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17238:131:5;;;;3896:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3896:147:5;;;;;;;;;;;;;;;;;;;;;;;948:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;948:20:5;;;;949:117:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;949:117:18;;;;;16160:173:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16160:173:5;;;;;;;;;;;84:18:-1;;64:39;;16160:173:5;;;;;;;;52:2:-1;8:100;;5119:1380:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5119:1380:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4129:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4129:347:5;;;;16655:331;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16655:331:5;;;;1250:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1250:29:5;;;;;4918:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4918:126:5;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;-1:-1:-1;;;;;1274:103:45;;;;;15295:859:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15295:859:5;;;;;;;;;;84:18:-1;;64:39;;15295:859:5;;;;;;52:2:-1;8:100;;892:20:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;892:20:5;;;;12140:654;12380:10;12443:22;;:::i;:::-;12504:18;;:::i;:::-;1128:14:41;;487:1;1128:39;1120:48;;;;;;584:1;1174:40;;17702:14:5;:12;:14::i;:::-;17694:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12284:6;12249:31;:29;:31::i;:::-;:41;12245:124;;12314:5;;:29;;;-1:-1:-1;;;;;12314:29:5;;;;;;;;;;12355:1;;-1:-1:-1;;;;;12314:5:5;;:21;;:29;;;;;;;;;;;;;;12355:1;12314:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;12314:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12314:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12314:29:5;-1:-1:-1;;;;;12314:43:5;;;12306:52;;;;;;12410:22;:20;:22::i;:::-;12379:53;;;12468:26;12479:6;12487;12468:10;:26::i;:::-;12532:10;;;12544;;;12443:51;;-1:-1:-1;12525:30:5;;:6;:30::i;:::-;12504:51;;12566:25;12579:3;12584:6;12566:12;:25::i;:::-;12601:62;12619:7;12628:3;12633:6;12640:5;12633:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;;;12656:6;12601:17;:62::i;:::-;12673:37;12689:7;12698:3;12703:6;12673:15;:37::i;:::-;12752:10;;;12764;;;;12776;;;;;12726:61;;;;;;;;;;;;;;;;;;;;;;12740:10;;12726:61;;;;;;;;;-1:-1:-1;;487:1:41;1227:14;:38;-1:-1:-1;;;12140:654:5:o;14325:135::-;14397:4;14420:33;:14;14445:7;14420:33;:24;:33;:::i;:::-;14413:40;14325:135;-1:-1:-1;;14325:135:5:o;918:24::-;;;-1:-1:-1;;;;;918:24:5;;:::o;4482:205::-;4574:10;:17;4536:10;;;;4574:22;;:36;;;4601:9;:7;:9::i;:::-;4600:10;4574:36;4570:49;;;4612:7;;4570:49;-1:-1:-1;;4659:10:5;:17;-1:-1:-1;;4659:21:5;4637:4;4482:205;;;:::o;720:119:18:-;806:5;;:26;;;;;;-1:-1:-1;;;;;806:26:18;;;;;;;;;;;;;;;783:4;;806:5;;;;;:14;;:26;;;;;;;;;;;;;;;783:4;806:5;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;806:26:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;806:26:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;806:26:18;;720:119;-1:-1:-1;;;720:119:18:o;16339:310:5:-;16399:10;16422;16434;16510:19;16448:22;:20;:22::i;:::-;16421:49;;;;16486:5;16485:6;16481:19;;;16493:7;;16481:19;16532:6;:13;;16539:5;;16532:13;;;;;;;;;;;;;;;;16510:35;;16563:79;16591:5;16598;:22;;16563:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16622:5;:19;;16563:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;:79::i;:::-;16556:86;;16339:310;;;;;;;:::o;3137:388::-;3192:6;3200:4;3206:6;3214;3222:5;3229;3267:10;3278:5;3267:17;;;;;;;;;;;;;;;;;;;;;;;:25;3306:10;:17;;3267:25;;;;;3317:5;;3306:17;;;;;;;;;;;;;;;;:32;;;3352:10;3363:5;3352:17;;;;;;;;;;;;;;;;;;:29;:17;;;;;:29;;3395:10;:17;;3352:29;;;;;3406:5;;3395:17;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;3443:10;3454:5;3443:17;;;;;;;;;;;;;;;;;;;;:22;;3479:10;3490:5;3479:17;;;;;;;;;;;;;;;;;;;;:29;;3246:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3246:272:5;;;;;;;;;;;;;-1:-1:-1;;3246:272:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3246:272:5;;-1:-1:-1;3246:272:5;-1:-1:-1;3246:272:5;;;-1:-1:-1;3246:272:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3137:388;;;;;;;:::o;3531:359::-;3582:6;3590;3598:4;3604:6;3612;3620;3659;3666:5;3659:13;;;;;;;;;;;;;;;;;;;;;;;:23;3696:6;:13;;3659:23;;;;;3703:5;;3696:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;3731:6;3738:5;3731:13;;;;;;;;;;;;;;;;;;;;:22;;;3767:6;3774:5;3767:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;3802:6;:13;;3767:21;;;;;3809:5;;3802:13;;;;;;;;;;;;;;;;:30;;3846:6;3853:5;3846:13;;;;;;;;;;;;;;;;;;;;:27;;3638:245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3531:359;;;;;;;:::o;1050:32::-;;;;:::o;16992:240::-;719:5:45;;17082:11:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;17061:9:5;:7;:9::i;:::-;17053:18;;;;;;;;17096:5;;:30;;;;;;17120:4;17096:30;;;;;;-1:-1:-1;;;;;17096:5:5;;;;:15;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;17096:30:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17096:30:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17096:30:5;17145:5;;;17160;17145:29;;;;;;-1:-1:-1;;;;;17160:5:5;;;17145:29;;;;;;;;;;;;17096:30;;-1:-1:-1;17145:5:5;;;:14;;:29;;;;;17096:30;;17145:29;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;17145:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17145:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17145:29:5;17137:38;;;;;;;;17211:5;;17191:34;;;;;;;;-1:-1:-1;;;;;17211:5:5;;;;17191:34;;;;;;;;;16992:240;:::o;3033:98::-;3107:10;:17;3033:98;;:::o;14036:81::-;14105:5;;-1:-1:-1;;;;;14105:5:5;14036:81;:::o;974:19::-;;;-1:-1:-1;;;;;974:19:5;;:::o;53::37:-;;;;:::o;14208:111:5:-;14263:9;14291:21;:14;:19;:21::i;:::-;14284:28;;14208:111;:::o;1088:28::-;;;-1:-1:-1;;;;;1088:28:5;;:::o;17375:130::-;17420:4;17439:10;17453:22;:20;:22::i;:::-;17436:39;;;17493:5;17486:12;;17375:130;;;:::o;845:98:18:-;902:34;;-1:-1:-1;;;;;902:11:18;;;922:4;914:21;902:34;;;;;;;;;914:21;902:11;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;902:34:18;845:98;;:::o;1001:111:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;2937:90:5:-;3007:6;:13;2937:90;:::o;1122:19::-;;;-1:-1:-1;;;;;1122:19:5;;:::o;1223:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1223:21:5;;;;;;;;;;:::o;1022:22::-;;;;:::o;14466:823::-;14536:7;;:::i;:::-;14556:10;14568;14582:22;:20;:22::i;:::-;14555:49;;;;14620:5;14619:6;14615:19;;;14627:7;;14615:19;14683:6;14648:31;:29;:31::i;:::-;:41;14644:138;;14710:5;;:21;;;-1:-1:-1;;;;;14710:21:5;;;;;;;;;;-1:-1:-1;;;;;14710:5:5;;;;:13;;:21;;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;14710:21:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14710:21:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14710:21:5;14709:22;14705:67;;;14751:7;;14705:67;14799:483;14839:6;14859;14879;14886:5;14879:13;;;;;;;;;;;;;;;;;;;;:22;;;14915:6;14922:5;14915:13;;;;;;;;;;;;;;;;;;;;:30;;14799:483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14959:6;14966:5;14959:13;;;;;;;;;;;;;;;;;;;;:27;;14799:483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15000:5;;;;;;;;;-1:-1:-1;;;;;15000:5:5;-1:-1:-1;;;;;15000:9:5;;15010:6;15000:17;;;;;-1:-1:-1;;;15000:17:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15000:17:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15000:17:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15000:17:5;15031:5;;15055;;:16;;;-1:-1:-1;;;;;15055:16:5;;;;-1:-1:-1;;;;;15055:5:5;;;;:14;;:16;;;;;15000:17;;15055:16;;;;;;;;:5;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;15055:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15055:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15055:16:5;15050:22;;15121:6;15086:31;:29;:31::i;:::-;:41;:142;;15186:5;;;;;;;;;-1:-1:-1;;;;;15186:5:5;-1:-1:-1;;;;;15186:21:5;;15208:6;15186:29;;;;;-1:-1:-1;;;15186:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15186:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15186:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15186:29:5;15172:55;;;-1:-1:-1;;;;;15172:55:5;;;;-1:-1:-1;;;;;15172:53:5;;;;;;:55;;;;;15186:29;;15172:55;;;;;;;;;:53;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;15172:55:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15172:55:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15172:55:5;15167:61;;15086:142;;;15146:2;15086:142;15242:5;;:30;;;;;;15266:4;15242:30;;;;;;-1:-1:-1;;;;;15242:5:5;;;;:15;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;15242:30:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15242:30:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15242:30:5;14799:26;:483::i;:::-;14792:490;;14466:823;;;;;;;:::o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;14123:79:5:-;14191:4;;-1:-1:-1;;;;;14191:4:5;14123:79;:::o;999:17::-;;;;:::o;17238:131::-;17301:6;:13;17278:4;;17301:18;;:61;;-1:-1:-1;17323:6:5;17330:13;;17359:3;;17323:6;-1:-1:-1;;17330:17:5;;;17323:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:39;;17238:131;-1:-1:-1;17238:131:5:o;3896:147::-;3967:6;:13;3941:6;;3967:17;-1:-1:-1;3959:26:5;;;;;;4003:6;4010:13;;-1:-1:-1;;4010:17:5;;;4003:25;;;;;;;;;;;;;;;;;;;:33;;;;;;;3896:147;-1:-1:-1;3896:147:5:o;948:20::-;;;-1:-1:-1;;;;;948:20:5;;:::o;949:117:18:-;1015:20;:44;949:117::o;16160:173:5:-;16225:7;;:::i;:::-;16251:75;16274:11;16287:4;16293:10;;16305:20;;16251:22;:75::i;:::-;16244:82;16160:173;-1:-1:-1;;;16160:173:5:o;5119:1380::-;719:5:45;;6018:6:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;17552:6:5;:13;17568:1;-1:-1:-1;17548:82:5;;;17615:3;17593:6;17600:1;17593:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;17585:34;;;;;;5515:30;;;5507:39;;;;;;5564;;;;5556:48;;;;;;5676:43;;;;5668:52;;;;;;5818:1;5771:37;:48;5738:81;;5730:90;;;;;;5912:1;5871:31;:42;5838:75;;;5830:84;;;;;;5971:30;;;5963:39;;;;;;-1:-1:-1;6027:1:5;6013:125;6030:29;;;6013:125;;;6088:5;;-1:-1:-1;;;;;6088:5:5;:15;6104:18;;6123:1;6104:21;;;;;;;6088:38;;;-1:-1:-1;;;6088:38:5;;;;;;6104:21;;;;;;;;;6088:38;;;;;;;;;;6104:21;;-1:-1:-1;6088:38:5;;;;;;;6104:21;6088:38;;;;5:2:-1;;;;30:1;27;20:12;5:2;6088:38:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6088:38:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6088:38:5;6080:47;;;;;;;;6061:3;;6013:125;;;6148:89;6172:18;;6148:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6148:89:5;;;-1:-1:-1;;6148:89:5;;;;;;;;;;;;;;;6204:23;;6148:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6148:10:5;;-1:-1:-1;;;;;6148:89:5:i;:::-;6248:156;6276:22;;6248:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6248:156:5;;;-1:-1:-1;;6248:156:5;;;;;;;;;;;;;;;6312:37;;6248:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6248:156:5;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6363:31:5;;-1:-1:-1;6363:31:5;;-1:-1:-1;6363:31:5;;-1:-1:-1;6248:156:5;;6363:31;;;;6248:156;;-1:-1:-1;6248:14:5;;-1:-1:-1;;;;;6248:156:5:i;:::-;6415:41;6437:18;;6415:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6415:14:5;;:41;-1:-1:-1;;6415:41:5;:21;:41;;-1:-1:-1;;;6415:41:5:i;:::-;6472:20;;;;;;;5119:1380;;;;;;;;;;;;;:::o;4129:347::-;4223:10;:17;4186:10;;;;4223:22;;:36;;;4250:9;:7;:9::i;:::-;4249:10;4223:36;4220:48;;;4261:7;;4220:48;-1:-1:-1;4286:4:5;4356:114;4370:10;:17;-1:-1:-1;;4370:21:5;4362:29;;:74;;;;-1:-1:-1;4402:10:5;:17;;4413:5;;4402:17;;;;;;;;;;;;;;;;;;;:34;;;;;;;;4395:3;:41;;4362:74;4356:114;;;4452:7;;;;;4356:114;;16655:331;16708:10;;;;16742:210;16762:6;:13;16758:17;;16742:210;;;16818:6;:9;;16825:1;;16818:9;;;;;;;;;;;;;;;;;;;16846:15;;16818:9;;-1:-1:-1;16865:3:5;16846:15;;;;:22;;;;:45;;-1:-1:-1;16872:13:5;;16888:3;16872:13;;;;;;:19;16846:45;16842:100;;;16919:1;16922:4;16911:16;;;;;;16842:100;16777:3;;;;;16742:210;;;16970:1;;-1:-1:-1;16970:1:5;;-1:-1:-1;16655:331:5;;;;;:::o;1250:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1250:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1250:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1250:29:5;;;;;;;;;;;;;;;;-1:-1:-1;;1250:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1250:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4918:126::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;17552:6:5;:13;17568:1;-1:-1:-1;17548:82:5;;;17615:3;17593:6;17600:1;17593:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;17585:34;;;;;;5023:13;;4999:38;;5015:6;;-1:-1:-1;;;;;5023:13:5;4999:15;:38::i;1274:103:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;15295:859:5:-;15383:7;;:::i;:::-;15403:10;15415;15429:22;:20;:22::i;:::-;15402:49;;;;15467:5;15466:6;15462:19;;;15474:7;;15462:19;15530:6;15495:31;:29;:31::i;:::-;:41;15491:138;;15557:5;;:21;;;-1:-1:-1;;;;;15557:21:5;;;;;;;;;;-1:-1:-1;;;;;15557:5:5;;;;:13;;:21;;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;15557:21:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15557:21:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15557:21:5;15556:22;15552:67;;;15598:7;;15552:67;15646:501;15699:6;15719:11;15744:6;15751:5;15744:13;;;;;;;;;;;;;;;;;;;;:22;;;15780:6;15787:5;15780:13;;;;;;;;;;;;;;;;;;;;:30;;15646:501;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15824:6;15831:5;15824:13;;;;;;;;;;;;;;;;;;;;:27;;15646:501;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15865:5;;;;;;;;;-1:-1:-1;;;;;15865:5:5;-1:-1:-1;;;;;15865:9:5;;15875:6;15865:17;;;;;-1:-1:-1;;;15865:17:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15865:17:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15865:17:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15865:17:5;15896:5;;15920;;:16;;;-1:-1:-1;;;;;15920:16:5;;;;-1:-1:-1;;;;;15920:5:5;;;;:14;;:16;;;;;15865:17;;15920:16;;;;;;;;:5;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;15920:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15920:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15920:16:5;15915:22;;15986:6;15951:31;:29;:31::i;:::-;:41;:142;;16051:5;;;;;;;;;-1:-1:-1;;;;;16051:5:5;-1:-1:-1;;;;;16051:21:5;;16073:6;16051:29;;;;;-1:-1:-1;;;16051:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16051:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16051:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16051:29:5;16037:55;;;-1:-1:-1;;;;;16037:55:5;;;;-1:-1:-1;;;;;16037:53:5;;;;;;:55;;;;;16051:29;;16037:55;;;;;;;;;:53;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;16037:55:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16037:55:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16037:55:5;16032:61;;15951:142;;;16011:2;15951:142;16107:5;;:30;;;;;;16131:4;16107:30;;;;;;-1:-1:-1;;;;;16107:5:5;;;;:15;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;16107:30:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16107:30:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16107:30:5;15646:39;:501::i;892:20::-;;;-1:-1:-1;;;;;892:20:5;;:::o;319:78:15:-;381:14;319:78;:::o;12800:343:5:-;12953:5;;:21;;;-1:-1:-1;;;;;12953:21:5;;;;;;;;;;12871:265;;12915:4;;12933:6;;-1:-1:-1;;;;;12953:5:5;;;;:13;;:21;;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;12953:21:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12953:21:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12953:21:5;:66;;13017:1;12953:66;;;12977:5;;:29;;;-1:-1:-1;;;;;12977:29:5;;;;;;;;;;-1:-1:-1;;;;;12977:5:5;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;12977:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12977:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12977:29:5;12953:66;13041:5;;13069:11;;13095:4;;13113:13;;-1:-1:-1;;;;;13041:5:5;;;;13069:11;;;;13095:4;;;;13113:13;12871:30;:265::i;13149:351::-;13389:5;;:21;;;-1:-1:-1;;;;;13389:21:5;;;;;;;;;;13259:234;;13308:8;;13330:4;;13348:7;;13369:6;;-1:-1:-1;;;;;13389:5:5;;;;:13;;:21;;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;13389:21:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13389:21:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13389:21:5;:66;;13453:1;13389:66;;;13413:5;;:29;;;-1:-1:-1;;;;;13413:29:5;;;;;;;;;;-1:-1:-1;;;;;13413:5:5;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;13413:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13413:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13413:29:5;13389:66;13477:5;;-1:-1:-1;;;;;13477:5:5;13259:35;:234::i;:::-;13149:351;;;;:::o;13506:524::-;13612:31;:29;:31::i;:::-;13602:41;;13598:426;;;13659:4;;-1:-1:-1;;;;;13659:4:5;:19;13685:24;13701:4;13659;13701:7;;;;13685:8;13694:1;13685:11;;;;;;:24;:15;:24;:::i;:::-;13723:11;;;13760:7;;;13711:10;;13723:11;13736:6;;13744:24;;13723:8;13765:1;13744:11;;:24;13770:8;13779:1;13770:11;;;;13659:123;;;-1:-1:-1;;;13659:123:5;;;;;;-1:-1:-1;;;;;13659:123:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13659:123:5;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;13659:123:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13659:123:5;;;;;13598:426;;;13827:5;;:29;;;-1:-1:-1;;;;;13827:29:5;;;;;;;;;;-1:-1:-1;;;;;13827:5:5;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;13827:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13827:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13827:29:5;13875:4;;-1:-1:-1;;;;;13821:45:5;;;;;;13875:4;13882:24;13898:4;13875;13898:7;;;;;13882:8;13891:1;13882:11;;:24;13821:86;;;;;-1:-1:-1;;;13821:86:5;;;;;;;-1:-1:-1;;;;;13821:86:5;-1:-1:-1;;;;;13821:86:5;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13821:86:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13821:86:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13821:86:5;13813:95;;;;;;;;13922:4;;-1:-1:-1;;;;;13922:4:5;:19;13942:10;13954:8;13922:4;13954:11;;;;13967:6;13975:24;13991:4;13996:1;13991:7;;;;13975:8;13984:1;13975:11;;:24;14001:8;14010:1;14001:11;;;;13922:91;;;-1:-1:-1;;;13922:91:5;;;;;;-1:-1:-1;;;;;13922:91:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13922:91:5;;;;;;;-1:-1:-1;13922:91:5;;;;5:2:-1;;;;30:1;27;20:12;5:2;13922:91:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13922:91:5;;;;13598:426;13506:524;;;:::o;628:140:12:-;712:4;735:26;;;:17;;;;;:26;;;;;;;;;628:140::o;8921:337:15:-;9020:10;;9042:210;9063:16;:23;9059:1;:27;9042:210;;;9120:16;9137:1;9120:19;;;;;;;;;;;;;;;;;;;9111:28;;9107:135;;9167:13;9181:1;9167:16;;;;;;;;;;;;;;;;;;9159:24;;9107:135;;;9222:5;;9107:135;9088:3;;9042:210;;;8921:337;;;;;;:::o;774:111:12:-;836:9;864:8;:14;;857:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;774:111;;;:::o;1975:1980:15:-;2315:14;;:::i;:::-;2826:10;2353:218;2384:6;2404:13;2431;2458:12;2484:22;2520:13;2547:14;2353:17;:218::i;:::-;2345:227;;;;;;;;2614:5;:26;2654:13;2681:14;2709:13;2614:118;;;;;-1:-1:-1;;;2614:118:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2614:118:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2614:118:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2614:118:15;2602:9;;;:130;;;2789:25;-1:-1:-1;2789:25:15;2781:34;;;;;;2839:52;2848:6;2855:1;2848:9;;;;;2859:16;2877:13;2839:8;:52::i;:::-;2826:65;;2945:1;2934:8;:12;:100;;3022:12;2934:100;;;2961:46;2998:8;2982:7;:11;:13;;;;;-1:-1:-1;;;2982:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2982:13:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2982:13:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2982:13:15;2961:12;;2982:24;;2961:46;:20;:46;:::i;:::-;2922:6;2929:1;2922:9;;;:112;;;;;3075:5;:33;3122:47;3144:24;3162:5;3144:7;:11;:13;;;;;-1:-1:-1;;;3144:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3144:13:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3144:13:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3144:13:15;;:24;:17;:24;:::i;:::-;3122:9;;;;;:21;:47::i;:::-;3183:13;3210:6;3217:1;3210:9;;;;3075:154;;;;;-1:-1:-1;;;3075:154:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3075:154:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3075:154:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3075:154:15;3063:166;;;3288:34;;3284:263;;;3465:9;;;;3350:138;;;;;;3472:1;3350:138;;;;;;;;;;;;;;;;;;;:5;;:26;;:138;;;;;3465:9;;3350:138;;;;;;;:5;:138;;;5:2:-1;;;;30:1;27;20:12;5:2;3350:138:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3350:138:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3350:138:15;3338:9;;;:150;3502:34;;;3284:263;3585:5;:33;3632:6;3639:1;3632:9;;;;3655:14;3683:13;3585:121;;;;;-1:-1:-1;;;3585:121:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3585:121:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3585:121:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3585:121:15;3573:9;;;:133;;;3754:14;;:32;;-1:-1:-1;3772:9:15;;:14;3754:32;3750:130;;;3814:1;3802:13;;;:9;3829;;:13;;;3856:9;;;:13;3750:130;3938:9;;;;3920:28;;:13;;:17;:28::i;:::-;3908:9;;;:40;-1:-1:-1;3908:6:15;1975:1980;-1:-1:-1;;;;;;;;;;1975:1980:15:o;6564:265::-;6661:14;;:::i;:::-;6702:1;6691:8;:12;6687:63;;;6717:33;:11;6741:8;6717:33;:23;:33;:::i;:::-;6705:45;;6687:63;6778:1;6764:11;:15;6760:62;;;6793:29;:4;6810:11;6793:29;:16;:29;:::i;:::-;6781:9;;;:41;6760:62;6564:265;;;;;;:::o;6900:1641:5:-;6989:10;:17;7231:7;;6989:21;-1:-1:-1;6985:207:5;;;7155:17;;7144:10;;-1:-1:-1;;7155:21:5;;;7144:33;;;;;;;;;;;;;;;;;:36;;7120:10;:13;;7131:1;;7120:13;;;;;;;;;;;;;;;;;;;:21;;;:60;7112:69;;;;;;7202:13;7209:6;;7202:13;:::i;:::-;-1:-1:-1;7241:1:5;7226:1278;7248:10;:17;7244:1;:21;;;7226:1278;;;7324:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:30;;7316:39;;;;;;7377:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:30;;7369:39;;;;;;7430:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:30;;7422:39;;;;;;7483:13;;:29;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:29;;7475:38;;;;;;7535:13;;:29;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:29;;7527:38;;;;;;7634:3;7615:10;7626:1;7615:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;7607:31;;;;;;7679:10;7690:1;7679:13;;;;;;;;;;;;;;;;;;;;;;;:16;;7660:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:35;7652:44;;;;;;7719:1;7715;:5;;;7711:93;;;7772:10;7783:1;7772:13;;;;;;;;;;;;;;;;;;;;;;:16;7748:17;;:10;;:17;-1:-1:-1;;7759:5:5;;7748:17;;;;;;;;;;;;;;;;;;;:20;;:40;;7740:49;;;;;;7856:28;:10;7867:1;7856:13;;;;;;;;;;;;;;;;;;;;;7870:1;7856:16;;;;;:26;:28::i;:::-;7848:37;;;;;;;;7926:7;:11;:13;;;;;-1:-1:-1;;;7926:13:5;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7926:13:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7926:13:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7926:13:5;7907;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:32;7899:41;;;;;;7955:6;7967:315;;;;;;;;;8009:10;8020:1;8009:13;;;;;;;;;;;;;;;;;;;;;;;:16;7967:315;;;;8060:13;;7967:315;;;8060:10;;:13;;;;;;;;;;;;;;;;;;;8074:1;8060:16;;;;7967:315;;;;;;8105:10;8116:1;8105:13;;;;;;;;;;;;;;;;;;;;;8119:1;8105:16;;;;7967:315;;;;8155:10;8166:1;8155:13;;;;;;;;;;;;;;;;;;;;;;;:16;;;7967:315;;;;8208:13;;;8219:1;8208:13;;;;;;;;7967:315;;;;;;;8254:13;;;;;;;;;;7967:315;;;-1:-1:-1;7967:315:5;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;7955:328:5;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7955:328:5;;;;;;;;-1:-1:-1;;7955:328:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:18:-1;;7955:328:5;;;;;;;;;;;:::i;:::-;-1:-1:-1;7955:328:5;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8298:195;8362:1;8346:6;:13;;;;:17;8388:10;8399:1;8388:13;;;;;;;;;;;;;;;;;;;;;;:16;;;8429:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;8464:15;8298:24;:195::i;:::-;7267:3;;7226:1278;;;8519:15;;;;;;;6900:1641;;;:::o;10332:1802::-;10632:11;10657:6;10677:18;10715:7;11346:17;11471:24;10505:1;10489:6;:13;;;;:17;10485:109;;;10566:10;10577:1;10566:13;;;;;;;;;;;;;;;;;;;;:16;10530:6;10537:13;;-1:-1:-1;;10537:17:5;;;10530:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:52;10522:61;;;;;;10604:17;10611:10;;10604:17;:::i;:::-;10646:1;10632:15;;10666:1;10657:10;;10698:1;10677:22;;10725:1;10715:11;;10710:1333;10732:10;:17;10728:1;:21;;;10710:1333;;;10808:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:31;;10800:40;;;;;;10862:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:31;;10854:40;;;;;;10916:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:31;;10908:40;;;;;;11017:3;10998:10;11009:1;10998:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;10990:31;;;;;;11062:10;11073:1;11062:13;;;;;;;;;;;;;;;;;;;;;;:16;11043:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:35;11035:44;;;;;;11120:10;11131:1;11120:13;;;;;;;;;;;;;;;;;;;;;;;:16;;11101:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:35;11093:44;;;;;;11160:1;11156;:5;;;11152:92;;;11212:10;11223:1;11212:13;;;;;;;;;;;;;;;;;;;;;;:16;11189:17;;:10;;:17;-1:-1:-1;;11200:5:5;;11189:17;;;;;;;;;;;;;;;;;;:20;;;:39;11181:48;;;;;;11302:28;:10;11313:1;11302:13;;;;;;;;;;;;;;;;;;;;;11316:1;11302:16;;:28;11294:37;;;;;;;;11366:46;11393:6;11401:7;11409:1;11401:10;;;;;;;;;;;;;;;;;;11366:46;;:20;:26;;:46;;;;;:::i;:::-;11346:66;;11435:22;11446:7;11454:1;11446:10;;;;;;;;;;;;;;;;;;11435:22;;:6;:10;;:22;;;;:::i;:::-;11426:31;;11498:50;11525:6;11533:7;11541:1;11545;11541:5;11533:14;;;;;;;;;11498:50;11471:77;;11571:26;11582:7;11590:1;11594;11590:5;11582:14;;;;;;;;;11571:26;11562:35;-1:-1:-1;11615:8:5;:1;11621;11615:8;:5;:8;:::i;:::-;11611:12;;11654:35;11672:10;11683:1;11672:13;;;;;;;;;;;;;;;;;;;;;;:16;;;11654:13;;:17;:35::i;:::-;11638:51;;11704:10;11720:311;;;;;;;;;11764:10;11775:1;11764:13;;;;;;;;;;;;;;;;;;;;;;;:16;11720:311;;;;11815:13;;11720:311;;;11815:10;;:13;;;;;;;;;;;;;;;;;;;11829:1;11815:16;;;;11720:311;;;;11869:10;11880:1;11869:13;;;;;;;;;;;;;;;;;;;;;11883:1;11869:16;;;;11720:311;;;;;;11929:10;11940:1;11929:13;;;;;;;;;;;;;;;;;;;;;11943:1;11929:16;;;;;;;;;11720:311;;;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;11704:328:5;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11704:328:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11704:328:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11704:328:5;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;10751:3:5;;;;;-1:-1:-1;10710:1333:5;;-1:-1:-1;10710:1333:5;;12078:7;:11;:13;;;;;-1:-1:-1;;;12078:13:5;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12078:13:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12078:13:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12078:13:5;12061:30;;12053:39;;;;;;12108:19;;;;;;;10332:1802;;;;;;;;;:::o;152:470:12:-;251:21;;230:6;;251:26;247:177;;-1:-1:-1;302:1:12;293:121;309:21;;305:25;;293:121;;;394:5;355:8;:17;;:36;373:8;:14;;388:1;373:17;;;;;;;;;;;;;;;;;;;;;;;355:36;;;;;;;;;;;;:44;;-1:-1:-1;;355:44:12;;;;;;;;;;-1:-1:-1;332:3:12;293:121;;;434:22;;;;:8;;:22;;;;;:::i;:::-;-1:-1:-1;471:12:12;;:17;467:149;;-1:-1:-1;513:1:12;504:102;520:5;:12;516:1;:16;504:102;;;587:4;557:8;:17;;:27;575:5;581:1;575:8;;;;;;;;;;;;;;;;;;;;;557:27;;;;;;;;;;-1:-1:-1;557:27:12;:34;;-1:-1:-1;;557:34:12;;;;;;;;;;-1:-1:-1;534:3:12;504:102;;4693:219:5;4791:1;4782:10;;4774:19;;;;;;-1:-1:-1;;;;;4811:28:5;;;;4803:37;;;;;;4851:5;:14;;;;4875:13;:30;;-1:-1:-1;;4875:30:5;-1:-1:-1;;;;;4875:30:5;;;;;;;;;4693:219::o;1512:171:45:-;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o;4967:1591:15:-;5319:14;;:::i;:::-;6129:10;5357:216;5388:6;5408:11;5433:13;5460:12;5486:22;5522:13;5549:14;5357:17;:216::i;:::-;5349:225;;;;;;;;5614:11;5589:22;:36;5585:103;;;5655:22;5641:36;;5585:103;5716:23;;;5723:1;5782:12;;:100;;5870:12;5782:100;;;5809:46;5846:8;5830:7;:11;:13;;;;;-1:-1:-1;;;5830:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5809:46:15;5770:9;;;:112;;;5924:111;;;;;;;;;;;;;;;;;;;;;;;;;;:5;;:26;;:111;;;;;5770:9;;5924:111;;;;;;;:5;:111;;;5:2:-1;;;;30:1;27;20:12;5:2;5924:111:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5924:111:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5924:111:15;5912:9;;;:123;;;6092:25;-1:-1:-1;6092:25:15;6084:34;;;;;;6142:52;6151:6;6158:1;6151:9;;6142:52;6129:65;-1:-1:-1;6217:5:15;:33;6264:6;6271:1;6264:9;;;;6287:14;6315:51;6341:24;6359:5;6341:7;:11;:13;;;;;-1:-1:-1;;;6341:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;6341:24:15;6315:13;;:51;:25;:51;:::i;:::-;6217:159;;;;;-1:-1:-1;;;6217:159:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6217:159:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6217:159:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6217:159:15;6205:9;;;:171;;;6424:14;6420:132;;;6466:1;6454:13;;;:9;6481;;:13;;;6508:9;;;:13;6420:132;4967:1591;;;;;;;;;;;;;:::o;6835:1052::-;-1:-1:-1;;;;;7074:25:15;;;;7066:34;;;;;;-1:-1:-1;;;;;7118:19:15;;;;7110:28;;;;;;-1:-1:-1;;;;;7156:23:15;;;;7148:32;;;;;;-1:-1:-1;;;;;7198:27:15;;;;7190:36;;;;;;7241:7;;;;7251:1;-1:-1:-1;7241:37:15;;;;;7266:12;:10;:12::i;:::-;7256:22;;;7241:37;7237:102;;;-1:-1:-1;;;;;7302:25:15;;;;7294:34;;;;;;7353:7;;7363:1;-1:-1:-1;7349:181:15;;;7446:7;;7388:66;;;;;;-1:-1:-1;;;;;7388:66:15;;;;;;;;;;;;;;;;;;;;;;;:31;;;;;;:66;;;;;7446:7;;7388:66;;;;;;;;7451:1;7388:31;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;7388:66:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7388:66:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7388:66:15;7380:75;;;;;;;;7510:7;;7477:41;;;;;;-1:-1:-1;;;;;7477:41:15;;;;;;;;;;;;;;;;:21;;;;;;:41;;;;;7510:7;;7477:41;;;;;;;;7515:1;7477:21;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;7477:41:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7477:41:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7477:41:15;7469:50;;;;;;;;7544:7;;;;7554:1;-1:-1:-1;7540:341:15;;;7585:12;:10;:12::i;:::-;7575:22;;7571:300;;;7640:7;;;;7617:31;;-1:-1:-1;;;;;7617:22:15;;;:31;;;;;;;;;7640:7;7617:22;:31;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7617:31:15;7571:300;;;7754:7;;;;;7695:55;;;;;;7724:10;7695:55;;;;7744:4;7695:55;;;;;;7754:7;;-1:-1:-1;;;;;7695:28:15;;;;;:55;;;;;7754:7;7695:55;;;;;;-1:-1:-1;7695:28:15;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;7695:55:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7695:55:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7695:55:15;:66;;7687:75;;;;;;7847:7;;;;;7788:67;;;;;;7820:10;7788:67;;;;-1:-1:-1;;;;;7788:67:15;;;;;;;;;;;;;;;;:31;;;;;;:67;;;;;;;;;;-1:-1:-1;7788:31:15;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;7788:67:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7788:67:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7788:67:15;7780:76;;;;;;;7893:1022;-1:-1:-1;;;;;8100:19:15;;;;8092:28;;;;;;8138:11;;:16;;8130:25;;;;;;8173:11;;;;:16;;8165:25;;;;;;8222:7;;8208:11;;:21;8200:30;;;;;;8262:7;;;;;8248:11;;;;:21;8240:30;;;;;;8295:12;:10;:12::i;:::-;8285:22;;8281:86;;;8344:11;;;;8331:9;:24;;8323:33;;;;;;8391:12;:10;:12::i;:::-;8381:22;;8377:300;;-1:-1:-1;;;;;8427:25:15;;;;8419:34;;;;;;8534:24;8550:4;8555:1;8550:7;;8534:24;8475:55;;;;;;8504:10;8475:55;;;;8524:4;8475:55;;;;;;-1:-1:-1;;;;;8475:28:15;;;;;:55;;;;;;;;;;;;;;-1:-1:-1;8475:28:15;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;8475:55:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8475:55:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8475:55:15;:83;;8467:92;;;;;;-1:-1:-1;;;;;8581:31:15;;;8613:10;8633:4;8640:24;8656:4;8661:1;8656:7;;;;8640:8;8649:1;8640:11;;:24;8581:84;;;-1:-1:-1;;;8581:84:15;;;;;;-1:-1:-1;;;;;8581:84:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8581:84:15;;;;5:2:-1;;;;30:1;27;20:12;5:2;8581:84:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8581:84:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8581:84:15;8573:93;;;;;;;;8738:11;;8695:64;;;;;;8726:10;8695:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:30:15;;;;;:64;;;;;8738:11;;8695:64;;;;;;;8747:1;8695:30;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;8695:64:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8695:64:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8695:64:15;8687:73;;;;;;;;8775:11;;;;8789:1;-1:-1:-1;8771:138:15;;;8820:12;:10;:12::i;:::-;8810:22;;8806:93;;;8872:11;;;;8852:32;;:10;;:32;;;;;;;;;8872:11;8852:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;8806:93:15;7893:1022;;;;;;:::o;1060:116:44:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:44;;;1060:116::o;403:526:15:-;652:11;693:1;684:6;:10;:43;;;;;726:1;710:13;:17;684:43;:75;;;;;758:1;743:12;:16;684:75;:136;;;;;807:13;801:2;:19;775:22;:45;;684:136;675:145;;845:12;:10;:12::i;:::-;835:22;;831:92;;;882:6;:30;;;;;892:14;910:2;892:20;882:30;873:39;;831:92;403:526;;;;;;;;;:::o;428:109:13:-;486:4;509:21;524:5;:3;:5::i;:::-;509:10;:2;516;509:10;:6;:10;:::i;:::-;:14;:21;:14;:21;:::i;1238:128:44:-;1319:7;;;1339;;;;1332:15;;;543:123:13;605:4;628:31;645:2;649;653:5;:3;:5::i;:::-;628:16;:31::i;672:107::-;723:4;752:5;:3;:5::i;:::-;746:2;:11;;:26;;;;;767:5;:3;:5::i;:::-;761:11;;;;;672:107;-1:-1:-1;672:107:13:o;8713:1196:5:-;9172:24;;9301:6;8836:10;;;;:22;;;;-1:-1:-1;8850:8:5;;;;8836:22;8832:187;;;8912:13;;;8923:1;8912:13;;;;;;;;8874:6;:18;;;;;;;;;;;;;;;;;;;;;;:35;;:51;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8974:13:5;;;8985:1;8974:13;;;;;;;;8939:6;:18;;;;;;;;;;;;;;;;;;;;;;:32;;:48;;;;;;;;;;;;:::i;8832:187::-;9044:22;;9037:29;;;;;9029:38;;;;;;9085:11;;;;;;;;9077:20;;;;;;9115:9;;;:14;9107:23;;;;;;9148:7;;;:12;9140:21;;;;;;9226:1;9210:17;9211:11;;;9210:17;;9199:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9199:29:5;-1:-1:-1;9172:56:5;-1:-1:-1;9289:1:5;9273:17;9274:11;;;9273:17;;9262:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9262:29:5;;9238:53;;9310:1;9301:10;;9322:470;9337:3;9329:11;;:5;:11;;;9322:470;;;9391:38;:15;9407:5;9415:1;9407:9;9391:26;;;;;;;;;;;;;;;;;;;;:36;:38::i;:::-;9383:47;;;;;;;;9481:7;:11;:13;;;;;-1:-1:-1;;;9481:13:5;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9481:13:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9481:13:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9481:13:5;9452:26;;:15;;:26;9476:1;9468:9;;9452:26;;;;;;;;;;;;;;;;;:42;9444:51;;;;;;9548:1;9544;:5;9540:95;;;9597:15;9613:5;9597:22;;;;;;;;;;;;;;;;;;;;9577:10;9592:1;9588;:5;9577:17;;;;;;;;;;;;;;;;;;;:42;9569:51;;;;;;9665:15;9681:5;9665:22;;;;;;;;;;;;;;;;;;;;9649:10;9660:1;9649:13;;;;;;;;;;;;;;;;;;:38;9714:26;;:15;;:26;9738:1;9730:9;;9714:26;;;;;;;;;;;;;;;;9701:7;9709:1;9701:10;;;;;;;;;;;;;;;;;;:39;9780:1;9771:10;;;;;9754:3;;9322:470;;;9840:10;9802:6;9809:10;9802:18;;;;;;;;;;;;;;;;;;;;;;:35;;:48;;;;;;;;;;;;:::i;:::-;;9895:7;9860:6;9867:10;9860:18;;;;;;;;;;;;;;;;;;;;;;:32;;:42;;;;;;;;;;;;:::i;:::-;;8713:1196;;;;;;;:::o;9374:2465:50:-;9454:5;9526:22;9506:7;9497:6;:16;9479:6;:13;:35;;9471:44;;;;;;;;9589:15;;9617:1967;;;;11725:4;11719:11;11706:24;;11776:4;11765:9;11761:20;11755:4;11748:34;9582:2214;;9617:1967;9799:4;9793:11;9780:24;;10458:2;10449:7;10445:16;10840:9;10833:17;10827:4;10823:28;10811:9;10800;10796:25;10792:60;10888:7;10884:2;10880:16;11140:6;11126:9;11119:17;11113:4;11109:28;11097:9;11089:6;11085:22;11081:57;11077:70;10914:425;11173:3;11169:2;11166:11;10914:425;;;11311:9;;11300:21;;11214:4;11206:13;;;;11246;10914:425;;;-1:-1:-1;;11357:26:50;;;11565:2;11548:11;-1:-1:-1;;11544:25:50;11538:4;11531:39;-1:-1:-1;9582:2214:50;-1:-1:-1;11823:9:50;9374:2465;-1:-1:-1;;;;9374:2465:50:o;357:65:13:-;393:4;414:5;:3;:5::i;:::-;408:2;:11;401:18;;357:65;:::o;203:380:44:-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:44;506:8;;485:36;-1:-1:-1;531:7:44;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;665:283;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;1131:658:16:-;1197:11;;;;;1255:6;;;1248:14;;;;1284:6;;;:16;;-1:-1:-1;1294:6:16;;1284:16;1281:28;;;1302:7;;1281:28;1331:15;-1:-1:-1;;1344:1:16;1331:15;:12;:15;:::i;:::-;1319:27;-1:-1:-1;1361:9:16;;;1357:37;;1379:15;1392:1;1379:8;:1;1385;1379:8;:5;:8;:::i;:15::-;1372:22;;;;1357:37;1413:1;1408;:6;1404:20;;;1423:1;1416:8;;;;1404:20;1443:1;1438;:6;1434:20;;;1453:1;1446:8;;;;1434:20;1472:6;;1465:267;;1514:1;1507:4;:8;:19;;1522:4;1507:19;;;1518:1;1507:19;1494:32;-1:-1:-1;1560:12:16;1494:32;1570:1;1560:12;:9;:12;:::i;:::-;1540:32;-1:-1:-1;1596:31:16;1607:19;1540:32;1624:1;1607:19;:16;:19;:::i;:::-;1596:6;;:31;:10;:31;:::i;:::-;1587:40;;1656:34;1688:1;1673:12;:16;;;;;;;1656:12;;1673:16;;1656:34;:16;:34;:::i;:::-;1641:49;-1:-1:-1;1709:12:16;:1;1715:5;1709:12;:5;:12;:::i;:::-;1705:16;;1465:267;;;1751:31;1762:19;:12;1779:1;1762:19;:16;:19;:::i;1751:31::-;1742:40;;1131:658;;;;;;;;;;:::o;297:55:13:-;333:4;297:55;:::o;225:67::-;261:4;280:9;:7;:9::i;:::-;276:1;:13;269:20;;225:67;:::o;161:59::-;216:1;161:59;:::o;103:965:18:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;103:965:18;;;-1:-1:-1;;103:965:18:o;:::-;;;;;;;;;;;;;;;105:10:-1;103:965:18;88:34:-1;-1:-1;103:965:18;;;-1:-1:-1;;103:965:18:o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;103:965:18;;;-1:-1:-1;;103:965:18:o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;103:965:18;;;-1:-1:-1;103:965:18;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;103:965:18;;;;;;;;;;;;;;;-1:-1:-1;;103:965:18;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;103:965:18;;;;;;;;;;;;;;;-1:-1:-1;;103:965:18;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;924:139:13:-;977:4;1001:13;1011:2;1001:9;:13::i;:::-;993:22;;;;;;;;1033:23;1046:9;:7;:9::i;:::-;1033:2;;1040;:15;1033:23;:6;:23;:::i", - "source": "pragma solidity ^0.4.24;\n\nimport \"../../rates/IRates.sol\";\nimport \"../../crowdsale/W12Crowdsale.sol\";\n\ncontract W12CrowdsaleStub is W12Crowdsale {\n constructor (\n uint version,\n address _originToken,\n address _token,\n uint _price,\n address _serviceWallet,\n address _swap,\n uint _serviceFee,\n uint _WTokenSaleFeePercent,\n IW12Fund _fund,\n IRates _rates\n )\n W12Crowdsale(\n version,\n _originToken,\n _token,\n _price,\n _serviceWallet,\n _swap,\n _serviceFee,\n _WTokenSaleFeePercent,\n _fund,\n _rates\n ) public\n {}\n\n function _outTokens(address to, uint amount) external returns (bool) {\n return token.transfer(to, amount);\n }\n\n function _outEther(address to) external {\n return to.transfer(address(this).balance);\n }\n\n function _setState(uint _WTokenSaleFeePercent) external {\n WTokenSaleFeePercent = _WTokenSaleFeePercent;\n }\n}\n", + "bytecode": "0x60806040523480156200001157600080fd5b5060405161014080620039ef83398101604090815281516020830151918301516060840151608085015160a086015160c087015160e0880151610100890151610120909901519698959694959394929391929091908989898989898989898989620000853364010000000062000491810204565b6200009933640100000000620004e3810204565b60025560038054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a16001600455600160a060020a03891615156200010857600080fd5b600160a060020a03881615156200011e57600080fd5b8373__Percent_______________________________63520b006690916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156200018c57600080fd5b505af4158015620001a1573d6000803e3d6000fd5b505050506040513d6020811015620001b857600080fd5b5051801562000262575060648473__Percent_______________________________630fe9114790916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156200023257600080fd5b505af415801562000247573d6000803e3d6000fd5b505050506040513d60208110156200025e57600080fd5b5051105b15156200026e57600080fd5b8273__Percent_______________________________63520b006690916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015620002dc57600080fd5b505af4158015620002f1573d6000803e3d6000fd5b505050506040513d60208110156200030857600080fd5b50518015620003b2575060648373__Percent_______________________________630fe9114790916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156200038257600080fd5b505af415801562000397573d6000803e3d6000fd5b505050506040513d6020811015620003ae57600080fd5b5051105b1515620003be57600080fd5b600160a060020a0382161515620003d457600080fd5b600160a060020a0385161515620003ea57600080fd5b600160a060020a03811615156200040057600080fd5b62000415878764010000000062000535810204565b60058054600160a060020a0319908116600160a060020a039a8b16179091556006805482169a8a169a909a17909955600a93909355600d8054891694881694909417909355600b55600780548716928616929092179091556008805490951693169290921790925550620006139b505050505050505050505050565b620004ac600082640100000000620032f96200058082021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b620004fe600182640100000000620032f96200058082021704565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600082116200054357600080fd5b600160a060020a03811615156200055957600080fd5b600991909155600c8054600160a060020a031916600160a060020a03909216919091179055565b600160a060020a03811615156200059657600080fd5b620005ab8282640100000000620005db810204565b15620005b657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620005f357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6133cc80620006236000396000f3006080604052600436106102215763ffffffff60e060020a60003504166307f5d633811461022657806311eb8c9f1461023657806313096a411461026257806314f66d34146102935780631785f53c146102c15780631aecc19f146102e2578063208853c9146103065780632348238c146103305780632442e1cb1461035157806324d7806c146104875780632e325020146104a85780632fbe599014610599578063313602d4146105ae5780633baba4d7146105c35780633bcdb164146105d85780634090cb64146105f957806343f48fbd1461060e57806354fd4d5014610623578063550fd742146106385780635641f3c31461069d578063564566a8146106b25780635773caaf146106c757806370480275146106e8578063792c02ea146107095780638119c0651461071e578063845ddcb2146107335780638abdf5aa1461077c5780638aea2af8146107915780638bad0c0a146107e45780638edd6eb6146107f9578063a035b1fe1461080e578063a4fd6f5614610823578063b135648814610838578063b60d428814610866578063c6dbdf611461087b578063ca7348a314610890578063d0934d61146108a8578063d155790b146108bd578063d250185c146108de578063d5b2262314610910578063d6d65f3d1461096c578063d8e9ce6414610981578063daa4cf88146109a2578063e89e4ed6146109b7578063e93b0540146109cf578063f6cf09dc146109e7578063fc0c546a14610a17575b600080fd5b610234600435602435610a2c565b005b34801561024257600080fd5b5061024e600435610bd3565b604080519115158252519081900360200190f35b34801561026e57600080fd5b50610277610c7b565b60408051600160a060020a039092168252519081900360200190f35b34801561029f57600080fd5b506102a8610c8a565b6040805192835290151560208301528051918290030190f35b3480156102cd57600080fd5b50610234600160a060020a0360043516610cbd565b3480156102ee57600080fd5b5061024e600160a060020a0360043516602435610cc9565b34801561031257600080fd5b5061031e600435610d6e565b60408051918252519081900360200190f35b34801561033c57600080fd5b50610234600160a060020a0360043516610ec5565b34801561035d57600080fd5b50610369600435610f58565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103e65781810151838201526020016103ce565b50505050905090810190601f1680156104135780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561044657818101518382015260200161042e565b50505050905090810190601f1680156104735780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561049357600080fd5b5061024e600160a060020a0360043516611185565b3480156104b457600080fd5b506104c060043561119d565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610540578181015183820152602001610528565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561057f578181015183820152602001610567565b505050509050019850505050505050505060405180910390f35b3480156105a557600080fd5b5061031e611343565b3480156105ba57600080fd5b50610234611349565b3480156105cf57600080fd5b5061031e6114d0565b3480156105e457600080fd5b50610234600160a060020a03600435166114d6565b34801561060557600080fd5b506102776114df565b34801561061a57600080fd5b506102776114ee565b34801561062f57600080fd5b5061031e6114fd565b34801561064457600080fd5b5061064d611503565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610689578181015183820152602001610671565b505050509050019250505060405180910390f35b3480156106a957600080fd5b506102776115ea565b3480156106be57600080fd5b5061024e6115f9565b3480156106d357600080fd5b50610234600160a060020a036004351661160b565b3480156106f457600080fd5b50610234600160a060020a0360043516611645565b34801561071557600080fd5b5061031e61164e565b34801561072a57600080fd5b50610277611654565b34801561073f57600080fd5b5061074b600435611663565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561078857600080fd5b5061031e6116a9565b34801561079d57600080fd5b506107ac6004356024356116af565b604051808260a080838360005b838110156107d15781810151838201526020016107b9565b5050505090500191505060405180910390f35b3480156107f057600080fd5b50610234611961565b34801561080557600080fd5b5061027761196c565b34801561081a57600080fd5b5061031e61197b565b34801561082f57600080fd5b5061024e611981565b34801561084457600080fd5b5061084d6119c9565b6040805163ffffffff9092168252519081900360200190f35b34801561087257600080fd5b50610277611a10565b34801561088757600080fd5b50610277611a1f565b34801561089c57600080fd5b50610234600435611a2e565b3480156108b457600080fd5b50610234611a33565b3480156108c957600080fd5b50610234600160a060020a0360043516611a3c565b3480156108ea57600080fd5b506108f9600435602435611a45565b6040805182518152908190839080838360206107b9565b34801561091c57600080fd5b50610234602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a435918201910135611afb565b34801561097857600080fd5b506102a8611e78565b34801561098d57600080fd5b5061024e600160a060020a0360043516611ef3565b3480156109ae57600080fd5b506102a8611f06565b3480156109c357600080fd5b50610369600435611f89565b3480156109db57600080fd5b506102346004356120f7565b3480156109f357600080fd5b50610a02600435602435612162565b604051815181528082608080838360206107b9565b348015610a2357600080fd5b50610277612407565b6000610a36613347565b610a3e613366565b6004805460010190819055610a516115f9565b1515610a5c57600080fd5b85610a65612416565b14610afa576008546040805160e460020a630b12e441028152600481018990529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b158015610aba57600080fd5b505af1158015610ace573d6000803e3d6000fd5b505050506040513d6020811015610ae457600080fd5b5051600160a060020a03161415610afa57600080fd5b610b02611f06565b509350610b0f86866116af565b80516020820151919450610b2291611a45565b9150610b2e828761243a565b610b628383601087815481101515610b4257fe5b600091825260209091206002600590920201015463ffffffff168961262c565b610b6d83838861283e565b8251602080850151606080870151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a26004548114610bcb57600080fd5b505050505050565b604080517f77df0856000000000000000000000000000000000000000000000000000000008152600e600482015260248101839052905160009173__PaymentMethods________________________916377df085691604480820192602092909190829003018186803b158015610c4957600080fd5b505af4158015610c5d573d6000803e3d6000fd5b505050506040513d6020811015610c7357600080fd5b505192915050565b600654600160a060020a031681565b60115460009081901580610ca35750610ca1611981565b155b15610cad57610cb9565b50506011546000190160015b9091565b610cc681612afb565b50565b600554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151600093929092169163a9059cbb9160448082019260209290919082900301818787803b158015610d3b57600080fd5b505af1158015610d4f573d6000803e3d6000fd5b505050506040513d6020811015610d6557600080fd5b50519392505050565b600080600080610d7c611f06565b92509250811515610d8c57610ebd565b6010805484908110610d9a57fe5b9060005260206000209060050201905073__PurchaseProcessing____________________63b8005df28683600301846004016040518463ffffffff1660e060020a0281526004018084815260200180602001806020018381038352858181548152602001915080548015610e2e57602002820191906000526020600020905b815481526020019060010190808311610e1a575b50508381038252848181548152602001915080548015610e6d57602002820191906000526020600020905b815481526020019060010190808311610e59575b50509550505050505060206040518083038186803b158015610e8e57600080fd5b505af4158015610ea2573d6000803e3d6000fd5b505050506040513d6020811015610eb857600080fd5b505193505b505050919050565b600354600160a060020a03163314610edc57600080fd5b600160a060020a0381161515610ef157600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600080600080606080601187815481101515610f7057fe5b60009182526020909120600590910201546011805463ffffffff9092169189908110610f9857fe5b906000526020600020906005020160010154601189815481101515610fb957fe5b60009182526020909120600260059092020101546011805463ffffffff909216918b908110610fe457fe5b906000526020600020906005020160020160049054906101000a900463ffffffff1660118b81548110151561101557fe5b906000526020600020906005020160030160118c81548110151561103557fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110db5780601f106110b0576101008083540402835291602001916110db565b820191906000526020600020905b8154815290600101906020018083116110be57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156111695780601f1061113e57610100808354040283529160200191611169565b820191906000526020600020905b81548152906001019060200180831161114c57829003601f168201915b5050505050905095509550955095509550955091939550919395565b6000611197818363ffffffff612b4316565b92915050565b6000806000806060806010878154811015156111b557fe5b60009182526020909120600590910201546010805463ffffffff90921691899081106111dd57fe5b906000526020600020906005020160000160049054906101000a900463ffffffff1660108981548110151561120e57fe5b90600052602060002090600502016001015460108a81548110151561122f57fe5b60009182526020909120600260059092020101546010805463ffffffff909216918c90811061125a57fe5b906000526020600020906005020160030160108c81548110151561127a57fe5b9060005260206000209060050201600401818054806020026020016040519081016040528092919081815260200182805480156112d657602002820191906000526020600020905b8154815260200190600101908083116112c2575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561116957602002820191906000526020600020905b815481526020019060010190808311611314575050505050905095509550955095509550955091939550919395565b600b5481565b6000611353611981565b151561135e57600080fd5b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156113c457600080fd5b505af11580156113d8573d6000803e3d6000fd5b505050506040513d60208110156113ee57600080fd5b5051600554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b15801561146057600080fd5b505af1158015611474573d6000803e3d6000fd5b505050506040513d602081101561148a57600080fd5b5051151561149757600080fd5b60408051828152905133917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f8919081900360200190a250565b60115490565b610cc681612b7a565b600554600160a060020a031690565b600854600160a060020a031681565b60025481565b6060600e73__PaymentMethods________________________633b3d1a2290916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561155a57600080fd5b505af415801561156e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561159757600080fd5b8101908080516401000000008111156115af57600080fd5b820160208101848111156115c257600080fd5b81518560208202830111640100000000821117156115df57600080fd5b509094505050505090565b600c54600160a060020a031681565b600080611604611f06565b9392505050565b604051600160a060020a03821690303180156108fc02916000818181858888f19350505050158015611641573d6000803e3d6000fd5b5050565b610cc681612bc2565b60105490565b600d54600160a060020a031681565b601080548290811061167157fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b600a5481565b6116b7613347565b6000806116c2613347565b6116ca611f06565b925092508115156116da57611958565b856116e3612416565b14611770576008546040805160e060020a63cfec719f028152600481018990529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561173957600080fd5b505af115801561174d573d6000803e3d6000fd5b505050506040513d602081101561176357600080fd5b5051151561177057611958565b61177986612c0a565b905073__PurchaseProcessing____________________6391bfca3187876010878154811015156117a657fe5b9060005260206000209060050201600101546010888154811015156117c757fe5b90600052602060002090600502016003016010898154811015156117e757fe5b6000918252602082206004600590920201019088906020020151886001602002015189600260200201518a600360200201518b600460200201516040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a81815481526020019150805480156118b457602002820191906000526020600020905b8154815260200190600101908083116118a0575b505083810382528981815481526020019150805480156118f357602002820191906000526020600020905b8154815260200190600101908083116118df575b50509c5050505050505050505050505060a06040518083038186803b15801561191b57600080fd5b505af415801561192f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a081101561195457600080fd5b5093505b50505092915050565b61196a33612afb565b565b600754600160a060020a031690565b60095481565b60105460009015806119c457506010805442919060001981019081106119a357fe5b6000918252602090912060059091020154640100000000900463ffffffff16105b905090565b60105460009081106119da57600080fd5b6010805460001981019081106119ec57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600754600160a060020a031681565b600354600160a060020a031690565b600b55565b61196a33612f01565b610cc681612f01565b611a4d613366565b73__PurchaseProcessing____________________636cd5c0568484600a54600b546040518563ffffffff1660e060020a02815260040180858152602001848152602001838152602001828152602001945050505050604080518083038186803b158015611aba57600080fd5b505af4158015611ace573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506040811015611af357600080fd5b509392505050565b601054600090811015611b3a574260106000815481101515611b1957fe5b600091825260209091206005909102015463ffffffff1611611b3a57600080fd5b8b1515611b4657600080fd5b60ff8c1115611b5457600080fd5b60ff881115611b6257600080fd5b600286048814611b7157600080fd5b60028404881115611b8157600080fd5b811515611b8d57600080fd5b5060005b81811015611c3957600854600160a060020a0316637d20abf8848484818110611bb657fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b158015611bfa57600080fd5b505af1158015611c0e573d6000803e3d6000fd5b505050506040513d6020811015611c2457600080fd5b50511515611c3157600080fd5b600101611b91565b611cd28d8d808060200260200160405190810160405280939291908181526020016000905b82821015611c9a576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611c5e565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612f49945050505050565b611d998989808060200260200160405190810160405280939291908181526020016000905b82821015611d33576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611cf7565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b925082915084018382808284375061308f945050505050565b604080517ff24950e2000000000000000000000000000000000000000000000000000000008152600e60048201818152602483019384526044830186905273__PaymentMethods________________________9363f24950e293889288929091606401846020850280828437820191505094505050505060006040518083038186803b158015611e2857600080fd5b505af4158015611e3c573d6000803e3d6000fd5b50506040517f072792b04aecd99b2250bc76fb25f9bca793c3b7383cb4c7255a7a01e8f5a12e925060009150a150505050505050505050505050565b60115460009081901580611e915750611e8f611981565b155b15611e9b57610cb9565b5060015b6011546000190182108015611ee357506011805483908110611ebd57fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610cb957600190910190611e9f565b600061119760018363ffffffff612b4316565b60008080805b601054821015611f7b576010805483908110611f2457fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611f5f575080544264010000000090910463ffffffff16115b15611f705781600193509350611f83565b600190910190611f0c565b600093508392505b50509091565b6011805482908110611f9757fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff958616985092968582169664010000000090920490951694909392919083018282801561205d5780601f106120325761010080835404028352916020019161205d565b820191906000526020600020905b81548152906001019060200180831161204057829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156120ed5780601f106120c2576101008083540402835291602001916120ed565b820191906000526020600020905b8154815290600101906020018083116120d057829003601f168201915b5050505050905086565b600354600160a060020a0316331461210e57600080fd5b6010546000101561214b57426010600081548110151561212a57fe5b600091825260209091206005909102015463ffffffff161161214b57600080fd5b600c54610cc6908290600160a060020a0316613240565b61216a613381565b600080612175613347565b61217d611f06565b9250925081151561218d57611958565b85612196612416565b14612223576008546040805160e060020a63cfec719f028152600481018990529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156121ec57600080fd5b505af1158015612200573d6000803e3d6000fd5b505050506040513d602081101561221657600080fd5b5051151561222357611958565b61222c86612c0a565b905073__PurchaseProcessing____________________6391dab422878760108781548110151561225957fe5b90600052602060002090600502016001015460108881548110151561227a57fe5b906000526020600020906005020160030160108981548110151561229a57fe5b6000918252602082206004600590920201019088906020020151886001602002015189600260200201518a600360200201518b600460200201516040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a818154815260200191508054801561236757602002820191906000526020600020905b815481526020019060010190808311612353575b505083810382528981815481526020019150805480156123a657602002820191906000526020600020905b815481526020019060010190808311612392575b50509c5050505050505050505050505060806040518083038186803b1580156123ce57600080fd5b505af41580156123e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250608081101561195457600080fd5b600554600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b6008546040805160e060020a63cfec719f02815260048101849052905173__PurchaseProcessing____________________92633676737c9286928692600160a060020a03169163cfec719f9160248083019260209291908290030181600087803b1580156124a857600080fd5b505af11580156124bc573d6000803e3d6000fd5b505050506040513d60208110156124d257600080fd5b50516124df57600061255d565b6008546040805160e460020a630b12e441028152600481018890529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561253057600080fd5b505af1158015612544573d6000803e3d6000fd5b505050506040513d602081101561255a57600080fd5b50515b600554600654600d54600c546040805163ffffffff8a1660e060020a028152600160a060020a0395861695948516949384169390921691600401908190899080838360005b838110156125ba5781810151838201526020016125a2565b50505050919091019788525050600160a060020a039485166020870152928416604080870191909152918416606086015283166080850152911660a08301525160c08083019350600092829003018186803b15801561261857600080fd5b505af4158015610bcb573d6000803e3d6000fd5b6008546040805160e060020a63cfec719f02815260048101849052905173__PurchaseProcessing____________________92634bb1e9ff928892889288928892600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156126a157600080fd5b505af11580156126b5573d6000803e3d6000fd5b505050506040513d60208110156126cb57600080fd5b50516126d8576000612756565b6008546040805160e460020a630b12e441028152600481018a90529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561272957600080fd5b505af115801561273d573d6000803e3d6000fd5b505050506040513d602081101561275357600080fd5b50515b60055460405160e060020a63ffffffff8916028152600160a060020a0390911690600401808760a080838360005b8381101561279c578181015183820152602001612784565b5050505090500186600260200280838360005b838110156127c75781810151838201526020016127af565b50505063ffffffff909816920191825250602081019490945250600160a060020a039182166040808501919091529116606083015251608080830195506000945090925090829003018186803b15801561282057600080fd5b505af4158015612834573d6000803e3d6000fd5b5050505050505050565b612846612416565b81141561291a57600754600160a060020a031663d0baf2f561287e84600160200201518660015b60200201519063ffffffff61329616565b855160208601513391908690612896908a600161286d565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b1580156128fc57600080fd5b505af1158015612910573d6000803e3d6000fd5b5050505050612af6565b6008546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561296b57600080fd5b505af115801561297f573d6000803e3d6000fd5b505050506040513d602081101561299557600080fd5b5051600754600160a060020a039182169163a9059cbb91166129c0856001602002015187600161286d565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612a1257600080fd5b505af1158015612a26573d6000803e3d6000fd5b505050506040513d6020811015612a3c57600080fd5b50511515612a4957600080fd5b600754600160a060020a031663d0baf2f533856000602002015184612a77876001602002015189600161286d565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b158015612add57600080fd5b505af1158015612af1573d6000803e3d6000fd5b505050505b505050565b612b0c60008263ffffffff6132ad16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515612b5a57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b612b8b60018263ffffffff6132f916565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b612bd360008263ffffffff6132f916565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b612c12613347565b600854604080517f8eaa6ac0000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691638eaa6ac0916024808201926020929091908290030181600087803b158015612c7957600080fd5b505af1158015612c8d573d6000803e3d6000fd5b505050506040513d6020811015612ca357600080fd5b50518152600954602080830191909152600554604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263313ce567926004808401938290030181600087803b158015612d0d57600080fd5b505af1158015612d21573d6000803e3d6000fd5b505050506040513d6020811015612d3757600080fd5b505160ff16604082015281612d4a612416565b14612e5d576008546040805160e460020a630b12e441028152600481018590529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612da057600080fd5b505af1158015612db4573d6000803e3d6000fd5b505050506040513d6020811015612dca57600080fd5b5051604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b158015612e2957600080fd5b505af1158015612e3d573d6000803e3d6000fd5b505050506040513d6020811015612e5357600080fd5b505160ff16612e60565b60125b6060820152600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015612ecb57600080fd5b505af1158015612edf573d6000803e3d6000fd5b505050506040513d6020811015612ef557600080fd5b50516080820152919050565b612f1260018263ffffffff6132ad16565b604051600160a060020a038216907fa3bfdef3d8149bacf15b7b64199fca8228c0fd4f8fcdd11cc7871829baf319c390600090a250565b73__Crowdsale_____________________________63ae1c60546010601185856040518563ffffffff1660e060020a0281526004018085815260200184815260200180602001806020018381038352858181518152602001915080516000925b81841015612feb5760208085028401015160c080838360005b83811015612fda578181015183820152602001612fc2565b505050509050019260010192612fa9565b868103855287518152875160209182019450818901935002905080838360005b8381101561302357818101518382015260200161300b565b50505050905001965050505050505060006040518083038186803b15801561304a57600080fd5b505af415801561305e573d6000803e3d6000fd5b50506040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e6925060009150a15050565b73__Crowdsale_____________________________63e1231f1e601060118686866040518663ffffffff1660e060020a028152600401808681526020018581526020018060200180602001806020018481038452878181518152602001915080516000925b8184101561313657602080850284010151608080838360005b8381101561312557818101518382015260200161310d565b5050505090500192600101926130f4565b878103865289518152895160209182019450818b01935002905080838360005b8381101561316e578181015183820152602001613156565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156131aa578181015183820152602001613192565b50505050905090810190601f1680156131d75780820380516001836020036101000a031916815260200191505b509850505050505050505060006040518083038186803b1580156131fa57600080fd5b505af415801561320e573d6000803e3d6000fd5b50506040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca925060009150a1505050565b6000821161324d57600080fd5b600160a060020a038116151561326257600080fd5b600991909155600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600080838311156132a657600080fd5b5050900390565b600160a060020a03811615156132c257600080fd5b6132cc8282612b43565b15156132d757600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a038116151561330e57600080fd5b6133188282612b43565b1561332257600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b60806040519081016040528060049060208202803883395091929150505600a165627a7a72305820af7d82c03761396098e260777f4c702f09bd1bebac91f11dcb0f433cf687adb30029", + "deployedBytecode": "0x6080604052600436106102215763ffffffff60e060020a60003504166307f5d633811461022657806311eb8c9f1461023657806313096a411461026257806314f66d34146102935780631785f53c146102c15780631aecc19f146102e2578063208853c9146103065780632348238c146103305780632442e1cb1461035157806324d7806c146104875780632e325020146104a85780632fbe599014610599578063313602d4146105ae5780633baba4d7146105c35780633bcdb164146105d85780634090cb64146105f957806343f48fbd1461060e57806354fd4d5014610623578063550fd742146106385780635641f3c31461069d578063564566a8146106b25780635773caaf146106c757806370480275146106e8578063792c02ea146107095780638119c0651461071e578063845ddcb2146107335780638abdf5aa1461077c5780638aea2af8146107915780638bad0c0a146107e45780638edd6eb6146107f9578063a035b1fe1461080e578063a4fd6f5614610823578063b135648814610838578063b60d428814610866578063c6dbdf611461087b578063ca7348a314610890578063d0934d61146108a8578063d155790b146108bd578063d250185c146108de578063d5b2262314610910578063d6d65f3d1461096c578063d8e9ce6414610981578063daa4cf88146109a2578063e89e4ed6146109b7578063e93b0540146109cf578063f6cf09dc146109e7578063fc0c546a14610a17575b600080fd5b610234600435602435610a2c565b005b34801561024257600080fd5b5061024e600435610bd3565b604080519115158252519081900360200190f35b34801561026e57600080fd5b50610277610c7b565b60408051600160a060020a039092168252519081900360200190f35b34801561029f57600080fd5b506102a8610c8a565b6040805192835290151560208301528051918290030190f35b3480156102cd57600080fd5b50610234600160a060020a0360043516610cbd565b3480156102ee57600080fd5b5061024e600160a060020a0360043516602435610cc9565b34801561031257600080fd5b5061031e600435610d6e565b60408051918252519081900360200190f35b34801561033c57600080fd5b50610234600160a060020a0360043516610ec5565b34801561035d57600080fd5b50610369600435610f58565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103e65781810151838201526020016103ce565b50505050905090810190601f1680156104135780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561044657818101518382015260200161042e565b50505050905090810190601f1680156104735780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561049357600080fd5b5061024e600160a060020a0360043516611185565b3480156104b457600080fd5b506104c060043561119d565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610540578181015183820152602001610528565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561057f578181015183820152602001610567565b505050509050019850505050505050505060405180910390f35b3480156105a557600080fd5b5061031e611343565b3480156105ba57600080fd5b50610234611349565b3480156105cf57600080fd5b5061031e6114d0565b3480156105e457600080fd5b50610234600160a060020a03600435166114d6565b34801561060557600080fd5b506102776114df565b34801561061a57600080fd5b506102776114ee565b34801561062f57600080fd5b5061031e6114fd565b34801561064457600080fd5b5061064d611503565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610689578181015183820152602001610671565b505050509050019250505060405180910390f35b3480156106a957600080fd5b506102776115ea565b3480156106be57600080fd5b5061024e6115f9565b3480156106d357600080fd5b50610234600160a060020a036004351661160b565b3480156106f457600080fd5b50610234600160a060020a0360043516611645565b34801561071557600080fd5b5061031e61164e565b34801561072a57600080fd5b50610277611654565b34801561073f57600080fd5b5061074b600435611663565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561078857600080fd5b5061031e6116a9565b34801561079d57600080fd5b506107ac6004356024356116af565b604051808260a080838360005b838110156107d15781810151838201526020016107b9565b5050505090500191505060405180910390f35b3480156107f057600080fd5b50610234611961565b34801561080557600080fd5b5061027761196c565b34801561081a57600080fd5b5061031e61197b565b34801561082f57600080fd5b5061024e611981565b34801561084457600080fd5b5061084d6119c9565b6040805163ffffffff9092168252519081900360200190f35b34801561087257600080fd5b50610277611a10565b34801561088757600080fd5b50610277611a1f565b34801561089c57600080fd5b50610234600435611a2e565b3480156108b457600080fd5b50610234611a33565b3480156108c957600080fd5b50610234600160a060020a0360043516611a3c565b3480156108ea57600080fd5b506108f9600435602435611a45565b6040805182518152908190839080838360206107b9565b34801561091c57600080fd5b50610234602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a435918201910135611afb565b34801561097857600080fd5b506102a8611e78565b34801561098d57600080fd5b5061024e600160a060020a0360043516611ef3565b3480156109ae57600080fd5b506102a8611f06565b3480156109c357600080fd5b50610369600435611f89565b3480156109db57600080fd5b506102346004356120f7565b3480156109f357600080fd5b50610a02600435602435612162565b604051815181528082608080838360206107b9565b348015610a2357600080fd5b50610277612407565b6000610a36613347565b610a3e613366565b6004805460010190819055610a516115f9565b1515610a5c57600080fd5b85610a65612416565b14610afa576008546040805160e460020a630b12e441028152600481018990529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b158015610aba57600080fd5b505af1158015610ace573d6000803e3d6000fd5b505050506040513d6020811015610ae457600080fd5b5051600160a060020a03161415610afa57600080fd5b610b02611f06565b509350610b0f86866116af565b80516020820151919450610b2291611a45565b9150610b2e828761243a565b610b628383601087815481101515610b4257fe5b600091825260209091206002600590920201015463ffffffff168961262c565b610b6d83838861283e565b8251602080850151606080870151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a26004548114610bcb57600080fd5b505050505050565b604080517f77df0856000000000000000000000000000000000000000000000000000000008152600e600482015260248101839052905160009173__PaymentMethods________________________916377df085691604480820192602092909190829003018186803b158015610c4957600080fd5b505af4158015610c5d573d6000803e3d6000fd5b505050506040513d6020811015610c7357600080fd5b505192915050565b600654600160a060020a031681565b60115460009081901580610ca35750610ca1611981565b155b15610cad57610cb9565b50506011546000190160015b9091565b610cc681612afb565b50565b600554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151600093929092169163a9059cbb9160448082019260209290919082900301818787803b158015610d3b57600080fd5b505af1158015610d4f573d6000803e3d6000fd5b505050506040513d6020811015610d6557600080fd5b50519392505050565b600080600080610d7c611f06565b92509250811515610d8c57610ebd565b6010805484908110610d9a57fe5b9060005260206000209060050201905073__PurchaseProcessing____________________63b8005df28683600301846004016040518463ffffffff1660e060020a0281526004018084815260200180602001806020018381038352858181548152602001915080548015610e2e57602002820191906000526020600020905b815481526020019060010190808311610e1a575b50508381038252848181548152602001915080548015610e6d57602002820191906000526020600020905b815481526020019060010190808311610e59575b50509550505050505060206040518083038186803b158015610e8e57600080fd5b505af4158015610ea2573d6000803e3d6000fd5b505050506040513d6020811015610eb857600080fd5b505193505b505050919050565b600354600160a060020a03163314610edc57600080fd5b600160a060020a0381161515610ef157600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600080600080606080601187815481101515610f7057fe5b60009182526020909120600590910201546011805463ffffffff9092169189908110610f9857fe5b906000526020600020906005020160010154601189815481101515610fb957fe5b60009182526020909120600260059092020101546011805463ffffffff909216918b908110610fe457fe5b906000526020600020906005020160020160049054906101000a900463ffffffff1660118b81548110151561101557fe5b906000526020600020906005020160030160118c81548110151561103557fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110db5780601f106110b0576101008083540402835291602001916110db565b820191906000526020600020905b8154815290600101906020018083116110be57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156111695780601f1061113e57610100808354040283529160200191611169565b820191906000526020600020905b81548152906001019060200180831161114c57829003601f168201915b5050505050905095509550955095509550955091939550919395565b6000611197818363ffffffff612b4316565b92915050565b6000806000806060806010878154811015156111b557fe5b60009182526020909120600590910201546010805463ffffffff90921691899081106111dd57fe5b906000526020600020906005020160000160049054906101000a900463ffffffff1660108981548110151561120e57fe5b90600052602060002090600502016001015460108a81548110151561122f57fe5b60009182526020909120600260059092020101546010805463ffffffff909216918c90811061125a57fe5b906000526020600020906005020160030160108c81548110151561127a57fe5b9060005260206000209060050201600401818054806020026020016040519081016040528092919081815260200182805480156112d657602002820191906000526020600020905b8154815260200190600101908083116112c2575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561116957602002820191906000526020600020905b815481526020019060010190808311611314575050505050905095509550955095509550955091939550919395565b600b5481565b6000611353611981565b151561135e57600080fd5b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156113c457600080fd5b505af11580156113d8573d6000803e3d6000fd5b505050506040513d60208110156113ee57600080fd5b5051600554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b15801561146057600080fd5b505af1158015611474573d6000803e3d6000fd5b505050506040513d602081101561148a57600080fd5b5051151561149757600080fd5b60408051828152905133917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f8919081900360200190a250565b60115490565b610cc681612b7a565b600554600160a060020a031690565b600854600160a060020a031681565b60025481565b6060600e73__PaymentMethods________________________633b3d1a2290916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561155a57600080fd5b505af415801561156e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561159757600080fd5b8101908080516401000000008111156115af57600080fd5b820160208101848111156115c257600080fd5b81518560208202830111640100000000821117156115df57600080fd5b509094505050505090565b600c54600160a060020a031681565b600080611604611f06565b9392505050565b604051600160a060020a03821690303180156108fc02916000818181858888f19350505050158015611641573d6000803e3d6000fd5b5050565b610cc681612bc2565b60105490565b600d54600160a060020a031681565b601080548290811061167157fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b600a5481565b6116b7613347565b6000806116c2613347565b6116ca611f06565b925092508115156116da57611958565b856116e3612416565b14611770576008546040805160e060020a63cfec719f028152600481018990529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561173957600080fd5b505af115801561174d573d6000803e3d6000fd5b505050506040513d602081101561176357600080fd5b5051151561177057611958565b61177986612c0a565b905073__PurchaseProcessing____________________6391bfca3187876010878154811015156117a657fe5b9060005260206000209060050201600101546010888154811015156117c757fe5b90600052602060002090600502016003016010898154811015156117e757fe5b6000918252602082206004600590920201019088906020020151886001602002015189600260200201518a600360200201518b600460200201516040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a81815481526020019150805480156118b457602002820191906000526020600020905b8154815260200190600101908083116118a0575b505083810382528981815481526020019150805480156118f357602002820191906000526020600020905b8154815260200190600101908083116118df575b50509c5050505050505050505050505060a06040518083038186803b15801561191b57600080fd5b505af415801561192f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a081101561195457600080fd5b5093505b50505092915050565b61196a33612afb565b565b600754600160a060020a031690565b60095481565b60105460009015806119c457506010805442919060001981019081106119a357fe5b6000918252602090912060059091020154640100000000900463ffffffff16105b905090565b60105460009081106119da57600080fd5b6010805460001981019081106119ec57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600754600160a060020a031681565b600354600160a060020a031690565b600b55565b61196a33612f01565b610cc681612f01565b611a4d613366565b73__PurchaseProcessing____________________636cd5c0568484600a54600b546040518563ffffffff1660e060020a02815260040180858152602001848152602001838152602001828152602001945050505050604080518083038186803b158015611aba57600080fd5b505af4158015611ace573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506040811015611af357600080fd5b509392505050565b601054600090811015611b3a574260106000815481101515611b1957fe5b600091825260209091206005909102015463ffffffff1611611b3a57600080fd5b8b1515611b4657600080fd5b60ff8c1115611b5457600080fd5b60ff881115611b6257600080fd5b600286048814611b7157600080fd5b60028404881115611b8157600080fd5b811515611b8d57600080fd5b5060005b81811015611c3957600854600160a060020a0316637d20abf8848484818110611bb657fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b158015611bfa57600080fd5b505af1158015611c0e573d6000803e3d6000fd5b505050506040513d6020811015611c2457600080fd5b50511515611c3157600080fd5b600101611b91565b611cd28d8d808060200260200160405190810160405280939291908181526020016000905b82821015611c9a576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611c5e565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612f49945050505050565b611d998989808060200260200160405190810160405280939291908181526020016000905b82821015611d33576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611cf7565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b925082915084018382808284375061308f945050505050565b604080517ff24950e2000000000000000000000000000000000000000000000000000000008152600e60048201818152602483019384526044830186905273__PaymentMethods________________________9363f24950e293889288929091606401846020850280828437820191505094505050505060006040518083038186803b158015611e2857600080fd5b505af4158015611e3c573d6000803e3d6000fd5b50506040517f072792b04aecd99b2250bc76fb25f9bca793c3b7383cb4c7255a7a01e8f5a12e925060009150a150505050505050505050505050565b60115460009081901580611e915750611e8f611981565b155b15611e9b57610cb9565b5060015b6011546000190182108015611ee357506011805483908110611ebd57fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610cb957600190910190611e9f565b600061119760018363ffffffff612b4316565b60008080805b601054821015611f7b576010805483908110611f2457fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611f5f575080544264010000000090910463ffffffff16115b15611f705781600193509350611f83565b600190910190611f0c565b600093508392505b50509091565b6011805482908110611f9757fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff958616985092968582169664010000000090920490951694909392919083018282801561205d5780601f106120325761010080835404028352916020019161205d565b820191906000526020600020905b81548152906001019060200180831161204057829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156120ed5780601f106120c2576101008083540402835291602001916120ed565b820191906000526020600020905b8154815290600101906020018083116120d057829003601f168201915b5050505050905086565b600354600160a060020a0316331461210e57600080fd5b6010546000101561214b57426010600081548110151561212a57fe5b600091825260209091206005909102015463ffffffff161161214b57600080fd5b600c54610cc6908290600160a060020a0316613240565b61216a613381565b600080612175613347565b61217d611f06565b9250925081151561218d57611958565b85612196612416565b14612223576008546040805160e060020a63cfec719f028152600481018990529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156121ec57600080fd5b505af1158015612200573d6000803e3d6000fd5b505050506040513d602081101561221657600080fd5b5051151561222357611958565b61222c86612c0a565b905073__PurchaseProcessing____________________6391dab422878760108781548110151561225957fe5b90600052602060002090600502016001015460108881548110151561227a57fe5b906000526020600020906005020160030160108981548110151561229a57fe5b6000918252602082206004600590920201019088906020020151886001602002015189600260200201518a600360200201518b600460200201516040518b63ffffffff1660e060020a028152600401808b600019166000191681526020018a8152602001898152602001806020018060200188815260200187815260200186815260200185815260200184815260200183810383528a818154815260200191508054801561236757602002820191906000526020600020905b815481526020019060010190808311612353575b505083810382528981815481526020019150805480156123a657602002820191906000526020600020905b815481526020019060010190808311612392575b50509c5050505050505050505050505060806040518083038186803b1580156123ce57600080fd5b505af41580156123e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250608081101561195457600080fd5b600554600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b6008546040805160e060020a63cfec719f02815260048101849052905173__PurchaseProcessing____________________92633676737c9286928692600160a060020a03169163cfec719f9160248083019260209291908290030181600087803b1580156124a857600080fd5b505af11580156124bc573d6000803e3d6000fd5b505050506040513d60208110156124d257600080fd5b50516124df57600061255d565b6008546040805160e460020a630b12e441028152600481018890529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561253057600080fd5b505af1158015612544573d6000803e3d6000fd5b505050506040513d602081101561255a57600080fd5b50515b600554600654600d54600c546040805163ffffffff8a1660e060020a028152600160a060020a0395861695948516949384169390921691600401908190899080838360005b838110156125ba5781810151838201526020016125a2565b50505050919091019788525050600160a060020a039485166020870152928416604080870191909152918416606086015283166080850152911660a08301525160c08083019350600092829003018186803b15801561261857600080fd5b505af4158015610bcb573d6000803e3d6000fd5b6008546040805160e060020a63cfec719f02815260048101849052905173__PurchaseProcessing____________________92634bb1e9ff928892889288928892600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156126a157600080fd5b505af11580156126b5573d6000803e3d6000fd5b505050506040513d60208110156126cb57600080fd5b50516126d8576000612756565b6008546040805160e460020a630b12e441028152600481018a90529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561272957600080fd5b505af115801561273d573d6000803e3d6000fd5b505050506040513d602081101561275357600080fd5b50515b60055460405160e060020a63ffffffff8916028152600160a060020a0390911690600401808760a080838360005b8381101561279c578181015183820152602001612784565b5050505090500186600260200280838360005b838110156127c75781810151838201526020016127af565b50505063ffffffff909816920191825250602081019490945250600160a060020a039182166040808501919091529116606083015251608080830195506000945090925090829003018186803b15801561282057600080fd5b505af4158015612834573d6000803e3d6000fd5b5050505050505050565b612846612416565b81141561291a57600754600160a060020a031663d0baf2f561287e84600160200201518660015b60200201519063ffffffff61329616565b855160208601513391908690612896908a600161286d565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b1580156128fc57600080fd5b505af1158015612910573d6000803e3d6000fd5b5050505050612af6565b6008546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561296b57600080fd5b505af115801561297f573d6000803e3d6000fd5b505050506040513d602081101561299557600080fd5b5051600754600160a060020a039182169163a9059cbb91166129c0856001602002015187600161286d565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612a1257600080fd5b505af1158015612a26573d6000803e3d6000fd5b505050506040513d6020811015612a3c57600080fd5b50511515612a4957600080fd5b600754600160a060020a031663d0baf2f533856000602002015184612a77876001602002015189600161286d565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b158015612add57600080fd5b505af1158015612af1573d6000803e3d6000fd5b505050505b505050565b612b0c60008263ffffffff6132ad16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515612b5a57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b612b8b60018263ffffffff6132f916565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b612bd360008263ffffffff6132f916565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b612c12613347565b600854604080517f8eaa6ac0000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691638eaa6ac0916024808201926020929091908290030181600087803b158015612c7957600080fd5b505af1158015612c8d573d6000803e3d6000fd5b505050506040513d6020811015612ca357600080fd5b50518152600954602080830191909152600554604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263313ce567926004808401938290030181600087803b158015612d0d57600080fd5b505af1158015612d21573d6000803e3d6000fd5b505050506040513d6020811015612d3757600080fd5b505160ff16604082015281612d4a612416565b14612e5d576008546040805160e460020a630b12e441028152600481018590529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612da057600080fd5b505af1158015612db4573d6000803e3d6000fd5b505050506040513d6020811015612dca57600080fd5b5051604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b158015612e2957600080fd5b505af1158015612e3d573d6000803e3d6000fd5b505050506040513d6020811015612e5357600080fd5b505160ff16612e60565b60125b6060820152600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015612ecb57600080fd5b505af1158015612edf573d6000803e3d6000fd5b505050506040513d6020811015612ef557600080fd5b50516080820152919050565b612f1260018263ffffffff6132ad16565b604051600160a060020a038216907fa3bfdef3d8149bacf15b7b64199fca8228c0fd4f8fcdd11cc7871829baf319c390600090a250565b73__Crowdsale_____________________________63ae1c60546010601185856040518563ffffffff1660e060020a0281526004018085815260200184815260200180602001806020018381038352858181518152602001915080516000925b81841015612feb5760208085028401015160c080838360005b83811015612fda578181015183820152602001612fc2565b505050509050019260010192612fa9565b868103855287518152875160209182019450818901935002905080838360005b8381101561302357818101518382015260200161300b565b50505050905001965050505050505060006040518083038186803b15801561304a57600080fd5b505af415801561305e573d6000803e3d6000fd5b50506040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e6925060009150a15050565b73__Crowdsale_____________________________63e1231f1e601060118686866040518663ffffffff1660e060020a028152600401808681526020018581526020018060200180602001806020018481038452878181518152602001915080516000925b8184101561313657602080850284010151608080838360005b8381101561312557818101518382015260200161310d565b5050505090500192600101926130f4565b878103865289518152895160209182019450818b01935002905080838360005b8381101561316e578181015183820152602001613156565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156131aa578181015183820152602001613192565b50505050905090810190601f1680156131d75780820380516001836020036101000a031916815260200191505b509850505050505050505060006040518083038186803b1580156131fa57600080fd5b505af415801561320e573d6000803e3d6000fd5b50506040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca925060009150a1505050565b6000821161324d57600080fd5b600160a060020a038116151561326257600080fd5b600991909155600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600080838311156132a657600080fd5b5050900390565b600160a060020a03811615156132c257600080fd5b6132cc8282612b43565b15156132d757600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a038116151561330e57600080fd5b6133188282612b43565b1561332257600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b60806040519081016040528060049060208202803883395091929150505600a165627a7a72305820af7d82c03761396098e260777f4c702f09bd1bebac91f11dcb0f433cf687adb30029", + "sourceMap": "103:1058:26:-;;;151:563;8:9:-1;5:2;;;30:1;27;20:12;5:2;151:563:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;306:21:3;316:10;306:9;;;;:21;:::i;:::-;334:28:8;351:10;334:16;;;;:28;:::i;:::-;123:7:48;:18;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;417:28;;;-1:-1:-1;;;;;436:8:55;;;;417:28;;;;;;;;;;;;559:1:62;543:13;:17;-1:-1:-1;;;;;2035:26:11;;;;2027:35;;;;;;-1:-1:-1;;;;;2080:20:11;;;;2072:29;;;;;;2119:11;:21;;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2119:23:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2119:23:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2119:23:11;:58;;;;;2174:3;2146:11;:23;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2146:25:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2146:25:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2146:25:11;:31;2119:58;2111:67;;;;;;;;2196:21;:31;;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2196:33:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2196:33:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2196:33:11;:78;;;;;2271:3;2233:21;:33;;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2233:35:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2233:35:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2233:35:11;:41;2196:78;2188:87;;;;;;;;-1:-1:-1;;;;;2293:19:11;;;;2285:28;;;;;;-1:-1:-1;;;;;2331:19:11;;;;2323:28;;;;;;-1:-1:-1;;;;;2369:20:11;;;;2361:29;;;;;;2401:39;2417:6;2425:14;2401:15;;;;:39;:::i;:::-;2451:5;:23;;-1:-1:-1;;;;;;2451:23:11;;;-1:-1:-1;;;;;2451:23:11;;;;;;;2484:11;:34;;;;;;;;;;;;;;2528:10;:24;;;;2562:4;:12;;;;;;;;;;;;;;2584:20;:44;2638:4;:12;;;;;;;;;;;;;;2660:5;:14;;;;;;;;;;;;;;-1:-1:-1;103:1058:26;;-1:-1:-1;;;;;;;;;;;;103:1058:26;612:115:3;667:19;:6;678:7;667:10;;;;;;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;689:136:8:-;751:26;:13;769:7;751:17;;;;;;:26;:::i;:::-;792;;-1:-1:-1;;;;;792:26:8;;;;;;;;689:136;:::o;4863:219:11:-;4961:1;4952:10;;4944:19;;;;;;-1:-1:-1;;;;;4981:28:11;;;;4973:37;;;;;;5021:5;:14;;;;5045:13;:30;;-1:-1:-1;;;;;;5045:30:11;-1:-1:-1;;;;;5045:30:11;;;;;;;;;4863:219::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;103:1058:26:-;;;;;;;", + "deployedSourceMap": "103:1058:26:-;;;;;;;;;-1:-1:-1;;;103:1058:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7980:654:11;;;;;;;;;;10175:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10175:135:11;;;;;;;;;;;;;;;;;;;;;;;1023:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1023:25:11;;;;;;;;-1:-1:-1;;;;;1023:25:11;;;;;;;;;;;;;;4652:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4652:205:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2782:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2782:95:11;-1:-1:-1;;;;;2782:95:11;;;;;720:119:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;720:119:26;-1:-1:-1;;;;;720:119:26;;;;;;;12930:320:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12930:320:11;;;;;;;;;;;;;;;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;-1:-1:-1;;;;;855:171:55;;;;;3307:388:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3307:388:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3307:388:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3307:388:11;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3307:388:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;423:104:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;423:104:3;-1:-1:-1;;;;;423:104:3;;;;;3701:359:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3701:359:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3701:359:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3701:359:11;;;;;;;;;;;;;;;;;;;;;;;1156:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1156:32:11;;;;13603:257;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13603:257:11;;;;3203:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3203:98:11;;;;2883:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2883:103:11;-1:-1:-1;;;;;2883:103:11;;;;;9886:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9886:81:11;;;;1080:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1080:19:11;;;;53::48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:48;;;;10058:111:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10058:111:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10058:111:11;;;;;;;;;;;;;;;;;1194:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1194:28:11;;;;14003:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14003:130:11;;;;845:98:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;845:98:26;-1:-1:-1;;;;;845:98:26;;;;;2687:89:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2687:89:11;-1:-1:-1;;;;;2687:89:11;;;;;3107:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3107:90:11;;;;1228:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1228:19:11;;;;1329:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1329:31:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1128:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1128:22:11;;;;10316:761;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10316:761:11;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10316:761:11;;;;;;;;;;;;;;;;533:73:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;533:73:3;;;;9973:79:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9973:79:11;;;;1105:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1105:17:11;;;;13866:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13866:131:11;;;;4066:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4066:147:11;;;;;;;;;;;;;;;;;;;;;;;1054:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1054:20:11;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;949:117:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;949:117:26;;;;;596:87:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;596:87:8;;;;2992:109:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2992:109:11;-1:-1:-1;;;;;2992:109:11;;;;;12751:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12751:173:11;;;;;;;;;;;84:18:-1;;64:39;;12751:173:11;;;;;;;;52:2:-1;8:100;;5291:1387:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5291:1387:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4299:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4299:347:11;;;;472:118:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;472:118:8;-1:-1:-1;;;;;472:118:8;;;;;13256:341:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13256:341:11;;;;1366:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1366:39:11;;;;;5088:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5088:128:11;;;;;11502:810;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11502:810:11;;;;;;;;;;84:18:-1;;64:39;;11502:810:11;;;;;;52:2:-1;8:100;;997:20:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;997:20:11;;;;7980:654;8220:10;8283:22;;:::i;:::-;8344:18;;:::i;:::-;954:13:62;:18;;971:1;954:18;;;;;14330:14:11;:12;:14::i;:::-;14322:23;;;;;;;;8124:6;8089:31;:29;:31::i;:::-;:41;8085:124;;8154:5;;:29;;;-1:-1:-1;;;;;8154:29:11;;;;;;;;;;8195:1;;-1:-1:-1;;;;;8154:5:11;;:21;;:29;;;;;;;;;;;;;;8195:1;8154:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8154:29:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8154:29:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8154:29:11;-1:-1:-1;;;;;8154:43:11;;;8146:52;;;;;;8250:22;:20;:22::i;:::-;8219:53;;;8308:26;8319:6;8327;8308:10;:26::i;:::-;8372:10;;;8384;;;8283:51;;-1:-1:-1;8365:30:11;;:6;:30::i;:::-;8344:51;;8406:25;8419:3;8424:6;8406:12;:25::i;:::-;8441:62;8459:7;8468:3;8473:6;8480:5;8473:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;;;8496:6;8441:17;:62::i;:::-;8513:37;8529:7;8538:3;8543:6;8513:15;:37::i;:::-;8592:10;;;8604;;;;8616;;;;;8566:61;;;;;;;;;;;;;;;;;;;;;;8580:10;;8566:61;;;;;;;;;1051:13:62;;1035:29;;1027:38;;;;;;7980:654:11;;;;;;:::o;10175:135::-;10270:33;;;;;;:14;:33;;;;;;;;;;;;10247:4;;10270:24;;;;:33;;;;;;;;;;;;;;;:24;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;10270:33:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10270:33:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10270:33:11;;10175:135;-1:-1:-1;;10175:135:11:o;1023:25::-;;;-1:-1:-1;;;;;1023:25:11;;:::o;4652:205::-;4744:10;:17;4706:10;;;;4744:22;;:36;;;4771:9;:7;:9::i;:::-;4770:10;4744:36;4740:49;;;4782:7;;4740:49;-1:-1:-1;;4829:10:11;:17;-1:-1:-1;;4829:21:11;4807:4;4652:205;;;:::o;2782:95::-;2848:22;2861:8;2848:12;:22::i;:::-;2782:95;:::o;720:119:26:-;806:5;;:26;;;;;;-1:-1:-1;;;;;806:26:26;;;;;;;;;;;;;;;783:4;;806:5;;;;;:14;;:26;;;;;;;;;;;;;;;783:4;806:5;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;806:26:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;806:26:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;806:26:26;;720:119;-1:-1:-1;;;720:119:26:o;12930:320:11:-;12990:10;13013;13025;13101:29;13039:22;:20;:22::i;:::-;13012:49;;;;13077:5;13076:6;13072:19;;;13084:7;;13072:19;13133:6;:13;;13140:5;;13133:13;;;;;;;;;;;;;;;;13101:45;;13164:18;:27;13192:5;13199;:22;;13223:5;:19;;13164:79;;;;;-1:-1:-1;;;13164:79:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13164:79:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13164:79:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13164:79:11;;-1:-1:-1;12930:320:11;;;;;;;:::o;855:171:55:-;586:8;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;3307:388:11:-;3362:6;3370:4;3376:6;3384;3392:5;3399;3437:10;3448:5;3437:17;;;;;;;;;;;;;;;;;;;;;;;:25;3476:10;:17;;3437:25;;;;;3487:5;;3476:17;;;;;;;;;;;;;;;;:32;;;3522:10;3533:5;3522:17;;;;;;;;;;;;;;;;;;:29;:17;;;;;:29;;3565:10;:17;;3522:29;;;;;3576:5;;3565:17;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;3613:10;3624:5;3613:17;;;;;;;;;;;;;;;;;;;;:22;;3649:10;3660:5;3649:17;;;;;;;;;;;;;;;;;;;;:29;;3416:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3416:272:11;;;;;;;;;;;;;-1:-1:-1;;3416:272:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3416:272:11;;-1:-1:-1;3416:272:11;-1:-1:-1;3416:272:11;;;-1:-1:-1;3416:272:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3307:388;;;;;;;:::o;423:104:3:-;478:4;501:19;478:4;512:7;501:19;:10;:19;:::i;:::-;494:26;423:104;-1:-1:-1;;423:104:3:o;3701:359:11:-;3752:6;3760;3768:4;3774:6;3782;3790;3829;3836:5;3829:13;;;;;;;;;;;;;;;;;;;;;;;:23;3866:6;:13;;3829:23;;;;;3873:5;;3866:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;3901:6;3908:5;3901:13;;;;;;;;;;;;;;;;;;;;:22;;;3937:6;3944:5;3937:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;3972:6;:13;;3937:21;;;;;3979:5;;3972:13;;;;;;;;;;;;;;;;:30;;4016:6;4023:5;4016:13;;;;;;;;;;;;;;;;;;;;:27;;3808:245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:359;;;;;;;:::o;1156:32::-;;;;:::o;13603:257::-;13700:11;13679:9;:7;:9::i;:::-;13671:18;;;;;;;;13714:5;;:30;;;;;;13738:4;13714:30;;;;;;-1:-1:-1;;;;;13714:5:11;;;;:15;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13714:30:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13714:30:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13714:30:11;13763:5;;:34;;;;;;13778:10;13763:34;;;;;;;;;;;;13714:30;;-1:-1:-1;;;;;;13763:5:11;;;;:14;;:34;;;;;13714:30;;13763:34;;;;;;;;:5;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;13763:34:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13763:34:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13763:34:11;13755:43;;;;;;;;13814:39;;;;;;;;13834:10;;13814:39;;;;;;;;;;13603:257;:::o;3203:98::-;3277:10;:17;3203:98;:::o;2883:103::-;2953:26;2970:8;2953:16;:26::i;9886:81::-;9955:5;;-1:-1:-1;;;;;9955:5:11;9886:81;:::o;1080:19::-;;;-1:-1:-1;;;;;1080:19:11;;:::o;53::48:-;;;;:::o;10058:111:11:-;10113:9;10141:14;:19;;;;:21;;;;;-1:-1:-1;;;10141:21:11;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10141:21:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10141:21:11;;;;;;39:16:-1;36:1;17:17;2:54;101:4;10141:21:11;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;10141:21:11;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;10141:21:11;;-1:-1:-1;;;;;10058:111:11;:::o;1194:28::-;;;-1:-1:-1;;;;;1194:28:11;;:::o;14003:130::-;14048:4;14067:10;14081:22;:20;:22::i;:::-;14064:39;14003:130;-1:-1:-1;;;14003:130:11:o;845:98:26:-;902:34;;-1:-1:-1;;;;;902:11:26;;;922:4;914:21;902:34;;;;;;;;;914:21;902:11;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;902:34:26;845:98;:::o;2687:89:11:-;2750:19;2760:8;2750:9;:19::i;3107:90::-;3177:6;:13;3107:90;:::o;1228:19::-;;;-1:-1:-1;;;;;1228:19:11;;:::o;1329:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1329:31:11;;;;;;;;;;:::o;1128:22::-;;;;:::o;10316:761::-;10386:7;;:::i;:::-;10406:10;10418;10642:28;;:::i;:::-;10432:22;:20;:22::i;:::-;10405:49;;;;10470:5;10469:6;10465:19;;;10477:7;;10465:19;10533:6;10498:31;:29;:31::i;:::-;:41;10494:138;;10560:5;;:21;;;-1:-1:-1;;;;;10560:21:11;;;;;;;;;;-1:-1:-1;;;;;10560:5:11;;;;:13;;:21;;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;10560:21:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10560:21:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10560:21:11;10559:22;10555:67;;;10601:7;;10555:67;10673:32;10698:6;10673:24;:32::i;:::-;10642:63;;10723:18;:26;10763:6;10783;10803;10810:5;10803:13;;;;;;;;;;;;;;;;;;;;:22;;;10839:6;10846:5;10839:13;;;;;;;;;;;;;;;;;;;;:30;;10883:6;10890:5;10883:13;;;;;;;;;;;;;;;;;:27;:13;;;;;:27;;10924:13;;:16;;;;10954:13;10968:1;10954:16;;;;10984:13;10998:1;10984:16;;;;11014:13;11028:1;11014:16;;;;11044:13;11058:1;11044:16;;;;10723:347;;;;;-1:-1:-1;;;10723:347:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10723:347:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10723:347:11;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:3;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;10723:347:11;-1:-1:-1;10316:761:11;;;;;;;;:::o;533:73:3:-;575:24;588:10;575:12;:24::i;:::-;533:73::o;9973:79:11:-;10041:4;;-1:-1:-1;;;;;10041:4:11;9973:79;:::o;1105:17::-;;;;:::o;13866:131::-;13929:6;:13;13906:4;;13929:18;;:61;;-1:-1:-1;13951:6:11;13958:13;;13987:3;;13951:6;-1:-1:-1;;13958:17:11;;;13951:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:39;13929:61;13922:68;;13866:131;:::o;4066:147::-;4137:6;:13;4111:6;;4137:17;-1:-1:-1;4129:26:11;;;;;;4173:6;4180:13;;-1:-1:-1;;4180:17:11;;;4173:25;;;;;;;;;;;;;;;;;;;:33;;;;;;;4066:147;-1:-1:-1;4066:147:11:o;1054:20::-;;;-1:-1:-1;;;;;1054:20:11;;:::o;664:75:55:-;726:8;;-1:-1:-1;;;;;726:8:55;664:75;:::o;949:117:26:-;1015:20;:44;949:117::o;596:87:8:-;645:31;665:10;645:19;:31::i;2992:109:11:-;3065:29;3085:8;3065:19;:29::i;12751:173::-;12816:7;;:::i;:::-;12842:18;:22;12865:11;12878:4;12884:10;;12896:20;;12842:75;;;;;-1:-1:-1;;;12842:75:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12842:75:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12842:75:11;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12842:75:11;12751:173;-1:-1:-1;;;12751:173:11:o;5291:1387::-;14180:6;:13;6197:6;;14180:17;-1:-1:-1;14176:82:11;;;14243:3;14221:6;14228:1;14221:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;14213:34;;;;;;5694:30;;;5686:39;;;;;;5743;;;;5735:48;;;;;;5855:43;;;;5847:52;;;;;;5997:1;5950:37;:48;5917:81;;5909:90;;;;;;6091:1;6050:31;:42;6017:75;;;6009:84;;;;;;6150:30;;;6142:39;;;;;;-1:-1:-1;6206:1:11;6192:125;6209:29;;;6192:125;;;6267:5;;-1:-1:-1;;;;;6267:5:11;:15;6283:18;;6302:1;6283:21;;;;;;;6267:38;;;-1:-1:-1;;;6267:38:11;;;;;;6283:21;;;;;;;;;6267:38;;;;;;;;;;6283:21;;-1:-1:-1;6267:38:11;;;;;;;6283:21;6267:38;;;;5:2:-1;;;;30:1;27;20:12;5:2;6267:38:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6267:38:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6267:38:11;6259:47;;;;;;;;6240:3;;6192:125;;;6327:89;6351:18;;6327:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6327:89:11;;;-1:-1:-1;;6327:89:11;;;;;;;;;;;;;;;6383:23;;6327:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6327:10:11;;-1:-1:-1;;;;;6327:89:11:i;:::-;6427:156;6455:22;;6427:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6427:156:11;;;-1:-1:-1;;6427:156:11;;;;;;;;;;;;;;;6491:37;;6427:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6427:156:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6542:31:11;;-1:-1:-1;6542:31:11;;-1:-1:-1;6542:31:11;;-1:-1:-1;6427:156:11;;6542:31;;;;6427:156;;-1:-1:-1;6427:14:11;;-1:-1:-1;;;;;6427:156:11:i;:::-;6594:41;;;;;;:14;:41;;;;;;;;;;;;;;;;;;:21;;;;6616:18;;;;6594:41;;;;6616:18;6594:41;;;;6616:18;6594:41;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6594:41:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6651:20:11;;;;-1:-1:-1;6651:20:11;;-1:-1:-1;6651:20:11;5291:1387;;;;;;;;;;;;;:::o;4299:347::-;4393:10;:17;4356:10;;;;4393:22;;:36;;;4420:9;:7;:9::i;:::-;4419:10;4393:36;4390:48;;;4431:7;;4390:48;-1:-1:-1;4456:4:11;4526:114;4540:10;:17;-1:-1:-1;;4540:21:11;4532:29;;:74;;;;-1:-1:-1;4572:10:11;:17;;4583:5;;4572:17;;;;;;;;;;;;;;;;;;;:34;;;;;;;;4565:3;:41;;4532:74;4526:114;;;4622:7;;;;;4526:114;;472:118:8;534:4;557:26;:13;575:7;557:26;:17;:26;:::i;13256:341:11:-;13309:10;;;;13343:220;13363:6;:13;13359:17;;13343:220;;;13429:6;:9;;13436:1;;13429:9;;;;;;;;;;;;;;;;;;;13457:15;;13429:9;;-1:-1:-1;13476:3:11;13457:15;;;;:22;;;;:45;;-1:-1:-1;13483:13:11;;13499:3;13483:13;;;;;;:19;13457:45;13453:100;;;13530:1;13533:4;13522:16;;;;;;13453:100;13378:3;;;;;13343:220;;;13581:1;;-1:-1:-1;13581:1:11;;-1:-1:-1;13256:341:11;;;;;:::o;1366:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1366:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1366:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1366:39:11;;;;;;;;;;;;;;;;-1:-1:-1;;1366:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1366:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5088:128::-;586:8:55;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;14180:6:11;:13;14196:1;-1:-1:-1;14176:82:11;;;14243:3;14221:6;14228:1;14221:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;14213:34;;;;;;5195:13;;5171:38;;5187:6;;-1:-1:-1;;;;;5195:13:11;5171:15;:38::i;11502:810::-;11590:7;;:::i;:::-;11610:10;11622;11846:28;;:::i;:::-;11636:22;:20;:22::i;:::-;11609:49;;;;11674:5;11673:6;11669:19;;;11681:7;;11669:19;11737:6;11702:31;:29;:31::i;:::-;:41;11698:138;;11764:5;;:21;;;-1:-1:-1;;;;;11764:21:11;;;;;;;;;;-1:-1:-1;;;;;11764:5:11;;;;:13;;:21;;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;11764:21:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11764:21:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11764:21:11;11763:22;11759:67;;;11805:7;;11759:67;11877:45;11915:6;11877:37;:45::i;:::-;11846:76;;11940:18;:39;11993:6;12013:11;12038:6;12045:5;12038:13;;;;;;;;;;;;;;;;;;;;:22;;;12074:6;12081:5;12074:13;;;;;;;;;;;;;;;;;;;;:30;;12118:6;12125:5;12118:13;;;;;;;;;;;;;;;;;:27;:13;;;;;:27;;12159:13;;:16;;;;12189:13;12203:1;12189:16;;;;12219:13;12233:1;12219:16;;;;12249:13;12263:1;12249:16;;;;12279:13;12293:1;12279:16;;;;11940:365;;;;;-1:-1:-1;;;11940:365:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11940:365:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11940:365:11;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:3;8;5:12;2:2;;;30:1;27;20:12;997:20:11;;;-1:-1:-1;;;;;997:20:11;;:::o;320:78:22:-;382:14;320:78;:::o;8640:343:11:-;8793:5;;:21;;;-1:-1:-1;;;;;8793:21:11;;;;;;;;;;8711:18;;:30;;8755:4;;8773:6;;-1:-1:-1;;;;;8793:5:11;;:13;;:21;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;8793:21:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8793:21:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8793:21:11;:66;;8857:1;8793:66;;;8817:5;;:29;;;-1:-1:-1;;;;;8817:29:11;;;;;;;;;;-1:-1:-1;;;;;8817:5:11;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8817:29:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8817:29:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8817:29:11;8793:66;8881:5;;8909:11;;8935:4;;8953:13;;8711:265;;;;;;-1:-1:-1;;;8711:265:11;;;-1:-1:-1;;;;;8881:5:11;;;;8909:11;;;;8935:4;;;;8953:13;;;;8711:265;;;;;;;;;;8881:5;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;-1:-1;;;;8711:265:11;;;;;;;-1:-1:-1;;;;;;;8711:265:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8711:265:11;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;8711:265:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;8989:360:11;9229:5;;:21;;;-1:-1:-1;;;;;9229:21:11;;;;;;;;;;9099:18;;:35;;9148:8;;9170:4;;9188:7;;9209:6;;-1:-1:-1;;;;;9229:5:11;;;;:13;;:21;;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;9229:21:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9229:21:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9229:21:11;:75;;9302:1;9229:75;;;9261:5;;:29;;;-1:-1:-1;;;;;9261:29:11;;;;;;;;;;-1:-1:-1;;;;;9261:5:11;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;9261:29:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9261:29:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9261:29:11;9229:75;9326:5;;9099:243;;-1:-1:-1;;;9099:243:11;;;;;;-1:-1:-1;;;;;9326:5:11;;;;9099:243;;;;;;;;9326:5;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9099:243:11;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;-1:-1;;;9099:243:11;;;;;;;;;-1:-1:-1;9099:243:11;;;;;;;-1:-1:-1;;;;;;9099:243:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9099:243:11;;-1:-1:-1;9099:243:11;;-1:-1:-1;9099:243:11;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;9099:243:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9099:243:11;;;;8989:360;;;;:::o;9355:525::-;9461:31;:29;:31::i;:::-;9451:41;;9447:427;;;9508:4;;-1:-1:-1;;;;;9508:4:11;:19;9534:24;9550:4;9508;9550:7;;;;9534:8;9543:1;9534:11;;;;;;:24;:15;:24;:::i;:::-;9572:11;;;9609:7;;;9560:10;;9572:11;9585:6;;9593:24;;9572:8;9614:1;9593:11;;:24;9619:8;9628:1;9619:11;;;;9508:123;;;-1:-1:-1;;;9508:123:11;;;;;;-1:-1:-1;;;;;9508:123:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9508:123:11;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;9508:123:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9508:123:11;;;;;9447:427;;;9677:5;;:29;;;-1:-1:-1;;;;;9677:29:11;;;;;;;;;;-1:-1:-1;;;;;9677:5:11;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;9677:29:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9677:29:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9677:29:11;9725:4;;-1:-1:-1;;;;;9670:46:11;;;;;;9725:4;9732:24;9748:4;9725;9748:7;;;;9732:8;9741:1;9732:11;;:24;9670:87;;;;;-1:-1:-1;;;9670:87:11;;;;;;;-1:-1:-1;;;;;9670:87:11;-1:-1:-1;;;;;9670:87:11;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9670:87:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9670:87:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9670:87:11;9662:96;;;;;;;;9772:4;;-1:-1:-1;;;;;9772:4:11;:19;9792:10;9804:8;9772:4;9804:11;;;;9817:6;9825:24;9841:4;9846:1;9841:7;;;;9825:8;9834:1;9825:11;;:24;9851:8;9860:1;9851:11;;;;9772:91;;;-1:-1:-1;;;9772:91:11;;;;;;-1:-1:-1;;;;;9772:91:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9772:91:11;;;;;;;-1:-1:-1;9772:91:11;;;;5:2:-1;;;;30:1;27;20:12;5:2;9772:91:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9772:91:11;;;;9447:427;9355:525;;;:::o;733:123:3:-;791:22;:6;805:7;791:22;:13;:22;:::i;:::-;828:21;;-1:-1:-1;;;;;828:21:3;;;;;;;;733:123;:::o;725:166:52:-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;689:136:8:-;751:26;:13;769:7;751:26;:17;:26;:::i;:::-;792;;-1:-1:-1;;;;;792:26:8;;;;;;;;689:136;:::o;612:115:3:-;667:19;:6;678:7;667:19;:10;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;11083:413:11:-;11155:14;;:::i;:::-;11193:5;;:17;;;;;;;;;;;;;;-1:-1:-1;;;;;11193:5:11;;;;:9;;:17;;;;;;;;;;;;;;;:5;;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;11193:17:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11193:17:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11193:17:11;11181:29;;11232:5;;11181:9;11220;;;:17;;;;11264:5;;:16;;;;;;;;-1:-1:-1;;;;;11264:5:11;;;;:14;;:16;;;;;;;;;;11188:1;11264:5;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;11264:16:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11264:16:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11264:16:11;11259:22;;11247:9;;;:34;11338:6;11303:31;:29;:31::i;:::-;:41;:134;;11395:5;;:29;;;-1:-1:-1;;;;;11395:29:11;;;;;;;;;;-1:-1:-1;;;;;11395:5:11;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;11395:29:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11395:29:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11395:29:11;11381:55;;;;;;;;-1:-1:-1;;;;;11381:53:11;;;;;;:55;;;;;11395:29;;11381:55;;;;;;;;;:53;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;11381:55:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11381:55:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11381:55:11;11376:61;;11303:134;;;11359:2;11303:134;11291:9;;;:146;11459:5;;:30;;;;;;11483:4;11459:30;;;;;;-1:-1:-1;;;;;11459:5:11;;;;:15;;:30;;;;;11291:9;;11459:30;;;;;;;;-1:-1:-1;11459:5:11;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;11459:30:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11459:30:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11459:30:11;11447:9;;;:42;:6;11083:413;-1:-1:-1;11083:413:11:o;831:144:8:-;896:29;:13;917:7;896:29;:20;:29;:::i;:::-;940:28;;-1:-1:-1;;;;;940:28:8;;;;;;;;831:144;:::o;7079:191:11:-;7164:9;:19;7184:6;7192:10;7204;7216:15;7164:68;;;;;-1:-1:-1;;;7164:68:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7164:68:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7164:68:11;;;;-1:-1:-1;7164:68:11;;-1:-1:-1;7164:68:11;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7164:68:11;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7164:68:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7248:15:11;;;;-1:-1:-1;7248:15:11;;-1:-1:-1;7248:15:11;7079:191;;:::o;7693:281::-;7846:9;:23;7870:6;7878:10;7890;7902:7;7911:20;7846:86;;;;;-1:-1:-1;;;7846:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7846:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7846:86:11;;;;-1:-1:-1;7846:86:11;;-1:-1:-1;7846:86:11;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7846:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7846:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7846:86:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7948:19:11;;;;-1:-1:-1;7948:19:11;;-1:-1:-1;7948:19:11;7693:281;;;:::o;4863:219::-;4961:1;4952:10;;4944:19;;;;;;-1:-1:-1;;;;;4981:28:11;;;;4973:37;;;;;;5021:5;:14;;;;5045:13;:30;;-1:-1:-1;;5045:30:11;-1:-1:-1;;;;;5045:30:11;;;;;;;;;4863:219::o;1078:131:54:-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;477:170:52:-;-1:-1:-1;;;;;552:21:52;;;;544:30;;;;;;588:18;592:4;598:7;588:3;:18::i;:::-;580:27;;;;;;;;-1:-1:-1;;;;;614:20:52;637:5;614:20;;;;;;;;;;;:28;;-1:-1:-1;;614:28:52;;;477:170::o;244:167::-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;:18::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;103:1058:26:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;103:1058:26;;;-1:-1:-1;;103:1058:26:o;:::-;;;;;;;;;;;;;;;105:10:-1;103:1058:26;88:34:-1;-1:-1;103:1058:26;;;-1:-1:-1;;103:1058:26:o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;103:1058:26;;;-1:-1:-1;;103:1058:26:o", + "source": "pragma solidity ^0.4.24;\n\nimport \"../../rates/IRates.sol\";\nimport \"../../crowdsale/W12Crowdsale.sol\";\n\ncontract W12CrowdsaleStub is W12Crowdsale {\n constructor (\n uint version,\n address _originToken,\n address _token,\n uint _price,\n address _serviceWallet,\n address _swap,\n uint _serviceFee,\n uint _WTokenSaleFeePercent,\n IW12Fund _fund,\n IRates _rates\n )\n W12Crowdsale(\n version,\n _originToken,\n _token,\n _price,\n _serviceWallet,\n _swap,\n _serviceFee,\n _WTokenSaleFeePercent,\n _fund,\n _rates\n ) public\n {}\n\n function _outTokens(address to, uint amount) external returns (bool) {\n return token.transfer(to, amount);\n }\n\n function _outEther(address to) external {\n return to.transfer(address(this).balance);\n }\n\n function _setState(uint _WTokenSaleFeePercent) external {\n WTokenSaleFeePercent = _WTokenSaleFeePercent;\n }\n\n modifier onlyAdmin {\n _;\n }\n\n modifier onlyProjectOwner {\n _;\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleStub.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleStub.sol", "exportedSymbols": { "W12CrowdsaleStub": [ - 6525 + 8634 ] }, - "id": 6526, + "id": 8635, "nodeType": "SourceUnit", "nodes": [ { - "id": 6444, + "id": 8545, "literals": [ "solidity", "^", @@ -901,27 +1035,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:18" + "src": "0:24:26" }, { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "file": "../../rates/IRates.sol", - "id": 6445, + "id": 8546, "nodeType": "ImportDirective", - "scope": 6526, - "sourceUnit": 7280, - "src": "26:32:18", + "scope": 8635, + "sourceUnit": 10015, + "src": "26:32:26", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", "file": "../../crowdsale/W12Crowdsale.sol", - "id": 6446, + "id": 8547, "nodeType": "ImportDirective", - "scope": 6526, - "sourceUnit": 3280, - "src": "59:42:18", + "scope": 8635, + "sourceUnit": 3303, + "src": "59:42:26", "symbolAliases": [], "unitAlias": "" }, @@ -931,52 +1065,60 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6447, + "id": 8548, "name": "W12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3279, - "src": "132:12:18", + "referencedDeclaration": 3302, + "src": "132:12:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", "typeString": "contract W12Crowdsale" } }, - "id": 6448, + "id": 8549, "nodeType": "InheritanceSpecifier", - "src": "132:12:18" + "src": "132:12:26" } ], "contractDependencies": [ - 1224, - 3279, - 9516, - 9777, - 10134 + 1352, + 1375, + 1421, + 1619, + 1760, + 3302, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6525, + "id": 8634, "linearizedBaseContracts": [ - 6525, - 3279, - 9777, - 10134, - 1224, - 9516 + 8634, + 3302, + 13258, + 12453, + 11833, + 1619, + 1352, + 1760, + 1421, + 1375 ], "name": "W12CrowdsaleStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 6483, + "id": 8584, "nodeType": "Block", - "src": "712:2:18", + "src": "712:2:26", "statements": [] }, "documentation": null, - "id": 6484, + "id": 8585, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -985,12 +1127,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6471, + "id": 8572, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6450, - "src": "465:7:18", + "referencedDeclaration": 8551, + "src": "465:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -998,12 +1140,12 @@ }, { "argumentTypes": null, - "id": 6472, + "id": 8573, "name": "_originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6452, - "src": "486:12:18", + "referencedDeclaration": 8553, + "src": "486:12:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1011,12 +1153,12 @@ }, { "argumentTypes": null, - "id": 6473, + "id": 8574, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6454, - "src": "513:6:18", + "referencedDeclaration": 8555, + "src": "513:6:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1024,12 +1166,12 @@ }, { "argumentTypes": null, - "id": 6474, + "id": 8575, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6456, - "src": "534:6:18", + "referencedDeclaration": 8557, + "src": "534:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1037,12 +1179,12 @@ }, { "argumentTypes": null, - "id": 6475, + "id": 8576, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6458, - "src": "555:14:18", + "referencedDeclaration": 8559, + "src": "555:14:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1050,12 +1192,12 @@ }, { "argumentTypes": null, - "id": 6476, + "id": 8577, "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6460, - "src": "584:5:18", + "referencedDeclaration": 8561, + "src": "584:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1063,12 +1205,12 @@ }, { "argumentTypes": null, - "id": 6477, + "id": 8578, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6462, - "src": "604:11:18", + "referencedDeclaration": 8563, + "src": "604:11:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1076,12 +1218,12 @@ }, { "argumentTypes": null, - "id": 6478, + "id": 8579, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6464, - "src": "629:21:18", + "referencedDeclaration": 8565, + "src": "629:21:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1089,62 +1231,62 @@ }, { "argumentTypes": null, - "id": 6479, + "id": 8580, "name": "_fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6466, - "src": "665:5:18", + "referencedDeclaration": 8567, + "src": "665:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, { "argumentTypes": null, - "id": 6480, + "id": 8581, "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6468, - "src": "684:6:18", + "referencedDeclaration": 8569, + "src": "684:6:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } } ], - "id": 6481, + "id": 8582, "modifierName": { "argumentTypes": null, - "id": 6470, + "id": 8571, "name": "W12Crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "439:12:18", + "referencedDeclaration": 3302, + "src": "439:12:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_W12Crowdsale_$3279_$", + "typeIdentifier": "t_type$_t_contract$_W12Crowdsale_$3302_$", "typeString": "type(contract W12Crowdsale)" } }, "nodeType": "ModifierInvocation", - "src": "439:261:18" + "src": "439:261:26" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6469, + "id": 8570, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6450, + "id": 8551, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "173:12:18", + "scope": 8585, + "src": "173:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1152,10 +1294,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6449, + "id": 8550, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "173:4:18", + "src": "173:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1166,11 +1308,11 @@ }, { "constant": false, - "id": 6452, + "id": 8553, "name": "_originToken", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "195:20:18", + "scope": 8585, + "src": "195:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1178,10 +1320,10 @@ "typeString": "address" }, "typeName": { - "id": 6451, + "id": 8552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "195:7:18", + "src": "195:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1192,11 +1334,11 @@ }, { "constant": false, - "id": 6454, + "id": 8555, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "225:14:18", + "scope": 8585, + "src": "225:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1204,10 +1346,10 @@ "typeString": "address" }, "typeName": { - "id": 6453, + "id": 8554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "225:7:18", + "src": "225:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1218,11 +1360,11 @@ }, { "constant": false, - "id": 6456, + "id": 8557, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "249:11:18", + "scope": 8585, + "src": "249:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1230,10 +1372,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6455, + "id": 8556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "249:4:18", + "src": "249:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1244,11 +1386,11 @@ }, { "constant": false, - "id": 6458, + "id": 8559, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "270:22:18", + "scope": 8585, + "src": "270:22:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1256,10 +1398,10 @@ "typeString": "address" }, "typeName": { - "id": 6457, + "id": 8558, "name": "address", "nodeType": "ElementaryTypeName", - "src": "270:7:18", + "src": "270:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1270,11 +1412,11 @@ }, { "constant": false, - "id": 6460, + "id": 8561, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "302:13:18", + "scope": 8585, + "src": "302:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1282,10 +1424,10 @@ "typeString": "address" }, "typeName": { - "id": 6459, + "id": 8560, "name": "address", "nodeType": "ElementaryTypeName", - "src": "302:7:18", + "src": "302:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1296,11 +1438,11 @@ }, { "constant": false, - "id": 6462, + "id": 8563, "name": "_serviceFee", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "325:16:18", + "scope": 8585, + "src": "325:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1308,10 +1450,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6461, + "id": 8562, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "325:4:18", + "src": "325:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1322,11 +1464,11 @@ }, { "constant": false, - "id": 6464, + "id": 8565, "name": "_WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "351:26:18", + "scope": 8585, + "src": "351:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1334,10 +1476,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6463, + "id": 8564, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "351:4:18", + "src": "351:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1348,26 +1490,26 @@ }, { "constant": false, - "id": 6466, + "id": 8567, "name": "_fund", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "387:14:18", + "scope": 8585, + "src": "387:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 6465, + "id": 8566, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "387:8:18", + "referencedDeclaration": 1803, + "src": "387:8:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -1376,26 +1518,26 @@ }, { "constant": false, - "id": 6468, + "id": 8569, "name": "_rates", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "411:13:18", + "scope": 8585, + "src": "411:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 6467, + "id": 8568, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "411:6:18", + "referencedDeclaration": 10014, + "src": "411:6:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -1403,26 +1545,26 @@ "visibility": "internal" } ], - "src": "163:267:18" + "src": "163:267:26" }, "payable": false, "returnParameters": { - "id": 6482, + "id": 8583, "nodeType": "ParameterList", "parameters": [], - "src": "712:0:18" + "src": "712:0:26" }, - "scope": 6525, - "src": "151:563:18", + "scope": 8634, + "src": "151:563:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6499, + "id": 8600, "nodeType": "Block", - "src": "789:50:18", + "src": "789:50:26", "statements": [ { "expression": { @@ -1430,12 +1572,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6495, + "id": 8596, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6486, - "src": "821:2:18", + "referencedDeclaration": 8587, + "src": "821:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1443,12 +1585,12 @@ }, { "argumentTypes": null, - "id": 6496, + "id": 8597, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6488, - "src": "825:6:18", + "referencedDeclaration": 8589, + "src": "825:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1468,32 +1610,32 @@ ], "expression": { "argumentTypes": null, - "id": 6493, + "id": 8594, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "806:5:18", + "referencedDeclaration": 1847, + "src": "806:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "id": 6494, + "id": 8595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "806:14:18", + "referencedDeclaration": 13046, + "src": "806:14:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 6497, + "id": 8598, "isConstant": false, "isLValue": false, "isPure": false, @@ -1501,21 +1643,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "806:26:18", + "src": "806:26:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6492, - "id": 6498, + "functionReturnParameters": 8593, + "id": 8599, "nodeType": "Return", - "src": "799:33:18" + "src": "799:33:26" } ] }, "documentation": null, - "id": 6500, + "id": 8601, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1523,16 +1665,16 @@ "name": "_outTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 6489, + "id": 8590, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6486, + "id": 8587, "name": "to", "nodeType": "VariableDeclaration", - "scope": 6500, - "src": "740:10:18", + "scope": 8601, + "src": "740:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1540,10 +1682,10 @@ "typeString": "address" }, "typeName": { - "id": 6485, + "id": 8586, "name": "address", "nodeType": "ElementaryTypeName", - "src": "740:7:18", + "src": "740:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1554,11 +1696,11 @@ }, { "constant": false, - "id": 6488, + "id": 8589, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6500, - "src": "752:11:18", + "scope": 8601, + "src": "752:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1566,10 +1708,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6487, + "id": 8588, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "752:4:18", + "src": "752:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1579,20 +1721,20 @@ "visibility": "internal" } ], - "src": "739:25:18" + "src": "739:25:26" }, "payable": false, "returnParameters": { - "id": 6492, + "id": 8593, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6491, + "id": 8592, "name": "", "nodeType": "VariableDeclaration", - "scope": 6500, - "src": "783:4:18", + "scope": 8601, + "src": "783:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1600,10 +1742,10 @@ "typeString": "bool" }, "typeName": { - "id": 6490, + "id": 8591, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "783:4:18", + "src": "783:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1613,19 +1755,19 @@ "visibility": "internal" } ], - "src": "782:6:18" + "src": "782:6:26" }, - "scope": 6525, - "src": "720:119:18", + "scope": 8634, + "src": "720:119:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6513, + "id": 8614, "nodeType": "Block", - "src": "885:58:18", + "src": "885:58:26", "statements": [ { "expression": { @@ -1638,14 +1780,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6508, + "id": 8609, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10575, - "src": "922:4:18", + "referencedDeclaration": 13540, + "src": "922:4:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12CrowdsaleStub_$6525", + "typeIdentifier": "t_contract$_W12CrowdsaleStub_$8634", "typeString": "contract W12CrowdsaleStub" } } @@ -1653,24 +1795,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_W12CrowdsaleStub_$6525", + "typeIdentifier": "t_contract$_W12CrowdsaleStub_$8634", "typeString": "contract W12CrowdsaleStub" } ], - "id": 6507, + "id": 8608, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "914:7:18", + "src": "914:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6509, + "id": 8610, "isConstant": false, "isLValue": false, "isPure": false, @@ -1678,13 +1820,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "914:13:18", + "src": "914:13:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6510, + "id": 8611, "isConstant": false, "isLValue": false, "isPure": false, @@ -1692,7 +1834,7 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "914:21:18", + "src": "914:21:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1708,18 +1850,18 @@ ], "expression": { "argumentTypes": null, - "id": 6505, + "id": 8606, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6502, - "src": "902:2:18", + "referencedDeclaration": 8603, + "src": "902:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6506, + "id": 8607, "isConstant": false, "isLValue": false, "isPure": false, @@ -1727,13 +1869,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "902:11:18", + "src": "902:11:26", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 6511, + "id": 8612, "isConstant": false, "isLValue": false, "isPure": false, @@ -1741,21 +1883,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "902:34:18", + "src": "902:34:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "functionReturnParameters": 6504, - "id": 6512, + "functionReturnParameters": 8605, + "id": 8613, "nodeType": "Return", - "src": "895:41:18" + "src": "895:41:26" } ] }, "documentation": null, - "id": 6514, + "id": 8615, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1763,16 +1905,16 @@ "name": "_outEther", "nodeType": "FunctionDefinition", "parameters": { - "id": 6503, + "id": 8604, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6502, + "id": 8603, "name": "to", "nodeType": "VariableDeclaration", - "scope": 6514, - "src": "864:10:18", + "scope": 8615, + "src": "864:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1780,10 +1922,10 @@ "typeString": "address" }, "typeName": { - "id": 6501, + "id": 8602, "name": "address", "nodeType": "ElementaryTypeName", - "src": "864:7:18", + "src": "864:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1793,43 +1935,43 @@ "visibility": "internal" } ], - "src": "863:12:18" + "src": "863:12:26" }, "payable": false, "returnParameters": { - "id": 6504, + "id": 8605, "nodeType": "ParameterList", "parameters": [], - "src": "885:0:18" + "src": "885:0:26" }, - "scope": 6525, - "src": "845:98:18", + "scope": 8634, + "src": "845:98:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6523, + "id": 8624, "nodeType": "Block", - "src": "1005:61:18", + "src": "1005:61:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 6521, + "id": 8622, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6519, + "id": 8620, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1311, - "src": "1015:20:18", + "referencedDeclaration": 1859, + "src": "1015:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1839,31 +1981,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6520, + "id": 8621, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6516, - "src": "1038:21:18", + "referencedDeclaration": 8617, + "src": "1038:21:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1015:44:18", + "src": "1015:44:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6522, + "id": 8623, "nodeType": "ExpressionStatement", - "src": "1015:44:18" + "src": "1015:44:26" } ] }, "documentation": null, - "id": 6524, + "id": 8625, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1871,16 +2013,16 @@ "name": "_setState", "nodeType": "FunctionDefinition", "parameters": { - "id": 6517, + "id": 8618, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6516, + "id": 8617, "name": "_WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 6524, - "src": "968:26:18", + "scope": 8625, + "src": "968:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1888,10 +2030,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6515, + "id": 8616, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "968:4:18", + "src": "968:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1901,40 +2043,92 @@ "visibility": "internal" } ], - "src": "967:28:18" + "src": "967:28:26" }, "payable": false, "returnParameters": { - "id": 6518, + "id": 8619, "nodeType": "ParameterList", "parameters": [], - "src": "1005:0:18" + "src": "1005:0:26" }, - "scope": 6525, - "src": "949:117:18", + "scope": 8634, + "src": "949:117:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" + }, + { + "body": { + "id": 8628, + "nodeType": "Block", + "src": "1091:18:26", + "statements": [ + { + "id": 8627, + "nodeType": "PlaceholderStatement", + "src": "1101:1:26" + } + ] + }, + "documentation": null, + "id": 8629, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 8626, + "nodeType": "ParameterList", + "parameters": [], + "src": "1091:0:26" + }, + "src": "1072:37:26", + "visibility": "internal" + }, + { + "body": { + "id": 8632, + "nodeType": "Block", + "src": "1141:18:26", + "statements": [ + { + "id": 8631, + "nodeType": "PlaceholderStatement", + "src": "1151:1:26" + } + ] + }, + "documentation": null, + "id": 8633, + "name": "onlyProjectOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 8630, + "nodeType": "ParameterList", + "parameters": [], + "src": "1141:0:26" + }, + "src": "1115:44:26", + "visibility": "internal" } ], - "scope": 6526, - "src": "103:965:18" + "scope": 8635, + "src": "103:1058:26" } ], - "src": "0:1069:18" + "src": "0:1162:26" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleStub.sol", "exportedSymbols": { "W12CrowdsaleStub": [ - 6525 + 8634 ] }, - "id": 6526, + "id": 8635, "nodeType": "SourceUnit", "nodes": [ { - "id": 6444, + "id": 8545, "literals": [ "solidity", "^", @@ -1942,27 +2136,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:18" + "src": "0:24:26" }, { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "file": "../../rates/IRates.sol", - "id": 6445, + "id": 8546, "nodeType": "ImportDirective", - "scope": 6526, - "sourceUnit": 7280, - "src": "26:32:18", + "scope": 8635, + "sourceUnit": 10015, + "src": "26:32:26", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", "file": "../../crowdsale/W12Crowdsale.sol", - "id": 6446, + "id": 8547, "nodeType": "ImportDirective", - "scope": 6526, - "sourceUnit": 3280, - "src": "59:42:18", + "scope": 8635, + "sourceUnit": 3303, + "src": "59:42:26", "symbolAliases": [], "unitAlias": "" }, @@ -1972,52 +2166,60 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6447, + "id": 8548, "name": "W12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3279, - "src": "132:12:18", + "referencedDeclaration": 3302, + "src": "132:12:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$3279", + "typeIdentifier": "t_contract$_W12Crowdsale_$3302", "typeString": "contract W12Crowdsale" } }, - "id": 6448, + "id": 8549, "nodeType": "InheritanceSpecifier", - "src": "132:12:18" + "src": "132:12:26" } ], "contractDependencies": [ - 1224, - 3279, - 9516, - 9777, - 10134 + 1352, + 1375, + 1421, + 1619, + 1760, + 3302, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6525, + "id": 8634, "linearizedBaseContracts": [ - 6525, - 3279, - 9777, - 10134, - 1224, - 9516 + 8634, + 3302, + 13258, + 12453, + 11833, + 1619, + 1352, + 1760, + 1421, + 1375 ], "name": "W12CrowdsaleStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 6483, + "id": 8584, "nodeType": "Block", - "src": "712:2:18", + "src": "712:2:26", "statements": [] }, "documentation": null, - "id": 6484, + "id": 8585, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2026,12 +2228,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6471, + "id": 8572, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6450, - "src": "465:7:18", + "referencedDeclaration": 8551, + "src": "465:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2039,12 +2241,12 @@ }, { "argumentTypes": null, - "id": 6472, + "id": 8573, "name": "_originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6452, - "src": "486:12:18", + "referencedDeclaration": 8553, + "src": "486:12:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2052,12 +2254,12 @@ }, { "argumentTypes": null, - "id": 6473, + "id": 8574, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6454, - "src": "513:6:18", + "referencedDeclaration": 8555, + "src": "513:6:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2065,12 +2267,12 @@ }, { "argumentTypes": null, - "id": 6474, + "id": 8575, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6456, - "src": "534:6:18", + "referencedDeclaration": 8557, + "src": "534:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2078,12 +2280,12 @@ }, { "argumentTypes": null, - "id": 6475, + "id": 8576, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6458, - "src": "555:14:18", + "referencedDeclaration": 8559, + "src": "555:14:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2091,12 +2293,12 @@ }, { "argumentTypes": null, - "id": 6476, + "id": 8577, "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6460, - "src": "584:5:18", + "referencedDeclaration": 8561, + "src": "584:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2104,12 +2306,12 @@ }, { "argumentTypes": null, - "id": 6477, + "id": 8578, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6462, - "src": "604:11:18", + "referencedDeclaration": 8563, + "src": "604:11:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2117,12 +2319,12 @@ }, { "argumentTypes": null, - "id": 6478, + "id": 8579, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6464, - "src": "629:21:18", + "referencedDeclaration": 8565, + "src": "629:21:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2130,62 +2332,62 @@ }, { "argumentTypes": null, - "id": 6479, + "id": 8580, "name": "_fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6466, - "src": "665:5:18", + "referencedDeclaration": 8567, + "src": "665:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, { "argumentTypes": null, - "id": 6480, + "id": 8581, "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6468, - "src": "684:6:18", + "referencedDeclaration": 8569, + "src": "684:6:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } } ], - "id": 6481, + "id": 8582, "modifierName": { "argumentTypes": null, - "id": 6470, + "id": 8571, "name": "W12Crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "439:12:18", + "referencedDeclaration": 3302, + "src": "439:12:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_W12Crowdsale_$3279_$", + "typeIdentifier": "t_type$_t_contract$_W12Crowdsale_$3302_$", "typeString": "type(contract W12Crowdsale)" } }, "nodeType": "ModifierInvocation", - "src": "439:261:18" + "src": "439:261:26" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6469, + "id": 8570, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6450, + "id": 8551, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "173:12:18", + "scope": 8585, + "src": "173:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2193,10 +2395,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6449, + "id": 8550, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "173:4:18", + "src": "173:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2207,11 +2409,11 @@ }, { "constant": false, - "id": 6452, + "id": 8553, "name": "_originToken", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "195:20:18", + "scope": 8585, + "src": "195:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2219,10 +2421,10 @@ "typeString": "address" }, "typeName": { - "id": 6451, + "id": 8552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "195:7:18", + "src": "195:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2233,11 +2435,11 @@ }, { "constant": false, - "id": 6454, + "id": 8555, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "225:14:18", + "scope": 8585, + "src": "225:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2245,10 +2447,10 @@ "typeString": "address" }, "typeName": { - "id": 6453, + "id": 8554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "225:7:18", + "src": "225:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2259,11 +2461,11 @@ }, { "constant": false, - "id": 6456, + "id": 8557, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "249:11:18", + "scope": 8585, + "src": "249:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2271,10 +2473,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6455, + "id": 8556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "249:4:18", + "src": "249:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2285,11 +2487,11 @@ }, { "constant": false, - "id": 6458, + "id": 8559, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "270:22:18", + "scope": 8585, + "src": "270:22:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2297,10 +2499,10 @@ "typeString": "address" }, "typeName": { - "id": 6457, + "id": 8558, "name": "address", "nodeType": "ElementaryTypeName", - "src": "270:7:18", + "src": "270:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2311,11 +2513,11 @@ }, { "constant": false, - "id": 6460, + "id": 8561, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "302:13:18", + "scope": 8585, + "src": "302:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2323,10 +2525,10 @@ "typeString": "address" }, "typeName": { - "id": 6459, + "id": 8560, "name": "address", "nodeType": "ElementaryTypeName", - "src": "302:7:18", + "src": "302:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2337,11 +2539,11 @@ }, { "constant": false, - "id": 6462, + "id": 8563, "name": "_serviceFee", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "325:16:18", + "scope": 8585, + "src": "325:16:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2349,10 +2551,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6461, + "id": 8562, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "325:4:18", + "src": "325:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2363,11 +2565,11 @@ }, { "constant": false, - "id": 6464, + "id": 8565, "name": "_WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "351:26:18", + "scope": 8585, + "src": "351:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2375,10 +2577,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6463, + "id": 8564, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "351:4:18", + "src": "351:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2389,26 +2591,26 @@ }, { "constant": false, - "id": 6466, + "id": 8567, "name": "_fund", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "387:14:18", + "scope": 8585, + "src": "387:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 6465, + "id": 8566, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "387:8:18", + "referencedDeclaration": 1803, + "src": "387:8:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -2417,26 +2619,26 @@ }, { "constant": false, - "id": 6468, + "id": 8569, "name": "_rates", "nodeType": "VariableDeclaration", - "scope": 6484, - "src": "411:13:18", + "scope": 8585, + "src": "411:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 6467, + "id": 8568, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "411:6:18", + "referencedDeclaration": 10014, + "src": "411:6:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -2444,26 +2646,26 @@ "visibility": "internal" } ], - "src": "163:267:18" + "src": "163:267:26" }, "payable": false, "returnParameters": { - "id": 6482, + "id": 8583, "nodeType": "ParameterList", "parameters": [], - "src": "712:0:18" + "src": "712:0:26" }, - "scope": 6525, - "src": "151:563:18", + "scope": 8634, + "src": "151:563:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6499, + "id": 8600, "nodeType": "Block", - "src": "789:50:18", + "src": "789:50:26", "statements": [ { "expression": { @@ -2471,12 +2673,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6495, + "id": 8596, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6486, - "src": "821:2:18", + "referencedDeclaration": 8587, + "src": "821:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2484,12 +2686,12 @@ }, { "argumentTypes": null, - "id": 6496, + "id": 8597, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6488, - "src": "825:6:18", + "referencedDeclaration": 8589, + "src": "825:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2509,32 +2711,32 @@ ], "expression": { "argumentTypes": null, - "id": 6493, + "id": 8594, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "806:5:18", + "referencedDeclaration": 1847, + "src": "806:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "id": 6494, + "id": 8595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "806:14:18", + "referencedDeclaration": 13046, + "src": "806:14:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 6497, + "id": 8598, "isConstant": false, "isLValue": false, "isPure": false, @@ -2542,21 +2744,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "806:26:18", + "src": "806:26:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6492, - "id": 6498, + "functionReturnParameters": 8593, + "id": 8599, "nodeType": "Return", - "src": "799:33:18" + "src": "799:33:26" } ] }, "documentation": null, - "id": 6500, + "id": 8601, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2564,16 +2766,16 @@ "name": "_outTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 6489, + "id": 8590, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6486, + "id": 8587, "name": "to", "nodeType": "VariableDeclaration", - "scope": 6500, - "src": "740:10:18", + "scope": 8601, + "src": "740:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2581,10 +2783,10 @@ "typeString": "address" }, "typeName": { - "id": 6485, + "id": 8586, "name": "address", "nodeType": "ElementaryTypeName", - "src": "740:7:18", + "src": "740:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2595,11 +2797,11 @@ }, { "constant": false, - "id": 6488, + "id": 8589, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6500, - "src": "752:11:18", + "scope": 8601, + "src": "752:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2607,10 +2809,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6487, + "id": 8588, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "752:4:18", + "src": "752:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2620,20 +2822,20 @@ "visibility": "internal" } ], - "src": "739:25:18" + "src": "739:25:26" }, "payable": false, "returnParameters": { - "id": 6492, + "id": 8593, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6491, + "id": 8592, "name": "", "nodeType": "VariableDeclaration", - "scope": 6500, - "src": "783:4:18", + "scope": 8601, + "src": "783:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2641,10 +2843,10 @@ "typeString": "bool" }, "typeName": { - "id": 6490, + "id": 8591, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "783:4:18", + "src": "783:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2654,19 +2856,19 @@ "visibility": "internal" } ], - "src": "782:6:18" + "src": "782:6:26" }, - "scope": 6525, - "src": "720:119:18", + "scope": 8634, + "src": "720:119:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6513, + "id": 8614, "nodeType": "Block", - "src": "885:58:18", + "src": "885:58:26", "statements": [ { "expression": { @@ -2679,14 +2881,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6508, + "id": 8609, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10575, - "src": "922:4:18", + "referencedDeclaration": 13540, + "src": "922:4:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12CrowdsaleStub_$6525", + "typeIdentifier": "t_contract$_W12CrowdsaleStub_$8634", "typeString": "contract W12CrowdsaleStub" } } @@ -2694,24 +2896,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_W12CrowdsaleStub_$6525", + "typeIdentifier": "t_contract$_W12CrowdsaleStub_$8634", "typeString": "contract W12CrowdsaleStub" } ], - "id": 6507, + "id": 8608, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "914:7:18", + "src": "914:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6509, + "id": 8610, "isConstant": false, "isLValue": false, "isPure": false, @@ -2719,13 +2921,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "914:13:18", + "src": "914:13:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6510, + "id": 8611, "isConstant": false, "isLValue": false, "isPure": false, @@ -2733,7 +2935,7 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "914:21:18", + "src": "914:21:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2749,18 +2951,18 @@ ], "expression": { "argumentTypes": null, - "id": 6505, + "id": 8606, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6502, - "src": "902:2:18", + "referencedDeclaration": 8603, + "src": "902:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6506, + "id": 8607, "isConstant": false, "isLValue": false, "isPure": false, @@ -2768,13 +2970,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "902:11:18", + "src": "902:11:26", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 6511, + "id": 8612, "isConstant": false, "isLValue": false, "isPure": false, @@ -2782,21 +2984,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "902:34:18", + "src": "902:34:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "functionReturnParameters": 6504, - "id": 6512, + "functionReturnParameters": 8605, + "id": 8613, "nodeType": "Return", - "src": "895:41:18" + "src": "895:41:26" } ] }, "documentation": null, - "id": 6514, + "id": 8615, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2804,16 +3006,16 @@ "name": "_outEther", "nodeType": "FunctionDefinition", "parameters": { - "id": 6503, + "id": 8604, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6502, + "id": 8603, "name": "to", "nodeType": "VariableDeclaration", - "scope": 6514, - "src": "864:10:18", + "scope": 8615, + "src": "864:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2821,10 +3023,10 @@ "typeString": "address" }, "typeName": { - "id": 6501, + "id": 8602, "name": "address", "nodeType": "ElementaryTypeName", - "src": "864:7:18", + "src": "864:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2834,43 +3036,43 @@ "visibility": "internal" } ], - "src": "863:12:18" + "src": "863:12:26" }, "payable": false, "returnParameters": { - "id": 6504, + "id": 8605, "nodeType": "ParameterList", "parameters": [], - "src": "885:0:18" + "src": "885:0:26" }, - "scope": 6525, - "src": "845:98:18", + "scope": 8634, + "src": "845:98:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6523, + "id": 8624, "nodeType": "Block", - "src": "1005:61:18", + "src": "1005:61:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 6521, + "id": 8622, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6519, + "id": 8620, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1311, - "src": "1015:20:18", + "referencedDeclaration": 1859, + "src": "1015:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2880,31 +3082,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6520, + "id": 8621, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6516, - "src": "1038:21:18", + "referencedDeclaration": 8617, + "src": "1038:21:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1015:44:18", + "src": "1015:44:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6522, + "id": 8623, "nodeType": "ExpressionStatement", - "src": "1015:44:18" + "src": "1015:44:26" } ] }, "documentation": null, - "id": 6524, + "id": 8625, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2912,16 +3114,16 @@ "name": "_setState", "nodeType": "FunctionDefinition", "parameters": { - "id": 6517, + "id": 8618, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6516, + "id": 8617, "name": "_WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 6524, - "src": "968:26:18", + "scope": 8625, + "src": "968:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2929,10 +3131,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6515, + "id": 8616, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "968:4:18", + "src": "968:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2942,27 +3144,79 @@ "visibility": "internal" } ], - "src": "967:28:18" + "src": "967:28:26" }, "payable": false, "returnParameters": { - "id": 6518, + "id": 8619, "nodeType": "ParameterList", "parameters": [], - "src": "1005:0:18" + "src": "1005:0:26" }, - "scope": 6525, - "src": "949:117:18", + "scope": 8634, + "src": "949:117:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" + }, + { + "body": { + "id": 8628, + "nodeType": "Block", + "src": "1091:18:26", + "statements": [ + { + "id": 8627, + "nodeType": "PlaceholderStatement", + "src": "1101:1:26" + } + ] + }, + "documentation": null, + "id": 8629, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 8626, + "nodeType": "ParameterList", + "parameters": [], + "src": "1091:0:26" + }, + "src": "1072:37:26", + "visibility": "internal" + }, + { + "body": { + "id": 8632, + "nodeType": "Block", + "src": "1141:18:26", + "statements": [ + { + "id": 8631, + "nodeType": "PlaceholderStatement", + "src": "1151:1:26" + } + ] + }, + "documentation": null, + "id": 8633, + "name": "onlyProjectOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 8630, + "nodeType": "ParameterList", + "parameters": [], + "src": "1141:0:26" + }, + "src": "1115:44:26", + "visibility": "internal" } ], - "scope": 6526, - "src": "103:965:18" + "scope": 8635, + "src": "103:1058:26" } ], - "src": "0:1069:18" + "src": "0:1162:26" }, "compiler": { "name": "solc", @@ -2972,11 +3226,14 @@ "4": { "events": {}, "links": { - "Percent": "0x0b4828a3e62b5ae0029d86d76fa68887ea9748ec", - "Utils": "0x3a1732ce8e94619c9daf43a86323077ce770b9f4" + "Percent": "0x04596c9a67ad5870686616d58c2a8198f8b94b34", + "Utils": "0x3a1732ce8e94619c9daf43a86323077ce770b9f4", + "PaymentMethods": "0x075acd6e2c3889534b118c25e987a7c54e310334", + "PurchaseProcessing": "0xc188f0bc72e1a4f928fcf81132dc444bd0846871", + "Crowdsale": "0x7e8264c85babb6c0b41734622ac220c2bf7d57a0" } } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:55:06.459Z" + "updatedAt": "2018-12-06T13:18:18.791Z" } \ No newline at end of file diff --git a/build/contracts/W12Fund.json b/build/contracts/W12Fund.json index a8e20e93..f3212483 100644 --- a/build/contracts/W12Fund.json +++ b/build/contracts/W12Fund.json @@ -16,28 +16,28 @@ "type": "function" }, { - "constant": true, - "inputs": [], - "name": "totalTranchePercentReleased", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", - "type": "uint256" + "name": "recipient", + "type": "address" } ], + "name": "transferPrimary", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { - "name": "", - "type": "uint256" + "name": "account", + "type": "address" } ], - "name": "completedTranches", + "name": "isAdmin", "outputs": [ { "name": "", @@ -90,15 +90,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [], @@ -114,17 +105,12 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], + "name": "renounceAdmin", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { @@ -158,11 +144,11 @@ { "constant": true, "inputs": [], - "name": "totalTokenBought", + "name": "primary", "outputs": [ { "name": "", - "type": "uint256" + "type": "address" } ], "payable": false, @@ -171,13 +157,8 @@ }, { "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", + "inputs": [], + "name": "renounceProjectOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -185,12 +166,17 @@ }, { "constant": true, - "inputs": [], - "name": "totalTokenRefunded", + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", "outputs": [ { "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, @@ -321,16 +307,28 @@ "name": "TrancheReleased", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, { "anonymous": false, "inputs": [ { "indexed": true, - "name": "previousOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipRenounced", + "name": "ProjectOwnerAdded", "type": "event" }, { @@ -338,18 +336,93 @@ "inputs": [ { "indexed": true, - "name": "previousOwner", + "name": "account", "type": "address" - }, + } + ], + "name": "ProjectOwnerRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": true, - "name": "newOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "AdminRemoved", "type": "event" }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [ @@ -422,6 +495,67 @@ "stateMutability": "payable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "totalTranchePercentReleased", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "milestoneIndex", + "type": "uint256" + } + ], + "name": "completedTranches", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalTokenBought", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalTokenRefunded", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -615,24 +749,24 @@ "type": "function" } ], - "bytecode": "0x608060405260016002553480156200001657600080fd5b5060405160608062003206833981016040908152815160208301519190920151600083905560018054600160a060020a03191633179055620000668264010000000062002fad620000d982021704565b80156200008b57506064620000898364010000000062002fd26200011682021704565b105b15156200009757600080fd5b600160a060020a0381161515620000ad57600080fd5b60089190915560058054600160a060020a031916600160a060020a0390921691909117905550620001c2565b6000620000ee64010000000062000168810204565b82101580156200011057506200010c6401000000006200016d810204565b8211155b92915050565b60006200012c82640100000000620000d9810204565b15156200013857600080fd5b620001106200014f6401000000006200018a810204565b8390600a0a64010000000062002f0e6200018f82021704565b600090565b600062000182640100000000620001a5810204565b600a0a905090565b600290565b600081838115156200019d57fe5b049392505050565b6000620001ba6401000000006200018a810204565b600201905090565b61303480620001d26000396000f3006080604052600436106101665763ffffffff60e060020a600035041663015dd28c811461016b5780630babd864146101d057806319ae48ed1461020157806323585f961461022857806323bffccc14610254578063278ecde11461027757806343f48fbd1461028f578063483a20b2146102a457806354fd4d50146102c55780635641f3c3146102da5780636b90d6d2146102ef5780636ebc0af114610304578063715018a6146103195780637a1c2da31461032e5780638119c065146103465780638429fffe1461035b5780638da5cb5b146103705780639124a789146103855780639ab269a6146103a65780639c1e03a0146103be5780639e80baac146103d3578063a328665a146103e8578063a3b768e1146103fd578063acb3c0731461044a578063adb9dd081461046b578063b4105a3e1461048c578063d0baf2f5146104a1578063f206cb64146104c1578063f2fde38b146104e5578063fb2814c414610506575b600080fd5b34801561017757600080fd5b5061018061051b565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101bc5781810151838201526020016101a4565b505050509050019250505060405180910390f35b3480156101dc57600080fd5b506101e5610602565b60408051600160a060020a039092168252519081900360200190f35b34801561020d57600080fd5b50610216610611565b60408051918252519081900360200190f35b34801561023457600080fd5b50610240600435610617565b604080519115158252519081900360200190f35b34801561026057600080fd5b50610275600160a060020a036004351661062c565b005b34801561028357600080fd5b50610275600435610687565b34801561029b57600080fd5b506101e5610943565b3480156102b057600080fd5b50610275600160a060020a0360043516610952565b3480156102d157600080fd5b50610216610ade565b3480156102e657600080fd5b506101e5610ae4565b3480156102fb57600080fd5b50610240610af3565b34801561031057600080fd5b50610275610d08565b34801561032557600080fd5b50610275610ec8565b34801561033a57600080fd5b50610216600435610f36565b34801561035257600080fd5b506101e5610f48565b34801561036757600080fd5b50610240610f57565b34801561037c57600080fd5b506101e5611170565b34801561039157600080fd5b50610216600160a060020a036004351661117f565b3480156103b257600080fd5b5061021660043561119a565b3480156103ca57600080fd5b506101e56111b3565b3480156103df57600080fd5b506102406111c2565b3480156103f457600080fd5b50610216611275565b34801561040957600080fd5b5061041261127b565b6040518082606080838360005b8381101561043757818101518382015260200161041f565b5050505090500191505060405180910390f35b34801561045657600080fd5b50610275600160a060020a036004351661184f565b34801561047757600080fd5b50610180600160a060020a03600435166118aa565b34801561049857600080fd5b506102166119a7565b610275600160a060020a03600435166024356044356064356084356119ad565b3480156104cd57600080fd5b50610216600160a060020a0360043516602435611da9565b3480156104f157600080fd5b50610275600160a060020a0360043516611dd8565b34801561051257600080fd5b50610216611dfb565b6060600b73__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561057257600080fd5b505af4158015610586573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156105af57600080fd5b8101908080516401000000008111156105c757600080fd5b820160208101848111156105da57600080fd5b81518560208202830111640100000000821117156105f757600080fd5b509094505050505090565b600454600160a060020a031681565b60095481565b600a6020526000908152604090205460ff1681565b600154600160a060020a0316331461064357600080fd5b600160a060020a038116151561065857600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025460011461069657600080fd5b600280556106a2610af3565b15156106ad57600080fd5b8015156106b957600080fd5b336000908152601160205260409020548111156106d557600080fd5b600480546040805160e060020a6370a082310281523393810193909352518392600160a060020a03909216916370a082319160248083019260209291908290030181600087803b15801561072857600080fd5b505af115801561073c573d6000803e3d6000fd5b505050506040513d602081101561075257600080fd5b5051101561075f57600080fd5b60048054604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523393810193909352306024840152518392600160a060020a039092169163dd62ed3e9160448083019260209291908290030181600087803b1580156107ce57600080fd5b505af11580156107e2573d6000803e3d6000fd5b505050506040513d60208110156107f857600080fd5b5051101561080557600080fd5b61080e81611e01565b601054610821908263ffffffff61249916565b60105533600090815260116020526040902054610844908263ffffffff6124a616565b336000818152601160209081526040808320949094556004805460065486517f23b872dd00000000000000000000000000000000000000000000000000000000815292830195909552600160a060020a03948516602483015260448201879052945194909316936323b872dd93606480820194918390030190829087803b1580156108ce57600080fd5b505af11580156108e2573d6000803e3d6000fd5b505050506040513d60208110156108f857600080fd5b5051151561090557600080fd5b60408051828152905133917fb7feb6c1d7169f40790388a31c0160d8f962a2b6c31970c28bd8cdfefa25ea29919081900360200190a2506001600255565b600554600160a060020a031681565b600154600160a060020a0316331461096957600080fd5b600160a060020a038116151561097e57600080fd5b6000600160a060020a031681600160a060020a0316634090cb646040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109c757600080fd5b505af11580156109db573d6000803e3d6000fd5b505050506040513d60208110156109f157600080fd5b5051600160a060020a03161415610a0757600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610a8357600080fd5b505af1158015610a97573d6000803e3d6000fd5b505050506040513d6020811015610aad57600080fd5b50516004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550565b60005481565b600754600160a060020a031681565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610b5657600080fd5b505af1158015610b6a573d6000803e3d6000fd5b505050506040513d6040811015610b8057600080fd5b5080516020909101519094509250831515610b9a57610d01565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610bea57600080fd5b505af1158015610bfe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610c2757600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610c5d57600080fd5b82016020810184811115610c7057600080fd5b8151640100000000811182820187101715610c8a57600080fd5b50509291906020018051640100000000811115610ca657600080fd5b82016020810184811115610cb957600080fd5b8151640100000000811182820187101715610cd357600080fd5b50509291905050505050935050509150428263ffffffff1611158015610cfe57508063ffffffff1642105b94505b5050505090565b610d10612f8e565b600154600160a060020a03163314610d2757600080fd5b600254600114610d3657600080fd5b60028055610d426111c2565b1515610d4d57600080fd5b610d5561127b565b8051909150600010610d6657600080fd5b6040805160e060020a6320e1e1d1028152600b6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b158015610dbb57600080fd5b505af4158015610dcf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610df857600080fd5b810190808051640100000000811115610e1057600080fd5b82016020810184811115610e2357600080fd5b8151856020820283011164010000000082111715610e4057600080fd5b50505115159250610e5391505057600080fd5b6040818101516000908152600a60205220805460ff191660011790558051600954610e7d91612499565b600955610e89816124b8565b8051604080519182525133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a2506001600255565b600154600160a060020a03163314610edf57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000908152600e602052604090205490565b600654600160a060020a031681565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610fba57600080fd5b505af1158015610fce573d6000803e3d6000fd5b505050506040513d6040811015610fe457600080fd5b5080516020909101519094509250831580610ffd575082155b1561100757610d01565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561105757600080fd5b505af115801561106b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561109457600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156110ca57600080fd5b820160208101848111156110dd57600080fd5b81516401000000008111828201871017156110f757600080fd5b5050929190602001805164010000000081111561111357600080fd5b8201602081018481111561112657600080fd5b815164010000000081118282018710171561114057600080fd5b50509291905050505050935050509150428263ffffffff161180610cfe575063ffffffff16421015949350505050565b600154600160a060020a031681565b600160a060020a031660009081526011602052604090205490565b60006111ad600b8363ffffffff612c7016565b92915050565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561121957600080fd5b505af115801561122d573d6000803e3d6000fd5b505050506040513d604081101561124357600080fd5b508051602090910151909250905080151561125d57611270565b81158061126d575061126d610f57565b92505b505090565b60085481565b611283612f8e565b60008060008060008060008060006112996111c2565b15156112a457611843565b600354604080517fd6d65f3d0000000000000000000000000000000000000000000000000000000081528151600160a060020a039093169263d6d65f3d926004808401939192918290030181600087803b15801561130157600080fd5b505af1158015611315573d6000803e3d6000fd5b505050506040513d604081101561132b57600080fd5b5051600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151939c50600160a060020a03909216926314f66d349260048082019392918290030181600087803b15801561138c57600080fd5b505af11580156113a0573d6000803e3d6000fd5b505050506040513d60408110156113b657600080fd5b50516003546040805160e060020a632442e1cb028152600481018490529051929a50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561140b57600080fd5b505af115801561141f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561144857600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561147e57600080fd5b8201602081018481111561149157600080fd5b81516401000000008111828201871017156114ab57600080fd5b505092919060200180516401000000008111156114c757600080fd5b820160208101848111156114da57600080fd5b81516401000000008111828201871017156114f457600080fd5b505092919050505050509950505050886000148061151157508888145b61151e5760018903611520565b885b6003546040805160e060020a632442e1cb028152600481018490529051929b50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561157357600080fd5b505af1158015611587573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156115b057600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156115e657600080fd5b820160208101848111156115f957600080fd5b815164010000000081118282018710171561161357600080fd5b5050929190602001805164010000000081111561162f57600080fd5b8201602081018481111561164257600080fd5b815164010000000081118282018710171561165c57600080fd5b50509291905050505050975050965050600a60008a815260200190815260200160002060009054906101000a900460ff169350831561169a57611843565b8892505b600083111561180f576003546040805160e060020a632442e1cb0281526000199095016004860181905290519094600160a060020a0390921691632442e1cb91602480830192600092919082900301818387803b1580156116fe57600080fd5b505af1158015611712573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561173b57600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561177157600080fd5b8201602081018481111561178457600080fd5b815164010000000081118282018710171561179e57600080fd5b505092919060200180516401000000008111156117ba57600080fd5b820160208101848111156117cd57600080fd5b81516401000000008111828201871017156117e757600080fd5b5097995061180898508a97508996505063ffffffff61249916945050505050565b915061169e565b60095461183290611826888563ffffffff61249916565b9063ffffffff6124a616565b8a5260208a0182905260408a018990525b50505050505050505090565b600154600160a060020a0316331461186657600080fd5b600160a060020a038116151561187b57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038116600090815260126020526040808220815160e060020a6320e1e1d10281526004810191909152905160609273__FundAccount___________________________926320e1e1d19260248083019392829003018186803b15801561191657600080fd5b505af415801561192a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561195357600080fd5b81019080805164010000000081111561196b57600080fd5b8201602081018481111561197e57600080fd5b815185602082028301116401000000008211171561199b57600080fd5b50909695505050505050565b600f5481565b600354600160a060020a03163381146119c557600080fd5b600085116119d257600080fd5b600083116119df57600080fd5b600082116119ec57600080fd5b600160a060020a0386161515611a0157600080fd5b600554604080517f7d20abf8000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691637d20abf8916024808201926020929091908290030181600087803b158015611a6857600080fd5b505af1158015611a7c573d6000803e3d6000fd5b505050506040513d6020811015611a9257600080fd5b50511515611a9f57600080fd5b60eb60020a6208aa8902841415611ac25734831115611abd57600080fd5b611c82565b600554604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611b2957600080fd5b505af1158015611b3d573d6000803e3d6000fd5b505050506040513d6020811015611b5357600080fd5b50511515611b6057600080fd5b611b8183611b75600b8763ffffffff612c7016565b9063ffffffff61249916565b6005546040805160e460020a630b12e441028152600481018890529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015611bd257600080fd5b505af1158015611be6573d6000803e3d6000fd5b505050506040513d6020811015611bfc57600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015611c4b57600080fd5b505af1158015611c5f573d6000803e3d6000fd5b505050506040513d6020811015611c7557600080fd5b50511015611c8257600080fd5b600160a060020a038616600090815260116020526040902054611cab908663ffffffff61249916565b600160a060020a0387166000908152601160209081526040808320939093556012905220611ce090858563ffffffff612c8616565b600160a060020a0386166000908152601260205260409020611d129060ea60020a621554d1028463ffffffff612c8616565b600f54611d25908663ffffffff61249916565b600f55611d3a600b858563ffffffff612c8616565b611d55600b60ea60020a621554d1028463ffffffff612c8616565b60408051868152602081018690528082018590529051600160a060020a038816917fe2d0f4d539cb385db666a31aa9b27fd786afc933dc82ca8518d045424d6fa882919081900360600190a2505050505050565b600160a060020a0382166000908152601260205260408120611dd1908363ffffffff612c7016565b9392505050565b600154600160a060020a03163314611def57600080fd5b611df881612cc6565b50565b60105481565b33600090815260126020526040808220815160e060020a6320e1e1d102815260048101919091529051829182918291829173__FundAccount___________________________916320e1e1d19160248083019286929190829003018186803b158015611e6c57600080fd5b505af4158015611e80573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611ea957600080fd5b810190808051640100000000811115611ec157600080fd5b82016020810184811115611ed457600080fd5b8151856020820283011164010000000082111715611ef157600080fd5b50505197505050505b84156124915733600090815260126020526040808220815160e060020a6320e1e1d10281526004810191909152905173__FundAccount___________________________926320e1e1d19260248082019391829003018186803b158015611f6057600080fd5b505af4158015611f74573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611f9d57600080fd5b810190808051640100000000811115611fb557600080fd5b82016020810184811115611fc857600080fd5b8151856020820283011164010000000082111715611fe557600080fd5b50508051600019909901989093508892508210905061200057fe5b60209081029091018101513360009081526012909252604090912090945061202e908563ffffffff612c7016565b925082151561203c57611efa565b336000908152601160205260409020546120599087908590612d44565b91506000821161206857600080fd5b60095461208c90612080600b8763ffffffff612c7016565b9063ffffffff612e6c16565b90506120bd6120a682611826600b8863ffffffff612c7016565b836120b8600b8863ffffffff612c7016565b612d44565b9250600083116120cc57600080fd5b6000848152600e60205260409020546120eb908463ffffffff61249916565b6000858152600e6020908152604080832093909355338252601290522061211990858463ffffffff612e7b16565b60ea60020a621554d10284141561212f57611efa565b60eb60020a6208aa890284146122e257600554604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156121a657600080fd5b505af11580156121ba573d6000803e3d6000fd5b505050506040513d60208110156121d057600080fd5b505115156121dd57600080fd5b6005546040805160e460020a630b12e4410281526004810187905290518592600160a060020a03169163b12e44109160248083019260209291908290030181600087803b15801561222d57600080fd5b505af1158015612241573d6000803e3d6000fd5b505050506040513d602081101561225757600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156122a657600080fd5b505af11580156122ba573d6000803e3d6000fd5b505050506040513d60208110156122d057600080fd5b505110156122dd57600080fd5b6122f0565b30318311156122f057600080fd5b60eb60020a6208aa890284141561233457604051339084156108fc029085906000818181858888f1935050505015801561232e573d6000803e3d6000fd5b50612452565b6005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561238557600080fd5b505af1158015612399573d6000803e3d6000fd5b505050506040513d60208110156123af57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561241b57600080fd5b505af115801561242f573d6000803e3d6000fd5b505050506040513d602081101561244557600080fd5b5051151561245257600080fd5b6040805185815260208101859052815133927fd434f0d1dd08e14b2acdd7a506c6e8b6edaf1a5825d23ca9b5e51a9ad883f71c928290030190a2611efa565b505050505050565b818101828110156111ad57fe5b6000828211156124b257fe5b50900390565b6000806000806000600b73__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561251557600080fd5b505af4158015612529573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561255257600080fd5b81019080805164010000000081111561256a57600080fd5b8201602081018481111561257d57600080fd5b815185602082028301116401000000008211171561259a57600080fd5b50505197505050505b8415612491576040805160e060020a6320e1e1d1028152600b6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b1580156125fe57600080fd5b505af4158015612612573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561263b57600080fd5b81019080805164010000000081111561265357600080fd5b8201602081018481111561266657600080fd5b815185602082028301116401000000008211171561268357600080fd5b50508051600019909901989093508892508210905061269e57fe5b6020908102909101015193506126bb600b8563ffffffff612c7016565b92508215156126c9576125a3565b85516126d6908490612e6c565b9150600082116126e557600080fd5b6127086126ff601054600f546124a690919063ffffffff16565b83600f54612d44565b92506000831161271757600080fd5b6000848152600e6020526040902054612736908463ffffffff61249916565b6000858152600e602052604090205560ea60020a621554d10284141561275b576125a3565b60eb60020a6208aa8902841461290957600554604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156127d257600080fd5b505af11580156127e6573d6000803e3d6000fd5b505050506040513d60208110156127fc57600080fd5b5051151561280957600080fd5b6005546040805160e460020a630b12e4410281526004810187905290518592600160a060020a03169163b12e44109160248083019260209291908290030181600087803b15801561285957600080fd5b505af115801561286d573d6000803e3d6000fd5b505050506040513d602081101561288357600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156128d257600080fd5b505af11580156128e6573d6000803e3d6000fd5b505050506040513d60208110156128fc57600080fd5b5051101561290957600080fd5b60006008541161291a57600061292e565b60085461292e90849063ffffffff612e6c16565b905060006008541115612948576000811161294857600080fd5b60eb60020a6208aa89028414156129e057600081111561299e57600754604051600160a060020a039091169082156108fc029083906000818181858888f1935050505015801561299c573d6000803e3d6000fd5b505b336108fc6129b2858463ffffffff6124a616565b6040518115909202916000818181858888f193505050501580156129da573d6000803e3d6000fd5b50612c31565b6000811115612b0c576005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612a3a57600080fd5b505af1158015612a4e573d6000803e3d6000fd5b505050506040513d6020811015612a6457600080fd5b5051600754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015612ad557600080fd5b505af1158015612ae9573d6000803e3d6000fd5b505050506040513d6020811015612aff57600080fd5b50511515612b0c57600080fd5b6005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612b5d57600080fd5b505af1158015612b71573d6000803e3d6000fd5b505050506040513d6020811015612b8757600080fd5b5051600160a060020a031663a9059cbb33612ba8868563ffffffff6124a616565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612bfa57600080fd5b505af1158015612c0e573d6000803e3d6000fd5b505050506040513d6020811015612c2457600080fd5b50511515612c3157600080fd5b6040805185815260208101859052815133927f17e68c82fdc39ec76fff0be24ead989575d8eec009a729fa4bd738bc1f6a2dbb928290030190a26125a3565b6000908152600291909101602052604090205490565b612c908383612ec7565b6000828152600284016020526040902054612cb1908263ffffffff61249916565b60009283526002909301602052506040902055565b600160a060020a0381161515612cdb57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080808080851515612d5357fe5b871580612d5e575086155b15612d6857612e61565b612d7a6000198863ffffffff612f0e16565b9250828811612daa57612da386612d978a8a63ffffffff612f2316565b9063ffffffff612f0e16565b9450612e61565b85881415612dba57869450612e61565b85871415612dca57879450612e61565b8715612e4b57878311612ddd5782612ddf565b875b9150612df1828863ffffffff612f2316565b9050612e13612e06828863ffffffff612f0e16565b869063ffffffff61249916565b9450612e328682811515612e2357fe5b8691900663ffffffff61249916565b9350612e44888363ffffffff6124a616565b9750612dca565b612e5e612e06858863ffffffff612f0e16565b94505b505050509392505050565b6000611dd183836120b8612f4c565b612e858383612f5e565b1515612e9057600080fd5b80612e9b8484612c70565b1015612ea657600080fd5b6000828152600284016020526040902054612cb1908263ffffffff6124a616565b612ed18282612f5e565b1515612f0a57815460018181018455600084815260208082209093018490558381528185019092526040909120805460ff191690911790555b5050565b60008183811515612f1b57fe5b049392505050565b6000821515612f34575060006111ad565b50818102818382811515612f4457fe5b04146111ad57fe5b6000612f56612f77565b600a0a905090565b6000908152600191909101602052604090205460ff1690565b6000612f81612f89565b600201905090565b600290565b6060604051908101604052806003906020820280388339509192915050565b6000612fb7613003565b82101580156111ad5750612fc9612f4c565b90911115919050565b6000612fdd82612fad565b1515612fe857600080fd5b6111ad612ff3612f89565b8390600a0a63ffffffff612f0e16565b6000905600a165627a7a723058208de91a32092d1f0941348b8b0064a0b6c78b50e07821a1259b8e759a408543450029", - "deployedBytecode": "0x6080604052600436106101665763ffffffff60e060020a600035041663015dd28c811461016b5780630babd864146101d057806319ae48ed1461020157806323585f961461022857806323bffccc14610254578063278ecde11461027757806343f48fbd1461028f578063483a20b2146102a457806354fd4d50146102c55780635641f3c3146102da5780636b90d6d2146102ef5780636ebc0af114610304578063715018a6146103195780637a1c2da31461032e5780638119c065146103465780638429fffe1461035b5780638da5cb5b146103705780639124a789146103855780639ab269a6146103a65780639c1e03a0146103be5780639e80baac146103d3578063a328665a146103e8578063a3b768e1146103fd578063acb3c0731461044a578063adb9dd081461046b578063b4105a3e1461048c578063d0baf2f5146104a1578063f206cb64146104c1578063f2fde38b146104e5578063fb2814c414610506575b600080fd5b34801561017757600080fd5b5061018061051b565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101bc5781810151838201526020016101a4565b505050509050019250505060405180910390f35b3480156101dc57600080fd5b506101e5610602565b60408051600160a060020a039092168252519081900360200190f35b34801561020d57600080fd5b50610216610611565b60408051918252519081900360200190f35b34801561023457600080fd5b50610240600435610617565b604080519115158252519081900360200190f35b34801561026057600080fd5b50610275600160a060020a036004351661062c565b005b34801561028357600080fd5b50610275600435610687565b34801561029b57600080fd5b506101e5610943565b3480156102b057600080fd5b50610275600160a060020a0360043516610952565b3480156102d157600080fd5b50610216610ade565b3480156102e657600080fd5b506101e5610ae4565b3480156102fb57600080fd5b50610240610af3565b34801561031057600080fd5b50610275610d08565b34801561032557600080fd5b50610275610ec8565b34801561033a57600080fd5b50610216600435610f36565b34801561035257600080fd5b506101e5610f48565b34801561036757600080fd5b50610240610f57565b34801561037c57600080fd5b506101e5611170565b34801561039157600080fd5b50610216600160a060020a036004351661117f565b3480156103b257600080fd5b5061021660043561119a565b3480156103ca57600080fd5b506101e56111b3565b3480156103df57600080fd5b506102406111c2565b3480156103f457600080fd5b50610216611275565b34801561040957600080fd5b5061041261127b565b6040518082606080838360005b8381101561043757818101518382015260200161041f565b5050505090500191505060405180910390f35b34801561045657600080fd5b50610275600160a060020a036004351661184f565b34801561047757600080fd5b50610180600160a060020a03600435166118aa565b34801561049857600080fd5b506102166119a7565b610275600160a060020a03600435166024356044356064356084356119ad565b3480156104cd57600080fd5b50610216600160a060020a0360043516602435611da9565b3480156104f157600080fd5b50610275600160a060020a0360043516611dd8565b34801561051257600080fd5b50610216611dfb565b6060600b73__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561057257600080fd5b505af4158015610586573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156105af57600080fd5b8101908080516401000000008111156105c757600080fd5b820160208101848111156105da57600080fd5b81518560208202830111640100000000821117156105f757600080fd5b509094505050505090565b600454600160a060020a031681565b60095481565b600a6020526000908152604090205460ff1681565b600154600160a060020a0316331461064357600080fd5b600160a060020a038116151561065857600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025460011461069657600080fd5b600280556106a2610af3565b15156106ad57600080fd5b8015156106b957600080fd5b336000908152601160205260409020548111156106d557600080fd5b600480546040805160e060020a6370a082310281523393810193909352518392600160a060020a03909216916370a082319160248083019260209291908290030181600087803b15801561072857600080fd5b505af115801561073c573d6000803e3d6000fd5b505050506040513d602081101561075257600080fd5b5051101561075f57600080fd5b60048054604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523393810193909352306024840152518392600160a060020a039092169163dd62ed3e9160448083019260209291908290030181600087803b1580156107ce57600080fd5b505af11580156107e2573d6000803e3d6000fd5b505050506040513d60208110156107f857600080fd5b5051101561080557600080fd5b61080e81611e01565b601054610821908263ffffffff61249916565b60105533600090815260116020526040902054610844908263ffffffff6124a616565b336000818152601160209081526040808320949094556004805460065486517f23b872dd00000000000000000000000000000000000000000000000000000000815292830195909552600160a060020a03948516602483015260448201879052945194909316936323b872dd93606480820194918390030190829087803b1580156108ce57600080fd5b505af11580156108e2573d6000803e3d6000fd5b505050506040513d60208110156108f857600080fd5b5051151561090557600080fd5b60408051828152905133917fb7feb6c1d7169f40790388a31c0160d8f962a2b6c31970c28bd8cdfefa25ea29919081900360200190a2506001600255565b600554600160a060020a031681565b600154600160a060020a0316331461096957600080fd5b600160a060020a038116151561097e57600080fd5b6000600160a060020a031681600160a060020a0316634090cb646040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109c757600080fd5b505af11580156109db573d6000803e3d6000fd5b505050506040513d60208110156109f157600080fd5b5051600160a060020a03161415610a0757600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610a8357600080fd5b505af1158015610a97573d6000803e3d6000fd5b505050506040513d6020811015610aad57600080fd5b50516004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550565b60005481565b600754600160a060020a031681565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610b5657600080fd5b505af1158015610b6a573d6000803e3d6000fd5b505050506040513d6040811015610b8057600080fd5b5080516020909101519094509250831515610b9a57610d01565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610bea57600080fd5b505af1158015610bfe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610c2757600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610c5d57600080fd5b82016020810184811115610c7057600080fd5b8151640100000000811182820187101715610c8a57600080fd5b50509291906020018051640100000000811115610ca657600080fd5b82016020810184811115610cb957600080fd5b8151640100000000811182820187101715610cd357600080fd5b50509291905050505050935050509150428263ffffffff1611158015610cfe57508063ffffffff1642105b94505b5050505090565b610d10612f8e565b600154600160a060020a03163314610d2757600080fd5b600254600114610d3657600080fd5b60028055610d426111c2565b1515610d4d57600080fd5b610d5561127b565b8051909150600010610d6657600080fd5b6040805160e060020a6320e1e1d1028152600b6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b158015610dbb57600080fd5b505af4158015610dcf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610df857600080fd5b810190808051640100000000811115610e1057600080fd5b82016020810184811115610e2357600080fd5b8151856020820283011164010000000082111715610e4057600080fd5b50505115159250610e5391505057600080fd5b6040818101516000908152600a60205220805460ff191660011790558051600954610e7d91612499565b600955610e89816124b8565b8051604080519182525133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a2506001600255565b600154600160a060020a03163314610edf57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000908152600e602052604090205490565b600654600160a060020a031681565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610fba57600080fd5b505af1158015610fce573d6000803e3d6000fd5b505050506040513d6040811015610fe457600080fd5b5080516020909101519094509250831580610ffd575082155b1561100757610d01565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561105757600080fd5b505af115801561106b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561109457600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156110ca57600080fd5b820160208101848111156110dd57600080fd5b81516401000000008111828201871017156110f757600080fd5b5050929190602001805164010000000081111561111357600080fd5b8201602081018481111561112657600080fd5b815164010000000081118282018710171561114057600080fd5b50509291905050505050935050509150428263ffffffff161180610cfe575063ffffffff16421015949350505050565b600154600160a060020a031681565b600160a060020a031660009081526011602052604090205490565b60006111ad600b8363ffffffff612c7016565b92915050565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561121957600080fd5b505af115801561122d573d6000803e3d6000fd5b505050506040513d604081101561124357600080fd5b508051602090910151909250905080151561125d57611270565b81158061126d575061126d610f57565b92505b505090565b60085481565b611283612f8e565b60008060008060008060008060006112996111c2565b15156112a457611843565b600354604080517fd6d65f3d0000000000000000000000000000000000000000000000000000000081528151600160a060020a039093169263d6d65f3d926004808401939192918290030181600087803b15801561130157600080fd5b505af1158015611315573d6000803e3d6000fd5b505050506040513d604081101561132b57600080fd5b5051600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151939c50600160a060020a03909216926314f66d349260048082019392918290030181600087803b15801561138c57600080fd5b505af11580156113a0573d6000803e3d6000fd5b505050506040513d60408110156113b657600080fd5b50516003546040805160e060020a632442e1cb028152600481018490529051929a50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561140b57600080fd5b505af115801561141f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561144857600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561147e57600080fd5b8201602081018481111561149157600080fd5b81516401000000008111828201871017156114ab57600080fd5b505092919060200180516401000000008111156114c757600080fd5b820160208101848111156114da57600080fd5b81516401000000008111828201871017156114f457600080fd5b505092919050505050509950505050886000148061151157508888145b61151e5760018903611520565b885b6003546040805160e060020a632442e1cb028152600481018490529051929b50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561157357600080fd5b505af1158015611587573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156115b057600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156115e657600080fd5b820160208101848111156115f957600080fd5b815164010000000081118282018710171561161357600080fd5b5050929190602001805164010000000081111561162f57600080fd5b8201602081018481111561164257600080fd5b815164010000000081118282018710171561165c57600080fd5b50509291905050505050975050965050600a60008a815260200190815260200160002060009054906101000a900460ff169350831561169a57611843565b8892505b600083111561180f576003546040805160e060020a632442e1cb0281526000199095016004860181905290519094600160a060020a0390921691632442e1cb91602480830192600092919082900301818387803b1580156116fe57600080fd5b505af1158015611712573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561173b57600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561177157600080fd5b8201602081018481111561178457600080fd5b815164010000000081118282018710171561179e57600080fd5b505092919060200180516401000000008111156117ba57600080fd5b820160208101848111156117cd57600080fd5b81516401000000008111828201871017156117e757600080fd5b5097995061180898508a97508996505063ffffffff61249916945050505050565b915061169e565b60095461183290611826888563ffffffff61249916565b9063ffffffff6124a616565b8a5260208a0182905260408a018990525b50505050505050505090565b600154600160a060020a0316331461186657600080fd5b600160a060020a038116151561187b57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038116600090815260126020526040808220815160e060020a6320e1e1d10281526004810191909152905160609273__FundAccount___________________________926320e1e1d19260248083019392829003018186803b15801561191657600080fd5b505af415801561192a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561195357600080fd5b81019080805164010000000081111561196b57600080fd5b8201602081018481111561197e57600080fd5b815185602082028301116401000000008211171561199b57600080fd5b50909695505050505050565b600f5481565b600354600160a060020a03163381146119c557600080fd5b600085116119d257600080fd5b600083116119df57600080fd5b600082116119ec57600080fd5b600160a060020a0386161515611a0157600080fd5b600554604080517f7d20abf8000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691637d20abf8916024808201926020929091908290030181600087803b158015611a6857600080fd5b505af1158015611a7c573d6000803e3d6000fd5b505050506040513d6020811015611a9257600080fd5b50511515611a9f57600080fd5b60eb60020a6208aa8902841415611ac25734831115611abd57600080fd5b611c82565b600554604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611b2957600080fd5b505af1158015611b3d573d6000803e3d6000fd5b505050506040513d6020811015611b5357600080fd5b50511515611b6057600080fd5b611b8183611b75600b8763ffffffff612c7016565b9063ffffffff61249916565b6005546040805160e460020a630b12e441028152600481018890529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015611bd257600080fd5b505af1158015611be6573d6000803e3d6000fd5b505050506040513d6020811015611bfc57600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015611c4b57600080fd5b505af1158015611c5f573d6000803e3d6000fd5b505050506040513d6020811015611c7557600080fd5b50511015611c8257600080fd5b600160a060020a038616600090815260116020526040902054611cab908663ffffffff61249916565b600160a060020a0387166000908152601160209081526040808320939093556012905220611ce090858563ffffffff612c8616565b600160a060020a0386166000908152601260205260409020611d129060ea60020a621554d1028463ffffffff612c8616565b600f54611d25908663ffffffff61249916565b600f55611d3a600b858563ffffffff612c8616565b611d55600b60ea60020a621554d1028463ffffffff612c8616565b60408051868152602081018690528082018590529051600160a060020a038816917fe2d0f4d539cb385db666a31aa9b27fd786afc933dc82ca8518d045424d6fa882919081900360600190a2505050505050565b600160a060020a0382166000908152601260205260408120611dd1908363ffffffff612c7016565b9392505050565b600154600160a060020a03163314611def57600080fd5b611df881612cc6565b50565b60105481565b33600090815260126020526040808220815160e060020a6320e1e1d102815260048101919091529051829182918291829173__FundAccount___________________________916320e1e1d19160248083019286929190829003018186803b158015611e6c57600080fd5b505af4158015611e80573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611ea957600080fd5b810190808051640100000000811115611ec157600080fd5b82016020810184811115611ed457600080fd5b8151856020820283011164010000000082111715611ef157600080fd5b50505197505050505b84156124915733600090815260126020526040808220815160e060020a6320e1e1d10281526004810191909152905173__FundAccount___________________________926320e1e1d19260248082019391829003018186803b158015611f6057600080fd5b505af4158015611f74573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611f9d57600080fd5b810190808051640100000000811115611fb557600080fd5b82016020810184811115611fc857600080fd5b8151856020820283011164010000000082111715611fe557600080fd5b50508051600019909901989093508892508210905061200057fe5b60209081029091018101513360009081526012909252604090912090945061202e908563ffffffff612c7016565b925082151561203c57611efa565b336000908152601160205260409020546120599087908590612d44565b91506000821161206857600080fd5b60095461208c90612080600b8763ffffffff612c7016565b9063ffffffff612e6c16565b90506120bd6120a682611826600b8863ffffffff612c7016565b836120b8600b8863ffffffff612c7016565b612d44565b9250600083116120cc57600080fd5b6000848152600e60205260409020546120eb908463ffffffff61249916565b6000858152600e6020908152604080832093909355338252601290522061211990858463ffffffff612e7b16565b60ea60020a621554d10284141561212f57611efa565b60eb60020a6208aa890284146122e257600554604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156121a657600080fd5b505af11580156121ba573d6000803e3d6000fd5b505050506040513d60208110156121d057600080fd5b505115156121dd57600080fd5b6005546040805160e460020a630b12e4410281526004810187905290518592600160a060020a03169163b12e44109160248083019260209291908290030181600087803b15801561222d57600080fd5b505af1158015612241573d6000803e3d6000fd5b505050506040513d602081101561225757600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156122a657600080fd5b505af11580156122ba573d6000803e3d6000fd5b505050506040513d60208110156122d057600080fd5b505110156122dd57600080fd5b6122f0565b30318311156122f057600080fd5b60eb60020a6208aa890284141561233457604051339084156108fc029085906000818181858888f1935050505015801561232e573d6000803e3d6000fd5b50612452565b6005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561238557600080fd5b505af1158015612399573d6000803e3d6000fd5b505050506040513d60208110156123af57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561241b57600080fd5b505af115801561242f573d6000803e3d6000fd5b505050506040513d602081101561244557600080fd5b5051151561245257600080fd5b6040805185815260208101859052815133927fd434f0d1dd08e14b2acdd7a506c6e8b6edaf1a5825d23ca9b5e51a9ad883f71c928290030190a2611efa565b505050505050565b818101828110156111ad57fe5b6000828211156124b257fe5b50900390565b6000806000806000600b73__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561251557600080fd5b505af4158015612529573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561255257600080fd5b81019080805164010000000081111561256a57600080fd5b8201602081018481111561257d57600080fd5b815185602082028301116401000000008211171561259a57600080fd5b50505197505050505b8415612491576040805160e060020a6320e1e1d1028152600b6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b1580156125fe57600080fd5b505af4158015612612573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561263b57600080fd5b81019080805164010000000081111561265357600080fd5b8201602081018481111561266657600080fd5b815185602082028301116401000000008211171561268357600080fd5b50508051600019909901989093508892508210905061269e57fe5b6020908102909101015193506126bb600b8563ffffffff612c7016565b92508215156126c9576125a3565b85516126d6908490612e6c565b9150600082116126e557600080fd5b6127086126ff601054600f546124a690919063ffffffff16565b83600f54612d44565b92506000831161271757600080fd5b6000848152600e6020526040902054612736908463ffffffff61249916565b6000858152600e602052604090205560ea60020a621554d10284141561275b576125a3565b60eb60020a6208aa8902841461290957600554604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156127d257600080fd5b505af11580156127e6573d6000803e3d6000fd5b505050506040513d60208110156127fc57600080fd5b5051151561280957600080fd5b6005546040805160e460020a630b12e4410281526004810187905290518592600160a060020a03169163b12e44109160248083019260209291908290030181600087803b15801561285957600080fd5b505af115801561286d573d6000803e3d6000fd5b505050506040513d602081101561288357600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156128d257600080fd5b505af11580156128e6573d6000803e3d6000fd5b505050506040513d60208110156128fc57600080fd5b5051101561290957600080fd5b60006008541161291a57600061292e565b60085461292e90849063ffffffff612e6c16565b905060006008541115612948576000811161294857600080fd5b60eb60020a6208aa89028414156129e057600081111561299e57600754604051600160a060020a039091169082156108fc029083906000818181858888f1935050505015801561299c573d6000803e3d6000fd5b505b336108fc6129b2858463ffffffff6124a616565b6040518115909202916000818181858888f193505050501580156129da573d6000803e3d6000fd5b50612c31565b6000811115612b0c576005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612a3a57600080fd5b505af1158015612a4e573d6000803e3d6000fd5b505050506040513d6020811015612a6457600080fd5b5051600754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015612ad557600080fd5b505af1158015612ae9573d6000803e3d6000fd5b505050506040513d6020811015612aff57600080fd5b50511515612b0c57600080fd5b6005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612b5d57600080fd5b505af1158015612b71573d6000803e3d6000fd5b505050506040513d6020811015612b8757600080fd5b5051600160a060020a031663a9059cbb33612ba8868563ffffffff6124a616565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612bfa57600080fd5b505af1158015612c0e573d6000803e3d6000fd5b505050506040513d6020811015612c2457600080fd5b50511515612c3157600080fd5b6040805185815260208101859052815133927f17e68c82fdc39ec76fff0be24ead989575d8eec009a729fa4bd738bc1f6a2dbb928290030190a26125a3565b6000908152600291909101602052604090205490565b612c908383612ec7565b6000828152600284016020526040902054612cb1908263ffffffff61249916565b60009283526002909301602052506040902055565b600160a060020a0381161515612cdb57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080808080851515612d5357fe5b871580612d5e575086155b15612d6857612e61565b612d7a6000198863ffffffff612f0e16565b9250828811612daa57612da386612d978a8a63ffffffff612f2316565b9063ffffffff612f0e16565b9450612e61565b85881415612dba57869450612e61565b85871415612dca57879450612e61565b8715612e4b57878311612ddd5782612ddf565b875b9150612df1828863ffffffff612f2316565b9050612e13612e06828863ffffffff612f0e16565b869063ffffffff61249916565b9450612e328682811515612e2357fe5b8691900663ffffffff61249916565b9350612e44888363ffffffff6124a616565b9750612dca565b612e5e612e06858863ffffffff612f0e16565b94505b505050509392505050565b6000611dd183836120b8612f4c565b612e858383612f5e565b1515612e9057600080fd5b80612e9b8484612c70565b1015612ea657600080fd5b6000828152600284016020526040902054612cb1908263ffffffff6124a616565b612ed18282612f5e565b1515612f0a57815460018181018455600084815260208082209093018490558381528185019092526040909120805460ff191690911790555b5050565b60008183811515612f1b57fe5b049392505050565b6000821515612f34575060006111ad565b50818102818382811515612f4457fe5b04146111ad57fe5b6000612f56612f77565b600a0a905090565b6000908152600191909101602052604090205460ff1690565b6000612f81612f89565b600201905090565b600290565b6060604051908101604052806003906020820280388339509192915050565b6000612fb7613003565b82101580156111ad5750612fc9612f4c565b90911115919050565b6000612fdd82612fad565b1515612fe857600080fd5b6111ad612ff3612f89565b8390600a0a63ffffffff612f0e16565b6000905600a165627a7a723058208de91a32092d1f0941348b8b0064a0b6c78b50e07821a1259b8e759a408543450029", - "sourceMap": "497:12148:6:-;;;487:1:41;657:51;;2177:304:6;8:9:-1;5:2;;;30:1;27;20:12;5:2;2177:304:6;;;;;;;;;;;;;;;;;;;;;;;;;123:7:37;:18;;;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;2289:30:6;2177:304;2289:28;;;;;;:30;:::i;:::-;:72;;;;-1:-1:-1;2358:3:6;2323:32;:18;:30;;;;;;:32;:::i;:::-;:38;2289:72;2281:81;;;;;;;;-1:-1:-1;;;;;2380:20:6;;;;2372:29;;;;;;2412:17;:38;;;;2460:5;:14;;-1:-1:-1;;;;;;2460:14:6;-1:-1:-1;;;;;2460:14:6;;;;;;;;;-1:-1:-1;497:12148:6;;672:107:13;723:4;752:5;:3;;;;:5;:::i;:::-;746:2;:11;;:26;;;;-1:-1:-1;767:5:13;:3;;;;:5;:::i;:::-;761:2;:11;;746:26;739:33;672:107;-1:-1:-1;;672:107:13:o;924:139::-;977:4;1001:13;1011:2;1001:9;;;;:13;:::i;:::-;993:22;;;;;;;;1033:23;1046:9;:7;;;;:9;:::i;:::-;1033:2;;1040;:15;1033:6;;;;;;:23;:::i;297:55::-;333:4;297:55;:::o;357:65::-;393:4;414:5;:3;;;;:5;:::i;:::-;408:2;:11;401:18;;357:65;:::o;161:59::-;216:1;161:59;:::o;665:283:44:-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;225:67:13:-;261:4;280:9;:7;;;;:9;:::i;:::-;276:1;:13;269:20;;225:67;:::o;497:12148:6:-;;;;;;;", - "deployedSourceMap": "497:12148:6:-;;;;;;;;-1:-1:-1;497:12148:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5157:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5157:120:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5157:120:6;;;;;;;;;;;;;;;;;813:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;813:21:6;;;;;;;;-1:-1:-1;;;;;813:21:6;;;;;;;;;;;;;;1040:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1040:39:6;;;;;;;;;;;;;;;;;;;;1127:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1127:47:6;;;;;;;;;;;;;;;;;;;;;;;2873:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2873:164:6;;;-1:-1:-1;;;;;2873:164:6;;;;;8990:670;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8990:670:6;;;;;840:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;840:19:6;;;;2487:255;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2487:255:6;;;-1:-1:-1;;;;;2487:255:6;;;53:19:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:37;;;;890:28:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;890:28:6;;;;11520:444;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11520:444:6;;;;6795:509;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6795:509:6;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;5283:128:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5283:128:6;;;;;865:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;865:19:6;;;;12203:342;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12203:342:6;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;4877:141:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4877:141:6;;;-1:-1:-1;;;;;4877:141:6;;;5024:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5024:127:6;;;;;777:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;777:30:6;;;;11970:227;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11970:227:6;;;;956:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;956:29:6;;;;5566:1168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5566:1168:6;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5566:1168:6;;;;;;;;;;;;;;;;2748:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2748:119:6;;;-1:-1:-1;;;;;2748:119:6;;;4715:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4715:156:6;;;-1:-1:-1;;;;;4715:156:6;;;1459:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1459:28:6;;;;3351:1187;;;;-1:-1:-1;;;;;3351:1187:6;;;;;;;;;;;4544:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4544:165:6;;;-1:-1:-1;;;;;4544:165:6;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;;;-1:-1:-1;;;;;1274:103:45;;;1531:30:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1531:30:6;;;;5157:120;5245:25;;;-1:-1:-1;;;;;5245:25:6;;:11;:25;;;;;;5217:9;;5245:23;;;;:25;;;;;-1:-1:-1;;5245:25:6;;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;5245:25:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5245:25:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5245:25:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;5245:25:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;5245:25:6;;-1:-1:-1;;;;;5157:120:6;:::o;813:21::-;;;-1:-1:-1;;;;;813:21:6;;:::o;1040:39::-;;;;:::o;1127:47::-;;;;;;;;;;;;;;;:::o;2873:164::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;2960:28:6;;;;2952:37;;;;;;3000:13;:30;;-1:-1:-1;;3000:30:6;-1:-1:-1;;;;;3000:30:6;;;;;;;;;;2873:164::o;8990:670::-;1128:14:41;;487:1;1128:39;1120:48;;;;;;584:1;1174:40;;9064:20:6;:18;:20::i;:::-;9056:29;;;;;;;;9103:16;;;9095:25;;;;;;9161:10;9138:34;;;;:22;:34;;;;;;:49;-1:-1:-1;9138:49:6;9130:58;;;;;;9206:6;;;:28;;;-1:-1:-1;;;;;9206:28:6;;9223:10;9206:28;;;;;;;;9238:11;;-1:-1:-1;;;;;9206:6:6;;;;-1:-1:-1;;9206:28:6;;;;;;;;;;;;;;-1:-1:-1;9206:6:6;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;9206:28:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9206:28:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9206:28:6;:43;;9198:52;;;;;;9268:6;;;:43;;;;;;9285:10;9268:43;;;;;;;9305:4;9268:43;;;;;9315:11;;-1:-1:-1;;;;;9268:6:6;;;;:16;;:43;;;;;;;;;;;;;;-1:-1:-1;9268:6:6;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;9268:43:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9268:43:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9268:43:6;:58;;9260:67;;;;;;9338:26;9352:11;9338:13;:26::i;:::-;9396:18;;:35;;9419:11;9396:35;:22;:35;:::i;:::-;9375:18;:56;9501:10;9478:34;;;;:22;:34;;;;;;:51;;9517:11;9478:51;:38;:51;:::i;:::-;9464:10;9441:34;;;;:22;:34;;;;;;;;:88;;;;9548:6;;;9580:4;;9548:50;;;;;;;;;;;;-1:-1:-1;;;;;9580:4:6;;;9548:50;;;;;;;;;;;;:6;;;;;:19;;:50;;;;;;;;;;;;;;:6;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;9548:50:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9548:50:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9548:50:6;9540:59;;;;;;;;9615:38;;;;;;;;9629:10;;9615:38;;;;;;;;;;-1:-1:-1;487:1:41;1227:14;:38;8990:670:6:o;840:19::-;;;-1:-1:-1;;;;;840:19:6;;:::o;2487:255::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;2572:24:6;;;;2564:33;;;;;;2615:22;;;;;;;;2649:1;;-1:-1:-1;;;;;2615:20:6;;;;;:22;;;;;;;;;;;;;;;2649:1;2615:20;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;2615:22:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2615:22:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2615:22:6;-1:-1:-1;;;;;2615:36:6;;;2607:45;;;;;;2663:9;:22;;-1:-1:-1;;2663:22:6;-1:-1:-1;;;;;2663:22:6;;;;;;;;2712;;;;;;;;:20;;:22;;;;;;;;;;;;;;;-1:-1:-1;2663:22:6;2712;;;5:2:-1;;;;30:1;27;20:12;5:2;2712:22:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2712:22:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2712:22:6;2695:6;:40;;-1:-1:-1;;2695:40:6;-1:-1:-1;;;;;2695:40:6;;;;;;;;;-1:-1:-1;2487:255:6:o;53:19:37:-;;;;:::o;890:28:6:-;;;-1:-1:-1;;;;;890:28:6;;:::o;11520:444::-;11614:9;;:36;;;-1:-1:-1;;;;;11614:36:6;;;;11571:4;;;;;;;;;;-1:-1:-1;;;;;11614:9:6;;:34;;:36;;;;;;;;;;;11571:4;11614:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;11614:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11614:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11614:36:6;;;;;;;;;-1:-1:-1;11614:36:6;-1:-1:-1;11789:10:6;;11786:22;;;11801:7;;11786:22;11870:9;;:29;;;-1:-1:-1;;;;;11870:29:6;;;;;;;;;;-1:-1:-1;;;;;11870:9:6;;;;-1:-1:-1;;11870:29:6;;;;;-1:-1:-1;;11870:29:6;;;;;;;;-1:-1:-1;11870:9:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;11870:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11870:29:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;11870:29:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;11870:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;11870:29:6;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;11870:29:6;;;;;;11818:81;;;;;;;;11928:3;11917:7;:14;;;;:40;;;;;11941:16;11935:22;;:3;:22;11917:40;11910:47;;11520:444;;;;;;:::o;6795:509::-;6900:29;;:::i;:::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1128:14:41;;487:1;1128:39;1120:48;;;;;;584:1;1174:40;;6864:24:6;:22;:24::i;:::-;6856:33;;;;;;;;6932:19;:17;:19::i;:::-;6970:17;;6900:51;;-1:-1:-1;6990:1:6;-1:-1:-1;6962:30:6;;;;;;7010:25;;;-1:-1:-1;;;;;7010:25:6;;:11;:25;;;;;;:23;;-1:-1:-1;;7010:25:6;;;;;-1:-1:-1;;7010:25:6;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;7010:25:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7010:25:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7010:25:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;7010:25:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;7010:32:6;:37;;;-1:-1:-1;7002:46:6;;-1:-1:-1;;7002:46:6;;;;;7077:17;;;;;7059:36;;;;:17;7077;7059:36;;:43;;-1:-1:-1;;7059:43:6;7098:4;7059:43;;;7174:17;;7142:27;;:50;;:31;:50::i;:::-;7112:27;:80;7203:32;7220:14;7203:16;:32::i;:::-;7279:17;;7251:46;;;;;;;7267:10;;7251:46;;;;;;7279:17;7251:46;;;-1:-1:-1;487:1:41;1227:14;:38;6795:509:6:o;1001:111:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;5283:128:6:-;5353:4;5376:28;;;:19;:28;;;;;;;5283:128::o;865:19::-;;;-1:-1:-1;;;;;865:19:6;;:::o;12203:342::-;12303:9;;:36;;;-1:-1:-1;;;;;12303:36:6;;;;12260:4;;;;;;;;;;-1:-1:-1;;;;;12303:9:6;;:34;;:36;;;;;;;;;;;12260:4;12303:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;12303:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12303:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12303:36:6;;;;;;;;;-1:-1:-1;12303:36:6;-1:-1:-1;12353:10:6;;;:20;;;12368:5;12367:6;12353:20;12350:32;;;12375:7;;12350:32;12447:9;;:29;;;-1:-1:-1;;;;;12447:29:6;;;;;;;;;;-1:-1:-1;;;;;12447:9:6;;;;-1:-1:-1;;12447:29:6;;;;;-1:-1:-1;;12447:29:6;;;;;;;;-1:-1:-1;12447:9:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;12447:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12447:29:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;12447:29:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;12447:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;12447:29:6;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;12447:29:6;;;;;;12392:84;;;;;;;;12504:3;12494:7;:13;;;:44;;;-1:-1:-1;12511:27:6;;:3;:27;;;12203:342;-1:-1:-1;;;;12203:342:6:o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;4877:141:6:-;-1:-1:-1;;;;;4978:33:6;4955:4;4978:33;;;:22;:33;;;;;;;4877:141::o;5024:127::-;5092:4;5115:29;:11;5136:7;5115:29;:20;:29;:::i;:::-;5108:36;5024:127;-1:-1:-1;;5024:127:6:o;777:30::-;;;-1:-1:-1;;;;;777:30:6;;:::o;11970:227::-;12068:9;;:36;;;-1:-1:-1;;;;;12068:36:6;;;;12025:4;;;;;;-1:-1:-1;;;;;12068:9:6;;;;:34;;:36;;;;;;;;;;;;12025:4;12068:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;12068:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12068:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12068:36:6;;;;;;;;;-1:-1:-1;12068:36:6;-1:-1:-1;12118:6:6;;12115:18;;;12126:7;;12115:18;12150:10;;;:40;;;12164:26;:24;:26::i;:::-;12143:47;;11970:227;;;;:::o;956:29::-;;;;:::o;5566:1168::-;5616:14;;:::i;:::-;5691:10;5768:14;5851:27;6046:19;6069:23;6140:14;6224;6256:30;6362:20;5647:24;:22;:24::i;:::-;5646:25;5642:38;;;5673:7;;5642:38;5721:9;;:36;;;-1:-1:-1;;;;;5721:36:6;;;;-1:-1:-1;;;;;5721:9:6;;;;:34;;:36;;;;;;;;;;;;;:9;;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;5721:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5721:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5721:36:6;5802:9;;5721:36;5802:33;;;;;;;5721:36;;-1:-1:-1;;;;;;5802:9:6;;;;:31;;:33;;;;;5721:36;5802:33;;;;;;:9;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;5802:33:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5802:33:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5802:33:6;5884:9;;5802:33;5884;;-1:-1:-1;;;;;5884:33:6;;;;;;;;;;5802;;-1:-1:-1;;;;;;5884:9:6;;;;-1:-1:-1;;5884:33:6;;;;;-1:-1:-1;;5884:33:6;;;;;;;;-1:-1:-1;5884:9:6;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;5884:33:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5884:33:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5884:33:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;5884:33:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;5884:33:6;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;5884:33:6;;;;;;5846:71;;;;;;;5979:5;5988:1;5979:10;:32;;;;6006:5;5993:9;:18;5979:32;:52;;6030:1;6022:5;:9;5979:52;;;6014:5;5979:52;6100:9;;:29;;;-1:-1:-1;;;;;6100:29:6;;;;;;;;;;;;-1:-1:-1;;;;;;6100:9:6;;;;-1:-1:-1;;6100:29:6;;;;;-1:-1:-1;;6100:29:6;;;;;;;;-1:-1:-1;6100:9:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;6100:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6100:29:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;6100:29:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;6100:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;6100:29:6;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;6100:29:6;;;;;;6042:87;;;;;;;;6157:17;:24;6175:5;6157:24;;;;;;;;;;;;;;;;;;;;;6140:41;;6196:9;6192:22;;;6207:7;;6192:22;6241:5;6224:22;;6297:230;6316:1;6304:9;:13;6297:230;;;6394:9;;:33;;;-1:-1:-1;;;;;6394:33:6;;-1:-1:-1;;6333:11:6;;;;6394:33;;;;;;;;6333:11;;-1:-1:-1;;;;;6394:9:6;;;;-1:-1:-1;;6394:33:6;;;;;-1:-1:-1;;6394:33:6;;;;;;;-1:-1:-1;6394:9:6;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6394:33:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6394:33:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;6394:33:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;6394:33:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;6394:33:6;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;6359:68:6;;-1:-1:-1;6470:46:6;;-1:-1:-1;6470:25:6;;-1:-1:-1;6359:68:6;;-1:-1:-1;;6470:46:6;:29;:46;;-1:-1:-1;;;;;6470:46:6:i;:::-;6442:74;;6297:230;;;6625:27;;6549:104;;:58;:14;6581:25;6549:58;:31;:58;:::i;:::-;:75;:104;:75;:104;:::i;:::-;6537:116;;:9;6663;;:37;;;6710:9;;;:17;;;5566:1168;;;;;;;;;;;:::o;2748:119::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;2817:19:6;;;;2809:28;;;;;;2848:4;:12;;-1:-1:-1;;2848:12:6;-1:-1:-1;;;;;2848:12:6;;;;;;;;;;2748:119::o;4715:156::-;-1:-1:-1;;;;;4822:28:6;;;;;;:17;:28;;;;;;:42;;-1:-1:-1;;;;;4822:42:6;;;;;;;;;;;4794:9;;4822:40;;-1:-1:-1;;4822:42:6;;;;;:28;:42;;;;;:40;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;4822:42:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4822:42:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4822:42:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4822:42:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;4822:42:6;;4715:156;-1:-1:-1;;;;;;4715:156:6:o;1459:28::-;;;;:::o;3351:1187::-;3532:9;;-1:-1:-1;;;;;3532:9:6;12603:10;:20;;12595:29;;;;;;3579:1;3565:15;;3557:24;;;;;;3606:1;3599:8;;3591:17;;;;;;3636:1;3626:11;;3618:20;;;;;;-1:-1:-1;;;;;3656:22:6;;;;3648:31;;;;;;3697:5;;:23;;;;;;;;;;;;;;-1:-1:-1;;;;;3697:5:6;;;;:15;;:23;;;;;;;;;;;;;;;-1:-1:-1;3697:5:6;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;3697:23:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3697:23:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3697:23:6;3689:32;;;;;;;;-1:-1:-1;;;;;3761:20:6;;3757:265;;;3806:9;:17;-1:-1:-1;3806:17:6;3798:26;;;;;;3757:265;;;3863:5;;:21;;;;;;;;;;;;;;-1:-1:-1;;;;;3863:5:6;;;;:13;;:21;;;;;;;;;;;;;;;-1:-1:-1;3863:5:6;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;3863:21:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3863:21:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3863:21:6;3855:30;;;;;;;;3972:38;4005:4;3972:28;:11;3993:6;3972:28;:20;:28;:::i;:::-;:32;:38;:32;:38;:::i;:::-;3913:5;;:29;;;-1:-1:-1;;;;;3913:29:6;;;;;;;;;;-1:-1:-1;;;;;3913:5:6;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;3913:5:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;3913:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3913:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3913:29:6;3907:61;;;-1:-1:-1;;;;;3907:61:6;;3962:4;3907:61;;;;;;-1:-1:-1;;;;;3907:46:6;;;;-1:-1:-1;;3907:61:6;;;;;3913:29;;3907:61;;;;;;;;-1:-1:-1;3907:46:6;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;3907:61:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3907:61:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3907:61:6;:103;;3899:112;;;;;;-1:-1:-1;;;;;4104:32:6;;;;;;:22;:32;;;;;;:49;;4141:11;4104:36;:49::i;:::-;-1:-1:-1;;;;;4069:32:6;;;;;;:22;:32;;;;;;;;:84;;;;4163:17;:27;;;:49;;4199:6;4207:4;4163:35;:49::i;:::-;-1:-1:-1;;;;;4222:27:6;;;;;;:17;:27;;;;;:56;;-1:-1:-1;;;;;4270:7:6;4222:35;:56::i;:::-;4339:16;;:33;;4360:11;4339:33;:20;:33;:::i;:::-;4320:16;:52;4382:33;:11;4402:6;4410:4;4382:33;:19;:33;:::i;:::-;4425:40;:11;-1:-1:-1;;;;;4457:7:6;4425:19;:40::i;:::-;4481:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4481:50:6;;;;;;;;;;;;;3351:1187;;;;;;:::o;4544:165::-;-1:-1:-1;;;;;4656:28:6;;4633:4;4656:28;;;:17;:28;;;;;:46;;4694:7;4656:37;:46::i;:::-;4649:53;4544:165;-1:-1:-1;;;4544:165:6:o;1274:103:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;1531:30:6:-;;;;:::o;9666:1848::-;9754:10;9726:7;9736:29;;;:17;:29;;;;;;:43;;-1:-1:-1;;;;;9736:43:6;;;;;;;;;;;9726:7;;;;;;;;9736:41;;-1:-1:-1;;9736:43:6;;;;;9726:7;;9736:43;;;;;;;:41;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;9736:43:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9736:43:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;9736:43:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;9736:43:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;9736:50:6;;-1:-1:-1;;;;9797:1711:6;9804:7;;9797:1711;;9862:10;9844:29;;;;:17;:29;;;;;;:43;;-1:-1:-1;;;;;9844:43:6;;;;;;;;;;;:41;;-1:-1:-1;;9844:43:6;;;;;;;;;;;:41;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;9844:43:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9844:43:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;9844:43:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;9844:43:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;9844:49:6;;-1:-1:-1;;9888:4:6;;;;9844:43;;-1:-1:-1;9888:4:6;;-1:-1:-1;9844:49:6;;;-1:-1:-1;9844:49:6;;;;;;;;;;;;;;9939:10;9921:29;;;;:17;:29;;;;;;;9844:49;;-1:-1:-1;9921:46:6;;9844:49;9921:46;:38;:46;:::i;:::-;9907:60;-1:-1:-1;9986:11:6;;9982:25;;;9999:8;;9982:25;10185:10;10162:34;;;;:22;:34;;;;;;10075:135;;10109:11;;10138:6;;10075:16;:135::i;:::-;10055:155;-1:-1:-1;10248:1:6;10233:16;;10225:25;;;;;;10426:27;;10351:103;;:45;:11;10389:6;10351:45;:37;:45;:::i;:::-;:74;:103;:74;:103;:::i;:::-;10328:126;-1:-1:-1;10527:173:6;10561:49;10328:126;10561:28;:11;10582:6;10561:28;:20;:28;:::i;:49::-;10628:12;10658:28;:11;10679:6;10658:28;:20;:28;:::i;:::-;10527:16;:173::i;:::-;10518:182;-1:-1:-1;10732:1:6;10723:10;;10715:19;;;;;;10779:27;;;;:19;:27;;;;;;:39;;10811:6;10779:39;:31;:39;:::i;:::-;10749:27;;;;:19;:27;;;;;;;;:69;;;;10850:10;10832:29;;:17;:29;;;:62;;10769:6;10881:12;10832:62;:40;:62;:::i;:::-;-1:-1:-1;;;;;10913:20:6;;10909:34;;;10935:8;;10909:34;-1:-1:-1;;;;;10962:20:6;;10958:266;;11010:5;;:21;;;;;;;;;;;;;;-1:-1:-1;;;;;11010:5:6;;;;:13;;:21;;;;;;;;;;;;;;;-1:-1:-1;11010:5:6;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;11010:21:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11010:21:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11010:21:6;11002:30;;;;;;;;11064:5;;:29;;;-1:-1:-1;;;;;11064:29:6;;;;;;;;;;11123:6;;-1:-1:-1;;;;;11064:5:6;;:21;;:29;;;;;;;;;;;;;;-1:-1:-1;11064:5:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;11064:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11064:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11064:29:6;11058:61;;;-1:-1:-1;;;;;11058:61:6;;11113:4;11058:61;;;;;;-1:-1:-1;;;;;11058:46:6;;;;-1:-1:-1;;11058:61:6;;;;;11064:29;;11058:61;;;;;;;;-1:-1:-1;11058:46:6;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;11058:61:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11058:61:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11058:61:6;:71;;11050:80;;;;;;10958:266;;;11185:4;11177:21;:31;-1:-1:-1;11177:31:6;11169:40;;;;;;-1:-1:-1;;;;;11242:20:6;;11238:199;;;11282:27;;:10;;:27;;;;;11302:6;;11282:27;;;;11302:6;11282:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11282:27:6;11238:199;;;11362:5;;:29;;;-1:-1:-1;;;;;11362:29:6;;;;;;;;;;-1:-1:-1;;;;;11362:5:6;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;11362:5:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;11362:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11362:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11362:29:6;11356:65;;;;;;11402:10;11356:65;;;;;;;;;;;;-1:-1:-1;;;;;11356:45:6;;;;;;:65;;;;;11362:29;;11356:65;;;;;;;;-1:-1:-1;11356:45:6;:65;;;5:2:-1;;;;30:1;27;20:12;5:2;11356:65:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11356:65:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11356:65:6;11348:74;;;;;;;;11456:41;;;;;;;;;;;;;;11470:10;;11456:41;;;;;;;;9797:1711;;;9666:1848;;;;;;:::o;1238:128:44:-;1319:7;;;1339;;;;1332:15;;;1060:116;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:44;;;1060:116::o;7310:1622:6:-;7373:7;7455:14;7517:11;7614:17;8289:8;7383:11;:23;;;;:25;;;;;-1:-1:-1;;;7383:25:6;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7383:25:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7383:25:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7383:25:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;7383:25:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;7383:32:6;;-1:-1:-1;;;;7426:1500:6;7432:7;;7426:1500;;7472:25;;;-1:-1:-1;;;;;7472:25:6;;:11;:25;;;;;;:23;;-1:-1:-1;;7472:25:6;;;;;-1:-1:-1;;7472:25:6;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;7472:25:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7472:25:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7472:25:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;7472:25:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;7472:31:6;;-1:-1:-1;;7498:4:6;;;;7472:25;;-1:-1:-1;7498:4:6;;-1:-1:-1;7472:31:6;;;-1:-1:-1;7472:31:6;;;;;;;;;;;;;;-1:-1:-1;7531:28:6;:11;7472:31;7531:28;:20;:28;:::i;:::-;7517:42;-1:-1:-1;7578:11:6;;7574:25;;;7591:8;;7574:25;7653:11;;7634:31;;:6;;:18;:31::i;:::-;7614:51;-1:-1:-1;7703:1:6;7688:16;;7680:25;;;;;;7741:152;7775:40;7796:18;;7775:16;;:20;;:40;;;;:::i;:::-;7833:12;7863:16;;7741;:152::i;:::-;7732:161;-1:-1:-1;7925:1:6;7916:10;;7908:19;;;;;;7972:27;;;;:19;:27;;;;;;:39;;8004:6;7972:39;:31;:39;:::i;:::-;7942:27;;;;:19;:27;;;;;:69;-1:-1:-1;;;;;8042:20:6;;8038:35;;;8065:8;;8038:35;-1:-1:-1;;;;;8092:20:6;;8088:187;;8140:5;;:21;;;;;;;;;;;;;;-1:-1:-1;;;;;8140:5:6;;;;:13;;:21;;;;;;;;;;;;;;;-1:-1:-1;8140:5:6;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;8140:21:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8140:21:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8140:21:6;8132:30;;;;;;;;8194:5;;:29;;;-1:-1:-1;;;;;8194:29:6;;;;;;;;;;8253:6;;-1:-1:-1;;;;;8194:5:6;;:21;;:29;;;;;;;;;;;;;;-1:-1:-1;8194:5:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8194:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8194:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8194:29:6;8188:61;;;-1:-1:-1;;;;;8188:61:6;;8243:4;8188:61;;;;;;-1:-1:-1;;;;;8188:46:6;;;;-1:-1:-1;;8188:61:6;;;;;8194:29;;8188:61;;;;;;;;-1:-1:-1;8188:46:6;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;8188:61:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8188:61:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8188:61:6;:71;;8180:80;;;;;;8320:1;8300:17;;:21;:97;;8396:1;8300:97;;;8359:17;;8340:37;;:6;;:37;:18;:37;:::i;:::-;8289:108;;8436:1;8416:17;;:21;8412:43;;;8453:1;8447:7;;8439:16;;;;;;-1:-1:-1;;;;;8474:20:6;;8470:380;;;8524:1;8518:3;:7;8514:40;;;8527:13;;:27;;-1:-1:-1;;;;;8527:13:6;;;;:27;;;;;;;:13;:27;:13;:27;;:13;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8527:27:6;8514:40;8572:10;:36;8592:15;:6;8603:3;8592:15;:10;:15;:::i;:::-;8572:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8572:36:6;8470:380;;;8657:1;8651:3;:7;8647:87;;;8674:5;;:29;;;-1:-1:-1;;;;;8674:29:6;;;;;;;;;;-1:-1:-1;;;;;8674:5:6;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;8674:5:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8674:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8674:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8674:29:6;8714:13;;8668:65;;;;;;-1:-1:-1;;;;;8714:13:6;;;8668:65;;;;;;;;;;;;:45;;;;;;;:65;;;;;8674:29;;8668:65;;;;;;;-1:-1:-1;8668:45:6;:65;;;5:2:-1;;;;30:1;27;20:12;5:2;8668:65:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8668:65:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8668:65:6;8660:74;;;;;;;;8766:5;;:29;;;-1:-1:-1;;;;;8766:29:6;;;;;;;;;;-1:-1:-1;;;;;8766:5:6;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;8766:5:6;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8766:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8766:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8766:29:6;-1:-1:-1;;;;;8760:45:6;;8806:10;8818:15;:6;8829:3;8818:10;:15::i;:::-;8760:74;;;-1:-1:-1;8760:74:6;;;;;;-1:-1:-1;;;;;8760:74:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8760:74:6;;;;5:2:-1;;;;30:1;27;20:12;5:2;8760:74:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8760:74:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8760:74:6;8752:83;;;;;;;;8869:46;;;;;;;;;;;;;;8888:10;;8869:46;;;;;;;;7426:1500;;933:137:11;1016:4;1039:24;;;:15;;;;;:24;;;;;;;933:137::o;292:206::-;385:31;398:8;408:7;385:12;:31::i;:::-;454:24;;;;:15;;;:24;;;;;;:37;;483:7;454:37;:28;:37;:::i;:::-;427:24;;;;:15;;;;:24;;-1:-1:-1;427:24:11;;;:64;292:206::o;1512:171:45:-;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o;1131:658:16:-;1197:11;;;;;1255:6;;;1248:14;;;;1284:6;;;:16;;-1:-1:-1;1294:6:16;;1284:16;1281:28;;;1302:7;;1281:28;1331:15;-1:-1:-1;;1344:1:16;1331:12;:15::i;:::-;1319:27;-1:-1:-1;1361:9:16;;;1357:37;;1379:15;1392:1;1379:8;:1;1385;1379:8;:5;:8;:::i;:::-;:12;:15;:12;:15;:::i;:::-;1372:22;;;;1357:37;1413:1;1408;:6;1404:20;;;1423:1;1416:8;;;;1404:20;1443:1;1438;:6;1434:20;;;1453:1;1446:8;;;;1434:20;1472:6;;1465:267;;1514:1;1507:4;:8;:19;;1522:4;1507:19;;;1518:1;1507:19;1494:32;-1:-1:-1;1560:12:16;1494:32;1570:1;1560:12;:9;:12;:::i;:::-;1540:32;-1:-1:-1;1596:31:16;1607:19;1540:32;1624:1;1607:19;:16;:19;:::i;:::-;1596:6;;:31;:10;:31;:::i;:::-;1587:40;;1656:34;1688:1;1673:12;:16;;;;;;;1656:12;;1673:16;;1656:34;:16;:34;:::i;:::-;1641:49;-1:-1:-1;1709:12:16;:1;1715:5;1709:12;:5;:12;:::i;:::-;1705:16;;1465:267;;;1751:31;1762:19;:12;1779:1;1762:19;:16;:19;:::i;1751:31::-;1742:40;;1131:658;;;;;;;;;;:::o;543:123:13:-;605:4;628:31;645:2;649;653:5;:3;:5::i;504:275:11:-;608:31;621:8;631:7;608:12;:31::i;:::-;600:40;;;;;;;;689:7;658:27;667:8;677:7;658:8;:27::i;:::-;:38;;650:47;;;;;;735:24;;;;:15;;;:24;;;;;;:37;;764:7;735:37;:28;:37;:::i;1198:234::-;1287:31;1300:8;1310:7;1287:12;:31::i;:::-;1286:32;1282:144;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;1334:35:11;;;;;;;;;;;;;1383:25;;;:16;;;:25;;;;;;;:32;;-1:-1:-1;;1383:32:11;;;;;;1282:144;1198:234;;:::o;665:283:44:-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;203:380::-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:44;506:8;;485:36;-1:-1:-1;531:7:44;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;357:65:13;393:4;414:5;:3;:5::i;:::-;408:2;:11;401:18;;357:65;:::o;785:142:11:-;872:4;895:25;;;:16;;;;;:25;;;;;;;;;785:142::o;225:67:13:-;261:4;280:9;:7;:9::i;:::-;276:1;:13;269:20;;225:67;:::o;161:59::-;216:1;161:59;:::o;497:12148:6:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;497:12148:6;;;-1:-1:-1;;497:12148:6:o;672:107:13:-;723:4;752:5;:3;:5::i;:::-;746:2;:11;;:26;;;;;767:5;:3;:5::i;:::-;761:11;;;;;672:107;-1:-1:-1;672:107:13:o;924:139::-;977:4;1001:13;1011:2;1001:9;:13::i;:::-;993:22;;;;;;;;1033:23;1046:9;:7;:9::i;:::-;1033:2;;1040;:15;1033:23;:6;:23;:::i;297:55::-;333:4;297:55;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/ReentrancyGuard.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"./IW12Crowdsale.sol\";\nimport \"./IW12Fund.sol\";\nimport \"../rates/IRates.sol\";\nimport \"../libs/Percent.sol\";\nimport \"../libs/FundAccount.sol\";\nimport \"../versioning/Versionable.sol\";\nimport \"../token/IWToken.sol\";\n\ncontract W12Fund is Versionable, IW12Fund, Ownable, ReentrancyGuard {\n using SafeMath for uint;\n using Percent for uint;\n using FundAccount for FundAccount.Account;\n\n bytes32 constant METHOD_ETH = bytes32('ETH');\n bytes32 constant METHOD_USD = bytes32('USD');\n\n IW12Crowdsale public crowdsale;\n IWToken public wToken;\n IRates public rates;\n address public swap;\n address public serviceWallet;\n // fee for realised tranche\n uint public trancheFeePercent;\n // total percent of realised project tranche\n uint public totalTranchePercentReleased;\n // maps of completed tranches periods\n mapping (uint => bool) public completedTranches;\n\n // total funded assets\n FundAccount.Account totalFunded;\n // total realised funded assets bt currency symbol\n // updated when tranche was realised or investor assets was refunded\n mapping(bytes32 => uint) totalFundedReleased;\n // total amount of bought token\n uint public totalTokenBought;\n // total amount of refunded token\n uint public totalTokenRefunded;\n // total amount of bought token per investor\n mapping (address => uint) tokenBoughtPerInvestor;\n // total funded assets of each investor\n mapping (address => FundAccount.Account) fundedPerInvestor;\n\n event FundsReceived(address indexed investor, uint tokenAmount, bytes32 symbol, uint cost);\n event AssetRefunded(address indexed investor, bytes32 symbol, uint amount);\n event TokenRefunded(address indexed investor, uint tokenAmount);\n event TrancheTransferred(address indexed receiver, bytes32 symbol, uint amount);\n event TrancheReleased(address indexed receiver, uint percent);\n\n constructor(uint version, uint _trancheFeePercent, IRates _rates) Versionable(version) public {\n require(_trancheFeePercent.isPercent() && _trancheFeePercent.fromPercent() < 100);\n require(_rates != address(0));\n\n trancheFeePercent = _trancheFeePercent;\n rates = _rates;\n }\n\n function setCrowdsale(IW12Crowdsale _crowdsale) onlyOwner external {\n require(_crowdsale != address(0));\n require(_crowdsale.getWToken() != address(0));\n\n crowdsale = _crowdsale;\n wToken = IWToken(_crowdsale.getWToken());\n }\n\n function setSwap(address _swap) onlyOwner external {\n require(_swap != address(0));\n\n swap = _swap;\n }\n\n function setServiceWallet(address _serviceWallet) onlyOwner external {\n require(_serviceWallet != address(0));\n\n serviceWallet = _serviceWallet;\n }\n\n /**\n * @dev Record purchase result to the fund and check the fund balance\n * @param investor An investor address\n * @param tokenAmount Token amount that was bought\n * @param symbol Symbol of payment method\n * @param cost Cost of token amount\n * @param costUSD Cost in USD\n */\n function recordPurchase(\n address investor,\n uint tokenAmount,\n bytes32 symbol,\n uint cost,\n uint costUSD\n )\n external payable onlyFrom(crowdsale)\n {\n require(tokenAmount > 0);\n require(cost > 0);\n require(costUSD > 0);\n require(investor != address(0));\n require(rates.hasSymbol(symbol));\n\n // check payment\n if (symbol == METHOD_ETH) {\n require(msg.value >= cost);\n } else {\n require(rates.isToken(symbol));\n require(ERC20(rates.getTokenAddress(symbol)).balanceOf(address(this)) >= totalFunded.amountOf(symbol).add(cost));\n }\n\n // write to investor account\n tokenBoughtPerInvestor[investor] = tokenBoughtPerInvestor[investor].add(tokenAmount);\n fundedPerInvestor[investor].deposit(symbol, cost);\n fundedPerInvestor[investor].deposit(METHOD_USD, costUSD);\n\n // write to total fund\n totalTokenBought = totalTokenBought.add(tokenAmount);\n totalFunded.deposit(symbol, cost);\n totalFunded.deposit(METHOD_USD, costUSD);\n\n emit FundsReceived(investor, tokenAmount, symbol, cost);\n }\n\n function getInvestorFundedAmount(address _investor, bytes32 _symbol) public view returns(uint) {\n return fundedPerInvestor[_investor].amountOf(_symbol);\n }\n\n function getInvestorFundedAssetsSymbols(address _investor) public view returns(bytes32[]) {\n return fundedPerInvestor[_investor].symbolsList();\n }\n\n function getInvestorTokenBoughtAmount(address _investor) public view returns (uint) {\n return tokenBoughtPerInvestor[_investor];\n }\n\n function getTotalFundedAmount(bytes32 _symbol) public view returns (uint) {\n return totalFunded.amountOf(_symbol);\n }\n\n function getTotalFundedAssetsSymbols() public view returns (bytes32[]) {\n return totalFunded.symbolsList();\n }\n\n function getTotalFundedReleased(bytes32 _symbol) public view returns (uint) {\n return totalFundedReleased[_symbol];\n }\n\n /**\n * @notice Get tranche invoice\n * @return uint[3] result:\n * [tranchePercent, totalTranchePercentBefore, milestoneIndex]\n */\n function getTrancheInvoice() public view returns (uint[3] result) {\n if (!trancheTransferAllowed()) return;\n\n (uint index, /*bool found*/) = crowdsale.getCurrentMilestoneIndex();\n (uint lastIndex, /*bool found*/) = crowdsale.getLastMilestoneIndex();\n\n (,,, uint32 lastWithdrawalWindow,,) = crowdsale.getMilestone(lastIndex);\n\n // get percent from prev milestone\n index = index == 0 || lastIndex == index ? index : index - 1;\n\n ( , uint tranchePercent, , uint32 withdrawalWindow, , ) = crowdsale.getMilestone(index);\n\n bool completed = completedTranches[index];\n\n if (completed) return;\n\n uint prevIndex = index;\n uint totalTranchePercentBefore;\n\n while (prevIndex > 0) {\n prevIndex--;\n\n (, uint _tranchePercent, , , , ) = crowdsale.getMilestone(prevIndex);\n\n totalTranchePercentBefore = totalTranchePercentBefore.add(_tranchePercent);\n }\n\n result[0] = tranchePercent\n .add(totalTranchePercentBefore)\n .sub(totalTranchePercentReleased);\n result[1] = totalTranchePercentBefore;\n result[2] = index;\n }\n\n /**\n * @notice Realise project tranche\n */\n function tranche() external onlyOwner nonReentrant {\n require(trancheTransferAllowed());\n\n uint[3] memory trancheInvoice = getTrancheInvoice();\n\n require(trancheInvoice[0] > 0);\n require(totalFunded.symbolsList().length != 0);\n\n completedTranches[trancheInvoice[2]] = true;\n totalTranchePercentReleased = totalTranchePercentReleased.add(trancheInvoice[0]);\n\n _transferTranche(trancheInvoice);\n\n emit TrancheReleased(msg.sender, trancheInvoice[0]);\n }\n\n function _transferTranche(uint[3] _invoice) internal {\n uint ln = totalFunded.symbolsList().length;\n\n while(ln != 0) {\n bytes32 symbol = totalFunded.symbolsList()[--ln];\n uint amount = totalFunded.amountOf(symbol);\n\n if (amount == 0) continue;\n\n uint sourceAmount = amount.safePercent(_invoice[0]);\n\n require(sourceAmount > 0);\n \n amount = Utils.safeMulDiv(\n totalTokenBought.sub(totalTokenRefunded),\n sourceAmount,\n totalTokenBought\n );\n\n require(amount > 0);\n\n totalFundedReleased[symbol] = totalFundedReleased[symbol].add(amount);\n \n if (symbol == METHOD_USD) continue;\n\n if (symbol != METHOD_ETH) {\n require(rates.isToken(symbol));\n require(ERC20(rates.getTokenAddress(symbol)).balanceOf(address(this)) >= amount);\n }\n\n uint fee = trancheFeePercent > 0\n ? amount.safePercent(trancheFeePercent)\n : 0;\n\n if (trancheFeePercent > 0) require(fee > 0);\n\n if (symbol == METHOD_ETH) {\n if (fee > 0) serviceWallet.transfer(fee);\n msg.sender.transfer(amount.sub(fee));\n } else {\n if (fee > 0) require(ERC20(rates.getTokenAddress(symbol)).transfer(serviceWallet, fee));\n require(ERC20(rates.getTokenAddress(symbol)).transfer(msg.sender, amount.sub(fee)));\n }\n\n emit TrancheTransferred(msg.sender, symbol, amount);\n }\n }\n\n /**\n * @notice Refund bought tokens\n */\n function refund(uint tokenAmount) external nonReentrant {\n require(tokenRefundAllowed());\n require(tokenAmount != 0);\n require(tokenBoughtPerInvestor[msg.sender] >= tokenAmount);\n require(wToken.balanceOf(msg.sender) >= tokenAmount);\n require(wToken.allowance(msg.sender, address(this)) >= tokenAmount);\n\n _refundAssets(tokenAmount);\n\n totalTokenRefunded = totalTokenRefunded.add(tokenAmount);\n tokenBoughtPerInvestor[msg.sender] = tokenBoughtPerInvestor[msg.sender].sub(tokenAmount);\n\n require(wToken.transferFrom(msg.sender, swap, tokenAmount));\n\n emit TokenRefunded(msg.sender, tokenAmount);\n }\n\n function _refundAssets(uint tokenAmount) internal {\n uint ln = fundedPerInvestor[msg.sender].symbolsList().length;\n\n while (ln != 0) {\n bytes32 symbol = fundedPerInvestor[msg.sender].symbolsList()[--ln];\n uint amount = fundedPerInvestor[msg.sender].amountOf(symbol);\n\n if (amount == 0) continue;\n\n // get source amount\n uint sourceAmount = Utils.safeMulDiv(\n tokenAmount,\n amount,\n tokenBoughtPerInvestor[msg.sender]\n );\n\n require(sourceAmount > 0);\n\n // get released tranche amount in current currency\n uint releasedTranche = totalFunded\n .amountOf(symbol)\n .safePercent(totalTranchePercentReleased);\n\n // get amount minus released tranche\n amount = Utils.safeMulDiv(\n totalFunded.amountOf(symbol).sub(releasedTranche),\n sourceAmount,\n totalFunded.amountOf(symbol)\n );\n\n require(amount > 0);\n\n totalFundedReleased[symbol] = totalFundedReleased[symbol].add(amount);\n fundedPerInvestor[msg.sender].withdrawal(symbol, sourceAmount);\n\n if (symbol == METHOD_USD) continue;\n\n if (symbol != METHOD_ETH) {\n require(rates.isToken(symbol));\n require(ERC20(rates.getTokenAddress(symbol)).balanceOf(address(this)) >= amount);\n } else {\n require(address(this).balance >= amount);\n }\n\n if (symbol == METHOD_ETH) {\n msg.sender.transfer(amount);\n } else {\n require(ERC20(rates.getTokenAddress(symbol)).transfer(msg.sender, amount));\n }\n\n emit AssetRefunded(msg.sender, symbol, amount);\n }\n }\n\n function tokenRefundAllowed() public view returns (bool) {\n (uint index, bool found) = crowdsale.getCurrentMilestoneIndex();\n\n // first milestone is reserved for the project to claim initial amount of payments. No refund allowed at this stage.\n if(index == 0) return;\n\n (uint32 endDate, , , uint32 withdrawalWindow, , ) = crowdsale.getMilestone(index);\n\n return endDate <= now && now < withdrawalWindow;\n }\n\n function trancheTransferAllowed() public view returns (bool) {\n (uint index, bool found) = crowdsale.getCurrentMilestoneIndex();\n\n if(!found) return;\n\n return index == 0 || isWithdrawalWindowActive();\n }\n\n function isWithdrawalWindowActive() public view returns (bool) {\n (uint index, bool found) = crowdsale.getCurrentMilestoneIndex();\n\n if(index == 0 || !found) return;\n\n (uint32 endDate, , ,uint32 lastWithdrawalWindow, , ) = crowdsale.getMilestone(index);\n\n return endDate > now || now >= lastWithdrawalWindow;\n }\n\n modifier onlyFrom(address sender) {\n require(msg.sender == sender);\n\n _;\n }\n}\n", + "bytecode": "0x60806040523480156200001157600080fd5b50604051606080620020b083398101604090815281516020830151919092015182620000463364010000000062000243810204565b6200005a3364010000000062000295810204565b60025560038054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a160016004908155604080517f520b00660000000000000000000000000000000000000000000000000000000081529182018490525173__Percent_______________________________9163520b0066916024808301926020929190829003018186803b1580156200011f57600080fd5b505af415801562000134573d6000803e3d6000fd5b505050506040513d60208110156200014b57600080fd5b50518015620001f5575060648273__Percent_______________________________630fe9114790916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015620001c557600080fd5b505af4158015620001da573d6000803e3d6000fd5b505050506040513d6020811015620001f157600080fd5b5051105b15156200020157600080fd5b600160a060020a03811615156200021757600080fd5b600a9190915560078054600160a060020a031916600160a060020a03909216919091179055506200037a565b6200025e60008264010000000062001c8d620002e782021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b620002b060018264010000000062001c8d620002e782021704565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600160a060020a0381161515620002fd57600080fd5b62000312828264010000000062000342810204565b156200031d57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200035a57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b611d26806200038a6000396000f3006080604052600436106101b35763ffffffff60e060020a600035041663015dd28c81146101b85780630babd8641461021d5780631785f53c1461024e57806319ae48ed146102715780632348238c1461029857806323585f96146102b957806323bffccc146102e557806324d7806c14610306578063278ecde1146103275780633bcdb1641461033f57806343f48fbd14610360578063483a20b21461037557806354fd4d50146103965780635641f3c3146103ab5780636b90d6d2146103c05780636ebc0af1146103d557806370480275146103ea5780637a1c2da31461040b5780638119c065146104235780638429fffe146104385780638bad0c0a1461044d5780639124a789146104625780639ab269a6146104835780639c1e03a01461049b5780639e80baac146104b0578063a328665a146104c5578063a3b768e1146104da578063acb3c07314610527578063adb9dd0814610548578063b4105a3e14610569578063c6dbdf611461057e578063d0934d6114610593578063d0baf2f5146105a8578063d155790b146105c8578063d8e9ce64146105e9578063f206cb641461060a578063fb2814c41461062e575b600080fd5b3480156101c457600080fd5b506101cd610643565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102095781810151838201526020016101f1565b505050509050019250505060405180910390f35b34801561022957600080fd5b50610232610742565b60408051600160a060020a039092168252519081900360200190f35b34801561025a57600080fd5b5061026f600160a060020a0360043516610751565b005b34801561027d57600080fd5b50610286610771565b60408051918252519081900360200190f35b3480156102a457600080fd5b5061026f600160a060020a0360043516610777565b3480156102c557600080fd5b506102d160043561080a565b604080519115158252519081900360200190f35b3480156102f157600080fd5b5061026f600160a060020a036004351661081f565b34801561031257600080fd5b506102d1600160a060020a0360043516610877565b34801561033357600080fd5b5061026f60043561088f565b34801561034b57600080fd5b5061026f600160a060020a0360043516610b59565b34801561036c57600080fd5b50610232610b76565b34801561038157600080fd5b5061026f600160a060020a0360043516610b85565b3480156103a257600080fd5b50610286610d0e565b3480156103b757600080fd5b50610232610d14565b3480156103cc57600080fd5b506102d1610d23565b3480156103e157600080fd5b5061026f610f4e565b3480156103f657600080fd5b5061026f600160a060020a036004351661111f565b34801561041757600080fd5b5061028660043561113c565b34801561042f57600080fd5b5061023261114e565b34801561044457600080fd5b506102d161115d565b34801561045957600080fd5b5061026f61138c565b34801561046e57600080fd5b50610286600160a060020a0360043516611397565b34801561048f57600080fd5b506102866004356113b2565b3480156104a757600080fd5b5061023261145a565b3480156104bc57600080fd5b506102d1611469565b3480156104d157600080fd5b5061028661151c565b3480156104e657600080fd5b506104ef611522565b6040518082606080838360005b838110156105145781810151838201526020016104fc565b5050505090500191505060405180910390f35b34801561053357600080fd5b5061026f600160a060020a03600435166115e1565b34801561055457600080fd5b506101cd600160a060020a0360043516611639565b34801561057557600080fd5b5061028661174c565b34801561058a57600080fd5b50610232611752565b34801561059f57600080fd5b5061026f611761565b61026f600160a060020a036004351660243560443560643560843561176a565b3480156105d457600080fd5b5061026f600160a060020a0360043516611841565b3480156105f557600080fd5b506102d1600160a060020a036004351661185e565b34801561061657600080fd5b50610286600160a060020a0360043516602435611871565b34801561063a57600080fd5b5061028661192c565b604080517f20e1e1d1000000000000000000000000000000000000000000000000000000008152600d6004820152905160609173__FundAccount___________________________916320e1e1d191602480820192600092909190829003018186803b1580156106b257600080fd5b505af41580156106c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156106ef57600080fd5b81019080805164010000000081111561070757600080fd5b8201602081018481111561071a57600080fd5b815185602082028301116401000000008211171561073757600080fd5b509094505050505090565b600654600160a060020a031681565b61075a33610877565b151561076557600080fd5b61076e81611932565b50565b600c5490565b600354600160a060020a0316331461078e57600080fd5b600160a060020a03811615156107a357600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b6000908152600b602052604090205460ff1690565b61082833610877565b151561083357600080fd5b600160a060020a038116151561084857600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000610889818363ffffffff61197a16565b92915050565b60048054600101908190556108a2610d23565b15156108ad57600080fd5b8115156108b957600080fd5b336000908152601360205260409020548211156108d557600080fd5b600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015290518492600160a060020a0316916370a082319160248083019260209291908290030181600087803b15801561093a57600080fd5b505af115801561094e573d6000803e3d6000fd5b505050506040513d602081101561096457600080fd5b5051101561097157600080fd5b600654604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518492600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b505050506040513d6020811015610a0657600080fd5b50511015610a1357600080fd5b610a1c826119b1565b601254610a2f908363ffffffff611a5016565b60125533600090815260136020526040902054610a52908363ffffffff611a6916565b3360008181526013602090815260408083209490945560065460085485517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810195909552600160a060020a0390811660248601526044850188905294519416936323b872dd93606480820194918390030190829087803b158015610ada57600080fd5b505af1158015610aee573d6000803e3d6000fd5b505050506040513d6020811015610b0457600080fd5b50511515610b1157600080fd5b60408051838152905133917fb7feb6c1d7169f40790388a31c0160d8f962a2b6c31970c28bd8cdfefa25ea29919081900360200190a26004548114610b5557600080fd5b5050565b610b6233610877565b1515610b6d57600080fd5b61076e81611a80565b600754600160a060020a031681565b610b8e33610877565b1515610b9957600080fd5b600160a060020a0381161515610bae57600080fd5b6000600160a060020a031681600160a060020a0316634090cb646040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610bf757600080fd5b505af1158015610c0b573d6000803e3d6000fd5b505050506040513d6020811015610c2157600080fd5b5051600160a060020a03161415610c3757600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610cb357600080fd5b505af1158015610cc7573d6000803e3d6000fd5b505050506040513d6020811015610cdd57600080fd5b50516006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550565b60025481565b600954600160a060020a031681565b600554604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610d8657600080fd5b505af1158015610d9a573d6000803e3d6000fd5b505050506040513d6040811015610db057600080fd5b5080516020909101519094509250831515610dca57610f47565b600554604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610e3057600080fd5b505af1158015610e44573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610e6d57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610ea357600080fd5b82016020810184811115610eb657600080fd5b8151640100000000811182820187101715610ed057600080fd5b50509291906020018051640100000000811115610eec57600080fd5b82016020810184811115610eff57600080fd5b8151640100000000811182820187101715610f1957600080fd5b50509291905050505050935050509150428263ffffffff1611158015610f4457508063ffffffff1642105b94505b5050505090565b610f56611cdb565b610f5f3361185e565b1515610f6a57600080fd5b6004805460010190819055610f7d611469565b1515610f8857600080fd5b610f90611522565b8051909250600010610fa157600080fd5b604080517f20e1e1d1000000000000000000000000000000000000000000000000000000008152600d6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b15801561100c57600080fd5b505af4158015611020573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561104957600080fd5b81019080805164010000000081111561106157600080fd5b8201602081018481111561107457600080fd5b815185602082028301116401000000008211171561109157600080fd5b505051151592506110a491505057600080fd5b6040828101516000908152600b60205220805460ff191660011790558151600c546110ce91611a50565b600c556110da82611ac8565b8151604080519182525133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a26004548114610b5557600080fd5b61112833610877565b151561113357600080fd5b61076e81611bb1565b60009081526010602052604090205490565b600854600160a060020a031681565b600554604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b1580156111c057600080fd5b505af11580156111d4573d6000803e3d6000fd5b505050506040513d60408110156111ea57600080fd5b5080516020909101519094509250831580611203575082155b1561120d57610f47565b600554604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561127357600080fd5b505af1158015611287573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156112b057600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156112e657600080fd5b820160208101848111156112f957600080fd5b815164010000000081118282018710171561131357600080fd5b5050929190602001805164010000000081111561132f57600080fd5b8201602081018481111561134257600080fd5b815164010000000081118282018710171561135c57600080fd5b50509291905050505050935050509150428263ffffffff161180610f44575063ffffffff16421015949350505050565b61139533611932565b565b600160a060020a031660009081526013602052604090205490565b604080517f75dff138000000000000000000000000000000000000000000000000000000008152600d600482015260248101839052905160009173__FundAccount___________________________916375dff13891604480820192602092909190829003018186803b15801561142857600080fd5b505af415801561143c573d6000803e3d6000fd5b505050506040513d602081101561145257600080fd5b505192915050565b600554600160a060020a031681565b6000806000600560009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b1580156114c057600080fd5b505af11580156114d4573d6000803e3d6000fd5b505050506040513d60408110156114ea57600080fd5b508051602090910151909250905080151561150457611517565b811580611514575061151461115d565b92505b505090565b600a5481565b61152a611cdb565b73__Fund__________________________________63c4466008600b61154e611469565b6005546040805160e060020a63ffffffff871602815260048101949094529115156024840152600160a060020a03166044830152516064808301926060929190829003018186803b1580156115a257600080fd5b505af41580156115b6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060608110156115db57600080fd5b50905090565b6115ea33610877565b15156115f557600080fd5b600160a060020a038116151561160a57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03811660009081526014602052604080822081517f20e1e1d10000000000000000000000000000000000000000000000000000000081526004810191909152905160609273__FundAccount___________________________926320e1e1d19260248083019392829003018186803b1580156116bb57600080fd5b505af41580156116cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156116f857600080fd5b81019080805164010000000081111561171057600080fd5b8201602081018481111561172357600080fd5b815185602082028301116401000000008211171561174057600080fd5b50909695505050505050565b60115490565b600354600160a060020a031690565b61139533611bf9565b600554600160a060020a0316331461178157600080fd5b600754604080517f46d1230a000000000000000000000000000000000000000000000000000000008152600b6004820152600160a060020a03808916602483015260448201889052606482018790526084820186905260a4820185905290921660c48301525173__Fund__________________________________916346d1230a9160e4808301926000929190829003018186803b15801561182257600080fd5b505af4158015611836573d6000803e3d6000fd5b505050505050505050565b61184a33610877565b151561185557600080fd5b61076e81611bf9565b600061088960018363ffffffff61197a16565b600160a060020a038216600090815260146020908152604080832081517f75dff138000000000000000000000000000000000000000000000000000000008152600481019190915260248101859052905173__FundAccount___________________________926375dff1389260448082019391829003018186803b1580156118f957600080fd5b505af415801561190d573d6000803e3d6000fd5b505050506040513d602081101561192357600080fd5b50519392505050565b60125490565b61194360008263ffffffff611c4116565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a038216151561199157600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600754604080517fe0650238000000000000000000000000000000000000000000000000000000008152600b600482015260248101849052600160a060020a0390921660448301525173__Fund__________________________________9163e0650238916064808301926000929190829003018186803b158015611a3557600080fd5b505af4158015611a49573d6000803e3d6000fd5b5050505050565b600082820183811015611a6257600080fd5b9392505050565b60008083831115611a7957600080fd5b5050900390565b611a9160018263ffffffff611c8d16565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600a546009546007546040517f69b3e2d2000000000000000000000000000000000000000000000000000000008152600b6004820181815273__Fund__________________________________956369b3e2d295929488949193600160a060020a039081169391169160240185606080838360005b83811015611b55578181015183820152602001611b3d565b5050505090500184815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019550505050505060006040518083038186803b158015611a3557600080fd5b611bc260008263ffffffff611c8d16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b611c0a60018263ffffffff611c4116565b604051600160a060020a038216907fa3bfdef3d8149bacf15b7b64199fca8228c0fd4f8fcdd11cc7871829baf319c390600090a250565b600160a060020a0381161515611c5657600080fd5b611c60828261197a565b1515611c6b57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0381161515611ca257600080fd5b611cac828261197a565b15611cb657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60606040519081016040528060039060208202803883395091929150505600a165627a7a7230582023843bc1390d15a563641dfde08a8e626b30a42f639a2a8ca5c9866e9667be490029", + "deployedBytecode": "0x6080604052600436106101b35763ffffffff60e060020a600035041663015dd28c81146101b85780630babd8641461021d5780631785f53c1461024e57806319ae48ed146102715780632348238c1461029857806323585f96146102b957806323bffccc146102e557806324d7806c14610306578063278ecde1146103275780633bcdb1641461033f57806343f48fbd14610360578063483a20b21461037557806354fd4d50146103965780635641f3c3146103ab5780636b90d6d2146103c05780636ebc0af1146103d557806370480275146103ea5780637a1c2da31461040b5780638119c065146104235780638429fffe146104385780638bad0c0a1461044d5780639124a789146104625780639ab269a6146104835780639c1e03a01461049b5780639e80baac146104b0578063a328665a146104c5578063a3b768e1146104da578063acb3c07314610527578063adb9dd0814610548578063b4105a3e14610569578063c6dbdf611461057e578063d0934d6114610593578063d0baf2f5146105a8578063d155790b146105c8578063d8e9ce64146105e9578063f206cb641461060a578063fb2814c41461062e575b600080fd5b3480156101c457600080fd5b506101cd610643565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102095781810151838201526020016101f1565b505050509050019250505060405180910390f35b34801561022957600080fd5b50610232610742565b60408051600160a060020a039092168252519081900360200190f35b34801561025a57600080fd5b5061026f600160a060020a0360043516610751565b005b34801561027d57600080fd5b50610286610771565b60408051918252519081900360200190f35b3480156102a457600080fd5b5061026f600160a060020a0360043516610777565b3480156102c557600080fd5b506102d160043561080a565b604080519115158252519081900360200190f35b3480156102f157600080fd5b5061026f600160a060020a036004351661081f565b34801561031257600080fd5b506102d1600160a060020a0360043516610877565b34801561033357600080fd5b5061026f60043561088f565b34801561034b57600080fd5b5061026f600160a060020a0360043516610b59565b34801561036c57600080fd5b50610232610b76565b34801561038157600080fd5b5061026f600160a060020a0360043516610b85565b3480156103a257600080fd5b50610286610d0e565b3480156103b757600080fd5b50610232610d14565b3480156103cc57600080fd5b506102d1610d23565b3480156103e157600080fd5b5061026f610f4e565b3480156103f657600080fd5b5061026f600160a060020a036004351661111f565b34801561041757600080fd5b5061028660043561113c565b34801561042f57600080fd5b5061023261114e565b34801561044457600080fd5b506102d161115d565b34801561045957600080fd5b5061026f61138c565b34801561046e57600080fd5b50610286600160a060020a0360043516611397565b34801561048f57600080fd5b506102866004356113b2565b3480156104a757600080fd5b5061023261145a565b3480156104bc57600080fd5b506102d1611469565b3480156104d157600080fd5b5061028661151c565b3480156104e657600080fd5b506104ef611522565b6040518082606080838360005b838110156105145781810151838201526020016104fc565b5050505090500191505060405180910390f35b34801561053357600080fd5b5061026f600160a060020a03600435166115e1565b34801561055457600080fd5b506101cd600160a060020a0360043516611639565b34801561057557600080fd5b5061028661174c565b34801561058a57600080fd5b50610232611752565b34801561059f57600080fd5b5061026f611761565b61026f600160a060020a036004351660243560443560643560843561176a565b3480156105d457600080fd5b5061026f600160a060020a0360043516611841565b3480156105f557600080fd5b506102d1600160a060020a036004351661185e565b34801561061657600080fd5b50610286600160a060020a0360043516602435611871565b34801561063a57600080fd5b5061028661192c565b604080517f20e1e1d1000000000000000000000000000000000000000000000000000000008152600d6004820152905160609173__FundAccount___________________________916320e1e1d191602480820192600092909190829003018186803b1580156106b257600080fd5b505af41580156106c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156106ef57600080fd5b81019080805164010000000081111561070757600080fd5b8201602081018481111561071a57600080fd5b815185602082028301116401000000008211171561073757600080fd5b509094505050505090565b600654600160a060020a031681565b61075a33610877565b151561076557600080fd5b61076e81611932565b50565b600c5490565b600354600160a060020a0316331461078e57600080fd5b600160a060020a03811615156107a357600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b6000908152600b602052604090205460ff1690565b61082833610877565b151561083357600080fd5b600160a060020a038116151561084857600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000610889818363ffffffff61197a16565b92915050565b60048054600101908190556108a2610d23565b15156108ad57600080fd5b8115156108b957600080fd5b336000908152601360205260409020548211156108d557600080fd5b600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015290518492600160a060020a0316916370a082319160248083019260209291908290030181600087803b15801561093a57600080fd5b505af115801561094e573d6000803e3d6000fd5b505050506040513d602081101561096457600080fd5b5051101561097157600080fd5b600654604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518492600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b505050506040513d6020811015610a0657600080fd5b50511015610a1357600080fd5b610a1c826119b1565b601254610a2f908363ffffffff611a5016565b60125533600090815260136020526040902054610a52908363ffffffff611a6916565b3360008181526013602090815260408083209490945560065460085485517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810195909552600160a060020a0390811660248601526044850188905294519416936323b872dd93606480820194918390030190829087803b158015610ada57600080fd5b505af1158015610aee573d6000803e3d6000fd5b505050506040513d6020811015610b0457600080fd5b50511515610b1157600080fd5b60408051838152905133917fb7feb6c1d7169f40790388a31c0160d8f962a2b6c31970c28bd8cdfefa25ea29919081900360200190a26004548114610b5557600080fd5b5050565b610b6233610877565b1515610b6d57600080fd5b61076e81611a80565b600754600160a060020a031681565b610b8e33610877565b1515610b9957600080fd5b600160a060020a0381161515610bae57600080fd5b6000600160a060020a031681600160a060020a0316634090cb646040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610bf757600080fd5b505af1158015610c0b573d6000803e3d6000fd5b505050506040513d6020811015610c2157600080fd5b5051600160a060020a03161415610c3757600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610cb357600080fd5b505af1158015610cc7573d6000803e3d6000fd5b505050506040513d6020811015610cdd57600080fd5b50516006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550565b60025481565b600954600160a060020a031681565b600554604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610d8657600080fd5b505af1158015610d9a573d6000803e3d6000fd5b505050506040513d6040811015610db057600080fd5b5080516020909101519094509250831515610dca57610f47565b600554604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610e3057600080fd5b505af1158015610e44573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610e6d57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610ea357600080fd5b82016020810184811115610eb657600080fd5b8151640100000000811182820187101715610ed057600080fd5b50509291906020018051640100000000811115610eec57600080fd5b82016020810184811115610eff57600080fd5b8151640100000000811182820187101715610f1957600080fd5b50509291905050505050935050509150428263ffffffff1611158015610f4457508063ffffffff1642105b94505b5050505090565b610f56611cdb565b610f5f3361185e565b1515610f6a57600080fd5b6004805460010190819055610f7d611469565b1515610f8857600080fd5b610f90611522565b8051909250600010610fa157600080fd5b604080517f20e1e1d1000000000000000000000000000000000000000000000000000000008152600d6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b15801561100c57600080fd5b505af4158015611020573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561104957600080fd5b81019080805164010000000081111561106157600080fd5b8201602081018481111561107457600080fd5b815185602082028301116401000000008211171561109157600080fd5b505051151592506110a491505057600080fd5b6040828101516000908152600b60205220805460ff191660011790558151600c546110ce91611a50565b600c556110da82611ac8565b8151604080519182525133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a26004548114610b5557600080fd5b61112833610877565b151561113357600080fd5b61076e81611bb1565b60009081526010602052604090205490565b600854600160a060020a031681565b600554604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b1580156111c057600080fd5b505af11580156111d4573d6000803e3d6000fd5b505050506040513d60408110156111ea57600080fd5b5080516020909101519094509250831580611203575082155b1561120d57610f47565b600554604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561127357600080fd5b505af1158015611287573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156112b057600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156112e657600080fd5b820160208101848111156112f957600080fd5b815164010000000081118282018710171561131357600080fd5b5050929190602001805164010000000081111561132f57600080fd5b8201602081018481111561134257600080fd5b815164010000000081118282018710171561135c57600080fd5b50509291905050505050935050509150428263ffffffff161180610f44575063ffffffff16421015949350505050565b61139533611932565b565b600160a060020a031660009081526013602052604090205490565b604080517f75dff138000000000000000000000000000000000000000000000000000000008152600d600482015260248101839052905160009173__FundAccount___________________________916375dff13891604480820192602092909190829003018186803b15801561142857600080fd5b505af415801561143c573d6000803e3d6000fd5b505050506040513d602081101561145257600080fd5b505192915050565b600554600160a060020a031681565b6000806000600560009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b1580156114c057600080fd5b505af11580156114d4573d6000803e3d6000fd5b505050506040513d60408110156114ea57600080fd5b508051602090910151909250905080151561150457611517565b811580611514575061151461115d565b92505b505090565b600a5481565b61152a611cdb565b73__Fund__________________________________63c4466008600b61154e611469565b6005546040805160e060020a63ffffffff871602815260048101949094529115156024840152600160a060020a03166044830152516064808301926060929190829003018186803b1580156115a257600080fd5b505af41580156115b6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060608110156115db57600080fd5b50905090565b6115ea33610877565b15156115f557600080fd5b600160a060020a038116151561160a57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03811660009081526014602052604080822081517f20e1e1d10000000000000000000000000000000000000000000000000000000081526004810191909152905160609273__FundAccount___________________________926320e1e1d19260248083019392829003018186803b1580156116bb57600080fd5b505af41580156116cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156116f857600080fd5b81019080805164010000000081111561171057600080fd5b8201602081018481111561172357600080fd5b815185602082028301116401000000008211171561174057600080fd5b50909695505050505050565b60115490565b600354600160a060020a031690565b61139533611bf9565b600554600160a060020a0316331461178157600080fd5b600754604080517f46d1230a000000000000000000000000000000000000000000000000000000008152600b6004820152600160a060020a03808916602483015260448201889052606482018790526084820186905260a4820185905290921660c48301525173__Fund__________________________________916346d1230a9160e4808301926000929190829003018186803b15801561182257600080fd5b505af4158015611836573d6000803e3d6000fd5b505050505050505050565b61184a33610877565b151561185557600080fd5b61076e81611bf9565b600061088960018363ffffffff61197a16565b600160a060020a038216600090815260146020908152604080832081517f75dff138000000000000000000000000000000000000000000000000000000008152600481019190915260248101859052905173__FundAccount___________________________926375dff1389260448082019391829003018186803b1580156118f957600080fd5b505af415801561190d573d6000803e3d6000fd5b505050506040513d602081101561192357600080fd5b50519392505050565b60125490565b61194360008263ffffffff611c4116565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a038216151561199157600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600754604080517fe0650238000000000000000000000000000000000000000000000000000000008152600b600482015260248101849052600160a060020a0390921660448301525173__Fund__________________________________9163e0650238916064808301926000929190829003018186803b158015611a3557600080fd5b505af4158015611a49573d6000803e3d6000fd5b5050505050565b600082820183811015611a6257600080fd5b9392505050565b60008083831115611a7957600080fd5b5050900390565b611a9160018263ffffffff611c8d16565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600a546009546007546040517f69b3e2d2000000000000000000000000000000000000000000000000000000008152600b6004820181815273__Fund__________________________________956369b3e2d295929488949193600160a060020a039081169391169160240185606080838360005b83811015611b55578181015183820152602001611b3d565b5050505090500184815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019550505050505060006040518083038186803b158015611a3557600080fd5b611bc260008263ffffffff611c8d16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b611c0a60018263ffffffff611c4116565b604051600160a060020a038216907fa3bfdef3d8149bacf15b7b64199fca8228c0fd4f8fcdd11cc7871829baf319c390600090a250565b600160a060020a0381161515611c5657600080fd5b611c60828261197a565b1515611c6b57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0381161515611ca257600080fd5b611cac828261197a565b15611cb657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60606040519081016040528060039060208202803883395091929150505600a165627a7a7230582023843bc1390d15a563641dfde08a8e626b30a42f639a2a8ca5c9866e9667be490029", + "sourceMap": "648:7679:12:-;;;1595:304;8:9:-1;5:2;;;30:1;27;20:12;5:2;1595:304:12;;;;;;;;;;;;;;;;;;;;;;;;;;306:21:3;316:10;306:9;;;;:21;:::i;:::-;334:28:8;351:10;334:16;;;;:28;:::i;:::-;123:7:48;:18;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;417:28;;;-1:-1:-1;;;;;436:8:55;;;;417:28;;;;;;;;;;;;559:1:62;543:13;:17;;;1707:30:12;;;;;;;;;;;;;:28;;;;:30;;;;;;;;;;;;;;:28;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;1707:30:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1707:30:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1707:30:12;:72;;;;;1776:3;1741:18;:30;;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1741:32:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1741:32:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1741:32:12;:38;1707:72;1699:81;;;;;;;;-1:-1:-1;;;;;1798:20:12;;;;1790:29;;;;;;1830:17;:38;;;;1878:5;:14;;-1:-1:-1;;;;;;1878:14:12;-1:-1:-1;;;;;1878:14:12;;;;;;;;;-1:-1:-1;648:7679:12;;612:115:3;667:19;:6;678:7;667:10;;;;;;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;689:136:8:-;751:26;:13;769:7;751:17;;;;;;:26;:::i;:::-;792;;-1:-1:-1;;;;;792:26:8;;;;;;;;689:136;:::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;648:7679:12:-;;;;;;;", + "deployedSourceMap": "648:7679:12:-;;;;;;;;-1:-1:-1;648:7679:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4826:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4826:126:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4826:126:12;;;;;;;;;;;;;;;;;995:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;995:21:12;;;;;;;;-1:-1:-1;;;;;995:21:12;;;;;;;;;;;;;;2000:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2000:95:12;;;-1:-1:-1;;;;;2000:95:12;;;;;3624:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3624:123:12;;;;;;;;;;;;;;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;;;-1:-1:-1;;;;;855:171:55;;;3753:138:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3753:138:12;;;;;;;;;;;;;;;;;;;;;;;2711:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2711:164:12;;;-1:-1:-1;;;;;2711:164:12;;;423:104:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;423:104:3;;;-1:-1:-1;;;;;423:104:3;;;6332:700:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6332:700:12;;;;;2101:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2101:103:12;;;-1:-1:-1;;;;;2101:103:12;;;1022:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1022:19:12;;;;2325:255;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2325:255:12;;;-1:-1:-1;;;;;2325:255:12;;;53:19:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:48;;;;1072:28:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1072:28:12;;;;7201:444;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7201:444:12;;;;5510:540;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5510:540:12;;;;1905:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1905:89:12;;;-1:-1:-1;;;;;1905:89:12;;;4958:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4958:134:12;;;;;1047:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1047:19:12;;;;7884:342;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7884:342:12;;;;533:73:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;533:73:3;;;;4534:147:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4534:147:12;;;-1:-1:-1;;;;;4534:147:12;;;4687:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4687:133:12;;;;;959:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;959:30:12;;;;7651:227;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7651:227:12;;;;1138:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1138:29:12;;;;5247:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5247:202:12;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5247:202:12;;;;;;;;;;;;;;;;2586:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2586:119:12;;;-1:-1:-1;;;;;2586:119:12;;;4366:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4366:162:12;;;-1:-1:-1;;;;;4366:162:12;;;3933:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3933:101:12;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;596:87:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;596:87:8;;;;3189:380:12;;;;-1:-1:-1;;;;;3189:380:12;;;;;;;;;;;2210:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2210:109:12;;;-1:-1:-1;;;;;2210:109:12;;;472:118:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;472:118:8;;;-1:-1:-1;;;;;472:118:8;;;4189:171:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4189:171:12;;;-1:-1:-1;;;;;4189:171:12;;;;;4078:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4078:105:12;;;;4826:126;4914:31;;;;;;:17;:31;;;;;;4886:9;;4914:29;;;;:31;;;;;-1:-1:-1;;4914:31:12;;;;;;;;:29;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;4914:31:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4914:31:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4914:31:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4914:31:12;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;4914:31:12;;-1:-1:-1;;;;;4826:126:12;:::o;995:21::-;;;-1:-1:-1;;;;;995:21:12;;:::o;2000:95::-;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;2066:22:12;2079:8;2066:12;:22::i;:::-;2000:95;:::o;3624:123::-;3707:33;;3624:123;:::o;855:171:55:-;586:8;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;3753:138:12:-;3822:4;3845:39;;;:5;:39;;;;;;;;;3753:138::o;2711:164::-;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;-1:-1:-1;;;;;2798:28:12;;;;2790:37;;;;;;2838:13;:30;;-1:-1:-1;;2838:30:12;-1:-1:-1;;;;;2838:30:12;;;;;;;;;;2711:164::o;423:104:3:-;478:4;501:19;478:4;512:7;501:19;:10;:19;:::i;:::-;494:26;423:104;-1:-1:-1;;423:104:3:o;6332:700:12:-;954:13:62;:18;;971:1;954:18;;;;;6406:20:12;:18;:20::i;:::-;6398:29;;;;;;;;6445:16;;;6437:25;;;;;;6509:10;6480:40;;;;:28;:40;;;;;;:55;-1:-1:-1;6480:55:12;6472:64;;;;;;6554:6;;:28;;;;;;6571:10;6554:28;;;;;;6586:11;;-1:-1:-1;;;;;6554:6:12;;:16;;:28;;;;;;;;;;;;;;-1:-1:-1;6554:6:12;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;6554:28:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6554:28:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6554:28:12;:43;;6546:52;;;;;;6616:6;;:43;;;;;;6633:10;6616:43;;;;6653:4;6616:43;;;;;;6663:11;;-1:-1:-1;;;;;6616:6:12;;:16;;:43;;;;;;;;;;;;;;-1:-1:-1;6616:6:12;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;6616:43:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6616:43:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6616:43:12;:58;;6608:67;;;;;;6686:26;6700:11;6686:13;:26::i;:::-;6750:24;;:41;;6779:11;6750:41;:28;:41;:::i;:::-;6723:24;:68;6873:10;6844:40;;;;:28;:40;;;;;;:57;;6889:11;6844:57;:44;:57;:::i;:::-;6830:10;6801:40;;;;:28;:40;;;;;;;;:100;;;;6920:6;;6801:28;6952:4;6920:50;;;;;;;;;;;;-1:-1:-1;;;;;6952:4:12;;;6920:50;;;;;;;;;;;;:6;;;:19;;:50;;;;;;;;;;;;;:6;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;6920:50:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6920:50:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6920:50:12;6912:59;;;;;;;;6987:38;;;;;;;;7001:10;;6987:38;;;;;;;;;;1051:13:62;;1035:29;;1027:38;;;;;;6332:700:12;;:::o;2101:103::-;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;2171:26:12;2188:8;2171:16;:26::i;1022:19::-;;;-1:-1:-1;;;;;1022:19:12;;:::o;2325:255::-;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;-1:-1:-1;;;;;2410:24:12;;;;2402:33;;;;;;2453:22;;;;;;;;2487:1;;-1:-1:-1;;;;;2453:20:12;;;;;:22;;;;;;;;;;;;;;;2487:1;2453:20;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;2453:22:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2453:22:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2453:22:12;-1:-1:-1;;;;;2453:36:12;;;2445:45;;;;;;2501:9;:22;;-1:-1:-1;;2501:22:12;-1:-1:-1;;;;;2501:22:12;;;;;;;;2550;;;;;;;;:20;;:22;;;;;;;;;;;;;;;-1:-1:-1;2501:22:12;2550;;;5:2:-1;;;;30:1;27;20:12;5:2;2550:22:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2550:22:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2550:22:12;2533:6;:40;;-1:-1:-1;;2533:40:12;-1:-1:-1;;;;;2533:40:12;;;;;;;;;-1:-1:-1;2325:255:12:o;53:19:48:-;;;;:::o;1072:28:12:-;;;-1:-1:-1;;;;;1072:28:12;;:::o;7201:444::-;7295:9;;:36;;;;;;;;7252:4;;;;;;;;;;-1:-1:-1;;;;;7295:9:12;;:34;;:36;;;;;;;;;;;7252:4;7295:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;7295:36:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7295:36:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7295:36:12;;;;;;;;;-1:-1:-1;7295:36:12;-1:-1:-1;7470:10:12;;7467:22;;;7482:7;;7467:22;7551:9;;:29;;;;;;;;;;;;;;-1:-1:-1;;;;;7551:9:12;;;;:22;;:29;;;;;-1:-1:-1;;7551:29:12;;;;;;;;-1:-1:-1;7551:9:12;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;7551:29:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7551:29:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7551:29:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;7551:29:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;7551:29:12;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;7551:29:12;;;;;;7499:81;;;;;;;;7609:3;7598:7;:14;;;;:40;;;;;7622:16;7616:22;;:3;:22;7598:40;7591:47;;7201:444;;;;;;:::o;5510:540::-;5622:29;;:::i;:::-;421:26:8;436:10;421:14;:26::i;:::-;413:35;;;;;;;;954:13:62;:18;;971:1;954:18;;;;;5586:24:12;:22;:24::i;:::-;5578:33;;;;;;;;5654:19;:17;:19::i;:::-;5692:17;;5622:51;;-1:-1:-1;5712:1:12;-1:-1:-1;5684:30:12;;;;;;5732:31;;;;;;:17;:31;;;;;;:29;;;;:31;;;;;-1:-1:-1;;5732:31:12;;;;;;;:29;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;5732:31:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5732:31:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5732:31:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;5732:31:12;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;5732:38:12;:43;;;-1:-1:-1;5724:52:12;;-1:-1:-1;;5724:52:12;;;;;5811:17;;;;;5787:23;:42;;;:5;5811:17;5787:42;;:49;;-1:-1:-1;;5787:49:12;5832:4;5787:49;;;5920:17;;5882:33;;:56;;:37;:56::i;:::-;5846:33;:92;5949:32;5966:14;5949:16;:32::i;:::-;6025:17;;5997:46;;;;;;;6013:10;;5997:46;;;;;;6025:17;5997:46;;;1051:13:62;;1035:29;;1027:38;;;;;1905:89:12;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;1968:19:12;1978:8;1968:9;:19::i;4958:134::-;5028:4;5051:34;;;:25;:34;;;;;;;4958:134::o;1047:19::-;;;-1:-1:-1;;;;;1047:19:12;;:::o;7884:342::-;7984:9;;:36;;;;;;;;7941:4;;;;;;;;;;-1:-1:-1;;;;;7984:9:12;;:34;;:36;;;;;;;;;;;7941:4;7984:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;7984:36:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7984:36:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7984:36:12;;;;;;;;;-1:-1:-1;7984:36:12;-1:-1:-1;8034:10:12;;;:20;;;8049:5;8048:6;8034:20;8031:32;;;8056:7;;8031:32;8128:9;;:29;;;;;;;;;;;;;;-1:-1:-1;;;;;8128:9:12;;;;:22;;:29;;;;;-1:-1:-1;;8128:29:12;;;;;;;;-1:-1:-1;8128:9:12;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8128:29:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8128:29:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;8128:29:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;8128:29:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;8128:29:12;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;8128:29:12;;;;;;8073:84;;;;;;;;8185:3;8175:7;:13;;;:44;;;-1:-1:-1;8192:27:12;;:3;:27;;;7884:342;-1:-1:-1;;;;7884:342:12:o;533:73:3:-;575:24;588:10;575:12;:24::i;:::-;533:73::o;4534:147:12:-;-1:-1:-1;;;;;4635:39:12;4612:4;4635:39;;;:28;:39;;;;;;;4534:147::o;4687:133::-;4778:35;;;;;;:17;:35;;;;;;;;;;;;4755:4;;4778:26;;;;:35;;;;;;;;;;;;;;;:26;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;4778:35:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4778:35:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4778:35:12;;4687:133;-1:-1:-1;;4687:133:12:o;959:30::-;;;-1:-1:-1;;;;;959:30:12;;:::o;7651:227::-;7749:9;;:36;;;;;;;;7706:4;;;;;;-1:-1:-1;;;;;7749:9:12;;;;:34;;:36;;;;;;;;;;;;7706:4;7749:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;7749:36:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7749:36:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7749:36:12;;;;;;;;;-1:-1:-1;7749:36:12;-1:-1:-1;7799:6:12;;7796:18;;;7807:7;;7796:18;7831:10;;;:40;;;7845:26;:24;:26::i;:::-;7824:47;;7651:227;;;;:::o;1138:29::-;;;;:::o;5247:202::-;5297:14;;:::i;:::-;5330:4;:22;5366:5;5385:24;:22;:24::i;:::-;5423:9;;5330:112;;;;;;-1:-1:-1;5330:112:12;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5423:9:12;5330:112;;;;;;;;;;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;5330:112:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5330:112:12;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5330:112:12;-1:-1:-1;5247:202:12;:::o;2586:119::-;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;-1:-1:-1;;;;;2655:19:12;;;;2647:28;;;;;;2686:4;:12;;-1:-1:-1;;2686:12:12;-1:-1:-1;;;;;2686:12:12;;;;;;;;;;2586:119::o;4366:162::-;-1:-1:-1;;;;;4473:34:12;;;;;;:23;:34;;;;;;:48;;;;;;;;;;;;;;4445:9;;4473:46;;;;:48;;;;;:34;:48;;;;;:46;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;4473:48:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4473:48:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4473:48:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4473:48:12;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;4473:48:12;;4366:162;-1:-1:-1;;;;;;4366:162:12:o;3933:101::-;4005:22;;3933:101;:::o;664:75:55:-;726:8;;-1:-1:-1;;;;;726:8:55;;664:75::o;596:87:8:-;645:31;665:10;645:19;:31::i;3189:380:12:-;8295:9;;-1:-1:-1;;;;;8295:9:12;8273:10;:32;8265:41;;;;;;3547:5;;3389:173;;;;;;3422:5;3389:173;;;;-1:-1:-1;;;;;3389:173:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3547:5;;;3389:173;;;;;:4;;:19;;:173;;;;;-1:-1:-1;;3389:173:12;;;;;;;:4;:173;;;5:2:-1;;;;30:1;27;20:12;5:2;3389:173:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3389:173:12;;;;3189:380;;;;;:::o;2210:109::-;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;2283:29:12;2303:8;2283:19;:29::i;472:118:8:-;534:4;557:26;:13;575:7;557:26;:17;:26;:::i;4189:171:12:-;-1:-1:-1;;;;;4301:34:12;;4278:4;4301:34;;;:23;:34;;;;;;;;:52;;;;;;;;;;;;;;;;;;;;:43;;;;:52;;;;;;;;;;;:43;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;4301:52:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4301:52:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4301:52:12;;4189:171;-1:-1:-1;;;4189:171:12:o;4078:105::-;4152:24;;4078:105;:::o;733:123:3:-;791:22;:6;805:7;791:22;:13;:22;:::i;:::-;828:21;;-1:-1:-1;;;;;828:21:3;;;;;;;;733:123;:::o;725:166:52:-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;7038:157:12:-;7173:5;;7098:90;;;;;;7129:5;7098:90;;;;;;;;;;-1:-1:-1;;;;;7173:5:12;;;7098:90;;;;;:4;;:17;;:90;;;;;-1:-1:-1;;7098:90:12;;;;;;;:4;:90;;;5:2:-1;;;;30:1;27;20:12;5:2;7098:90:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7098:90:12;;;;7038:157;:::o;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;;1397:1;1272:131;-1:-1:-1;;;1272:131:54:o;1078:::-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;689:136:8:-;751:26;:13;769:7;751:26;:17;:26;:::i;:::-;792;;-1:-1:-1;;;;;792:26:8;;;;;;;;689:136;:::o;6056:218:12:-;6194:17;;6225:13;;6252:5;;6119:148;;;;;6153:5;6119:148;;;;;;:4;;:20;;6153:5;;6172:8;;6194:17;;-1:-1:-1;;;;;6225:13:12;;;;6252:5;;;6119:148;;6172:8;6119:148;;;6172:8;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;-1:-1;;;;6119:148:12;;;;;;;-1:-1:-1;;;;;;;6119:148:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6119:148:12;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;612:115:3;667:19;:6;678:7;667:19;:10;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;831:144:8:-;896:29;:13;917:7;896:29;:20;:29;:::i;:::-;940:28;;-1:-1:-1;;;;;940:28:8;;;;;;;;831:144;:::o;477:170:52:-;-1:-1:-1;;;;;552:21:52;;;;544:30;;;;;;588:18;592:4;598:7;588:3;:18::i;:::-;580:27;;;;;;;;-1:-1:-1;;;;;614:20:52;637:5;614:20;;;;;;;;;;;:28;;-1:-1:-1;;614:28:52;;;477:170::o;244:167::-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;:18::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;-1:-1:-1;379:27:52;;;244:167::o;648:7679:12:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;648:7679:12;;;-1:-1:-1;;648:7679:12:o", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Secondary.sol\";\nimport \"openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"./IW12Crowdsale.sol\";\nimport \"./IW12Fund.sol\";\nimport \"../rates/IRates.sol\";\nimport \"../libs/Utils.sol\";\nimport \"../libs/Percent.sol\";\nimport \"../libs/FundAccount.sol\";\nimport \"../libs/Fund.sol\";\nimport \"../versioning/Versionable.sol\";\nimport \"../token/IWToken.sol\";\nimport \"../access/roles/AdminRole.sol\";\nimport \"../access/roles/ProjectOwnerRole.sol\";\n\ncontract W12Fund is IW12Fund, AdminRole, ProjectOwnerRole, Versionable, Secondary, ReentrancyGuard {\n using SafeMath for uint;\n using Percent for uint;\n using FundAccount for FundAccount.Account;\n\n bytes32 constant METHOD_ETH = bytes32('ETH');\n bytes32 constant METHOD_USD = bytes32('USD');\n\n IW12Crowdsale public crowdsale;\n IWToken public wToken;\n IRates public rates;\n address public swap;\n address public serviceWallet;\n // fee for realised tranche\n uint public trancheFeePercent;\n\n Fund.State state;\n\n event FundsReceived(address indexed investor, uint tokenAmount, bytes32 symbol, uint cost);\n event AssetRefunded(address indexed investor, bytes32 symbol, uint amount);\n event TokenRefunded(address indexed investor, uint tokenAmount);\n event TrancheTransferred(address indexed receiver, bytes32 symbol, uint amount);\n event TrancheReleased(address indexed receiver, uint percent);\n\n constructor(uint version, uint _trancheFeePercent, IRates _rates) Versionable(version) public {\n require(_trancheFeePercent.isPercent() && _trancheFeePercent.fromPercent() < 100);\n require(_rates != address(0));\n\n trancheFeePercent = _trancheFeePercent;\n rates = _rates;\n }\n\n function addAdmin(address _account) public onlyAdmin {\n _addAdmin(_account);\n }\n\n function removeAdmin(address _account) public onlyAdmin {\n _removeAdmin(_account);\n }\n\n function addProjectOwner(address _account) public onlyAdmin {\n _addProjectOwner(_account);\n }\n\n function removeProjectOwner(address _account) public onlyAdmin {\n _removeProjectOwner(_account);\n }\n\n function setCrowdsale(IW12Crowdsale _crowdsale) onlyAdmin external {\n require(_crowdsale != address(0));\n require(_crowdsale.getWToken() != address(0));\n\n crowdsale = _crowdsale;\n wToken = IWToken(_crowdsale.getWToken());\n }\n\n function setSwap(address _swap) onlyAdmin external {\n require(_swap != address(0));\n\n swap = _swap;\n }\n\n function setServiceWallet(address _serviceWallet) onlyAdmin external {\n require(_serviceWallet != address(0));\n\n serviceWallet = _serviceWallet;\n }\n\n /**\n * @dev Record purchase result to the fund and check the fund balance\n * @param investor An investor address\n * @param tokenAmount Token amount that was bought\n * @param symbol Symbol of payment method\n * @param cost Cost of token amount\n * @param costUSD Cost in USD\n */\n function recordPurchase(\n address investor,\n uint tokenAmount,\n bytes32 symbol,\n uint cost,\n uint costUSD\n )\n external payable onlyCrowdsale\n {\n Fund.recordPurchase(\n state,\n investor,\n tokenAmount,\n symbol,\n cost,\n costUSD,\n rates\n );\n }\n\n // total percent of realised project tranche\n function totalTranchePercentReleased() public view returns (uint) {\n return state.totalTranchePercentReleased;\n }\n\n function completedTranches(uint milestoneIndex) public view returns (bool) {\n return state.completedTranches[milestoneIndex];\n }\n\n // total amount of bought token\n function totalTokenBought() public view returns (uint) {\n return state.totalTokenBought;\n }\n\n // total amount of refunded token\n function totalTokenRefunded() public view returns (uint) {\n return state.totalTokenRefunded;\n }\n\n function getInvestorFundedAmount(address _investor, bytes32 _symbol) public view returns(uint) {\n return state.fundedPerInvestor[_investor].amountOf(_symbol);\n }\n\n function getInvestorFundedAssetsSymbols(address _investor) public view returns(bytes32[]) {\n return state.fundedPerInvestor[_investor].symbolsList();\n }\n\n function getInvestorTokenBoughtAmount(address _investor) public view returns (uint) {\n return state.tokenBoughtPerInvestor[_investor];\n }\n\n function getTotalFundedAmount(bytes32 _symbol) public view returns (uint) {\n return state.totalFunded.amountOf(_symbol);\n }\n\n function getTotalFundedAssetsSymbols() public view returns (bytes32[]) {\n return state.totalFunded.symbolsList();\n }\n\n function getTotalFundedReleased(bytes32 _symbol) public view returns (uint) {\n return state.totalFundedReleased[_symbol];\n }\n\n /**\n * @notice Get tranche invoice\n * @return uint[3] result:\n * [tranchePercent, totalTranchePercentBefore, milestoneIndex]\n */\n function getTrancheInvoice() public view returns (uint[3] result) {\n return Fund.getTrancheInvoice(\n state,\n trancheTransferAllowed(),\n crowdsale\n );\n }\n\n /**\n * @notice Realise project tranche\n */\n function tranche() external onlyProjectOwner nonReentrant {\n require(trancheTransferAllowed());\n\n uint[3] memory trancheInvoice = getTrancheInvoice();\n\n require(trancheInvoice[0] > 0);\n require(state.totalFunded.symbolsList().length != 0);\n\n state.completedTranches[trancheInvoice[2]] = true;\n state.totalTranchePercentReleased = state.totalTranchePercentReleased.add(trancheInvoice[0]);\n\n _transferTranche(trancheInvoice);\n\n emit TrancheReleased(msg.sender, trancheInvoice[0]);\n }\n\n function _transferTranche(uint[3] _invoice) internal {\n Fund.transferTranche(\n state,\n _invoice,\n trancheFeePercent,\n serviceWallet,\n rates\n );\n }\n\n /**\n * @notice Refund bought tokens\n */\n function refund(uint tokenAmount) external nonReentrant {\n require(tokenRefundAllowed());\n require(tokenAmount != 0);\n require(state.tokenBoughtPerInvestor[msg.sender] >= tokenAmount);\n require(wToken.balanceOf(msg.sender) >= tokenAmount);\n require(wToken.allowance(msg.sender, address(this)) >= tokenAmount);\n\n _refundAssets(tokenAmount);\n\n state.totalTokenRefunded = state.totalTokenRefunded.add(tokenAmount);\n state.tokenBoughtPerInvestor[msg.sender] = state.tokenBoughtPerInvestor[msg.sender].sub(tokenAmount);\n\n require(wToken.transferFrom(msg.sender, swap, tokenAmount));\n\n emit TokenRefunded(msg.sender, tokenAmount);\n }\n\n function _refundAssets(uint tokenAmount) internal {\n Fund.refundAssets(\n state,\n tokenAmount,\n rates\n );\n }\n\n function tokenRefundAllowed() public view returns (bool) {\n (uint index, bool found) = crowdsale.getCurrentMilestoneIndex();\n\n // first milestone is reserved for the project to claim initial amount of payments. No refund allowed at this stage.\n if(index == 0) return;\n\n (uint32 endDate, , , uint32 withdrawalWindow, , ) = crowdsale.getMilestone(index);\n\n return endDate <= now && now < withdrawalWindow;\n }\n\n function trancheTransferAllowed() public view returns (bool) {\n (uint index, bool found) = crowdsale.getCurrentMilestoneIndex();\n\n if(!found) return;\n\n return index == 0 || isWithdrawalWindowActive();\n }\n\n function isWithdrawalWindowActive() public view returns (bool) {\n (uint index, bool found) = crowdsale.getCurrentMilestoneIndex();\n\n if(index == 0 || !found) return;\n\n (uint32 endDate, , ,uint32 lastWithdrawalWindow, , ) = crowdsale.getMilestone(index);\n\n return endDate > now || now >= lastWithdrawalWindow;\n }\n\n modifier onlyCrowdsale {\n require(msg.sender == address(crowdsale));\n\n _;\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", "exportedSymbols": { "W12Fund": [ - 4535 + 4056 ] }, - "id": 4536, + "id": 4057, "nodeType": "SourceUnit", "nodes": [ { - "id": 3281, + "id": 3304, "literals": [ "solidity", "^", @@ -640,126 +774,170 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:6" + "src": "0:24:12" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 3282, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 3305, "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 10135, - "src": "26:63:6", + "scope": 4057, + "sourceUnit": 12454, + "src": "26:65:12", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 3283, + "absolutePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "file": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "id": 3306, "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 9778, - "src": "90:61:6", + "scope": 4057, + "sourceUnit": 13259, + "src": "92:67:12", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 3284, + "id": 3307, "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 10049, - "src": "152:59:6", + "scope": 4057, + "sourceUnit": 12389, + "src": "160:59:12", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 3285, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 3308, "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 10212, - "src": "212:63:6", + "scope": 4057, + "sourceUnit": 13084, + "src": "220:64:12", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "file": "./IW12Crowdsale.sol", - "id": 3286, + "id": 3309, "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 1225, - "src": "276:29:6", + "scope": 4057, + "sourceUnit": 1761, + "src": "285:29:12", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", "file": "./IW12Fund.sol", - "id": 3287, + "id": 3310, "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 1262, - "src": "306:24:6", + "scope": 4057, + "sourceUnit": 1804, + "src": "315:24:12", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "file": "../rates/IRates.sol", - "id": 3288, + "id": 3311, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 10015, + "src": "340:29:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", + "file": "../libs/Utils.sol", + "id": 3312, "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 7280, - "src": "331:29:6", + "scope": 4057, + "sourceUnit": 8379, + "src": "370:27:12", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "file": "../libs/Percent.sol", - "id": 3289, + "id": 3313, "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 5215, - "src": "361:29:6", + "scope": 4057, + "sourceUnit": 6432, + "src": "398:29:12", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/FundAccount.sol", "file": "../libs/FundAccount.sol", - "id": 3290, + "id": 3314, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 6170, + "src": "428:33:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Fund.sol", + "file": "../libs/Fund.sol", + "id": 3315, "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 4953, - "src": "391:33:6", + "scope": 4057, + "sourceUnit": 6009, + "src": "462:26:12", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "../versioning/Versionable.sol", - "id": 3291, + "id": 3316, "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 9517, - "src": "425:39:6", + "scope": 4057, + "sourceUnit": 11834, + "src": "489:39:12", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", "file": "../token/IWToken.sol", - "id": 3292, + "id": 3317, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 10486, + "src": "529:30:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/AdminRole.sol", + "file": "../access/roles/AdminRole.sol", + "id": 3318, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 1353, + "src": "560:39:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/ProjectOwnerRole.sol", + "file": "../access/roles/ProjectOwnerRole.sol", + "id": 3319, "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 7895, - "src": "465:30:6", + "scope": 4057, + "sourceUnit": 1620, + "src": "600:46:12", "symbolAliases": [], "unitAlias": "" }, @@ -769,116 +947,160 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3293, - "name": "Versionable", + "id": 3320, + "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "517:11:6", + "referencedDeclaration": 1803, + "src": "668:8:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", - "typeString": "contract Versionable" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } }, - "id": 3294, + "id": 3321, "nodeType": "InheritanceSpecifier", - "src": "517:11:6" + "src": "668:8:12" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3295, - "name": "IW12Fund", + "id": 3322, + "name": "AdminRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "530:8:6", + "referencedDeclaration": 1352, + "src": "678:9:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_contract$_AdminRole_$1352", + "typeString": "contract AdminRole" + } + }, + "id": 3323, + "nodeType": "InheritanceSpecifier", + "src": "678:9:12" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3324, + "name": "ProjectOwnerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1619, + "src": "689:16:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ProjectOwnerRole_$1619", + "typeString": "contract ProjectOwnerRole" + } + }, + "id": 3325, + "nodeType": "InheritanceSpecifier", + "src": "689:16:12" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3326, + "name": "Versionable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11833, + "src": "707:11:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Versionable_$11833", + "typeString": "contract Versionable" } }, - "id": 3296, + "id": 3327, "nodeType": "InheritanceSpecifier", - "src": "530:8:6" + "src": "707:11:12" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3297, - "name": "Ownable", + "id": 3328, + "name": "Secondary", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "540:7:6", + "referencedDeclaration": 12453, + "src": "720:9:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" } }, - "id": 3298, + "id": 3329, "nodeType": "InheritanceSpecifier", - "src": "540:7:6" + "src": "720:9:12" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3299, + "id": 3330, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9777, - "src": "549:15:6", + "referencedDeclaration": 13258, + "src": "731:15:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9777", + "typeIdentifier": "t_contract$_ReentrancyGuard_$13258", "typeString": "contract ReentrancyGuard" } }, - "id": 3300, + "id": 3331, "nodeType": "InheritanceSpecifier", - "src": "549:15:6" + "src": "731:15:12" } ], "contractDependencies": [ - 1261, - 9516, - 9777, - 10134 + 1352, + 1375, + 1421, + 1619, + 1803, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 4535, + "id": 4056, "linearizedBaseContracts": [ - 4535, - 9777, - 10134, - 1261, - 9516 + 4056, + 13258, + 12453, + 11833, + 1619, + 1352, + 1803, + 1421, + 1375 ], "name": "W12Fund", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3303, + "id": 3334, "libraryName": { "contractScope": null, - "id": 3301, + "id": 3332, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "577:8:6", + "referencedDeclaration": 12388, + "src": "759:8:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "571:24:6", + "src": "753:24:12", "typeName": { - "id": 3302, + "id": 3333, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "590:4:6", + "src": "772:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -886,26 +1108,26 @@ } }, { - "id": 3306, + "id": 3337, "libraryName": { "contractScope": null, - "id": 3304, + "id": 3335, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5214, - "src": "606:7:6", + "referencedDeclaration": 6431, + "src": "788:7:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$5214", + "typeIdentifier": "t_contract$_Percent_$6431", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "600:23:6", + "src": "782:23:12", "typeName": { - "id": 3305, + "id": 3336, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "618:4:6", + "src": "800:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -913,41 +1135,41 @@ } }, { - "id": 3309, + "id": 3340, "libraryName": { "contractScope": null, - "id": 3307, + "id": 3338, "name": "FundAccount", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4952, - "src": "634:11:6", + "referencedDeclaration": 6169, + "src": "816:11:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_FundAccount_$4952", + "typeIdentifier": "t_contract$_FundAccount_$6169", "typeString": "library FundAccount" } }, "nodeType": "UsingForDirective", - "src": "628:42:6", + "src": "810:42:12", "typeName": { "contractScope": null, - "id": 3308, + "id": 3339, "name": "FundAccount.Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "650:19:6", + "referencedDeclaration": 6026, + "src": "832:19:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", "typeString": "struct FundAccount.Account" } } }, { "constant": true, - "id": 3314, + "id": 3345, "name": "METHOD_ETH", "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "676:44:6", + "scope": 4056, + "src": "858:44:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -955,10 +1177,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3310, + "id": 3341, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "676:7:6", + "src": "858:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -970,14 +1192,14 @@ { "argumentTypes": null, "hexValue": "455448", - "id": 3312, + "id": 3343, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "714:5:6", + "src": "896:5:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", @@ -993,20 +1215,20 @@ "typeString": "literal_string \"ETH\"" } ], - "id": 3311, + "id": 3342, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "706:7:6", + "src": "888:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": "bytes32" }, - "id": 3313, + "id": 3344, "isConstant": false, "isLValue": false, "isPure": true, @@ -1014,7 +1236,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "706:14:6", + "src": "888:14:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1024,11 +1246,11 @@ }, { "constant": true, - "id": 3319, + "id": 3350, "name": "METHOD_USD", "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "726:44:6", + "scope": 4056, + "src": "908:44:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1036,10 +1258,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3315, + "id": 3346, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "726:7:6", + "src": "908:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1051,14 +1273,14 @@ { "argumentTypes": null, "hexValue": "555344", - "id": 3317, + "id": 3348, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "764:5:6", + "src": "946:5:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", @@ -1074,20 +1296,20 @@ "typeString": "literal_string \"USD\"" } ], - "id": 3316, + "id": 3347, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "756:7:6", + "src": "938:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": "bytes32" }, - "id": 3318, + "id": 3349, "isConstant": false, "isLValue": false, "isPure": true, @@ -1095,7 +1317,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "756:14:6", + "src": "938:14:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1105,26 +1327,26 @@ }, { "constant": false, - "id": 3321, + "id": 3352, "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "777:30:6", + "scope": 4056, + "src": "959:30:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 3320, + "id": 3351, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "777:13:6", + "referencedDeclaration": 1760, + "src": "959:13:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, @@ -1133,26 +1355,26 @@ }, { "constant": false, - "id": 3323, + "id": 3354, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "813:21:6", + "scope": 4056, + "src": "995:21:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 3322, + "id": 3353, "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "813:7:6", + "referencedDeclaration": 10485, + "src": "995:7:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, @@ -1161,26 +1383,26 @@ }, { "constant": false, - "id": 3325, + "id": 3356, "name": "rates", "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "840:19:6", + "scope": 4056, + "src": "1022:19:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 3324, + "id": 3355, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "840:6:6", + "referencedDeclaration": 10014, + "src": "1022:6:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -1189,11 +1411,11 @@ }, { "constant": false, - "id": 3327, + "id": 3358, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "865:19:6", + "scope": 4056, + "src": "1047:19:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1201,10 +1423,10 @@ "typeString": "address" }, "typeName": { - "id": 3326, + "id": 3357, "name": "address", "nodeType": "ElementaryTypeName", - "src": "865:7:6", + "src": "1047:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1215,11 +1437,11 @@ }, { "constant": false, - "id": 3329, + "id": 3360, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "890:28:6", + "scope": 4056, + "src": "1072:28:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1227,10 +1449,10 @@ "typeString": "address" }, "typeName": { - "id": 3328, + "id": 3359, "name": "address", "nodeType": "ElementaryTypeName", - "src": "890:7:6", + "src": "1072:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1241,37 +1463,11 @@ }, { "constant": false, - "id": 3331, + "id": 3362, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "956:29:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3330, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "956:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3333, - "name": "totalTranchePercentReleased", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1040:39:6", + "scope": 4056, + "src": "1138:29:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1279,10 +1475,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3332, + "id": 3361, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1040:4:6", + "src": "1138:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1293,261 +1489,27 @@ }, { "constant": false, - "id": 3337, - "name": "completedTranches", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1127:47:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "typeName": { - "id": 3336, - "keyType": { - "id": 3334, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1136:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "1127:22:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 3335, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1144:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3339, - "name": "totalFunded", + "id": 3364, + "name": "state", "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1208:31:6", + "scope": 4056, + "src": "1174:16:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State" }, "typeName": { "contractScope": null, - "id": 3338, - "name": "FundAccount.Account", + "id": 3363, + "name": "Fund.State", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "1208:19:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", - "typeString": "struct FundAccount.Account" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3343, - "name": "totalFundedReleased", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1373:44:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3342, - "keyType": { - "id": 3340, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1381:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1373:24:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3341, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1392:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3345, - "name": "totalTokenBought", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1459:28:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3344, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1459:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3347, - "name": "totalTokenRefunded", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1531:30:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3346, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1531:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3351, - "name": "tokenBoughtPerInvestor", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1616:48:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3350, - "keyType": { - "id": 3348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1625:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1616:25:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3349, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1636:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3355, - "name": "fundedPerInvestor", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1714:58:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account)" - }, - "typeName": { - "id": 3354, - "keyType": { - "id": 3352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1723:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1714:40:6", + "referencedDeclaration": 5253, + "src": "1174:10:12", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account)" - }, - "valueType": { - "contractScope": null, - "id": 3353, - "name": "FundAccount.Account", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "1734:19:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", - "typeString": "struct FundAccount.Account" - } + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" } }, "value": null, @@ -1556,21 +1518,21 @@ { "anonymous": false, "documentation": null, - "id": 3365, + "id": 3374, "name": "FundsReceived", "nodeType": "EventDefinition", "parameters": { - "id": 3364, + "id": 3373, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3357, + "id": 3366, "indexed": true, "name": "investor", "nodeType": "VariableDeclaration", - "scope": 3365, - "src": "1799:24:6", + "scope": 3374, + "src": "1217:24:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1578,10 +1540,10 @@ "typeString": "address" }, "typeName": { - "id": 3356, + "id": 3365, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1799:7:6", + "src": "1217:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1592,12 +1554,12 @@ }, { "constant": false, - "id": 3359, + "id": 3368, "indexed": false, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 3365, - "src": "1825:16:6", + "scope": 3374, + "src": "1243:16:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1605,10 +1567,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3358, + "id": 3367, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1825:4:6", + "src": "1243:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1619,12 +1581,12 @@ }, { "constant": false, - "id": 3361, + "id": 3370, "indexed": false, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3365, - "src": "1843:14:6", + "scope": 3374, + "src": "1261:14:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1632,10 +1594,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3360, + "id": 3369, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1843:7:6", + "src": "1261:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1646,12 +1608,12 @@ }, { "constant": false, - "id": 3363, + "id": 3372, "indexed": false, "name": "cost", "nodeType": "VariableDeclaration", - "scope": 3365, - "src": "1859:9:6", + "scope": 3374, + "src": "1277:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1659,10 +1621,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3362, + "id": 3371, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1859:4:6", + "src": "1277:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1672,28 +1634,28 @@ "visibility": "internal" } ], - "src": "1798:71:6" + "src": "1216:71:12" }, - "src": "1779:91:6" + "src": "1197:91:12" }, { "anonymous": false, "documentation": null, - "id": 3373, + "id": 3382, "name": "AssetRefunded", "nodeType": "EventDefinition", "parameters": { - "id": 3372, + "id": 3381, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3367, + "id": 3376, "indexed": true, "name": "investor", "nodeType": "VariableDeclaration", - "scope": 3373, - "src": "1895:24:6", + "scope": 3382, + "src": "1313:24:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1701,10 +1663,10 @@ "typeString": "address" }, "typeName": { - "id": 3366, + "id": 3375, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1895:7:6", + "src": "1313:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1715,12 +1677,12 @@ }, { "constant": false, - "id": 3369, + "id": 3378, "indexed": false, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3373, - "src": "1921:14:6", + "scope": 3382, + "src": "1339:14:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1728,10 +1690,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3368, + "id": 3377, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1921:7:6", + "src": "1339:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1742,12 +1704,12 @@ }, { "constant": false, - "id": 3371, + "id": 3380, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3373, - "src": "1937:11:6", + "scope": 3382, + "src": "1355:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1755,10 +1717,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3370, + "id": 3379, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1937:4:6", + "src": "1355:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1768,28 +1730,28 @@ "visibility": "internal" } ], - "src": "1894:55:6" + "src": "1312:55:12" }, - "src": "1875:75:6" + "src": "1293:75:12" }, { "anonymous": false, "documentation": null, - "id": 3379, + "id": 3388, "name": "TokenRefunded", "nodeType": "EventDefinition", "parameters": { - "id": 3378, + "id": 3387, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3375, + "id": 3384, "indexed": true, "name": "investor", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1975:24:6", + "scope": 3388, + "src": "1393:24:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1797,10 +1759,10 @@ "typeString": "address" }, "typeName": { - "id": 3374, + "id": 3383, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1975:7:6", + "src": "1393:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1811,12 +1773,12 @@ }, { "constant": false, - "id": 3377, + "id": 3386, "indexed": false, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "2001:16:6", + "scope": 3388, + "src": "1419:16:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1824,10 +1786,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3376, + "id": 3385, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2001:4:6", + "src": "1419:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1837,28 +1799,28 @@ "visibility": "internal" } ], - "src": "1974:44:6" + "src": "1392:44:12" }, - "src": "1955:64:6" + "src": "1373:64:12" }, { "anonymous": false, "documentation": null, - "id": 3387, + "id": 3396, "name": "TrancheTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 3386, + "id": 3395, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3381, + "id": 3390, "indexed": true, "name": "receiver", "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "2049:24:6", + "scope": 3396, + "src": "1467:24:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1866,10 +1828,10 @@ "typeString": "address" }, "typeName": { - "id": 3380, + "id": 3389, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2049:7:6", + "src": "1467:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1880,12 +1842,12 @@ }, { "constant": false, - "id": 3383, + "id": 3392, "indexed": false, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "2075:14:6", + "scope": 3396, + "src": "1493:14:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1893,10 +1855,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3382, + "id": 3391, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2075:7:6", + "src": "1493:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1907,12 +1869,12 @@ }, { "constant": false, - "id": 3385, + "id": 3394, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "2091:11:6", + "scope": 3396, + "src": "1509:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1920,10 +1882,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3384, + "id": 3393, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2091:4:6", + "src": "1509:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1933,28 +1895,28 @@ "visibility": "internal" } ], - "src": "2048:55:6" + "src": "1466:55:12" }, - "src": "2024:80:6" + "src": "1442:80:12" }, { "anonymous": false, "documentation": null, - "id": 3393, + "id": 3402, "name": "TrancheReleased", "nodeType": "EventDefinition", "parameters": { - "id": 3392, + "id": 3401, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3389, + "id": 3398, "indexed": true, "name": "receiver", "nodeType": "VariableDeclaration", - "scope": 3393, - "src": "2131:24:6", + "scope": 3402, + "src": "1549:24:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1962,10 +1924,10 @@ "typeString": "address" }, "typeName": { - "id": 3388, + "id": 3397, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2131:7:6", + "src": "1549:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1976,12 +1938,12 @@ }, { "constant": false, - "id": 3391, + "id": 3400, "indexed": false, "name": "percent", "nodeType": "VariableDeclaration", - "scope": 3393, - "src": "2157:12:6", + "scope": 3402, + "src": "1575:12:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1989,10 +1951,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3390, + "id": 3399, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2157:4:6", + "src": "1575:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2002,15 +1964,15 @@ "visibility": "internal" } ], - "src": "2130:40:6" + "src": "1548:40:12" }, - "src": "2109:62:6" + "src": "1527:62:12" }, { "body": { - "id": 3433, + "id": 3442, "nodeType": "Block", - "src": "2271:210:6", + "src": "1689:210:12", "statements": [ { "expression": { @@ -2022,7 +1984,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3414, + "id": 3423, "isConstant": false, "isLValue": false, "isPure": false, @@ -2034,32 +1996,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3406, + "id": 3415, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3397, - "src": "2289:18:6", + "referencedDeclaration": 3406, + "src": "1707:18:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3407, + "id": 3416, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "2289:28:6", + "referencedDeclaration": 6386, + "src": "1707:28:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 3408, + "id": 3417, "isConstant": false, "isLValue": false, "isPure": false, @@ -2067,7 +2029,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2289:30:6", + "src": "1707:30:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2081,7 +2043,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3413, + "id": 3422, "isConstant": false, "isLValue": false, "isPure": false, @@ -2093,32 +2055,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3409, + "id": 3418, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3397, - "src": "2323:18:6", + "referencedDeclaration": 3406, + "src": "1741:18:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3410, + "id": 3419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "2323:30:6", + "referencedDeclaration": 6430, + "src": "1741:30:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 3411, + "id": 3420, "isConstant": false, "isLValue": false, "isPure": false, @@ -2126,7 +2088,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2323:32:6", + "src": "1741:32:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2137,14 +2099,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 3412, + "id": 3421, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2358:3:6", + "src": "1776:3:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -2152,13 +2114,13 @@ }, "value": "100" }, - "src": "2323:38:6", + "src": "1741:38:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2289:72:6", + "src": "1707:72:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2172,21 +2134,21 @@ "typeString": "bool" } ], - "id": 3405, + "id": 3414, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2281:7:6", + "referencedDeclaration": 13444, + "src": "1699:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3415, + "id": 3424, "isConstant": false, "isLValue": false, "isPure": false, @@ -2194,15 +2156,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2281:81:6", + "src": "1699:81:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3416, + "id": 3425, "nodeType": "ExpressionStatement", - "src": "2281:81:6" + "src": "1699:81:12" }, { "expression": { @@ -2214,21 +2176,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3422, + "id": 3431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3418, + "id": 3427, "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2380:6:6", + "referencedDeclaration": 3408, + "src": "1798:6:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -2240,14 +2202,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3420, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2398:1:6", + "src": "1816:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2263,20 +2225,20 @@ "typeString": "int_const 0" } ], - "id": 3419, + "id": 3428, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2390:7:6", + "src": "1808:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3421, + "id": 3430, "isConstant": false, "isLValue": false, "isPure": true, @@ -2284,13 +2246,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2390:10:6", + "src": "1808:10:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2380:20:6", + "src": "1798:20:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2304,21 +2266,21 @@ "typeString": "bool" } ], - "id": 3417, + "id": 3426, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2372:7:6", + "referencedDeclaration": 13444, + "src": "1790:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3423, + "id": 3432, "isConstant": false, "isLValue": false, "isPure": false, @@ -2326,32 +2288,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2372:29:6", + "src": "1790:29:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3424, + "id": 3433, "nodeType": "ExpressionStatement", - "src": "2372:29:6" + "src": "1790:29:12" }, { "expression": { "argumentTypes": null, - "id": 3427, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3425, + "id": 3434, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3331, - "src": "2412:17:6", + "referencedDeclaration": 3362, + "src": "1830:17:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2361,45 +2323,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3426, + "id": 3435, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3397, - "src": "2432:18:6", + "referencedDeclaration": 3406, + "src": "1850:18:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2412:38:6", + "src": "1830:38:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3428, + "id": 3437, "nodeType": "ExpressionStatement", - "src": "2412:38:6" + "src": "1830:38:12" }, { "expression": { "argumentTypes": null, - "id": 3431, + "id": 3440, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3429, + "id": 3438, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "2460:5:6", + "referencedDeclaration": 3356, + "src": "1878:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -2407,31 +2369,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3430, + "id": 3439, "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2468:6:6", + "referencedDeclaration": 3408, + "src": "1886:6:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "src": "2460:14:6", + "src": "1878:14:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 3432, + "id": 3441, "nodeType": "ExpressionStatement", - "src": "2460:14:6" + "src": "1878:14:12" } ] }, "documentation": null, - "id": 3434, + "id": 3443, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2440,49 +2402,49 @@ "arguments": [ { "argumentTypes": null, - "id": 3402, + "id": 3411, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "2255:7:6", + "referencedDeclaration": 3404, + "src": "1673:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3403, + "id": 3412, "modifierName": { "argumentTypes": null, - "id": 3401, + "id": 3410, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "2243:11:6", + "referencedDeclaration": 11833, + "src": "1661:11:12", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "2243:20:6" + "src": "1661:20:12" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3400, + "id": 3409, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3395, + "id": 3404, "name": "version", "nodeType": "VariableDeclaration", - "scope": 3434, - "src": "2189:12:6", + "scope": 3443, + "src": "1607:12:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2490,10 +2452,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3394, + "id": 3403, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2189:4:6", + "src": "1607:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2504,11 +2466,11 @@ }, { "constant": false, - "id": 3397, + "id": 3406, "name": "_trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 3434, - "src": "2203:23:6", + "scope": 3443, + "src": "1621:23:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2516,10 +2478,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3396, + "id": 3405, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2203:4:6", + "src": "1621:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2530,26 +2492,26 @@ }, { "constant": false, - "id": 3399, + "id": 3408, "name": "_rates", "nodeType": "VariableDeclaration", - "scope": 3434, - "src": "2228:13:6", + "scope": 3443, + "src": "1646:13:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 3398, + "id": 3407, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "2228:6:6", + "referencedDeclaration": 10014, + "src": "1646:6:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -2557,26 +2519,26 @@ "visibility": "internal" } ], - "src": "2188:54:6" + "src": "1606:54:12" }, "payable": false, "returnParameters": { - "id": 3404, + "id": 3413, "nodeType": "ParameterList", "parameters": [], - "src": "2271:0:6" + "src": "1689:0:12" }, - "scope": 4535, - "src": "2177:304:6", + "scope": 4056, + "src": "1595:304:12", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3471, + "id": 3454, "nodeType": "Block", - "src": "2554:188:6", + "src": "1958:36:12", "statements": [ { "expression": { @@ -2584,115 +2546,37 @@ "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 3451, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3445, + "src": "1978:8:12", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "id": 3446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3442, - "name": "_crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "2572:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3444, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2594:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2586:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2586:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2572:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 3441, - "name": "require", + "id": 3450, + "name": "_addAdmin", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2564:7:6", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "1968:9:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 3447, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -2700,425 +2584,97 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2564:33:6", + "src": "1968:19:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3448, + "id": 3453, "nodeType": "ExpressionStatement", - "src": "2564:33:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3450, - "name": "_crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "2615:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getWToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 1132, - "src": "2615:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWToken_$7894_$", - "typeString": "function () view external returns (contract IWToken)" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2615:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3454, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2649:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3453, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2641:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2641:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2615:36:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3449, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2607:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2607:45:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3458, - "nodeType": "ExpressionStatement", - "src": "2607:45:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3459, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "2663:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3460, - "name": "_crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "2675:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "src": "2663:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3462, - "nodeType": "ExpressionStatement", - "src": "2663:22:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3463, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3323, - "src": "2695:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3465, - "name": "_crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "2712:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getWToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 1132, - "src": "2712:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWToken_$7894_$", - "typeString": "function () view external returns (contract IWToken)" - } - }, - "id": 3467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2712:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - ], - "id": 3464, - "name": "IWToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7894, - "src": "2704:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWToken_$7894_$", - "typeString": "type(contract IWToken)" - } - }, - "id": 3468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2704:31:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "src": "2695:40:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 3470, - "nodeType": "ExpressionStatement", - "src": "2695:40:6" + "src": "1968:19:12" } ] }, "documentation": null, - "id": 3472, + "id": 3455, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3439, + "id": 3448, "modifierName": { "argumentTypes": null, - "id": 3438, - "name": "onlyOwner", + "id": 3447, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "2535:9:6", + "referencedDeclaration": 1297, + "src": "1948:9:12", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2535:9:6" + "src": "1948:9:12" } ], - "name": "setCrowdsale", + "name": "addAdmin", "nodeType": "FunctionDefinition", "parameters": { - "id": 3437, + "id": 3446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3436, - "name": "_crowdsale", + "id": 3445, + "name": "_account", "nodeType": "VariableDeclaration", - "scope": 3472, - "src": "2509:24:6", + "scope": 3455, + "src": "1923:16:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "contractScope": null, - "id": 3435, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "2509:13:6", + "id": 3444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1923:7:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "2508:26:6" + "src": "1922:18:12" }, "payable": false, "returnParameters": { - "id": 3440, + "id": 3449, "nodeType": "ParameterList", "parameters": [], - "src": "2554:0:6" + "src": "1958:0:12" }, - "scope": 4535, - "src": "2487:255:6", + "scope": 4056, + "src": "1905:89:12", "stateMutability": "nonpayable", - "superFunction": 1232, - "visibility": "external" + "superFunction": 1366, + "visibility": "public" }, { "body": { - "id": 3491, + "id": 3466, "nodeType": "Block", - "src": "2799:68:6", + "src": "2056:39:12", "statements": [ { "expression": { @@ -3126,115 +2682,37 @@ "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 3463, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3457, + "src": "2079:8:12", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3474, - "src": "2817:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2834:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2826:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2826:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2817:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 3479, - "name": "require", + "id": 3462, + "name": "_removeAdmin", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2809:7:6", + "overloadedDeclarations": [], + "referencedDeclaration": 1351, + "src": "2066:12:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 3485, + "id": 3464, "isConstant": false, "isLValue": false, "isPure": false, @@ -3242,103 +2720,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2809:28:6", + "src": "2066:22:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3486, - "nodeType": "ExpressionStatement", - "src": "2809:28:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3487, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3327, - "src": "2848:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3488, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3474, - "src": "2855:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3490, + "id": 3465, "nodeType": "ExpressionStatement", - "src": "2848:12:6" + "src": "2066:22:12" } ] }, "documentation": null, - "id": 3492, + "id": 3467, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3477, + "id": 3460, "modifierName": { "argumentTypes": null, - "id": 3476, - "name": "onlyOwner", + "id": 3459, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "2780:9:6", + "referencedDeclaration": 1297, + "src": "2046:9:12", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2780:9:6" + "src": "2046:9:12" } ], - "name": "setSwap", + "name": "removeAdmin", "nodeType": "FunctionDefinition", "parameters": { - "id": 3475, + "id": 3458, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3474, - "name": "_swap", + "id": 3457, + "name": "_account", "nodeType": "VariableDeclaration", - "scope": 3492, - "src": "2765:13:6", + "scope": 3467, + "src": "2021:16:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3346,10 +2778,10 @@ "typeString": "address" }, "typeName": { - "id": 3473, + "id": 3456, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2765:7:6", + "src": "2021:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3359,26 +2791,26 @@ "visibility": "internal" } ], - "src": "2764:15:6" + "src": "2020:18:12" }, "payable": false, "returnParameters": { - "id": 3478, + "id": 3461, "nodeType": "ParameterList", "parameters": [], - "src": "2799:0:6" + "src": "2056:0:12" }, - "scope": 4535, - "src": "2748:119:6", + "scope": 4056, + "src": "2000:95:12", "stateMutability": "nonpayable", - "superFunction": 1242, - "visibility": "external" + "superFunction": 1374, + "visibility": "public" }, { "body": { - "id": 3511, + "id": 3478, "nodeType": "Block", - "src": "2942:95:6", + "src": "2161:43:12", "statements": [ { "expression": { @@ -3386,115 +2818,37 @@ "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 3475, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3469, + "src": "2188:8:12", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "id": 3504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3500, - "name": "_serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "2960:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2986:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2978:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2978:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2960:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 3499, - "name": "require", + "id": 3474, + "name": "_addProjectOwner", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2952:7:6", + "overloadedDeclarations": [], + "referencedDeclaration": 1602, + "src": "2171:16:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 3505, + "id": 3476, "isConstant": false, "isLValue": false, "isPure": false, @@ -3502,103 +2856,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2952:37:6", + "src": "2171:26:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3506, - "nodeType": "ExpressionStatement", - "src": "2952:37:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3507, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3329, - "src": "3000:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3508, - "name": "_serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "3016:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3000:30:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3510, + "id": 3477, "nodeType": "ExpressionStatement", - "src": "3000:30:6" + "src": "2171:26:12" } ] }, "documentation": null, - "id": 3512, + "id": 3479, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3497, + "id": 3472, "modifierName": { "argumentTypes": null, - "id": 3496, - "name": "onlyOwner", + "id": 3471, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "2923:9:6", + "referencedDeclaration": 1297, + "src": "2151:9:12", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2923:9:6" + "src": "2151:9:12" } ], - "name": "setServiceWallet", + "name": "addProjectOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 3495, + "id": 3470, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3494, - "name": "_serviceWallet", + "id": 3469, + "name": "_account", "nodeType": "VariableDeclaration", - "scope": 3512, - "src": "2899:22:6", + "scope": 3479, + "src": "2126:16:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3606,10 +2914,10 @@ "typeString": "address" }, "typeName": { - "id": 3493, + "id": 3468, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2899:7:6", + "src": "2126:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3619,26 +2927,162 @@ "visibility": "internal" } ], - "src": "2898:24:6" + "src": "2125:18:12" }, "payable": false, "returnParameters": { - "id": 3498, + "id": 3473, "nodeType": "ParameterList", "parameters": [], - "src": "2942:0:6" + "src": "2161:0:12" }, - "scope": 4535, - "src": "2873:164:6", + "scope": 4056, + "src": "2101:103:12", "stateMutability": "nonpayable", - "superFunction": 1237, - "visibility": "external" + "superFunction": 1412, + "visibility": "public" }, { "body": { - "id": 3658, + "id": 3490, + "nodeType": "Block", + "src": "2273:46:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3487, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3481, + "src": "2303:8:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3486, + "name": "_removeProjectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "2283:19:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2283:29:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3489, + "nodeType": "ExpressionStatement", + "src": "2283:29:12" + } + ] + }, + "documentation": null, + "id": 3491, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3484, + "modifierName": { + "argumentTypes": null, + "id": 3483, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2263:9:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2263:9:12" + } + ], + "name": "removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3482, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3481, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 3491, + "src": "2238:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2238:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2237:18:12" + }, + "payable": false, + "returnParameters": { + "id": 3485, + "nodeType": "ParameterList", + "parameters": [], + "src": "2273:0:12" + }, + "scope": 4056, + "src": "2210:109:12", + "stateMutability": "nonpayable", + "superFunction": 1420, + "visibility": "public" + }, + { + "body": { + "id": 3528, "nodeType": "Block", - "src": "3547:991:6", + "src": "2392:188:12", "statements": [ { "expression": { @@ -3647,48 +3091,86 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 3531, + "id": 3503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3529, - "name": "tokenAmount", + "id": 3499, + "name": "_crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3516, - "src": "3565:11:6", + "referencedDeclaration": 3493, + "src": "2410:10:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 3530, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2432:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2424:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3579:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2424:10:12", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "src": "3565:15:6", + "src": "2410:24:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3702,21 +3184,21 @@ "typeString": "bool" } ], - "id": 3528, + "id": 3498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3557:7:6", + "referencedDeclaration": 13444, + "src": "2402:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3532, + "id": 3504, "isConstant": false, "isLValue": false, "isPure": false, @@ -3724,15 +3206,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3557:24:6", + "src": "2402:33:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3533, + "id": 3505, "nodeType": "ExpressionStatement", - "src": "3557:24:6" + "src": "2402:33:12" }, { "expression": { @@ -3741,48 +3223,119 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 3537, + "id": 3513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3535, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "3599:4:6", + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3507, + "name": "_crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3493, + "src": "2453:10:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 1663, + "src": "2453:20:12", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function () view external returns (contract IWToken)" + } + }, + "id": 3509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2453:22:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 3536, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2487:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2479:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3512, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3606:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2479:10:12", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "src": "3599:8:6", + "src": "2453:36:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3796,21 +3349,21 @@ "typeString": "bool" } ], - "id": 3534, + "id": 3506, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3591:7:6", + "referencedDeclaration": 13444, + "src": "2445:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3538, + "id": 3514, "isConstant": false, "isLValue": false, "isPure": false, @@ -3818,110 +3371,261 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3591:17:6", + "src": "2445:45:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3539, + "id": 3515, "nodeType": "ExpressionStatement", - "src": "3591:17:6" + "src": "2445:45:12" }, { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3541, - "name": "costUSD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3522, - "src": "3626:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "id": 3518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3516, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3352, + "src": "2501:9:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3517, + "name": "_crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3493, + "src": "2513:10:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "src": "2501:22:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3519, + "nodeType": "ExpressionStatement", + "src": "2501:22:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 3526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3520, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3354, + "src": "2533:6:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "hexValue": "30", - "id": 3542, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3522, + "name": "_crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3493, + "src": "2550:10:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 1663, + "src": "2550:20:12", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function () view external returns (contract IWToken)" + } + }, + "id": 3524, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "3636:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2550:22:12", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3626:11:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } } ], - "id": 3540, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3618:7:6", + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 3521, + "name": "IWToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10485, + "src": "2542:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWToken_$10485_$", + "typeString": "type(contract IWToken)" + } + }, + "id": 3525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2542:31:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "id": 3544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3618:20:6", + "src": "2533:40:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "id": 3545, + "id": 3527, "nodeType": "ExpressionStatement", - "src": "3618:20:6" + "src": "2533:40:12" + } + ] + }, + "documentation": null, + "id": 3529, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3496, + "modifierName": { + "argumentTypes": null, + "id": 3495, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2373:9:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "2373:9:12" + } + ], + "name": "setCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3493, + "name": "_crowdsale", + "nodeType": "VariableDeclaration", + "scope": 3529, + "src": "2347:24:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 3492, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "2347:13:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2346:26:12" + }, + "payable": false, + "returnParameters": { + "id": 3497, + "nodeType": "ParameterList", + "parameters": [], + "src": "2392:0:12" + }, + "scope": 4056, + "src": "2325:255:12", + "stateMutability": "nonpayable", + "superFunction": 1774, + "visibility": "external" + }, + { + "body": { + "id": 3548, + "nodeType": "Block", + "src": "2637:68:12", + "statements": [ { "expression": { "argumentTypes": null, @@ -3932,19 +3636,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3551, + "id": 3541, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3547, - "name": "investor", + "id": 3537, + "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "3656:8:6", + "referencedDeclaration": 3531, + "src": "2655:5:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3958,14 +3662,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3549, + "id": 3539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3676:1:6", + "src": "2672:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3981,20 +3685,20 @@ "typeString": "int_const 0" } ], - "id": 3548, + "id": 3538, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3668:7:6", + "src": "2664:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3550, + "id": 3540, "isConstant": false, "isLValue": false, "isPure": true, @@ -4002,13 +3706,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3668:10:6", + "src": "2664:10:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3656:22:6", + "src": "2655:19:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4022,21 +3726,21 @@ "typeString": "bool" } ], - "id": 3546, + "id": 3536, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3648:7:6", + "referencedDeclaration": 13444, + "src": "2647:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3552, + "id": 3542, "isConstant": false, "isLValue": false, "isPure": false, @@ -4044,80 +3748,231 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3648:31:6", + "src": "2647:28:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3553, + "id": 3543, "nodeType": "ExpressionStatement", - "src": "3648:31:6" + "src": "2647:28:12" }, { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3713:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3555, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "3697:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 3556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "hasSymbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 7301, - "src": "3697:15:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 3558, - "isConstant": false, + "id": 3546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3544, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "2686:4:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3545, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "2693:5:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2686:12:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3547, + "nodeType": "ExpressionStatement", + "src": "2686:12:12" + } + ] + }, + "documentation": null, + "id": 3549, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3534, + "modifierName": { + "argumentTypes": null, + "id": 3533, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2618:9:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2618:9:12" + } + ], + "name": "setSwap", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3531, + "name": "_swap", + "nodeType": "VariableDeclaration", + "scope": 3549, + "src": "2603:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2603:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2602:15:12" + }, + "payable": false, + "returnParameters": { + "id": 3535, + "nodeType": "ParameterList", + "parameters": [], + "src": "2637:0:12" + }, + "scope": 4056, + "src": "2586:119:12", + "stateMutability": "nonpayable", + "superFunction": 1784, + "visibility": "external" + }, + { + "body": { + "id": 3568, + "nodeType": "Block", + "src": "2780:95:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3561, + "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3697:23:6", + "leftExpression": { + "argumentTypes": null, + "id": 3557, + "name": "_serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "2798:14:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2824:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2816:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2816:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2798:28:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4131,21 +3986,21 @@ "typeString": "bool" } ], - "id": 3554, + "id": 3556, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3689:7:6", + "referencedDeclaration": 13444, + "src": "2790:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3559, + "id": 3562, "isConstant": false, "isLValue": false, "isPure": false, @@ -4153,829 +4008,195 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3689:32:6", + "src": "2790:37:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3560, + "id": 3563, "nodeType": "ExpressionStatement", - "src": "3689:32:6" + "src": "2790:37:12" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 3563, + "id": 3566, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { "argumentTypes": null, - "id": 3561, - "name": "symbol", + "id": 3564, + "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3761:6:6", + "referencedDeclaration": 3360, + "src": "2838:13:12", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "id": 3562, - "name": "METHOD_ETH", + "id": 3565, + "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "3771:10:6", + "referencedDeclaration": 3551, + "src": "2854:14:12", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "3761:20:6", + "src": "2838:30:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "falseBody": { - "id": 3601, - "nodeType": "Block", - "src": "3841:181:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3575, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3877:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3573, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "3863:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 3574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "3863:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 3576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3863:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3572, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3855:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3855:30:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3578, - "nodeType": "ExpressionStatement", - "src": "3855:30:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3588, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10563, - "src": "3962:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - ], - "id": 3587, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3954:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3954:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3583, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3935:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3581, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "3913:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 3582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "3913:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 3584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3913:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3580, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "3907:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 3585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3907:36:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 3586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "3907:46:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 3590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3907:61:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3596, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "4005:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3593, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3993:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3591, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "3972:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3592, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "3972:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" - } - }, - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3972:28:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "3972:32:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3972:38:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3907:103:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3579, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3899:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3899:112:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3600, - "nodeType": "ExpressionStatement", - "src": "3899:112:6" - } - ] - }, - "id": 3602, - "nodeType": "IfStatement", - "src": "3757:265:6", - "trueBody": { - "id": 3571, - "nodeType": "Block", - "src": "3784:51:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3565, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "3806:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3806:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3567, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "3819:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3806:17:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3564, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3798:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3798:26:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3570, - "nodeType": "ExpressionStatement", - "src": "3798:26:6" - } - ] + "id": 3567, + "nodeType": "ExpressionStatement", + "src": "2838:30:12" + } + ] + }, + "documentation": null, + "id": 3569, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3554, + "modifierName": { + "argumentTypes": null, + "id": 3553, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2761:9:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" } }, + "nodeType": "ModifierInvocation", + "src": "2761:9:12" + } + ], + "name": "setServiceWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3551, + "name": "_serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "2737:22:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3550, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2737:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2736:24:12" + }, + "payable": false, + "returnParameters": { + "id": 3555, + "nodeType": "ParameterList", + "parameters": [], + "src": "2780:0:12" + }, + "scope": 4056, + "src": "2711:164:12", + "stateMutability": "nonpayable", + "superFunction": 1779, + "visibility": "external" + }, + { + "body": { + "id": 3596, + "nodeType": "Block", + "src": "3379:190:12", + "statements": [ { "expression": { "argumentTypes": null, - "id": 3612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 3603, - "name": "tokenBoughtPerInvestor", + "id": 3587, + "name": "state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4069:22:6", + "referencedDeclaration": 3364, + "src": "3422:5:12", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "id": 3605, - "indexExpression": { + { "argumentTypes": null, - "id": 3604, + "id": 3588, "name": "investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "4092:8:6", + "referencedDeclaration": 3571, + "src": "3441:8:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4069:32:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3610, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3516, - "src": "4141:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3606, - "name": "tokenBoughtPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4104:22:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3608, - "indexExpression": { - "argumentTypes": null, - "id": 3607, - "name": "investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "4127:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4104:32:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "4104:36:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + { + "argumentTypes": null, + "id": 3589, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "3463:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 3611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4104:49:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4069:84:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3613, - "nodeType": "ExpressionStatement", - "src": "4069:84:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "id": 3618, + "id": 3590, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4199:6:6", + "referencedDeclaration": 3575, + "src": "3488:6:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4983,134 +4204,58 @@ }, { "argumentTypes": null, - "id": 3619, + "id": 3591, "name": "cost", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "4207:4:6", + "referencedDeclaration": 3577, + "src": "3508:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3614, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "4163:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 3616, - "indexExpression": { - "argumentTypes": null, - "id": 3615, - "name": "investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "4181:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4163:27:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } }, - "id": 3617, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 4838, - "src": "4163:35:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" - } - }, - "id": 3620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4163:49:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3621, - "nodeType": "ExpressionStatement", - "src": "4163:49:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "id": 3626, - "name": "METHOD_USD", + "id": 3592, + "name": "costUSD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "4258:10:6", + "referencedDeclaration": 3579, + "src": "3526:7:12", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, { "argumentTypes": null, - "id": 3627, - "name": "costUSD", + "id": 3593, + "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3522, - "src": "4270:7:6", + "referencedDeclaration": 3356, + "src": "3547:5:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } } ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5118,63 +4263,44 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } ], "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3622, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "4222:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 3624, - "indexExpression": { - "argumentTypes": null, - "id": 3623, - "name": "investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "4240:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4222:27:6", + "id": 3584, + "name": "Fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6008, + "src": "3389:4:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" + "typeIdentifier": "t_type$_t_contract$_Fund_$6008_$", + "typeString": "type(library Fund)" } }, - "id": 3625, + "id": 3586, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "deposit", + "memberName": "recordPurchase", "nodeType": "MemberAccess", - "referencedDeclaration": 4838, - "src": "4222:35:6", + "referencedDeclaration": 6007, + "src": "3389:19:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$5253_storage_ptr_$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_contract$_IRates_$10014_$returns$__$", + "typeString": "function (struct Fund.State storage pointer,address,uint256,bytes32,uint256,uint256,contract IRates)" } }, - "id": 3628, + "id": 3594, "isConstant": false, "isLValue": false, "isPure": false, @@ -5182,474 +4308,382 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4222:56:6", + "src": "3389:173:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3629, + "id": 3595, "nodeType": "ExpressionStatement", - "src": "4222:56:6" + "src": "3389:173:12" + } + ] + }, + "documentation": "@dev Record purchase result to the fund and check the fund balance\n@param investor An investor address\n@param tokenAmount Token amount that was bought\n@param symbol Symbol of payment method\n@param cost Cost of token amount\n@param costUSD Cost in USD", + "id": 3597, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3582, + "modifierName": { + "argumentTypes": null, + "id": 3581, + "name": "onlyCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4055, + "src": "3361:13:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "3361:13:12" + } + ], + "name": "recordPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3580, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "id": 3635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3630, - "name": "totalTokenBought", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3345, - "src": "4320:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3633, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3516, - "src": "4360:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3631, - "name": "totalTokenBought", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3345, - "src": "4339:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "4339:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4339:33:6", + "constant": false, + "id": 3571, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 3597, + "src": "3222:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3222:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3573, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 3597, + "src": "3248:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3572, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3248:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3575, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3597, + "src": "3274:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3574, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3274:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3577, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 3597, + "src": "3298:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3298:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3579, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 3597, + "src": "3317:12:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3578, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3317:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3212:123:12" + }, + "payable": true, + "returnParameters": { + "id": 3583, + "nodeType": "ParameterList", + "parameters": [], + "src": "3379:0:12" + }, + "scope": 4056, + "src": "3189:380:12", + "stateMutability": "payable", + "superFunction": 1802, + "visibility": "external" + }, + { + "body": { + "id": 3605, + "nodeType": "Block", + "src": "3690:57:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3602, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "3707:5:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "src": "4320:52:6", + "id": 3603, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTranchePercentReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5234, + "src": "3707:33:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3636, - "nodeType": "ExpressionStatement", - "src": "4320:52:6" - }, + "functionReturnParameters": 3601, + "id": 3604, + "nodeType": "Return", + "src": "3700:40:12" + } + ] + }, + "documentation": null, + "id": 3606, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalTranchePercentReleased", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3598, + "nodeType": "ParameterList", + "parameters": [], + "src": "3660:2:12" + }, + "payable": false, + "returnParameters": { + "id": 3601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3600, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3606, + "src": "3684:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3599, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3684:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3683:6:12" + }, + "scope": 4056, + "src": "3624:123:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3618, + "nodeType": "Block", + "src": "3828:63:12", + "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3640, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4402:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3641, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "4410:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + "baseExpression": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3637, - "name": "totalFunded", + "id": 3613, + "name": "state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "4382:11:6", + "referencedDeclaration": 3364, + "src": "3845:5:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "id": 3639, + "id": 3614, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "deposit", + "memberName": "completedTranches", "nodeType": "MemberAccess", - "referencedDeclaration": 4838, - "src": "4382:19:6", + "referencedDeclaration": 5232, + "src": "3845:23:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 3616, + "indexExpression": { + "argumentTypes": null, + "id": 3615, + "name": "milestoneIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3608, + "src": "3869:14:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 3642, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4382:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3643, - "nodeType": "ExpressionStatement", - "src": "4382:33:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3647, - "name": "METHOD_USD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "4445:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3648, - "name": "costUSD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3522, - "src": "4457:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3644, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "4425:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 4838, - "src": "4425:19:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" - } - }, - "id": 3649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4425:40:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3650, - "nodeType": "ExpressionStatement", - "src": "4425:40:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3652, - "name": "investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "4495:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3653, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3516, - "src": "4505:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3654, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4518:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3655, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "4526:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3651, - "name": "FundsReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3365, - "src": "4481:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,bytes32,uint256)" - } - }, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4481:50:6", + "nodeType": "IndexAccess", + "src": "3845:39:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 3657, - "nodeType": "EmitStatement", - "src": "4476:55:6" + "functionReturnParameters": 3612, + "id": 3617, + "nodeType": "Return", + "src": "3838:46:12" } ] }, - "documentation": "@dev Record purchase result to the fund and check the fund balance\n@param investor An investor address\n@param tokenAmount Token amount that was bought\n@param symbol Symbol of payment method\n@param cost Cost of token amount\n@param costUSD Cost in USD", - "id": 3659, + "documentation": null, + "id": 3619, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3525, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "3532:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - } - ], - "id": 3526, - "modifierName": { - "argumentTypes": null, - "id": 3524, - "name": "onlyFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4534, - "src": "3523:8:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3523:19:6" - } - ], - "name": "recordPurchase", + "isDeclaredConst": true, + "modifiers": [], + "name": "completedTranches", "nodeType": "FunctionDefinition", "parameters": { - "id": 3523, + "id": 3609, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3514, - "name": "investor", - "nodeType": "VariableDeclaration", - "scope": 3659, - "src": "3384:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3384:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3516, - "name": "tokenAmount", + "id": 3608, + "name": "milestoneIndex", "nodeType": "VariableDeclaration", - "scope": 3659, - "src": "3410:16:6", + "scope": 3619, + "src": "3780:19:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5657,10 +4691,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3515, + "id": 3607, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3410:4:6", + "src": "3780:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5668,66 +4702,119 @@ }, "value": null, "visibility": "internal" - }, + } + ], + "src": "3779:21:12" + }, + "payable": false, + "returnParameters": { + "id": 3612, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 3518, - "name": "symbol", + "id": 3611, + "name": "", "nodeType": "VariableDeclaration", - "scope": 3659, - "src": "3436:14:6", + "scope": 3619, + "src": "3822:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "id": 3517, - "name": "bytes32", + "id": 3610, + "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3436:7:6", + "src": "3822:4:12", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "value": null, "visibility": "internal" - }, + } + ], + "src": "3821:6:12" + }, + "scope": 4056, + "src": "3753:138:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3627, + "nodeType": "Block", + "src": "3988:46:12", + "statements": [ { - "constant": false, - "id": 3520, - "name": "cost", - "nodeType": "VariableDeclaration", - "scope": 3659, - "src": "3460:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3519, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3460:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3624, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4005:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3625, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTokenBought", + "nodeType": "MemberAccess", + "referencedDeclaration": 5242, + "src": "4005:22:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - }, + "functionReturnParameters": 3623, + "id": 3626, + "nodeType": "Return", + "src": "3998:29:12" + } + ] + }, + "documentation": null, + "id": 3628, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalTokenBought", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3620, + "nodeType": "ParameterList", + "parameters": [], + "src": "3958:2:12" + }, + "payable": false, + "returnParameters": { + "id": 3623, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 3522, - "name": "costUSD", + "id": 3622, + "name": "", "nodeType": "VariableDeclaration", - "scope": 3659, - "src": "3479:12:6", + "scope": 3628, + "src": "3982:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5735,10 +4822,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3521, + "id": 3621, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3479:4:6", + "src": "3982:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5748,26 +4835,116 @@ "visibility": "internal" } ], - "src": "3374:123:6" + "src": "3981:6:12" }, - "payable": true, - "returnParameters": { - "id": 3527, + "scope": 4056, + "src": "3933:101:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3636, + "nodeType": "Block", + "src": "4135:48:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3633, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4152:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTokenRefunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5244, + "src": "4152:24:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3632, + "id": 3635, + "nodeType": "Return", + "src": "4145:31:12" + } + ] + }, + "documentation": null, + "id": 3637, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalTokenRefunded", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3629, "nodeType": "ParameterList", "parameters": [], - "src": "3547:0:6" + "src": "4105:2:12" }, - "scope": 4535, - "src": "3351:1187:6", - "stateMutability": "payable", - "superFunction": 1260, - "visibility": "external" + "payable": false, + "returnParameters": { + "id": 3632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3631, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3637, + "src": "4129:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3630, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4129:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4128:6:12" + }, + "scope": 4056, + "src": "4078:105:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" }, { "body": { - "id": 3675, + "id": 3654, "nodeType": "Block", - "src": "4639:70:6", + "src": "4284:76:12", "statements": [ { "expression": { @@ -5775,12 +4952,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3672, + "id": 3651, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "4694:7:6", + "referencedDeclaration": 3641, + "src": "4345:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5798,26 +4975,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3668, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "4656:17:6", + "expression": { + "argumentTypes": null, + "id": 3646, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4301:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3647, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "4301:23:12", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", "typeString": "mapping(address => struct FundAccount.Account storage ref)" } }, - "id": 3670, + "id": 3649, "indexExpression": { "argumentTypes": null, - "id": 3669, + "id": 3648, "name": "_investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "4674:9:6", + "referencedDeclaration": 3639, + "src": "4325:9:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5828,27 +5021,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4656:28:6", + "src": "4301:34:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", + "typeIdentifier": "t_struct$_Account_$6026_storage", "typeString": "struct FundAccount.Account storage ref" } }, - "id": 3671, + "id": 3650, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amountOf", "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "4656:37:6", + "referencedDeclaration": 6125, + "src": "4301:43:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" } }, - "id": 3673, + "id": 3652, "isConstant": false, "isLValue": false, "isPure": false, @@ -5856,21 +5049,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4656:46:6", + "src": "4301:52:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3667, - "id": 3674, + "functionReturnParameters": 3645, + "id": 3653, "nodeType": "Return", - "src": "4649:53:6" + "src": "4294:59:12" } ] }, "documentation": null, - "id": 3676, + "id": 3655, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5878,16 +5071,16 @@ "name": "getInvestorFundedAmount", "nodeType": "FunctionDefinition", "parameters": { - "id": 3664, + "id": 3642, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3661, + "id": 3639, "name": "_investor", "nodeType": "VariableDeclaration", - "scope": 3676, - "src": "4577:17:6", + "scope": 3655, + "src": "4222:17:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5895,10 +5088,10 @@ "typeString": "address" }, "typeName": { - "id": 3660, + "id": 3638, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4577:7:6", + "src": "4222:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5909,11 +5102,11 @@ }, { "constant": false, - "id": 3663, + "id": 3641, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 3676, - "src": "4596:15:6", + "scope": 3655, + "src": "4241:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5921,10 +5114,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3662, + "id": 3640, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4596:7:6", + "src": "4241:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5934,20 +5127,20 @@ "visibility": "internal" } ], - "src": "4576:36:6" + "src": "4221:36:12" }, "payable": false, "returnParameters": { - "id": 3667, + "id": 3645, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3666, + "id": 3644, "name": "", "nodeType": "VariableDeclaration", - "scope": 3676, - "src": "4633:4:6", + "scope": 3655, + "src": "4278:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5955,10 +5148,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3665, + "id": 3643, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4633:4:6", + "src": "4278:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5968,19 +5161,19 @@ "visibility": "internal" } ], - "src": "4632:6:6" + "src": "4277:6:12" }, - "scope": 4535, - "src": "4544:165:6", + "scope": 4056, + "src": "4189:171:12", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3690, + "id": 3670, "nodeType": "Block", - "src": "4805:66:6", + "src": "4456:72:12", "statements": [ { "expression": { @@ -5992,26 +5185,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3684, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "4822:17:6", + "expression": { + "argumentTypes": null, + "id": 3663, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4473:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "4473:23:12", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", "typeString": "mapping(address => struct FundAccount.Account storage ref)" } }, - "id": 3686, + "id": 3666, "indexExpression": { "argumentTypes": null, - "id": 3685, + "id": 3665, "name": "_investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3678, - "src": "4840:9:6", + "referencedDeclaration": 3657, + "src": "4497:9:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6022,27 +5231,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4822:28:6", + "src": "4473:34:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", + "typeIdentifier": "t_struct$_Account_$6026_storage", "typeString": "struct FundAccount.Account storage ref" } }, - "id": 3687, + "id": 3667, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "symbolsList", "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "4822:40:6", + "referencedDeclaration": 6137, + "src": "4473:46:12", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" } }, - "id": 3688, + "id": 3668, "isConstant": false, "isLValue": false, "isPure": false, @@ -6050,21 +5259,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4822:42:6", + "src": "4473:48:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "functionReturnParameters": 3683, - "id": 3689, + "functionReturnParameters": 3662, + "id": 3669, "nodeType": "Return", - "src": "4815:49:6" + "src": "4466:55:12" } ] }, "documentation": null, - "id": 3691, + "id": 3671, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6072,16 +5281,16 @@ "name": "getInvestorFundedAssetsSymbols", "nodeType": "FunctionDefinition", "parameters": { - "id": 3679, + "id": 3658, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3678, + "id": 3657, "name": "_investor", "nodeType": "VariableDeclaration", - "scope": 3691, - "src": "4755:17:6", + "scope": 3671, + "src": "4406:17:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6089,10 +5298,10 @@ "typeString": "address" }, "typeName": { - "id": 3677, + "id": 3656, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4755:7:6", + "src": "4406:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6102,20 +5311,20 @@ "visibility": "internal" } ], - "src": "4754:19:6" + "src": "4405:19:12" }, "payable": false, "returnParameters": { - "id": 3683, + "id": 3662, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3682, + "id": 3661, "name": "", "nodeType": "VariableDeclaration", - "scope": 3691, - "src": "4794:9:6", + "scope": 3671, + "src": "4445:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6124,19 +5333,19 @@ }, "typeName": { "baseType": { - "id": 3680, + "id": 3659, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4794:7:6", + "src": "4445:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 3681, + "id": 3660, "length": null, "nodeType": "ArrayTypeName", - "src": "4794:9:6", + "src": "4445:9:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -6146,45 +5355,61 @@ "visibility": "internal" } ], - "src": "4793:11:6" + "src": "4444:11:12" }, - "scope": 4535, - "src": "4715:156:6", + "scope": 4056, + "src": "4366:162:12", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3702, + "id": 3683, "nodeType": "Block", - "src": "4961:57:6", + "src": "4618:63:12", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3698, - "name": "tokenBoughtPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4978:22:6", + "expression": { + "argumentTypes": null, + "id": 3678, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4635:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3679, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "4635:28:12", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3700, + "id": 3681, "indexExpression": { "argumentTypes": null, - "id": 3699, + "id": 3680, "name": "_investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3693, - "src": "5001:9:6", + "referencedDeclaration": 3673, + "src": "4664:9:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6195,21 +5420,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4978:33:6", + "src": "4635:39:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3697, - "id": 3701, + "functionReturnParameters": 3677, + "id": 3682, "nodeType": "Return", - "src": "4971:40:6" + "src": "4628:46:12" } ] }, "documentation": null, - "id": 3703, + "id": 3684, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6217,16 +5442,16 @@ "name": "getInvestorTokenBoughtAmount", "nodeType": "FunctionDefinition", "parameters": { - "id": 3694, + "id": 3674, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3693, + "id": 3673, "name": "_investor", "nodeType": "VariableDeclaration", - "scope": 3703, - "src": "4915:17:6", + "scope": 3684, + "src": "4572:17:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6234,10 +5459,10 @@ "typeString": "address" }, "typeName": { - "id": 3692, + "id": 3672, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4915:7:6", + "src": "4572:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6247,20 +5472,20 @@ "visibility": "internal" } ], - "src": "4914:19:6" + "src": "4571:19:12" }, "payable": false, "returnParameters": { - "id": 3697, + "id": 3677, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3696, + "id": 3676, "name": "", "nodeType": "VariableDeclaration", - "scope": 3703, - "src": "4955:4:6", + "scope": 3684, + "src": "4612:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6268,10 +5493,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3695, + "id": 3675, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4955:4:6", + "src": "4612:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6281,19 +5506,19 @@ "visibility": "internal" } ], - "src": "4954:6:6" + "src": "4611:6:12" }, - "scope": 4535, - "src": "4877:141:6", + "scope": 4056, + "src": "4534:147:12", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3715, + "id": 3697, "nodeType": "Block", - "src": "5098:53:6", + "src": "4761:59:12", "statements": [ { "expression": { @@ -6301,12 +5526,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3712, + "id": 3694, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3705, - "src": "5136:7:6", + "referencedDeclaration": 3686, + "src": "4805:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6322,32 +5547,48 @@ ], "expression": { "argumentTypes": null, - "id": 3710, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "5115:11:6", + "expression": { + "argumentTypes": null, + "id": 3691, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4778:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3692, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "4778:17:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", + "typeIdentifier": "t_struct$_Account_$6026_storage", "typeString": "struct FundAccount.Account storage ref" } }, - "id": 3711, + "id": 3693, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amountOf", "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "5115:20:6", + "referencedDeclaration": 6125, + "src": "4778:26:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" } }, - "id": 3713, + "id": 3695, "isConstant": false, "isLValue": false, "isPure": false, @@ -6355,21 +5596,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5115:29:6", + "src": "4778:35:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3709, - "id": 3714, + "functionReturnParameters": 3690, + "id": 3696, "nodeType": "Return", - "src": "5108:36:6" + "src": "4771:42:12" } ] }, "documentation": null, - "id": 3716, + "id": 3698, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6377,16 +5618,16 @@ "name": "getTotalFundedAmount", "nodeType": "FunctionDefinition", "parameters": { - "id": 3706, + "id": 3687, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3705, + "id": 3686, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 3716, - "src": "5054:15:6", + "scope": 3698, + "src": "4717:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6394,10 +5635,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3704, + "id": 3685, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5054:7:6", + "src": "4717:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6407,20 +5648,20 @@ "visibility": "internal" } ], - "src": "5053:17:6" + "src": "4716:17:12" }, "payable": false, "returnParameters": { - "id": 3709, + "id": 3690, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3708, + "id": 3689, "name": "", "nodeType": "VariableDeclaration", - "scope": 3716, - "src": "5092:4:6", + "scope": 3698, + "src": "4755:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6428,10 +5669,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3707, + "id": 3688, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5092:4:6", + "src": "4755:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6441,19 +5682,19 @@ "visibility": "internal" } ], - "src": "5091:6:6" + "src": "4754:6:12" }, - "scope": 4535, - "src": "5024:127:6", + "scope": 4056, + "src": "4687:133:12", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3726, + "id": 3709, "nodeType": "Block", - "src": "5228:49:6", + "src": "4897:55:12", "statements": [ { "expression": { @@ -6463,32 +5704,48 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3722, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "5245:11:6", + "expression": { + "argumentTypes": null, + "id": 3704, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4914:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3705, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "4914:17:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", + "typeIdentifier": "t_struct$_Account_$6026_storage", "typeString": "struct FundAccount.Account storage ref" } }, - "id": 3723, + "id": 3706, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "symbolsList", "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "5245:23:6", + "referencedDeclaration": 6137, + "src": "4914:29:12", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" } }, - "id": 3724, + "id": 3707, "isConstant": false, "isLValue": false, "isPure": false, @@ -6496,21 +5753,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5245:25:6", + "src": "4914:31:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "functionReturnParameters": 3721, - "id": 3725, + "functionReturnParameters": 3703, + "id": 3708, "nodeType": "Return", - "src": "5238:32:6" + "src": "4907:38:12" } ] }, "documentation": null, - "id": 3727, + "id": 3710, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6518,23 +5775,23 @@ "name": "getTotalFundedAssetsSymbols", "nodeType": "FunctionDefinition", "parameters": { - "id": 3717, + "id": 3699, "nodeType": "ParameterList", "parameters": [], - "src": "5193:2:6" + "src": "4862:2:12" }, "payable": false, "returnParameters": { - "id": 3721, + "id": 3703, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3720, + "id": 3702, "name": "", "nodeType": "VariableDeclaration", - "scope": 3727, - "src": "5217:9:6", + "scope": 3710, + "src": "4886:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6543,19 +5800,19 @@ }, "typeName": { "baseType": { - "id": 3718, + "id": 3700, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5217:7:6", + "src": "4886:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 3719, + "id": 3701, "length": null, "nodeType": "ArrayTypeName", - "src": "5217:9:6", + "src": "4886:9:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -6565,45 +5822,61 @@ "visibility": "internal" } ], - "src": "5216:11:6" + "src": "4885:11:12" }, - "scope": 4535, - "src": "5157:120:6", + "scope": 4056, + "src": "4826:126:12", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3738, + "id": 3722, "nodeType": "Block", - "src": "5359:52:6", + "src": "5034:58:12", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3734, - "name": "totalFundedReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "5376:19:6", + "expression": { + "argumentTypes": null, + "id": 3717, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "5051:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3718, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFundedReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5240, + "src": "5051:25:12", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3736, + "id": 3720, "indexExpression": { "argumentTypes": null, - "id": 3735, + "id": 3719, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3729, - "src": "5396:7:6", + "referencedDeclaration": 3712, + "src": "5077:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6614,21 +5887,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5376:28:6", + "src": "5051:34:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3733, - "id": 3737, + "functionReturnParameters": 3716, + "id": 3721, "nodeType": "Return", - "src": "5369:35:6" + "src": "5044:41:12" } ] }, "documentation": null, - "id": 3739, + "id": 3723, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6636,16 +5909,16 @@ "name": "getTotalFundedReleased", "nodeType": "FunctionDefinition", "parameters": { - "id": 3730, + "id": 3713, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3729, + "id": 3712, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 3739, - "src": "5315:15:6", + "scope": 3723, + "src": "4990:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6653,10 +5926,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3728, + "id": 3711, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5315:7:6", + "src": "4990:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6666,20 +5939,20 @@ "visibility": "internal" } ], - "src": "5314:17:6" + "src": "4989:17:12" }, "payable": false, "returnParameters": { - "id": 3733, + "id": 3716, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3732, + "id": 3715, "name": "", "nodeType": "VariableDeclaration", - "scope": 3739, - "src": "5353:4:6", + "scope": 3723, + "src": "5028:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6687,10 +5960,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3731, + "id": 3714, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5353:4:6", + "src": "5028:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6700,342 +5973,124 @@ "visibility": "internal" } ], - "src": "5352:6:6" + "src": "5027:6:12" }, - "scope": 4535, - "src": "5283:128:6", + "scope": 4056, + "src": "4958:134:12", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3856, + "id": 3738, "nodeType": "Block", - "src": "5632:1102:6", + "src": "5313:136:12", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "id": 3748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5646:25:6", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3746, - "name": "trancheTransferAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4482, - "src": "5647:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 3747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5647:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3750, - "nodeType": "IfStatement", - "src": "5642:38:6", - "trueBody": { - "expression": null, - "functionReturnParameters": 3745, - "id": 3749, - "nodeType": "Return", - "src": "5673:7:6" - } - }, - { - "assignments": [ - 3752, - null - ], - "declarations": [ - { - "constant": false, - "id": 3752, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "5691:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5691:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 3756, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { + "arguments": [ + { "argumentTypes": null, - "id": 3753, - "name": "crowdsale", + "id": 3732, + "name": "state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "5721:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getCurrentMilestoneIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 1175, - "src": "5721:34:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view external returns (uint256,bool)" - } - }, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5721:36:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5690:67:6" - }, - { - "assignments": [ - 3758, - null - ], - "declarations": [ - { - "constant": false, - "id": 3758, - "name": "lastIndex", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "5768:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3757, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5768:4:6", + "referencedDeclaration": 3364, + "src": "5366:5:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 3762, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { + { "argumentTypes": null, - "id": 3759, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "5802:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getLastMilestoneIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 1182, - "src": "5802:31:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view external returns (uint256,bool)" - } - }, - "id": 3761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5802:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5767:68:6" - }, - { - "assignments": [ - null, - null, - null, - 3764, - null, - null - ], - "declarations": [ - null, - null, - null, - { - "constant": false, - "id": 3764, - "name": "lastWithdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "5851:27:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3763, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5851:6:6", + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3733, + "name": "trancheTransferAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "5385:22:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 3734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5385:24:12", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "value": null, - "visibility": "internal" - }, - null, - null - ], - "id": 3769, - "initialValue": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "id": 3767, - "name": "lastIndex", + "id": 3735, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3758, - "src": "5907:9:6", + "referencedDeclaration": 3352, + "src": "5423:9:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } ], "expression": { "argumentTypes": null, - "id": 3765, - "name": "crowdsale", + "id": 3730, + "name": "Fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "5884:9:6", + "referencedDeclaration": 6008, + "src": "5330:4:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_type$_t_contract$_Fund_$6008_$", + "typeString": "type(library Fund)" } }, - "id": 3766, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "getMilestone", + "memberName": "getTrancheInvoice", "nodeType": "MemberAccess", - "referencedDeclaration": 1149, - "src": "5884:22:6", + "referencedDeclaration": 5629, + "src": "5330:22:12", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$5253_storage_ptr_$_t_bool_$_t_contract$_IW12Crowdsale_$1760_$returns$_t_array$_t_uint256_$3_memory_ptr_$", + "typeString": "function (struct Fund.State storage pointer,bool,contract IW12Crowdsale) view returns (uint256[3] memory)" } }, - "id": 3768, + "id": 3736, "isConstant": false, "isLValue": false, "isPure": false, @@ -7043,88 +6098,315 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5884:33:6", + "src": "5330:112:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5846:71:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3770, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "5971:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "functionReturnParameters": 3729, + "id": 3737, + "nodeType": "Return", + "src": "5323:119:12" + } + ] + }, + "documentation": "@notice Get tranche invoice\n@return uint[3] result:\n[tranchePercent, totalTranchePercentBefore, milestoneIndex]", + "id": 3739, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTrancheInvoice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3724, + "nodeType": "ParameterList", + "parameters": [], + "src": "5273:2:12" + }, + "payable": false, + "returnParameters": { + "id": 3729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3728, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 3739, + "src": "5297:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" + }, + "typeName": { + "baseType": { + "id": 3725, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5297:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 3727, + "length": { "argumentTypes": null, - "condition": { + "hexValue": "33", + "id": 3726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5302:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "5297:7:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5296:16:12" + }, + "scope": 4056, + "src": "5247:202:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3811, + "nodeType": "Block", + "src": "5568:482:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3747, + "name": "trancheTransferAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "5586:22:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } }, - "id": 3777, + "id": 3748, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { + "names": [], + "nodeType": "FunctionCall", + "src": "5586:24:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3746, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5578:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5578:33:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3750, + "nodeType": "ExpressionStatement", + "src": "5578:33:12" + }, + { + "assignments": [ + 3755 + ], + "declarations": [ + { + "constant": false, + "id": 3755, + "name": "trancheInvoice", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "5622:29:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" + }, + "typeName": { + "baseType": { + "id": 3753, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5622:4:12", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 3773, + } + }, + "id": 3754, + "length": { + "argumentTypes": null, + "hexValue": "33", + "id": 3752, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "number", "lValueRequested": false, - "leftExpression": { + "nodeType": "Literal", + "src": "5627:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "5622:7:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3758, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3756, + "name": "getTrancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3739, + "src": "5654:17:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_array$_t_uint256_$3_memory_ptr_$", + "typeString": "function () view returns (uint256[3] memory)" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5654:19:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5622:51:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 3771, - "name": "index", + "id": 3760, + "name": "trancheInvoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "5979:5:6", + "referencedDeclaration": 3755, + "src": "5692:14:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "id": 3762, + "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3772, + "id": 3761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5988:1:6", + "src": "5707:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7132,270 +6414,225 @@ }, "value": "0" }, - "src": "5979:10:6", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5692:17:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "||", + "operator": ">", "rightExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3776, + "hexValue": "30", + "id": 3763, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3774, - "name": "lastIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3758, - "src": "5993:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3775, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6006:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5993:18:6", + "nodeType": "Literal", + "src": "5712:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "5979:32:6", + "src": "5692:21:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "falseExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3759, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5684:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5684:30:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3766, + "nodeType": "ExpressionStatement", + "src": "5684:30:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3781, + "id": 3774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3779, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6022:5:6", + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3768, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "5732:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "5732:17:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3770, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 6137, + "src": "5732:29:12", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 3771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5732:31:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 3772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5732:38:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "-", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "31", - "id": 3780, + "hexValue": "30", + "id": 3773, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6030:1:6", + "src": "5774:1:12", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "value": "1" + "value": "0" }, - "src": "6022:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5979:52:6", - "trueExpression": { - "argumentTypes": null, - "id": 3778, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6014:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5971:60:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5971:60:6" - }, - { - "assignments": [ - null, - 3786, - null, - 3788, - null, - null - ], - "declarations": [ - null, - { - "constant": false, - "id": 3786, - "name": "tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "6046:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3785, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6046:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null, - { - "constant": false, - "id": 3788, - "name": "withdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "6069:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3787, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6069:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - null, - null - ], - "id": 3793, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3791, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6123:5:6", + "src": "5732:43:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 3789, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "6100:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 1149, - "src": "6100:22:6", + "id": 3767, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5724:7:12", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 3792, + "id": 3775, "isConstant": false, "isLValue": false, "isPure": false, @@ -7403,872 +6640,710 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6100:29:6", + "src": "5724:52:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6042:87:6" + "id": 3776, + "nodeType": "ExpressionStatement", + "src": "5724:52:12" }, { - "assignments": [ - 3795 - ], - "declarations": [ - { - "constant": false, - "id": 3795, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "6140:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "expression": { + "argumentTypes": null, + "id": 3785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3777, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "5787:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3782, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "completedTranches", + "nodeType": "MemberAccess", + "referencedDeclaration": 5232, + "src": "5787:23:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } }, - "typeName": { - "id": 3794, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6140:4:6", + "id": 3783, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3779, + "name": "trancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3755, + "src": "5811:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3781, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 3780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5826:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5811:17:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 3799, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3796, - "name": "completedTranches", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "6157:17:6", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5787:42:12", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 3798, - "indexExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "id": 3797, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6175:5:6", + "hexValue": "74727565", + "id": 3784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5832:4:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6157:24:6", + "src": "5787:49:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6140:41:6" + "id": 3786, + "nodeType": "ExpressionStatement", + "src": "5787:49:12" }, { - "condition": { + "expression": { "argumentTypes": null, - "id": 3800, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "6196:9:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3802, - "nodeType": "IfStatement", - "src": "6192:22:6", - "trueBody": { - "expression": null, - "functionReturnParameters": 3745, - "id": 3801, - "nodeType": "Return", - "src": "6207:7:6" - } - }, - { - "assignments": [ - 3804 - ], - "declarations": [ - { - "constant": false, - "id": 3804, - "name": "prevIndex", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "6224:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3803, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6224:4:6", + "id": 3797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3787, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "5846:5:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 3806, - "initialValue": { - "argumentTypes": null, - "id": 3805, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6241:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6224:22:6" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3808, - "name": "totalTranchePercentBefore", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "6256:30:6", - "stateVariable": false, - "storageLocation": "default", + "id": 3789, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "totalTranchePercentReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5234, + "src": "5846:33:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "typeName": { - "id": 3807, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6256:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3809, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6256:30:6" - }, - { - "body": { - "id": 3830, - "nodeType": "Block", - "src": "6319:208:6", - "statements": [ - { - "expression": { + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 3814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "6333:11:6", - "subExpression": { + "baseExpression": { "argumentTypes": null, - "id": 3813, - "name": "prevIndex", + "id": 3793, + "name": "trancheInvoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3804, - "src": "6333:9:6", + "referencedDeclaration": 3755, + "src": "5920:14:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3815, - "nodeType": "ExpressionStatement", - "src": "6333:11:6" - }, - { - "assignments": [ - null, - 3817, - null, - null, - null, - null - ], - "declarations": [ - null, - { - "constant": false, - "id": 3817, - "name": "_tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "6362:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3816, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6362:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null, - null, - null, - null - ], - "id": 3822, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3820, - "name": "prevIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3804, - "src": "6417:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3818, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "6394:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3819, + "id": 3795, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3794, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 1149, - "src": "6394:22:6", + "nodeType": "Literal", + "src": "5935:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "id": 3821, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6394:33:6", + "nodeType": "IndexAccess", + "src": "5920:17:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6359:68:6" - }, - { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { "argumentTypes": null, - "id": 3828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "expression": { "argumentTypes": null, - "id": 3823, - "name": "totalTranchePercentBefore", + "id": 3790, + "name": "state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3808, - "src": "6442:25:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3826, - "name": "_tranchePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3817, - "src": "6500:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3824, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3808, - "src": "6470:25:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6470:29:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6470:46:6", + "referencedDeclaration": 3364, + "src": "5882:5:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "src": "6442:74:6", + "id": 3791, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTranchePercentReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5234, + "src": "5882:33:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3829, - "nodeType": "ExpressionStatement", - "src": "6442:74:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3810, - "name": "prevIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3804, - "src": "6304:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3811, + "id": 3792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5882:37:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3796, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "6316:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "5882:56:12", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "6304:13:6", + "src": "5846:92:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 3831, - "nodeType": "WhileStatement", - "src": "6297:230:6" + "id": 3798, + "nodeType": "ExpressionStatement", + "src": "5846:92:12" }, { "expression": { "argumentTypes": null, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 3832, - "name": "result", + "id": 3800, + "name": "trancheInvoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "6537:6:6", + "referencedDeclaration": 3755, + "src": "5966:14:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", "typeString": "uint256[3] memory" } - }, - "id": 3834, - "indexExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + ], + "id": 3799, + "name": "_transferTranche", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3830, + "src": "5949:16:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$3_memory_ptr_$returns$__$", + "typeString": "function (uint256[3] memory)" + } + }, + "id": 3801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5949:32:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3802, + "nodeType": "ExpressionStatement", + "src": "5949:32:12" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "hexValue": "30", - "id": 3833, + "expression": { + "argumentTypes": null, + "id": 3804, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6013:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3805, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "6544:1:6", - "subdenomination": null, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6013:10:12", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6537:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 3840, - "name": "totalTranchePercentReleased", + "id": 3806, + "name": "trancheInvoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3333, - "src": "6625:27:6", + "referencedDeclaration": 3755, + "src": "6025:14:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } - ], - "expression": { + }, + "id": 3808, + "indexExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3837, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3808, - "src": "6581:25:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3835, - "name": "tranchePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3786, - "src": "6549:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6549:31:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3838, + "hexValue": "30", + "id": 3807, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6549:58:6", + "nodeType": "Literal", + "src": "6040:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "id": 3839, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "6549:75:6", + "nodeType": "IndexAccess", + "src": "6025:17:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 3841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6549:104:6", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3803, + "name": "TrancheReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3402, + "src": "5997:15:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "src": "6537:116:6", + "id": 3809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5997:46:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 3843, - "nodeType": "ExpressionStatement", - "src": "6537:116:6" + "id": 3810, + "nodeType": "EmitStatement", + "src": "5992:51:12" + } + ] + }, + "documentation": "@notice Realise project tranche", + "id": 3812, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3742, + "modifierName": { + "argumentTypes": null, + "id": 3741, + "name": "onlyProjectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "5538:16:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5538:16:12" + }, + { + "arguments": null, + "id": 3744, + "modifierName": { + "argumentTypes": null, + "id": 3743, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13257, + "src": "5555:12:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "5555:12:12" + } + ], + "name": "tranche", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3740, + "nodeType": "ParameterList", + "parameters": [], + "src": "5526:2:12" + }, + "payable": false, + "returnParameters": { + "id": 3745, + "nodeType": "ParameterList", + "parameters": [], + "src": "5568:0:12" + }, + "scope": 4056, + "src": "5510:540:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 3829, + "nodeType": "Block", + "src": "6109:165:12", + "statements": [ { "expression": { "argumentTypes": null, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { + "argumentTypes": null, + "id": 3822, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "6153:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + { "argumentTypes": null, - "id": 3844, - "name": "result", + "id": 3823, + "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "6663:6:6", + "referencedDeclaration": 3816, + "src": "6172:8:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", "typeString": "uint256[3] memory" } }, - "id": 3846, - "indexExpression": { + { "argumentTypes": null, - "hexValue": "31", - "id": 3845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6670:1:6", - "subdenomination": null, + "id": 3824, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3362, + "src": "6194:17:12", "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6663:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "argumentTypes": null, + "id": 3825, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3360, + "src": "6225:13:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3826, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3356, + "src": "6252:5:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3847, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3808, - "src": "6675:25:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6663:37:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3849, - "nodeType": "ExpressionStatement", - "src": "6663:37:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3850, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "6710:6:6", - "typeDescriptions": { + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + }, + { "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", "typeString": "uint256[3] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } - }, - "id": 3852, - "indexExpression": { + ], + "expression": { "argumentTypes": null, - "hexValue": "32", - "id": 3851, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6717:1:6", - "subdenomination": null, + "id": 3819, + "name": "Fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6008, + "src": "6119:4:12", "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" + "typeIdentifier": "t_type$_t_contract$_Fund_$6008_$", + "typeString": "type(library Fund)" + } }, + "id": 3821, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6710:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3853, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6722:5:6", + "lValueRequested": false, + "memberName": "transferTranche", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "6119:20:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$5253_storage_ptr_$_t_array$_t_uint256_$3_memory_ptr_$_t_uint256_$_t_address_$_t_contract$_IRates_$10014_$returns$__$", + "typeString": "function (struct Fund.State storage pointer,uint256[3] memory,uint256,address,contract IRates)" } }, - "src": "6710:17:6", + "id": 3827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6119:148:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 3855, + "id": 3828, "nodeType": "ExpressionStatement", - "src": "6710:17:6" + "src": "6119:148:12" } ] }, - "documentation": "@notice Get tranche invoice\n@return uint[3] result:\n[tranchePercent, totalTranchePercentBefore, milestoneIndex]", - "id": 3857, + "documentation": null, + "id": 3830, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "getTrancheInvoice", + "name": "_transferTranche", "nodeType": "FunctionDefinition", "parameters": { - "id": 3740, - "nodeType": "ParameterList", - "parameters": [], - "src": "5592:2:6" - }, - "payable": false, - "returnParameters": { - "id": 3745, + "id": 3817, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3744, - "name": "result", + "id": 3816, + "name": "_invoice", "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "5616:14:6", + "scope": 3830, + "src": "6082:16:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8277,27 +7352,27 @@ }, "typeName": { "baseType": { - "id": 3741, + "id": 3813, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5616:4:6", + "src": "6082:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3743, + "id": 3815, "length": { "argumentTypes": null, "hexValue": "33", - "id": 3742, + "id": 3814, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5621:1:6", + "src": "6087:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -8306,7 +7381,7 @@ "value": "3" }, "nodeType": "ArrayTypeName", - "src": "5616:7:6", + "src": "6082:7:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", "typeString": "uint256[3]" @@ -8316,19 +7391,26 @@ "visibility": "internal" } ], - "src": "5615:16:6" + "src": "6081:18:12" }, - "scope": 4535, - "src": "5566:1168:6", - "stateMutability": "view", + "payable": false, + "returnParameters": { + "id": 3818, + "nodeType": "ParameterList", + "parameters": [], + "src": "6109:0:12" + }, + "scope": 4056, + "src": "6056:218:12", + "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "internal" }, { "body": { - "id": 3923, + "id": 3927, "nodeType": "Block", - "src": "6846:458:6", + "src": "6388:644:12", "statements": [ { "expression": { @@ -8339,18 +7421,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3865, - "name": "trancheTransferAllowed", + "id": 3838, + "name": "tokenRefundAllowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4482, - "src": "6864:22:6", + "referencedDeclaration": 3978, + "src": "6406:18:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 3866, + "id": 3839, "isConstant": false, "isLValue": false, "isPure": false, @@ -8358,7 +7440,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6864:24:6", + "src": "6406:20:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8372,21 +7454,21 @@ "typeString": "bool" } ], - "id": 3864, + "id": 3837, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "6856:7:6", + "referencedDeclaration": 13444, + "src": "6398:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3867, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, @@ -8394,108 +7476,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6856:33:6", + "src": "6398:29:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3868, + "id": 3841, "nodeType": "ExpressionStatement", - "src": "6856:33:6" - }, - { - "assignments": [ - 3873 - ], - "declarations": [ - { - "constant": false, - "id": 3873, - "name": "trancheInvoice", - "nodeType": "VariableDeclaration", - "scope": 3924, - "src": "6900:29:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3]" - }, - "typeName": { - "baseType": { - "id": 3871, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6900:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "length": { - "argumentTypes": null, - "hexValue": "33", - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6905:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "3" - }, - "nodeType": "ArrayTypeName", - "src": "6900:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", - "typeString": "uint256[3]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3876, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3874, - "name": "getTrancheInvoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3857, - "src": "6932:17:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_array$_t_uint256_$3_memory_ptr_$", - "typeString": "function () view returns (uint256[3] memory)" - } - }, - "id": 3875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6932:19:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6900:51:6" + "src": "6398:29:12" }, { "expression": { @@ -8507,69 +7496,37 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3882, + "id": 3845, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3878, - "name": "trancheInvoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3873, - "src": "6970:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" - } - }, - "id": 3880, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6985:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6970:17:6", + "id": 3843, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "6445:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3881, + "id": 3844, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6990:1:6", + "src": "6460:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8577,7 +7534,7 @@ }, "value": "0" }, - "src": "6970:21:6", + "src": "6445:16:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8591,21 +7548,21 @@ "typeString": "bool" } ], - "id": 3877, + "id": 3842, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "6962:7:6", + "referencedDeclaration": 13444, + "src": "6437:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3883, + "id": 3846, "isConstant": false, "isLValue": false, "isPure": false, @@ -8613,15 +7570,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6962:30:6", + "src": "6437:25:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3884, + "id": 3847, "nodeType": "ExpressionStatement", - "src": "6962:30:6" + "src": "6437:25:12" }, { "expression": { @@ -8633,94 +7590,99 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3891, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "arguments": [], "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3886, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "7010:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3887, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbolsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "7010:23:6", + "argumentTypes": null, + "id": 3849, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "6480:5:12", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "id": 3888, + "id": 3850, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "6480:28:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3853, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3851, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6509:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3852, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7010:25:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6509:10:12", "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 3889, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7010:32:6", + "nodeType": "IndexAccess", + "src": "6480:40:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": ">=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 3890, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7046:1:6", - "subdenomination": null, + "id": 3854, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "6524:11:12", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "7010:37:6", + "src": "6480:55:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8734,21 +7696,21 @@ "typeString": "bool" } ], - "id": 3885, + "id": 3848, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "7002:7:6", + "referencedDeclaration": 13444, + "src": "6472:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3892, + "id": 3856, "isConstant": false, "isLValue": false, "isPure": false, @@ -8756,255 +7718,384 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7002:46:6", + "src": "6472:64:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3893, + "id": 3857, "nodeType": "ExpressionStatement", - "src": "7002:46:6" + "src": "6472:64:12" }, { "expression": { "argumentTypes": null, - "id": 3900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3894, - "name": "completedTranches", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "7059:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 3898, - "indexExpression": { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3895, - "name": "trancheInvoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3873, - "src": "7077:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 3897, - "indexExpression": { + "id": 3865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "hexValue": "32", - "id": 3896, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3861, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6571:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6571:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 3859, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3354, + "src": "6554:6:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 3860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "6554:16:12", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 3863, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "7092:1:6", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "6554:28:12", "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7077:17:6", + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3864, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "6586:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6554:43:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7059:36:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3899, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7098:4:6", - "subdenomination": null, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3858, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6546:7:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } }, - "src": "7059:43:6", + "id": 3866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6546:52:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 3901, + "id": 3867, "nodeType": "ExpressionStatement", - "src": "7059:43:6" + "src": "6546:52:12" }, { "expression": { "argumentTypes": null, - "id": 3909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3902, - "name": "totalTranchePercentReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3333, - "src": "7112:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3905, - "name": "trancheInvoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3873, - "src": "7174:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3871, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6633:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6633:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3874, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13530, + "src": "6653:4:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Fund_$4056", + "typeString": "contract W12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Fund_$4056", + "typeString": "contract W12Fund" + } + ], + "id": 3873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6645:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6645:13:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "id": 3907, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3906, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 3869, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3354, + "src": "6616:6:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 3870, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "7189:1:6", - "subdenomination": null, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 13037, + "src": "6616:16:12", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } }, + "id": 3876, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7174:17:6", + "names": [], + "nodeType": "FunctionCall", + "src": "6616:43:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { "argumentTypes": null, - "id": 3903, - "name": "totalTranchePercentReleased", + "id": 3877, + "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3333, - "src": "7142:27:6", + "referencedDeclaration": 3832, + "src": "6663:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "7142:31:6", + "src": "6616:58:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 3908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7142:50:6", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3868, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6608:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "src": "7112:80:6", + "id": 3879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:67:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 3910, + "id": 3880, "nodeType": "ExpressionStatement", - "src": "7112:80:6" + "src": "6608:67:12" }, { "expression": { @@ -9012,37 +8103,37 @@ "arguments": [ { "argumentTypes": null, - "id": 3912, - "name": "trancheInvoice", + "id": 3882, + "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3873, - "src": "7220:14:6", + "referencedDeclaration": 3832, + "src": "6700:11:12", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 3911, - "name": "_transferTranche", + "id": 3881, + "name": "_refundAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4132, - "src": "7203:16:6", + "referencedDeclaration": 3942, + "src": "6686:13:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$3_memory_ptr_$returns$__$", - "typeString": "function (uint256[3] memory)" + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 3913, + "id": 3883, "isConstant": false, "isLValue": false, "isPure": false, @@ -9050,422 +8141,311 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7203:32:6", + "src": "6686:26:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3914, + "id": 3884, "nodeType": "ExpressionStatement", - "src": "7203:32:6" + "src": "6686:26:12" }, { - "eventCall": { + "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 3893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3916, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7267:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7267:10:6", + "id": 3885, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "6723:5:12", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - { - "argumentTypes": null, - "baseExpression": { + "id": 3887, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "totalTokenRefunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5244, + "src": "6723:24:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 3918, - "name": "trancheInvoice", + "id": 3891, + "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3873, - "src": "7279:14:6", + "referencedDeclaration": 3832, + "src": "6779:11:12", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 3920, - "indexExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, - "hexValue": "30", - "id": 3919, + "expression": { + "argumentTypes": null, + "id": 3888, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "6750:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3889, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "7294:1:6", - "subdenomination": null, + "memberName": "totalTokenRefunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5244, + "src": "6750:24:12", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, + "id": 3890, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7279:17:6", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "6750:28:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } - ], - "id": 3915, - "name": "TrancheReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "7251:15:6", + }, + "id": 3892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6750:41:12", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 3921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7251:46:6", + "src": "6723:68:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 3922, - "nodeType": "EmitStatement", - "src": "7246:51:6" - } - ] - }, - "documentation": "@notice Realise project tranche", - "id": 3924, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3860, - "modifierName": { - "argumentTypes": null, - "id": 3859, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "6823:9:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6823:9:6" - }, - { - "arguments": null, - "id": 3862, - "modifierName": { - "argumentTypes": null, - "id": 3861, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9776, - "src": "6833:12:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } + "id": 3894, + "nodeType": "ExpressionStatement", + "src": "6723:68:12" }, - "nodeType": "ModifierInvocation", - "src": "6833:12:6" - } - ], - "name": "tranche", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3858, - "nodeType": "ParameterList", - "parameters": [], - "src": "6811:2:6" - }, - "payable": false, - "returnParameters": { - "id": 3863, - "nodeType": "ParameterList", - "parameters": [], - "src": "6846:0:6" - }, - "scope": 4535, - "src": "6795:509:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 4131, - "nodeType": "Block", - "src": "7363:1569:6", - "statements": [ { - "assignments": [ - 3932 - ], - "declarations": [ - { - "constant": false, - "id": 3932, - "name": "ln", - "nodeType": "VariableDeclaration", - "scope": 4132, - "src": "7373:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3931, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7373:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3937, - "initialValue": { + "expression": { "argumentTypes": null, - "expression": { + "id": 3909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], + "baseExpression": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3933, - "name": "totalFunded", + "id": 3895, + "name": "state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "7383:11:6", + "referencedDeclaration": 3364, + "src": "6801:5:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "id": 3934, + "id": 3899, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "symbolsList", + "memberName": "tokenBoughtPerInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "7383:23:6", + "referencedDeclaration": 5248, + "src": "6801:28:12", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3900, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3897, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6830:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6830:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 3935, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7383:25:6", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6801:40:12", "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7383:32:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7373:42:6" - }, - { - "body": { - "id": 4129, - "nodeType": "Block", - "src": "7441:1485:6", - "statements": [ - { - "assignments": [ - 3942 - ], - "declarations": [ + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3907, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "6889:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ { - "constant": false, - "id": 3942, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 4132, - "src": "7455:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3941, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7455:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 3949, - "initialValue": { + "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "arguments": [], "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3943, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "7472:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3944, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbolsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "7472:23:6", + "argumentTypes": null, + "id": 3901, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "6844:5:12", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "id": 3945, + "id": 3902, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7472:25:6", + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "6844:28:12", "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } }, - "id": 3948, + "id": 3905, "indexExpression": { "argumentTypes": null, - "id": 3947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": true, - "src": "7498:4:6", - "subExpression": { + "expression": { "argumentTypes": null, - "id": 3946, - "name": "ln", + "id": 3903, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "7500:2:6", + "referencedDeclaration": 13441, + "src": "6873:3:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, + "id": 3904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6873:10:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -9473,2680 +8453,691 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7472:31:6", + "src": "6844:40:12", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "7455:48:6" + "id": 3906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "6844:44:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, + "id": 3908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6844:57:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6801:100:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3910, + "nodeType": "ExpressionStatement", + "src": "6801:100:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 3951 - ], - "declarations": [ + "argumentTypes": null, + "arguments": [ { - "constant": false, - "id": 3951, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 4132, - "src": "7517:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3950, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7517:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3956, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3954, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "7552:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3952, - "name": "totalFunded", + "id": 3914, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "7531:11:6", + "referencedDeclaration": 13441, + "src": "6940:3:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 3953, + "id": 3915, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "amountOf", + "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "7531:20:6", + "referencedDeclaration": null, + "src": "6940:10:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 3955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7531:28:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7517:42:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "argumentTypes": null, + "id": 3916, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "6952:4:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { "argumentTypes": null, - "id": 3957, - "name": "amount", + "id": 3917, + "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "7578:6:6", + "referencedDeclaration": 3832, + "src": "6958:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, - "hexValue": "30", - "id": 3958, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7588:1:6", - "subdenomination": null, + "id": 3912, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3354, + "src": "6920:6:12", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } }, - "src": "7578:11:6", + "id": 3913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 13066, + "src": "6920:19:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" } }, - "falseBody": null, - "id": 3961, - "nodeType": "IfStatement", - "src": "7574:25:6", - "trueBody": { - "id": 3960, - "nodeType": "Continue", - "src": "7591:8:6" + "id": 3918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6920:50:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - { - "assignments": [ - 3963 - ], - "declarations": [ - { - "constant": false, - "id": 3963, - "name": "sourceAmount", - "nodeType": "VariableDeclaration", - "scope": 4132, - "src": "7614:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3962, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7614:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3970, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3966, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3928, - "src": "7653:8:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" - } - }, - "id": 3968, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3967, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7662:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7653:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3964, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "7634:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "7634:18:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7634:31:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7614:51:6" - }, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3911, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6912:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6912:59:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3920, + "nodeType": "ExpressionStatement", + "src": "6912:59:12" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3972, - "name": "sourceAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3963, - "src": "7688:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7703:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7688:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3971, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7680:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7680:25:6", + "id": 3922, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "7001:3:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 3976, - "nodeType": "ExpressionStatement", - "src": "7680:25:6" + "id": 3923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7001:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, { - "expression": { - "argumentTypes": null, - "id": 3987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3977, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "7732:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3982, - "name": "totalTokenRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "7796:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3980, - "name": "totalTokenBought", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3345, - "src": "7775:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "7775:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7775:40:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3984, - "name": "sourceAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3963, - "src": "7833:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3985, - "name": "totalTokenBought", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3345, - "src": "7863:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3978, - "name": "Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "7741:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", - "typeString": "type(library Utils)" - } - }, - "id": 3979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeMulDiv", - "nodeType": "MemberAccess", - "referencedDeclaration": 6323, - "src": "7741:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 3986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7741:152:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7732:161:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "argumentTypes": null, + "id": 3924, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "7013:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 3988, - "nodeType": "ExpressionStatement", - "src": "7732:161:6" + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3921, + "name": "TokenRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3388, + "src": "6987:13:12", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6987:38:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3926, + "nodeType": "EmitStatement", + "src": "6982:43:12" + } + ] + }, + "documentation": "@notice Refund bought tokens", + "id": 3928, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3835, + "modifierName": { + "argumentTypes": null, + "id": 3834, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13257, + "src": "6375:12:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6375:12:12" + } + ], + "name": "refund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3832, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 3928, + "src": "6348:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3831, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6348:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6347:18:12" + }, + "payable": false, + "returnParameters": { + "id": 3836, + "nodeType": "ParameterList", + "parameters": [], + "src": "6388:0:12" + }, + "scope": 4056, + "src": "6332:700:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 3941, + "nodeType": "Block", + "src": "7088:107:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3936, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "7129:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3990, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "7916:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3991, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7925:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7916:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3989, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7908:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7908:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3994, - "nodeType": "ExpressionStatement", - "src": "7908:19:6" + "argumentTypes": null, + "id": 3937, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3930, + "src": "7148:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { - "expression": { - "argumentTypes": null, - "id": 4004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3995, - "name": "totalFundedReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "7942:19:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3997, - "indexExpression": { - "argumentTypes": null, - "id": 3996, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "7962:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7942:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4002, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "8004:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3998, - "name": "totalFundedReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "7972:19:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4000, - "indexExpression": { - "argumentTypes": null, - "id": 3999, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "7992:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7972:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "7972:31:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7972:39:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7942:69:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "argumentTypes": null, + "id": 3938, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3356, + "src": "7173:5:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" }, - "id": 4005, - "nodeType": "ExpressionStatement", - "src": "7942:69:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4006, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8042:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4007, - "name": "METHOD_USD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "8052:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "8042:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "falseBody": null, - "id": 4010, - "nodeType": "IfStatement", - "src": "8038:35:6", - "trueBody": { - "id": 4009, - "nodeType": "Continue", - "src": "8065:8:6" + { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + ], + "expression": { + "argumentTypes": null, + "id": 3933, + "name": "Fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6008, + "src": "7098:4:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Fund_$6008_$", + "typeString": "type(library Fund)" } }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4011, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8092:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 4012, - "name": "METHOD_ETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "8102:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "8092:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4038, - "nodeType": "IfStatement", - "src": "8088:187:6", - "trueBody": { - "id": 4037, - "nodeType": "Block", - "src": "8114:161:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4017, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8154:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4015, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "8140:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "8140:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 4018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8140:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4014, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8132:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8132:30:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4020, - "nodeType": "ExpressionStatement", - "src": "8132:30:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4030, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10563, - "src": "8243:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - ], - "id": 4029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8235:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8235:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4025, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8216:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4023, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "8194:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "8194:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 4026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8194:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4022, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "8188:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 4027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8188:36:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 4028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "8188:46:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 4032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8188:61:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4033, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "8253:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8188:71:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4021, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8180:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8180:80:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4036, - "nodeType": "ExpressionStatement", - "src": "8180:80:6" - } - ] + "id": 3935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "refundAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 5844, + "src": "7098:17:12", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$5253_storage_ptr_$_t_uint256_$_t_contract$_IRates_$10014_$returns$__$", + "typeString": "function (struct Fund.State storage pointer,uint256,contract IRates)" + } + }, + "id": 3939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7098:90:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3940, + "nodeType": "ExpressionStatement", + "src": "7098:90:12" + } + ] + }, + "documentation": null, + "id": 3942, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_refundAssets", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3930, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 3942, + "src": "7061:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3929, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7061:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7060:18:12" + }, + "payable": false, + "returnParameters": { + "id": 3932, + "nodeType": "ParameterList", + "parameters": [], + "src": "7088:0:12" + }, + "scope": 4056, + "src": "7038:157:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3977, + "nodeType": "Block", + "src": "7258:387:12", + "statements": [ + { + "assignments": [ + 3948, + 3950 + ], + "declarations": [ + { + "constant": false, + "id": 3948, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "7269:10:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3947, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7269:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - { - "assignments": [ - 4040 - ], - "declarations": [ - { - "constant": false, - "id": 4040, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 4132, - "src": "8289:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4039, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8289:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4050, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4041, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3331, - "src": "8300:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4042, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8320:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8300:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8396:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 4049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "8300:97:6", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4046, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3331, - "src": "8359:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4044, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "8340:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "8340:18:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8340:37:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8289:108:6" + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3950, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "7281:10:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4051, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3331, - "src": "8416:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8436:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8416:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4060, - "nodeType": "IfStatement", - "src": "8412:43:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4055, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8447:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8453:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8447:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4054, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8439:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8439:16:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4059, - "nodeType": "ExpressionStatement", - "src": "8439:16:6" + "typeName": { + "id": 3949, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7281:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4061, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8474:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4062, - "name": "METHOD_ETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "8484:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "8474:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 4120, - "nodeType": "Block", - "src": "8629:221:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4086, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8651:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4087, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8657:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8651:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4102, - "nodeType": "IfStatement", - "src": "8647:87:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4097, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3329, - "src": "8714:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4098, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8729:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4093, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8696:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4091, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "8674:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "8674:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 4094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8674:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4090, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "8668:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 4095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8668:36:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 4096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "8668:45:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 4099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8668:65:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4089, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8660:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8660:74:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4101, - "nodeType": "ExpressionStatement", - "src": "8660:74:6" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4111, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8806:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8806:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4115, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8829:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4113, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "8818:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8818:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8818:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4107, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8788:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4105, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "8766:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "8766:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 4108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8766:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4104, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "8760:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 4109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8760:36:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 4110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "8760:45:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 4117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8760:74:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4103, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8752:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8752:83:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4119, - "nodeType": "ExpressionStatement", - "src": "8752:83:6" - } - ] - }, - "id": 4121, - "nodeType": "IfStatement", - "src": "8470:380:6", - "trueBody": { - "id": 4085, - "nodeType": "Block", - "src": "8496:127:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4064, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8518:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8524:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8518:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4073, - "nodeType": "IfStatement", - "src": "8514:40:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4070, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8550:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4067, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3329, - "src": "8527:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8527:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 4071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8527:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4072, - "nodeType": "ExpressionStatement", - "src": "8527:27:6" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4081, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8603:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4079, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "8592:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8592:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8592:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4074, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8572:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8572:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8572:19:6", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 4083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8572:36:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4084, - "nodeType": "ExpressionStatement", - "src": "8572:36:6" - } - ] + "value": null, + "visibility": "internal" + } + ], + "id": 3954, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3951, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3352, + "src": "7295:9:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4123, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8888:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8888:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4125, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8900:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 4126, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "8908:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4122, - "name": "TrancheTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3387, - "src": "8869:18:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (address,bytes32,uint256)" - } - }, - "id": 4127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8869:46:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4128, - "nodeType": "EmitStatement", - "src": "8864:51:6" + "id": 3952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getCurrentMilestoneIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 1711, + "src": "7295:34:12", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view external returns (uint256,bool)" } - ] + }, + "id": 3953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7295:36:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } }, + "nodeType": "VariableDeclarationStatement", + "src": "7268:63:12" + }, + { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3940, + "id": 3957, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3938, - "name": "ln", + "id": 3955, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "7432:2:6", + "referencedDeclaration": 3948, + "src": "7470:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3939, + "id": 3956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7438:1:6", + "src": "7479:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12154,162 +9145,144 @@ }, "value": "0" }, - "src": "7432:7:6", + "src": "7470:10:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4130, - "nodeType": "WhileStatement", - "src": "7426:1500:6" - } - ] - }, - "documentation": null, - "id": 4132, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_transferTranche", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3929, - "nodeType": "ParameterList", - "parameters": [ + "falseBody": null, + "id": 3959, + "nodeType": "IfStatement", + "src": "7467:22:12", + "trueBody": { + "expression": null, + "functionReturnParameters": 3946, + "id": 3958, + "nodeType": "Return", + "src": "7482:7:12" + } + }, { - "constant": false, - "id": 3928, - "name": "_invoice", - "nodeType": "VariableDeclaration", - "scope": 4132, - "src": "7336:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3]" - }, - "typeName": { - "baseType": { - "id": 3925, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7336:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3927, - "length": { - "argumentTypes": null, - "hexValue": "33", - "id": 3926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7341:1:6", - "subdenomination": null, + "assignments": [ + 3961, + null, + null, + 3963, + null, + null + ], + "declarations": [ + { + "constant": false, + "id": 3961, + "name": "endDate", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "7500:14:12", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": null, - "typeString": null + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, - "value": "3" + "typeName": { + "id": 3960, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "7500:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" }, - "nodeType": "ArrayTypeName", - "src": "7336:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", - "typeString": "uint256[3]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7335:18:6" - }, - "payable": false, - "returnParameters": { - "id": 3930, - "nodeType": "ParameterList", - "parameters": [], - "src": "7363:0:6" - }, - "scope": 4535, - "src": "7310:1622:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 4222, - "nodeType": "Block", - "src": "9046:614:6", - "statements": [ - { - "expression": { + null, + null, + { + "constant": false, + "id": 3963, + "name": "withdrawalWindow", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "7520:23:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3962, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "7520:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null + ], + "id": 3968, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4140, - "name": "tokenRefundAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4457, - "src": "9064:18:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 4141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9064:20:6", + "id": 3966, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3948, + "src": "7574:5:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 4139, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9056:7:6", + "expression": { + "argumentTypes": null, + "id": 3964, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3352, + "src": "7551:9:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1685, + "src": "7551:22:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" } }, - "id": 4142, + "id": 3967, "isConstant": false, "isLValue": false, "isPure": false, @@ -12317,225 +9290,285 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9056:29:6", + "src": "7551:29:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" } }, - "id": 4143, - "nodeType": "ExpressionStatement", - "src": "9056:29:6" + "nodeType": "VariableDeclarationStatement", + "src": "7499:81:12" }, { "expression": { "argumentTypes": null, - "arguments": [ - { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "commonType": { + "id": 3969, + "name": "endDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3961, + "src": "7598:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3970, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "7609:3:12", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 4147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4145, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9103:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9118:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9103:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } + }, + "src": "7598:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3972, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "7616:3:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 4144, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9095:7:6", + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3973, + "name": "withdrawalWindow", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3963, + "src": "7622:16:12", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "7616:22:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 4148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9095:25:6", + "src": "7598:40:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 4149, - "nodeType": "ExpressionStatement", - "src": "9095:25:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { + "functionReturnParameters": 3946, + "id": 3976, + "nodeType": "Return", + "src": "7591:47:12" + } + ] + }, + "documentation": null, + "id": 3978, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "tokenRefundAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3943, + "nodeType": "ParameterList", + "parameters": [], + "src": "7228:2:12" + }, + "payable": false, + "returnParameters": { + "id": 3946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3945, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "7252:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3944, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7252:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7251:6:12" + }, + "scope": 4056, + "src": "7201:444:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4002, + "nodeType": "Block", + "src": "7712:166:12", + "statements": [ + { + "assignments": [ + 3984, + 3986 + ], + "declarations": [ + { + "constant": false, + "id": 3984, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 4003, + "src": "7723:10:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3983, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7723:4:12", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 4156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4151, - "name": "tokenBoughtPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "9138:22:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4154, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4152, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9161:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9161:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9138:34:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4155, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9176:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9138:49:6", + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3986, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 4003, + "src": "7735:10:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3985, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7735:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - } - ], + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3990, + "initialValue": { + "argumentTypes": null, + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3987, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3352, + "src": "7749:9:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } - ], - "id": 4150, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9130:7:6", + }, + "id": 3988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getCurrentMilestoneIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 1711, + "src": "7749:34:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view external returns (uint256,bool)" } }, - "id": 4157, + "id": 3989, "isConstant": false, "isLValue": false, "isPure": false, @@ -12543,422 +9576,317 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9130:58:6", + "src": "7749:36:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" } }, - "id": 4158, - "nodeType": "ExpressionStatement", - "src": "9130:58:6" + "nodeType": "VariableDeclarationStatement", + "src": "7722:63:12" + }, + { + "condition": { + "argumentTypes": null, + "id": 3992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7799:6:12", + "subExpression": { + "argumentTypes": null, + "id": 3991, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3986, + "src": "7800:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3994, + "nodeType": "IfStatement", + "src": "7796:18:12", + "trueBody": { + "expression": null, + "functionReturnParameters": 3982, + "id": 3993, + "nodeType": "Return", + "src": "7807:7:12" + } }, { "expression": { "argumentTypes": null, - "arguments": [ - { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "commonType": { + "id": 3995, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3984, + "src": "7831:5:12", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 4166, - "isConstant": false, - "isLValue": false, - "isPure": false, + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4162, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9223:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9223:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4160, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3323, - "src": "9206:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 4161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "9206:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 4164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9206:28:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4165, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9238:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9206:43:6", + "nodeType": "Literal", + "src": "7840:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7831:10:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3998, + "name": "isWithdrawalWindowActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4042, + "src": "7845:24:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" } - ], - "id": 4159, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9198:7:6", + }, + "id": 3999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7845:26:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 4167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9198:52:6", + "src": "7831:40:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 4168, - "nodeType": "ExpressionStatement", - "src": "9198:52:6" - }, + "functionReturnParameters": 3982, + "id": 4001, + "nodeType": "Return", + "src": "7824:47:12" + } + ] + }, + "documentation": null, + "id": 4003, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "trancheTransferAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3979, + "nodeType": "ParameterList", + "parameters": [], + "src": "7682:2:12" + }, + "payable": false, + "returnParameters": { + "id": 3982, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { + "constant": false, + "id": 3981, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4003, + "src": "7706:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3980, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7706:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7705:6:12" + }, + "scope": 4056, + "src": "7651:227:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4041, + "nodeType": "Block", + "src": "7947:279:12", + "statements": [ + { + "assignments": [ + 4009, + 4011 + ], + "declarations": [ + { + "constant": false, + "id": 4009, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 4042, + "src": "7958:10:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4008, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7958:4:12", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 4179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4172, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9285:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9285:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4175, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10563, - "src": "9305:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - ], - "id": 4174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9297:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9297:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4170, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3323, - "src": "9268:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 4171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 10182, - "src": "9268:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 4177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9268:43:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4178, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9315:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9268:58:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } - } - ], - "expression": { - "argumentTypes": [ - { + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4011, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 4042, + "src": "7970:10:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4010, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7970:4:12", + "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 4169, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9260:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9260:67:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + }, + "value": null, + "visibility": "internal" } - }, - "id": 4181, - "nodeType": "ExpressionStatement", - "src": "9260:67:6" - }, - { - "expression": { + ], + "id": 4015, + "initialValue": { "argumentTypes": null, - "arguments": [ - { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "argumentTypes": null, - "id": 4183, - "name": "tokenAmount", + "id": 4012, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9352:11:6", + "referencedDeclaration": 3352, + "src": "7984:9:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } - ], - "id": 4182, - "name": "_refundAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4421, - "src": "9338:13:6", + }, + "id": 4013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getCurrentMilestoneIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 1711, + "src": "7984:34:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view external returns (uint256,bool)" } }, - "id": 4184, + "id": 4014, "isConstant": false, "isLValue": false, "isPure": false, @@ -12966,440 +9894,246 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9338:26:6", + "src": "7984:36:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" } }, - "id": 4185, - "nodeType": "ExpressionStatement", - "src": "9338:26:6" + "nodeType": "VariableDeclarationStatement", + "src": "7957:63:12" }, { - "expression": { + "condition": { "argumentTypes": null, - "id": 4191, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4021, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "id": 4186, - "name": "totalTokenRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "9375:18:6", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4189, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9419:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4187, - "name": "totalTokenRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "9396:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "9396:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } }, - "id": 4190, + "id": 4018, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9396:35:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9375:56:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4192, - "nodeType": "ExpressionStatement", - "src": "9375:56:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 4204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "leftExpression": { "argumentTypes": null, - "id": 4193, - "name": "tokenBoughtPerInvestor", + "id": 4016, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "9441:22:6", + "referencedDeclaration": 4009, + "src": "8034:5:12", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 4196, - "indexExpression": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4194, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9464:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4195, + "hexValue": "30", + "id": 4017, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9464:10:6", + "nodeType": "Literal", + "src": "8043:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9441:34:6", + "src": "8034:10:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4202, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9517:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4197, - "name": "tokenBoughtPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "9478:22:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4200, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4198, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9501:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9501:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9478:34:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "9478:38:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4203, + "id": 4020, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9478:51:6", + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8048:6:12", + "subExpression": { + "argumentTypes": null, + "id": 4019, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "8049:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "9441:88:6", + "src": "8034:20:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 4205, - "nodeType": "ExpressionStatement", - "src": "9441:88:6" + "falseBody": null, + "id": 4023, + "nodeType": "IfStatement", + "src": "8031:32:12", + "trueBody": { + "expression": null, + "functionReturnParameters": 4007, + "id": 4022, + "nodeType": "Return", + "src": "8056:7:12" + } }, { - "expression": { + "assignments": [ + 4025, + null, + null, + 4027, + null, + null + ], + "declarations": [ + { + "constant": false, + "id": 4025, + "name": "endDate", + "nodeType": "VariableDeclaration", + "scope": 4042, + "src": "8074:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4024, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "8074:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null, + { + "constant": false, + "id": 4027, + "name": "lastWithdrawalWindow", + "nodeType": "VariableDeclaration", + "scope": 4042, + "src": "8093:27:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4026, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "8093:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null + ], + "id": 4032, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4209, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9568:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9568:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4211, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3327, - "src": "9580:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4212, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9586:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4207, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3323, - "src": "9548:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 4208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 10193, - "src": "9548:19:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 4213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9548:50:6", + "id": 4030, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4009, + "src": "8151:5:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 4206, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9540:7:6", + "expression": { + "argumentTypes": null, + "id": 4028, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3352, + "src": "8128:9:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 4029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1685, + "src": "8128:22:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" } }, - "id": 4214, + "id": 4031, "isConstant": false, "isLValue": false, "isPure": false, @@ -13407,12238 +10141,1580 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9540:59:6", + "src": "8128:29:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", + "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" } }, - "id": 4215, - "nodeType": "ExpressionStatement", - "src": "9540:59:6" + "nodeType": "VariableDeclarationStatement", + "src": "8073:84:12" }, { - "eventCall": { + "expression": { "argumentTypes": null, - "arguments": [ - { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4217, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9629:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9629:10:6", + "id": 4033, + "name": "endDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4025, + "src": "8175:7:12", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, - { + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { "argumentTypes": null, - "id": 4219, - "name": "tokenAmount", + "id": 4034, + "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9641:11:6", + "referencedDeclaration": 13443, + "src": "8185:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + "src": "8175:13:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4036, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "8192:3:12", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 4216, - "name": "TokenRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3379, - "src": "9615:13:6", + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4037, + "name": "lastWithdrawalWindow", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4027, + "src": "8199:20:12", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "8192:27:12", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 4220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9615:38:6", + "src": "8175:44:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 4221, - "nodeType": "EmitStatement", - "src": "9610:43:6" + "functionReturnParameters": 4007, + "id": 4040, + "nodeType": "Return", + "src": "8168:51:12" } ] }, - "documentation": "@notice Refund bought tokens", - "id": 4223, + "documentation": null, + "id": 4042, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 4137, - "modifierName": { - "argumentTypes": null, - "id": 4136, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9776, - "src": "9033:12:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9033:12:6" - } - ], - "name": "refund", + "isDeclaredConst": true, + "modifiers": [], + "name": "isWithdrawalWindowActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 4135, + "id": 4004, + "nodeType": "ParameterList", + "parameters": [], + "src": "7917:2:12" + }, + "payable": false, + "returnParameters": { + "id": 4007, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4134, - "name": "tokenAmount", + "id": 4006, + "name": "", "nodeType": "VariableDeclaration", - "scope": 4223, - "src": "9006:16:6", + "scope": 4042, + "src": "7941:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "id": 4133, - "name": "uint", + "id": 4005, + "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9006:4:6", + "src": "7941:4:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "value": null, "visibility": "internal" } ], - "src": "9005:18:6" - }, - "payable": false, - "returnParameters": { - "id": 4138, - "nodeType": "ParameterList", - "parameters": [], - "src": "9046:0:6" + "src": "7940:6:12" }, - "scope": 4535, - "src": "8990:670:6", - "stateMutability": "nonpayable", + "scope": 4056, + "src": "7884:342:12", + "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": { - "id": 4420, + "id": 4054, "nodeType": "Block", - "src": "9716:1798:6", + "src": "8255:70:12", "statements": [ { - "assignments": [ - 4229 - ], - "declarations": [ - { - "constant": false, - "id": 4229, - "name": "ln", - "nodeType": "VariableDeclaration", - "scope": 4421, - "src": "9726:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4228, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9726:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4237, - "initialValue": { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "id": 4230, - "name": "fundedPerInvestor", + "id": 4045, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "9736:17:6", + "referencedDeclaration": 13441, + "src": "8273:3:12", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 4233, - "indexExpression": { - "argumentTypes": null, - "expression": { + "id": 4046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8273:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 4231, - "name": "msg", + "id": 4048, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9754:3:6", + "referencedDeclaration": 3352, + "src": "8295:9:12", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } - }, - "id": 4232, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 4047, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9754:10:6", + "nodeType": "ElementaryTypeNameExpression", + "src": "8287:7:12", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, + "id": 4049, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9736:29:6", + "names": [], + "nodeType": "FunctionCall", + "src": "8287:18:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 4234, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbolsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "9736:41:6", + "src": "8273:32:12", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 4235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9736:43:6", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4044, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "8265:7:12", "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 4236, + "id": 4051, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9736:50:6", + "names": [], + "nodeType": "FunctionCall", + "src": "8265:41:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "9726:60:6" + "id": 4052, + "nodeType": "ExpressionStatement", + "src": "8265:41:12" }, { - "body": { - "id": 4418, - "nodeType": "Block", - "src": "9813:1695:6", - "statements": [ - { - "assignments": [ - 4242 - ], - "declarations": [ - { - "constant": false, - "id": 4242, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 4421, - "src": "9827:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4241, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9827:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4252, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4243, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "9844:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 4246, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4244, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9862:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9862:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9844:29:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 4247, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbolsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "9844:41:6", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" - } - }, - "id": 4248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9844:43:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 4251, - "indexExpression": { - "argumentTypes": null, - "id": 4250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": true, - "src": "9888:4:6", - "subExpression": { - "argumentTypes": null, - "id": 4249, - "name": "ln", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4229, - "src": "9890:2:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9844:49:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9827:66:6" - }, - { - "assignments": [ - 4254 - ], - "declarations": [ - { - "constant": false, - "id": 4254, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 4421, - "src": "9907:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4253, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9907:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4262, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4260, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "9960:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4255, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "9921:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 4258, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4256, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9939:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9939:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9921:29:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 4259, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "9921:38:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" - } - }, - "id": 4261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9921:46:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9907:60:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4263, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "9986:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9996:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9986:11:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4267, - "nodeType": "IfStatement", - "src": "9982:25:6", - "trueBody": { - "id": 4266, - "nodeType": "Continue", - "src": "9999:8:6" - } - }, - { - "assignments": [ - 4269 - ], - "declarations": [ - { - "constant": false, - "id": 4269, - "name": "sourceAmount", - "nodeType": "VariableDeclaration", - "scope": 4421, - "src": "10055:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4268, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10055:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4279, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4272, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4225, - "src": "10109:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4273, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "10138:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4274, - "name": "tokenBoughtPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "10162:22:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4277, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4275, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "10185:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10185:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10162:34:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4270, - "name": "Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "10075:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", - "typeString": "type(library Utils)" - } - }, - "id": 4271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeMulDiv", - "nodeType": "MemberAccess", - "referencedDeclaration": 6323, - "src": "10075:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10075:135:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10055:155:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4281, - "name": "sourceAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "10233:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4282, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10248:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10233:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4280, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10225:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10225:25:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4285, - "nodeType": "ExpressionStatement", - "src": "10225:25:6" - }, - { - "assignments": [ - 4287 - ], - "declarations": [ - { - "constant": false, - "id": 4287, - "name": "releasedTranche", - "nodeType": "VariableDeclaration", - "scope": 4421, - "src": "10328:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4286, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10328:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4295, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4293, - "name": "totalTranchePercentReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3333, - "src": "10426:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4290, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10389:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4288, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "10351:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 4289, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "10351:37:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" - } - }, - "id": 4291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10351:45:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "10351:74:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10351:103:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10328:126:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 4312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4296, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "10518:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4304, - "name": "releasedTranche", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4287, - "src": "10594:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4301, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10582:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4299, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "10561:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 4300, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "10561:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" - } - }, - "id": 4302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10561:28:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "10561:32:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10561:49:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4306, - "name": "sourceAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "10628:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4309, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10679:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4307, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "10658:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 4308, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "10658:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" - } - }, - "id": 4310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10658:28:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4297, - "name": "Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "10527:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", - "typeString": "type(library Utils)" - } - }, - "id": 4298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeMulDiv", - "nodeType": "MemberAccess", - "referencedDeclaration": 6323, - "src": "10527:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10527:173:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10518:182:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4313, - "nodeType": "ExpressionStatement", - "src": "10518:182:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4315, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "10723:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10732:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10723:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4314, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10715:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10715:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4319, - "nodeType": "ExpressionStatement", - "src": "10715:19:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 4329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4320, - "name": "totalFundedReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "10749:19:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4322, - "indexExpression": { - "argumentTypes": null, - "id": 4321, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10769:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10749:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4327, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "10811:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4323, - "name": "totalFundedReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "10779:19:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4325, - "indexExpression": { - "argumentTypes": null, - "id": 4324, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10799:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10779:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "10779:31:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10779:39:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10749:69:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4330, - "nodeType": "ExpressionStatement", - "src": "10749:69:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4336, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10873:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 4337, - "name": "sourceAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "10881:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4331, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "10832:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 4334, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4332, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "10850:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10850:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10832:29:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 4335, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "withdrawal", - "nodeType": "MemberAccess", - "referencedDeclaration": 4878, - "src": "10832:40:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" - } - }, - "id": 4338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10832:62:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4339, - "nodeType": "ExpressionStatement", - "src": "10832:62:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4340, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10913:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4341, - "name": "METHOD_USD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "10923:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "10913:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4344, - "nodeType": "IfStatement", - "src": "10909:34:6", - "trueBody": { - "id": 4343, - "nodeType": "Continue", - "src": "10935:8:6" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4345, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10962:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 4346, - "name": "METHOD_ETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "10972:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "10962:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 4381, - "nodeType": "Block", - "src": "11151:73:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4374, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10563, - "src": "11185:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - ], - "id": 4373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11177:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11177:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11177:21:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4377, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "11202:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11177:31:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4372, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11169:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11169:40:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4380, - "nodeType": "ExpressionStatement", - "src": "11169:40:6" - } - ] - }, - "id": 4382, - "nodeType": "IfStatement", - "src": "10958:266:6", - "trueBody": { - "id": 4371, - "nodeType": "Block", - "src": "10984:161:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4351, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "11024:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4349, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "11010:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "11010:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 4352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11010:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4348, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11002:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11002:30:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4354, - "nodeType": "ExpressionStatement", - "src": "11002:30:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4364, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10563, - "src": "11113:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - ], - "id": 4363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11105:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11105:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4359, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "11086:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4357, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "11064:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "11064:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 4360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11064:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4356, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "11058:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 4361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11058:36:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 4362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "11058:46:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 4366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11058:61:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4367, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "11123:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11058:71:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4355, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11050:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11050:80:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4370, - "nodeType": "ExpressionStatement", - "src": "11050:80:6" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4383, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "11242:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4384, - "name": "METHOD_ETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "11252:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "11242:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 4409, - "nodeType": "Block", - "src": "11330:107:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "11402:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11402:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4405, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "11414:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4399, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "11384:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4397, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "11362:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "11362:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 4400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11362:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4396, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "11356:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 4401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11356:36:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 4402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "11356:45:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 4406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11356:65:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11348:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11348:74:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4408, - "nodeType": "ExpressionStatement", - "src": "11348:74:6" - } - ] - }, - "id": 4410, - "nodeType": "IfStatement", - "src": "11238:199:6", - "trueBody": { - "id": 4394, - "nodeType": "Block", - "src": "11264:60:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4391, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "11302:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4386, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "11282:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11282:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11282:19:6", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 4392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11282:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4393, - "nodeType": "ExpressionStatement", - "src": "11282:27:6" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "11470:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11470:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4414, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "11482:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 4415, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "11490:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4411, - "name": "AssetRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3373, - "src": "11456:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (address,bytes32,uint256)" - } - }, - "id": 4416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11456:41:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4417, - "nodeType": "EmitStatement", - "src": "11451:46:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4238, - "name": "ln", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4229, - "src": "9804:2:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9810:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9804:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4419, - "nodeType": "WhileStatement", - "src": "9797:1711:6" - } - ] - }, - "documentation": null, - "id": 4421, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_refundAssets", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4226, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4225, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 4421, - "src": "9689:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4224, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9689:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9688:18:6" - }, - "payable": false, - "returnParameters": { - "id": 4227, - "nodeType": "ParameterList", - "parameters": [], - "src": "9716:0:6" - }, - "scope": 4535, - "src": "9666:1848:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 4456, - "nodeType": "Block", - "src": "11577:387:6", - "statements": [ - { - "assignments": [ - 4427, - 4429 - ], - "declarations": [ - { - "constant": false, - "id": 4427, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 4457, - "src": "11588:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4426, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11588:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4429, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 4457, - "src": "11600:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4428, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11600:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4433, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4430, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "11614:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 4431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getCurrentMilestoneIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 1175, - "src": "11614:34:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view external returns (uint256,bool)" - } - }, - "id": 4432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11614:36:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11587:63:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4434, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4427, - "src": "11789:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11798:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11789:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4438, - "nodeType": "IfStatement", - "src": "11786:22:6", - "trueBody": { - "expression": null, - "functionReturnParameters": 4425, - "id": 4437, - "nodeType": "Return", - "src": "11801:7:6" - } - }, - { - "assignments": [ - 4440, - null, - null, - 4442, - null, - null - ], - "declarations": [ - { - "constant": false, - "id": 4440, - "name": "endDate", - "nodeType": "VariableDeclaration", - "scope": 4457, - "src": "11819:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 4439, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "11819:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - null, - null, - { - "constant": false, - "id": 4442, - "name": "withdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 4457, - "src": "11839:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 4441, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "11839:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - null, - null - ], - "id": 4447, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4445, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4427, - "src": "11893:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4443, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "11870:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 4444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 1149, - "src": "11870:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" - } - }, - "id": 4446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11870:29:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11818:81:6" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4448, - "name": "endDate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4440, - "src": "11917:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 4449, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "11928:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11917:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4451, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "11935:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 4452, - "name": "withdrawalWindow", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4442, - "src": "11941:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "11935:22:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11917:40:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4425, - "id": 4455, - "nodeType": "Return", - "src": "11910:47:6" - } - ] - }, - "documentation": null, - "id": 4457, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "tokenRefundAllowed", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4422, - "nodeType": "ParameterList", - "parameters": [], - "src": "11547:2:6" - }, - "payable": false, - "returnParameters": { - "id": 4425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4424, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4457, - "src": "11571:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4423, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11571:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11570:6:6" - }, - "scope": 4535, - "src": "11520:444:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4481, - "nodeType": "Block", - "src": "12031:166:6", - "statements": [ - { - "assignments": [ - 4463, - 4465 - ], - "declarations": [ - { - "constant": false, - "id": 4463, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 4482, - "src": "12042:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12042:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4465, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 4482, - "src": "12054:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4464, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12054:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4469, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4466, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "12068:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 4467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getCurrentMilestoneIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 1175, - "src": "12068:34:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view external returns (uint256,bool)" - } - }, - "id": 4468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12068:36:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12041:63:6" - }, - { - "condition": { - "argumentTypes": null, - "id": 4471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "12118:6:6", - "subExpression": { - "argumentTypes": null, - "id": 4470, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4465, - "src": "12119:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4473, - "nodeType": "IfStatement", - "src": "12115:18:6", - "trueBody": { - "expression": null, - "functionReturnParameters": 4461, - "id": 4472, - "nodeType": "Return", - "src": "12126:7:6" - } - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4474, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4463, - "src": "12150:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12159:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12150:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4477, - "name": "isWithdrawalWindowActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4521, - "src": "12164:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 4478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12164:26:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "12150:40:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4461, - "id": 4480, - "nodeType": "Return", - "src": "12143:47:6" - } - ] - }, - "documentation": null, - "id": 4482, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "trancheTransferAllowed", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4458, - "nodeType": "ParameterList", - "parameters": [], - "src": "12001:2:6" - }, - "payable": false, - "returnParameters": { - "id": 4461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4482, - "src": "12025:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4459, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12025:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12024:6:6" - }, - "scope": 4535, - "src": "11970:227:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4520, - "nodeType": "Block", - "src": "12266:279:6", - "statements": [ - { - "assignments": [ - 4488, - 4490 - ], - "declarations": [ - { - "constant": false, - "id": 4488, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 4521, - "src": "12277:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4487, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12277:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4490, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 4521, - "src": "12289:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4489, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12289:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4494, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4491, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "12303:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 4492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getCurrentMilestoneIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 1175, - "src": "12303:34:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view external returns (uint256,bool)" - } - }, - "id": 4493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12303:36:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12276:63:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4495, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4488, - "src": "12353:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12362:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12353:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 4499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "12367:6:6", - "subExpression": { - "argumentTypes": null, - "id": 4498, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4490, - "src": "12368:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "12353:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4502, - "nodeType": "IfStatement", - "src": "12350:32:6", - "trueBody": { - "expression": null, - "functionReturnParameters": 4486, - "id": 4501, - "nodeType": "Return", - "src": "12375:7:6" - } - }, - { - "assignments": [ - 4504, - null, - null, - 4506, - null, - null - ], - "declarations": [ - { - "constant": false, - "id": 4504, - "name": "endDate", - "nodeType": "VariableDeclaration", - "scope": 4521, - "src": "12393:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 4503, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "12393:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - null, - null, - { - "constant": false, - "id": 4506, - "name": "lastWithdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 4521, - "src": "12412:27:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 4505, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "12412:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - null, - null - ], - "id": 4511, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4509, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4488, - "src": "12470:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4507, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "12447:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 4508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 1149, - "src": "12447:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" - } - }, - "id": 4510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12447:29:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12392:84:6" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4512, - "name": "endDate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4504, - "src": "12494:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 4513, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "12504:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12494:13:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4515, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "12511:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4516, - "name": "lastWithdrawalWindow", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4506, - "src": "12518:20:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "12511:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "12494:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4486, - "id": 4519, - "nodeType": "Return", - "src": "12487:51:6" - } - ] - }, - "documentation": null, - "id": 4521, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isWithdrawalWindowActive", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4483, - "nodeType": "ParameterList", - "parameters": [], - "src": "12236:2:6" - }, - "payable": false, - "returnParameters": { - "id": 4486, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4485, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4521, - "src": "12260:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4484, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12260:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12259:6:6" - }, - "scope": 4535, - "src": "12203:342:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4533, - "nodeType": "Block", - "src": "12585:58:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4526, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "12603:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12603:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4528, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4523, - "src": "12617:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12603:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "12595:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12595:29:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4531, - "nodeType": "ExpressionStatement", - "src": "12595:29:6" - }, - { - "id": 4532, - "nodeType": "PlaceholderStatement", - "src": "12635:1:6" - } - ] - }, - "documentation": null, - "id": 4534, - "name": "onlyFrom", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 4524, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4523, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 4534, - "src": "12569:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4522, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12569:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12568:16:6" - }, - "src": "12551:92:6", - "visibility": "internal" - } - ], - "scope": 4536, - "src": "497:12148:6" - } - ], - "src": "0:12646:6" - }, - "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", - "exportedSymbols": { - "W12Fund": [ - 4535 - ] - }, - "id": 4536, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3281, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:6" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 3282, - "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 10135, - "src": "26:63:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 3283, - "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 9778, - "src": "90:61:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 3284, - "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 10049, - "src": "152:59:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 3285, - "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 10212, - "src": "212:63:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", - "file": "./IW12Crowdsale.sol", - "id": 3286, - "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 1225, - "src": "276:29:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", - "file": "./IW12Fund.sol", - "id": 3287, - "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 1262, - "src": "306:24:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", - "file": "../rates/IRates.sol", - "id": 3288, - "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 7280, - "src": "331:29:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", - "file": "../libs/Percent.sol", - "id": 3289, - "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 5215, - "src": "361:29:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/libs/FundAccount.sol", - "file": "../libs/FundAccount.sol", - "id": 3290, - "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 4953, - "src": "391:33:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "../versioning/Versionable.sol", - "id": 3291, - "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 9517, - "src": "425:39:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", - "file": "../token/IWToken.sol", - "id": 3292, - "nodeType": "ImportDirective", - "scope": 4536, - "sourceUnit": 7895, - "src": "465:30:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3293, - "name": "Versionable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "517:11:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", - "typeString": "contract Versionable" - } - }, - "id": 3294, - "nodeType": "InheritanceSpecifier", - "src": "517:11:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3295, - "name": "IW12Fund", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "530:8:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", - "typeString": "contract IW12Fund" - } - }, - "id": 3296, - "nodeType": "InheritanceSpecifier", - "src": "530:8:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3297, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "540:7:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" - } - }, - "id": 3298, - "nodeType": "InheritanceSpecifier", - "src": "540:7:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3299, - "name": "ReentrancyGuard", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9777, - "src": "549:15:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9777", - "typeString": "contract ReentrancyGuard" - } - }, - "id": 3300, - "nodeType": "InheritanceSpecifier", - "src": "549:15:6" - } - ], - "contractDependencies": [ - 1261, - 9516, - 9777, - 10134 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 4535, - "linearizedBaseContracts": [ - 4535, - 9777, - 10134, - 1261, - 9516 - ], - "name": "W12Fund", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3303, - "libraryName": { - "contractScope": null, - "id": 3301, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "577:8:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "571:24:6", - "typeName": { - "id": 3302, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "590:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 3306, - "libraryName": { - "contractScope": null, - "id": 3304, - "name": "Percent", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5214, - "src": "606:7:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$5214", - "typeString": "library Percent" - } - }, - "nodeType": "UsingForDirective", - "src": "600:23:6", - "typeName": { - "id": 3305, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "618:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 3309, - "libraryName": { - "contractScope": null, - "id": 3307, - "name": "FundAccount", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4952, - "src": "634:11:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_FundAccount_$4952", - "typeString": "library FundAccount" - } - }, - "nodeType": "UsingForDirective", - "src": "628:42:6", - "typeName": { - "contractScope": null, - "id": 3308, - "name": "FundAccount.Account", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "650:19:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", - "typeString": "struct FundAccount.Account" - } - } - }, - { - "constant": true, - "id": 3314, - "name": "METHOD_ETH", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "676:44:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3310, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "676:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "455448", - "id": 3312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "714:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", - "typeString": "literal_string \"ETH\"" - }, - "value": "ETH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", - "typeString": "literal_string \"ETH\"" - } - ], - "id": 3311, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "706:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": "bytes32" - }, - "id": 3313, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "706:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 3319, - "name": "METHOD_USD", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "726:44:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3315, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "726:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "555344", - "id": 3317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "764:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", - "typeString": "literal_string \"USD\"" - }, - "value": "USD" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", - "typeString": "literal_string \"USD\"" - } - ], - "id": 3316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "756:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": "bytes32" - }, - "id": 3318, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "756:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3321, - "name": "crowdsale", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "777:30:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - }, - "typeName": { - "contractScope": null, - "id": 3320, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "777:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3323, - "name": "wToken", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "813:21:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - }, - "typeName": { - "contractScope": null, - "id": 3322, - "name": "IWToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "813:7:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3325, - "name": "rates", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "840:19:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - }, - "typeName": { - "contractScope": null, - "id": 3324, - "name": "IRates", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "840:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3327, - "name": "swap", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "865:19:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3326, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "865:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3329, - "name": "serviceWallet", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "890:28:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3328, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "890:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3331, - "name": "trancheFeePercent", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "956:29:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3330, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "956:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3333, - "name": "totalTranchePercentReleased", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1040:39:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3332, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1040:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3337, - "name": "completedTranches", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1127:47:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "typeName": { - "id": 3336, - "keyType": { - "id": 3334, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1136:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "1127:22:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 3335, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1144:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3339, - "name": "totalFunded", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1208:31:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account" - }, - "typeName": { - "contractScope": null, - "id": 3338, - "name": "FundAccount.Account", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "1208:19:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", - "typeString": "struct FundAccount.Account" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3343, - "name": "totalFundedReleased", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1373:44:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3342, - "keyType": { - "id": 3340, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1381:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1373:24:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3341, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1392:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3345, - "name": "totalTokenBought", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1459:28:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3344, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1459:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3347, - "name": "totalTokenRefunded", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1531:30:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3346, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1531:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3351, - "name": "tokenBoughtPerInvestor", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1616:48:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3350, - "keyType": { - "id": 3348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1625:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1616:25:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3349, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1636:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3355, - "name": "fundedPerInvestor", - "nodeType": "VariableDeclaration", - "scope": 4535, - "src": "1714:58:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account)" - }, - "typeName": { - "id": 3354, - "keyType": { - "id": 3352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1723:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1714:40:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account)" - }, - "valueType": { - "contractScope": null, - "id": 3353, - "name": "FundAccount.Account", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4809, - "src": "1734:19:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage_ptr", - "typeString": "struct FundAccount.Account" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 3365, - "name": "FundsReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 3364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3357, - "indexed": true, - "name": "investor", - "nodeType": "VariableDeclaration", - "scope": 3365, - "src": "1799:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3356, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1799:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3359, - "indexed": false, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 3365, - "src": "1825:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3358, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1825:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3361, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3365, - "src": "1843:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3360, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1843:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3363, - "indexed": false, - "name": "cost", - "nodeType": "VariableDeclaration", - "scope": 3365, - "src": "1859:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3362, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1859:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1798:71:6" - }, - "src": "1779:91:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 3373, - "name": "AssetRefunded", - "nodeType": "EventDefinition", - "parameters": { - "id": 3372, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3367, - "indexed": true, - "name": "investor", - "nodeType": "VariableDeclaration", - "scope": 3373, - "src": "1895:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3366, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1895:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3369, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3373, - "src": "1921:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3368, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1921:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3371, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 3373, - "src": "1937:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3370, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1937:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1894:55:6" - }, - "src": "1875:75:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 3379, - "name": "TokenRefunded", - "nodeType": "EventDefinition", - "parameters": { - "id": 3378, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3375, - "indexed": true, - "name": "investor", - "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1975:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3374, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1975:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3377, - "indexed": false, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "2001:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3376, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2001:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1974:44:6" - }, - "src": "1955:64:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 3387, - "name": "TrancheTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3386, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3381, - "indexed": true, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "2049:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2049:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3383, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "2075:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3382, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2075:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3385, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "2091:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3384, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2091:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2048:55:6" - }, - "src": "2024:80:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 3393, - "name": "TrancheReleased", - "nodeType": "EventDefinition", - "parameters": { - "id": 3392, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3389, - "indexed": true, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 3393, - "src": "2131:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3388, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2131:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3391, - "indexed": false, - "name": "percent", - "nodeType": "VariableDeclaration", - "scope": 3393, - "src": "2157:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3390, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2157:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2130:40:6" - }, - "src": "2109:62:6" - }, - { - "body": { - "id": 3433, - "nodeType": "Block", - "src": "2271:210:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3406, - "name": "_trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3397, - "src": "2289:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "2289:28:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 3408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2289:30:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3409, - "name": "_trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3397, - "src": "2323:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "2323:30:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 3411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2323:32:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "313030", - "id": 3412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2358:3:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "src": "2323:38:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2289:72:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3405, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2281:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2281:81:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3416, - "nodeType": "ExpressionStatement", - "src": "2281:81:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3418, - "name": "_rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2380:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2398:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2390:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2390:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2380:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3417, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2372:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2372:29:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3424, - "nodeType": "ExpressionStatement", - "src": "2372:29:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3425, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3331, - "src": "2412:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "_trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3397, - "src": "2432:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2412:38:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3428, - "nodeType": "ExpressionStatement", - "src": "2412:38:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3429, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "2460:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3430, - "name": "_rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2468:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "src": "2460:14:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 3432, - "nodeType": "ExpressionStatement", - "src": "2460:14:6" - } - ] - }, - "documentation": null, - "id": 3434, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3402, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "2255:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3403, - "modifierName": { - "argumentTypes": null, - "id": 3401, - "name": "Versionable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "2243:11:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", - "typeString": "type(contract Versionable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2243:20:6" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3395, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3434, - "src": "2189:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3394, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2189:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3397, - "name": "_trancheFeePercent", - "nodeType": "VariableDeclaration", - "scope": 3434, - "src": "2203:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3396, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2203:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3399, - "name": "_rates", - "nodeType": "VariableDeclaration", - "scope": 3434, - "src": "2228:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - }, - "typeName": { - "contractScope": null, - "id": 3398, - "name": "IRates", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "2228:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2188:54:6" - }, - "payable": false, - "returnParameters": { - "id": 3404, - "nodeType": "ParameterList", - "parameters": [], - "src": "2271:0:6" - }, - "scope": 4535, - "src": "2177:304:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3471, - "nodeType": "Block", - "src": "2554:188:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3442, - "name": "_crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "2572:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3444, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2594:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2586:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2586:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2572:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3441, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2564:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2564:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3448, - "nodeType": "ExpressionStatement", - "src": "2564:33:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3450, - "name": "_crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "2615:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getWToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 1132, - "src": "2615:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWToken_$7894_$", - "typeString": "function () view external returns (contract IWToken)" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2615:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3454, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2649:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3453, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2641:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2641:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2615:36:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3449, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2607:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2607:45:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3458, - "nodeType": "ExpressionStatement", - "src": "2607:45:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3459, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "2663:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3460, - "name": "_crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "2675:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "src": "2663:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3462, - "nodeType": "ExpressionStatement", - "src": "2663:22:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3463, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3323, - "src": "2695:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3465, - "name": "_crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "2712:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getWToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 1132, - "src": "2712:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWToken_$7894_$", - "typeString": "function () view external returns (contract IWToken)" - } - }, - "id": 3467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2712:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - ], - "id": 3464, - "name": "IWToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7894, - "src": "2704:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWToken_$7894_$", - "typeString": "type(contract IWToken)" - } - }, - "id": 3468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2704:31:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "src": "2695:40:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 3470, - "nodeType": "ExpressionStatement", - "src": "2695:40:6" - } - ] - }, - "documentation": null, - "id": 3472, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3439, - "modifierName": { - "argumentTypes": null, - "id": 3438, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "2535:9:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2535:9:6" - } - ], - "name": "setCrowdsale", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3437, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3436, - "name": "_crowdsale", - "nodeType": "VariableDeclaration", - "scope": 3472, - "src": "2509:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - }, - "typeName": { - "contractScope": null, - "id": 3435, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "2509:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2508:26:6" - }, - "payable": false, - "returnParameters": { - "id": 3440, - "nodeType": "ParameterList", - "parameters": [], - "src": "2554:0:6" - }, - "scope": 4535, - "src": "2487:255:6", - "stateMutability": "nonpayable", - "superFunction": 1232, - "visibility": "external" - }, - { - "body": { - "id": 3491, - "nodeType": "Block", - "src": "2799:68:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3474, - "src": "2817:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2834:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2826:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2826:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2817:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3479, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2809:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2809:28:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3486, - "nodeType": "ExpressionStatement", - "src": "2809:28:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3487, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3327, - "src": "2848:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3488, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3474, - "src": "2855:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3490, - "nodeType": "ExpressionStatement", - "src": "2848:12:6" - } - ] - }, - "documentation": null, - "id": 3492, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3477, - "modifierName": { - "argumentTypes": null, - "id": 3476, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "2780:9:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2780:9:6" - } - ], - "name": "setSwap", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3475, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3474, - "name": "_swap", - "nodeType": "VariableDeclaration", - "scope": 3492, - "src": "2765:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3473, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2765:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2764:15:6" - }, - "payable": false, - "returnParameters": { - "id": 3478, - "nodeType": "ParameterList", - "parameters": [], - "src": "2799:0:6" - }, - "scope": 4535, - "src": "2748:119:6", - "stateMutability": "nonpayable", - "superFunction": 1242, - "visibility": "external" - }, - { - "body": { - "id": 3511, - "nodeType": "Block", - "src": "2942:95:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3500, - "name": "_serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "2960:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2986:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2978:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2978:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2960:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3499, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2952:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2952:37:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3506, - "nodeType": "ExpressionStatement", - "src": "2952:37:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3507, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3329, - "src": "3000:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3508, - "name": "_serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "3016:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3000:30:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3510, - "nodeType": "ExpressionStatement", - "src": "3000:30:6" - } - ] - }, - "documentation": null, - "id": 3512, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3497, - "modifierName": { - "argumentTypes": null, - "id": 3496, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "2923:9:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2923:9:6" - } - ], - "name": "setServiceWallet", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3494, - "name": "_serviceWallet", - "nodeType": "VariableDeclaration", - "scope": 3512, - "src": "2899:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2899:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2898:24:6" - }, - "payable": false, - "returnParameters": { - "id": 3498, - "nodeType": "ParameterList", - "parameters": [], - "src": "2942:0:6" - }, - "scope": 4535, - "src": "2873:164:6", - "stateMutability": "nonpayable", - "superFunction": 1237, - "visibility": "external" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3547:991:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3529, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3516, - "src": "3565:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3530, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3579:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3565:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3528, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3557:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3557:24:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3533, - "nodeType": "ExpressionStatement", - "src": "3557:24:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3535, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "3599:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3606:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3599:8:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3591:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3591:17:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3539, - "nodeType": "ExpressionStatement", - "src": "3591:17:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3541, - "name": "costUSD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3522, - "src": "3626:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3636:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3626:11:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3540, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3618:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3618:20:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3545, - "nodeType": "ExpressionStatement", - "src": "3618:20:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3547, - "name": "investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "3656:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3676:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3668:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3668:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3656:22:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3546, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3648:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3648:31:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3553, - "nodeType": "ExpressionStatement", - "src": "3648:31:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3713:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3555, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "3697:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 3556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "hasSymbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 7301, - "src": "3697:15:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 3558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3697:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3554, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3689:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3689:32:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3560, - "nodeType": "ExpressionStatement", - "src": "3689:32:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 3563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3561, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3761:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3562, - "name": "METHOD_ETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "3771:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "3761:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3601, - "nodeType": "Block", - "src": "3841:181:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3575, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3877:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3573, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "3863:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 3574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "3863:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 3576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3863:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3572, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3855:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3855:30:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3578, - "nodeType": "ExpressionStatement", - "src": "3855:30:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3588, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10563, - "src": "3962:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - ], - "id": 3587, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3954:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3954:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3583, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3935:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3581, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "3913:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 3582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "3913:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 3584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3913:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3580, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "3907:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 3585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3907:36:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 3586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "3907:46:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 3590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3907:61:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3596, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "4005:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3593, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3993:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3591, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "3972:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3592, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "3972:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" - } - }, - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3972:28:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "3972:32:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3972:38:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3907:103:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3579, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3899:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3899:112:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3600, - "nodeType": "ExpressionStatement", - "src": "3899:112:6" - } - ] - }, - "id": 3602, - "nodeType": "IfStatement", - "src": "3757:265:6", - "trueBody": { - "id": 3571, - "nodeType": "Block", - "src": "3784:51:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3565, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "3806:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3806:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3567, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "3819:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3806:17:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3564, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3798:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3798:26:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3570, - "nodeType": "ExpressionStatement", - "src": "3798:26:6" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3603, - "name": "tokenBoughtPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4069:22:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3605, - "indexExpression": { - "argumentTypes": null, - "id": 3604, - "name": "investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "4092:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4069:32:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3610, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3516, - "src": "4141:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3606, - "name": "tokenBoughtPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4104:22:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3608, - "indexExpression": { - "argumentTypes": null, - "id": 3607, - "name": "investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "4127:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4104:32:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "4104:36:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4104:49:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4069:84:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3613, - "nodeType": "ExpressionStatement", - "src": "4069:84:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3618, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4199:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3619, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "4207:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3614, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "4163:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 3616, - "indexExpression": { - "argumentTypes": null, - "id": 3615, - "name": "investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "4181:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4163:27:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 4838, - "src": "4163:35:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" - } - }, - "id": 3620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4163:49:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3621, - "nodeType": "ExpressionStatement", - "src": "4163:49:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3626, - "name": "METHOD_USD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "4258:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3627, - "name": "costUSD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3522, - "src": "4270:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3622, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "4222:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 3624, - "indexExpression": { - "argumentTypes": null, - "id": 3623, - "name": "investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "4240:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4222:27:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3625, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 4838, - "src": "4222:35:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" - } - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4222:56:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3629, - "nodeType": "ExpressionStatement", - "src": "4222:56:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3630, - "name": "totalTokenBought", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3345, - "src": "4320:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3633, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3516, - "src": "4360:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3631, - "name": "totalTokenBought", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3345, - "src": "4339:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "4339:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4339:33:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4320:52:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3636, - "nodeType": "ExpressionStatement", - "src": "4320:52:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3640, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4402:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3641, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "4410:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "4382:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3639, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 4838, - "src": "4382:19:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" - } - }, - "id": 3642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4382:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3643, - "nodeType": "ExpressionStatement", - "src": "4382:33:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3647, - "name": "METHOD_USD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "4445:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3648, - "name": "costUSD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3522, - "src": "4457:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3644, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "4425:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 4838, - "src": "4425:19:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" - } - }, - "id": 3649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4425:40:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3650, - "nodeType": "ExpressionStatement", - "src": "4425:40:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3652, - "name": "investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "4495:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3653, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3516, - "src": "4505:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3654, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4518:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3655, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "4526:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3651, - "name": "FundsReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3365, - "src": "4481:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,bytes32,uint256)" - } - }, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4481:50:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3657, - "nodeType": "EmitStatement", - "src": "4476:55:6" - } - ] - }, - "documentation": "@dev Record purchase result to the fund and check the fund balance\n@param investor An investor address\n@param tokenAmount Token amount that was bought\n@param symbol Symbol of payment method\n@param cost Cost of token amount\n@param costUSD Cost in USD", - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3525, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "3532:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - } - ], - "id": 3526, - "modifierName": { - "argumentTypes": null, - "id": 3524, - "name": "onlyFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4534, - "src": "3523:8:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3523:19:6" - } - ], - "name": "recordPurchase", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3514, - "name": "investor", - "nodeType": "VariableDeclaration", - "scope": 3659, - "src": "3384:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3384:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3516, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 3659, - "src": "3410:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3515, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3410:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3518, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3659, - "src": "3436:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3517, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3436:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3520, - "name": "cost", - "nodeType": "VariableDeclaration", - "scope": 3659, - "src": "3460:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3519, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3460:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3522, - "name": "costUSD", - "nodeType": "VariableDeclaration", - "scope": 3659, - "src": "3479:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3479:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3374:123:6" - }, - "payable": true, - "returnParameters": { - "id": 3527, - "nodeType": "ParameterList", - "parameters": [], - "src": "3547:0:6" - }, - "scope": 4535, - "src": "3351:1187:6", - "stateMutability": "payable", - "superFunction": 1260, - "visibility": "external" - }, - { - "body": { - "id": 3675, - "nodeType": "Block", - "src": "4639:70:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3672, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "4694:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3668, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "4656:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 3670, - "indexExpression": { - "argumentTypes": null, - "id": 3669, - "name": "_investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "4674:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4656:28:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3671, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "4656:37:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" - } - }, - "id": 3673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4656:46:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3667, - "id": 3674, - "nodeType": "Return", - "src": "4649:53:6" - } - ] - }, - "documentation": null, - "id": 3676, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getInvestorFundedAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3664, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3661, - "name": "_investor", - "nodeType": "VariableDeclaration", - "scope": 3676, - "src": "4577:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3660, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4577:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3663, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3676, - "src": "4596:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3662, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4596:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4576:36:6" - }, - "payable": false, - "returnParameters": { - "id": 3667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3666, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3676, - "src": "4633:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3665, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4633:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4632:6:6" - }, - "scope": 4535, - "src": "4544:165:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3690, - "nodeType": "Block", - "src": "4805:66:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3684, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "4822:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 3686, - "indexExpression": { - "argumentTypes": null, - "id": 3685, - "name": "_investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3678, - "src": "4840:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4822:28:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3687, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbolsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "4822:40:6", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" - } - }, - "id": 3688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4822:42:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "functionReturnParameters": 3683, - "id": 3689, - "nodeType": "Return", - "src": "4815:49:6" - } - ] - }, - "documentation": null, - "id": 3691, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getInvestorFundedAssetsSymbols", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3679, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3678, - "name": "_investor", - "nodeType": "VariableDeclaration", - "scope": 3691, - "src": "4755:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3677, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4755:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4754:19:6" - }, - "payable": false, - "returnParameters": { - "id": 3683, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3682, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3691, - "src": "4794:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 3680, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4794:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3681, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4794:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4793:11:6" - }, - "scope": 4535, - "src": "4715:156:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3702, - "nodeType": "Block", - "src": "4961:57:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3698, - "name": "tokenBoughtPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4978:22:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3700, - "indexExpression": { - "argumentTypes": null, - "id": 3699, - "name": "_investor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3693, - "src": "5001:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4978:33:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3697, - "id": 3701, - "nodeType": "Return", - "src": "4971:40:6" - } - ] - }, - "documentation": null, - "id": 3703, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getInvestorTokenBoughtAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3694, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3693, - "name": "_investor", - "nodeType": "VariableDeclaration", - "scope": 3703, - "src": "4915:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3692, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4915:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4914:19:6" - }, - "payable": false, - "returnParameters": { - "id": 3697, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3696, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3703, - "src": "4955:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3695, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4955:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4954:6:6" - }, - "scope": 4535, - "src": "4877:141:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3715, - "nodeType": "Block", - "src": "5098:53:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3712, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3705, - "src": "5136:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3710, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "5115:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3711, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "5115:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" - } - }, - "id": 3713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5115:29:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3709, - "id": 3714, - "nodeType": "Return", - "src": "5108:36:6" - } - ] - }, - "documentation": null, - "id": 3716, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTotalFundedAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3706, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3705, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3716, - "src": "5054:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3704, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5054:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5053:17:6" - }, - "payable": false, - "returnParameters": { - "id": 3709, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3708, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3716, - "src": "5092:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3707, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5092:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5091:6:6" - }, - "scope": 4535, - "src": "5024:127:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3726, - "nodeType": "Block", - "src": "5228:49:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3722, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "5245:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3723, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbolsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "5245:23:6", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" - } - }, - "id": 3724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5245:25:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "functionReturnParameters": 3721, - "id": 3725, - "nodeType": "Return", - "src": "5238:32:6" - } - ] - }, - "documentation": null, - "id": 3727, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTotalFundedAssetsSymbols", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3717, - "nodeType": "ParameterList", - "parameters": [], - "src": "5193:2:6" - }, - "payable": false, - "returnParameters": { - "id": 3721, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3720, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3727, - "src": "5217:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 3718, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5217:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3719, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5217:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5216:11:6" - }, - "scope": 4535, - "src": "5157:120:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3738, - "nodeType": "Block", - "src": "5359:52:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3734, - "name": "totalFundedReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "5376:19:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "id": 3735, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3729, - "src": "5396:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5376:28:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3733, - "id": 3737, - "nodeType": "Return", - "src": "5369:35:6" - } - ] - }, - "documentation": null, - "id": 3739, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTotalFundedReleased", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3729, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3739, - "src": "5315:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3728, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5315:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5314:17:6" - }, - "payable": false, - "returnParameters": { - "id": 3733, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3732, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3739, - "src": "5353:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3731, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5353:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5352:6:6" - }, - "scope": 4535, - "src": "5283:128:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3856, - "nodeType": "Block", - "src": "5632:1102:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 3748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5646:25:6", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3746, - "name": "trancheTransferAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4482, - "src": "5647:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 3747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5647:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3750, - "nodeType": "IfStatement", - "src": "5642:38:6", - "trueBody": { - "expression": null, - "functionReturnParameters": 3745, - "id": 3749, - "nodeType": "Return", - "src": "5673:7:6" - } - }, - { - "assignments": [ - 3752, - null - ], - "declarations": [ - { - "constant": false, - "id": 3752, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "5691:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5691:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 3756, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3753, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "5721:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getCurrentMilestoneIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 1175, - "src": "5721:34:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view external returns (uint256,bool)" - } - }, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5721:36:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5690:67:6" - }, - { - "assignments": [ - 3758, - null - ], - "declarations": [ - { - "constant": false, - "id": 3758, - "name": "lastIndex", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "5768:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3757, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5768:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 3762, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3759, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "5802:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getLastMilestoneIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 1182, - "src": "5802:31:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view external returns (uint256,bool)" - } - }, - "id": 3761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5802:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5767:68:6" - }, - { - "assignments": [ - null, - null, - null, - 3764, - null, - null - ], - "declarations": [ - null, - null, - null, - { - "constant": false, - "id": 3764, - "name": "lastWithdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "5851:27:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3763, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5851:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - null, - null - ], - "id": 3769, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3767, - "name": "lastIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3758, - "src": "5907:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3765, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "5884:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 1149, - "src": "5884:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" - } - }, - "id": 3768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5884:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5846:71:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3770, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "5971:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3771, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "5979:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5988:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5979:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3774, - "name": "lastIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3758, - "src": "5993:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3775, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6006:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5993:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5979:32:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3779, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6022:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6030:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6022:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5979:52:6", - "trueExpression": { - "argumentTypes": null, - "id": 3778, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6014:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5971:60:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5971:60:6" - }, + "id": 4053, + "nodeType": "PlaceholderStatement", + "src": "8317:1:12" + } + ] + }, + "documentation": null, + "id": 4055, + "name": "onlyCrowdsale", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 4043, + "nodeType": "ParameterList", + "parameters": [], + "src": "8255:0:12" + }, + "src": "8232:93:12", + "visibility": "internal" + } + ], + "scope": 4057, + "src": "648:7679:12" + } + ], + "src": "0:8328:12" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", + "exportedSymbols": { + "W12Fund": [ + 4056 + ] + }, + "id": 4057, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3304, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:12" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 3305, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 12454, + "src": "26:65:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "file": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "id": 3306, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 13259, + "src": "92:67:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 3307, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 12389, + "src": "160:59:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 3308, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 13084, + "src": "220:64:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "./IW12Crowdsale.sol", + "id": 3309, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 1761, + "src": "285:29:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "./IW12Fund.sol", + "id": 3310, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 1804, + "src": "315:24:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../rates/IRates.sol", + "id": 3311, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 10015, + "src": "340:29:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", + "file": "../libs/Utils.sol", + "id": 3312, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 8379, + "src": "370:27:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", + "file": "../libs/Percent.sol", + "id": 3313, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 6432, + "src": "398:29:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/FundAccount.sol", + "file": "../libs/FundAccount.sol", + "id": 3314, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 6170, + "src": "428:33:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Fund.sol", + "file": "../libs/Fund.sol", + "id": 3315, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 6009, + "src": "462:26:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", + "file": "../versioning/Versionable.sol", + "id": 3316, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 11834, + "src": "489:39:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../token/IWToken.sol", + "id": 3317, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 10486, + "src": "529:30:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/AdminRole.sol", + "file": "../access/roles/AdminRole.sol", + "id": 3318, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 1353, + "src": "560:39:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/ProjectOwnerRole.sol", + "file": "../access/roles/ProjectOwnerRole.sol", + "id": 3319, + "nodeType": "ImportDirective", + "scope": 4057, + "sourceUnit": 1620, + "src": "600:46:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3320, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "668:8:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 3321, + "nodeType": "InheritanceSpecifier", + "src": "668:8:12" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3322, + "name": "AdminRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1352, + "src": "678:9:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AdminRole_$1352", + "typeString": "contract AdminRole" + } + }, + "id": 3323, + "nodeType": "InheritanceSpecifier", + "src": "678:9:12" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3324, + "name": "ProjectOwnerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1619, + "src": "689:16:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ProjectOwnerRole_$1619", + "typeString": "contract ProjectOwnerRole" + } + }, + "id": 3325, + "nodeType": "InheritanceSpecifier", + "src": "689:16:12" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3326, + "name": "Versionable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11833, + "src": "707:11:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Versionable_$11833", + "typeString": "contract Versionable" + } + }, + "id": 3327, + "nodeType": "InheritanceSpecifier", + "src": "707:11:12" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3328, + "name": "Secondary", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12453, + "src": "720:9:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" + } + }, + "id": 3329, + "nodeType": "InheritanceSpecifier", + "src": "720:9:12" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3330, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13258, + "src": "731:15:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$13258", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 3331, + "nodeType": "InheritanceSpecifier", + "src": "731:15:12" + } + ], + "contractDependencies": [ + 1352, + 1375, + 1421, + 1619, + 1803, + 11833, + 12453, + 13258 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4056, + "linearizedBaseContracts": [ + 4056, + 13258, + 12453, + 11833, + 1619, + 1352, + 1803, + 1421, + 1375 + ], + "name": "W12Fund", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3334, + "libraryName": { + "contractScope": null, + "id": 3332, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "759:8:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "753:24:12", + "typeName": { + "id": 3333, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "772:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 3337, + "libraryName": { + "contractScope": null, + "id": 3335, + "name": "Percent", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6431, + "src": "788:7:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Percent_$6431", + "typeString": "library Percent" + } + }, + "nodeType": "UsingForDirective", + "src": "782:23:12", + "typeName": { + "id": 3336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "800:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 3340, + "libraryName": { + "contractScope": null, + "id": 3338, + "name": "FundAccount", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6169, + "src": "816:11:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FundAccount_$6169", + "typeString": "library FundAccount" + } + }, + "nodeType": "UsingForDirective", + "src": "810:42:12", + "typeName": { + "contractScope": null, + "id": 3339, + "name": "FundAccount.Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6026, + "src": "832:19:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage_ptr", + "typeString": "struct FundAccount.Account" + } + } + }, + { + "constant": true, + "id": 3345, + "name": "METHOD_ETH", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "858:44:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3341, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "858:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - null, - 3786, - null, - 3788, - null, - null - ], - "declarations": [ - null, - { - "constant": false, - "id": 3786, - "name": "tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "6046:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3785, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6046:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null, - { - "constant": false, - "id": 3788, - "name": "withdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "6069:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3787, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6069:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - null, - null - ], - "id": 3793, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3791, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6123:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3789, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "6100:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 1149, - "src": "6100:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" - } - }, - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6100:29:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" - } + "argumentTypes": null, + "hexValue": "455448", + "id": 3343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "896:5:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", + "typeString": "literal_string \"ETH\"" }, - "nodeType": "VariableDeclarationStatement", - "src": "6042:87:6" + "value": "ETH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", + "typeString": "literal_string \"ETH\"" + } + ], + "id": 3342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "888:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" }, + "typeName": "bytes32" + }, + "id": 3344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "888:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 3350, + "name": "METHOD_USD", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "908:44:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3346, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "908:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 3795 - ], - "declarations": [ - { - "constant": false, - "id": 3795, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "6140:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3794, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6140:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3799, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3796, - "name": "completedTranches", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "6157:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 3798, - "indexExpression": { - "argumentTypes": null, - "id": 3797, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6175:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6157:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "argumentTypes": null, + "hexValue": "555344", + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "946:5:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" }, - "nodeType": "VariableDeclarationStatement", - "src": "6140:41:6" + "value": "USD" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + } + ], + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "938:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" }, + "typeName": "bytes32" + }, + "id": 3349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "938:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3352, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "959:30:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 3351, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "959:13:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3354, + "name": "wToken", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "995:21:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 3353, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "995:7:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3356, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "1022:19:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 3355, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10014, + "src": "1022:6:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3358, + "name": "swap", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "1047:19:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1047:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3360, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "1072:28:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3359, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1072:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3362, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "1138:29:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3361, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1138:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3364, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "1174:16:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State" + }, + "typeName": { + "contractScope": null, + "id": 3363, + "name": "Fund.State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5253, + "src": "1174:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage_ptr", + "typeString": "struct Fund.State" + } + }, + "value": null, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 3374, + "name": "FundsReceived", + "nodeType": "EventDefinition", + "parameters": { + "id": 3373, + "nodeType": "ParameterList", + "parameters": [ { - "condition": { - "argumentTypes": null, - "id": 3800, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "6196:9:6", + "constant": false, + "id": 3366, + "indexed": true, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 3374, + "src": "1217:24:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1217:7:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "falseBody": null, - "id": 3802, - "nodeType": "IfStatement", - "src": "6192:22:6", - "trueBody": { - "expression": null, - "functionReturnParameters": 3745, - "id": 3801, - "nodeType": "Return", - "src": "6207:7:6" - } + "value": null, + "visibility": "internal" }, { - "assignments": [ - 3804 - ], - "declarations": [ - { - "constant": false, - "id": 3804, - "name": "prevIndex", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "6224:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3803, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6224:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3806, - "initialValue": { - "argumentTypes": null, - "id": 3805, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6241:5:6", + "constant": false, + "id": 3368, + "indexed": false, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 3374, + "src": "1243:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1243:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6224:22:6" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3808, - "name": "totalTranchePercentBefore", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "6256:30:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3807, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6256:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3809, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6256:30:6" + "value": null, + "visibility": "internal" }, { - "body": { - "id": 3830, - "nodeType": "Block", - "src": "6319:208:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "6333:11:6", - "subExpression": { - "argumentTypes": null, - "id": 3813, - "name": "prevIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3804, - "src": "6333:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3815, - "nodeType": "ExpressionStatement", - "src": "6333:11:6" - }, - { - "assignments": [ - null, - 3817, - null, - null, - null, - null - ], - "declarations": [ - null, - { - "constant": false, - "id": 3817, - "name": "_tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "6362:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3816, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6362:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null, - null, - null, - null - ], - "id": 3822, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3820, - "name": "prevIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3804, - "src": "6417:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3818, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "6394:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 3819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 1149, - "src": "6394:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" - } - }, - "id": 3821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6394:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", - "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6359:68:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3823, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3808, - "src": "6442:25:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3826, - "name": "_tranchePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3817, - "src": "6500:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3824, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3808, - "src": "6470:25:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6470:29:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6470:46:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6442:74:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3829, - "nodeType": "ExpressionStatement", - "src": "6442:74:6" - } - ] + "constant": false, + "id": 3370, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3374, + "src": "1261:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, - "condition": { - "argumentTypes": null, - "commonType": { + "typeName": { + "id": 3369, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1261:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3372, + "indexed": false, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 3374, + "src": "1277:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3371, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1277:4:12", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 3812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3810, - "name": "prevIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3804, - "src": "6304:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6316:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6304:13:6", + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1216:71:12" + }, + "src": "1197:91:12" + }, + { + "anonymous": false, + "documentation": null, + "id": 3382, + "name": "AssetRefunded", + "nodeType": "EventDefinition", + "parameters": { + "id": 3381, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3376, + "indexed": true, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 3382, + "src": "1313:24:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3375, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1313:7:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 3831, - "nodeType": "WhileStatement", - "src": "6297:230:6" + "value": null, + "visibility": "internal" }, { - "expression": { - "argumentTypes": null, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3832, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "6537:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" - } - }, - "id": 3834, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3833, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6544:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6537:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3840, - "name": "totalTranchePercentReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3333, - "src": "6625:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3837, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3808, - "src": "6581:25:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3835, - "name": "tranchePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3786, - "src": "6549:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6549:31:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6549:58:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "6549:75:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6549:104:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6537:116:6", + "constant": false, + "id": 3378, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3382, + "src": "1339:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3377, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1339:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3380, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3382, + "src": "1355:11:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3379, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1355:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3843, - "nodeType": "ExpressionStatement", - "src": "6537:116:6" + "value": null, + "visibility": "internal" + } + ], + "src": "1312:55:12" + }, + "src": "1293:75:12" + }, + { + "anonymous": false, + "documentation": null, + "id": 3388, + "name": "TokenRefunded", + "nodeType": "EventDefinition", + "parameters": { + "id": 3387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3384, + "indexed": true, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1393:24:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1393:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, { - "expression": { - "argumentTypes": null, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3844, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "6663:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" - } - }, - "id": 3846, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6670:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6663:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3847, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3808, - "src": "6675:25:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6663:37:6", + "constant": false, + "id": 3386, + "indexed": false, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1419:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3385, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1419:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3849, - "nodeType": "ExpressionStatement", - "src": "6663:37:6" + "value": null, + "visibility": "internal" + } + ], + "src": "1392:44:12" + }, + "src": "1373:64:12" + }, + { + "anonymous": false, + "documentation": null, + "id": 3396, + "name": "TrancheTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3390, + "indexed": true, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 3396, + "src": "1467:24:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1467:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, { - "expression": { - "argumentTypes": null, - "id": 3854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3850, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "6710:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" - } - }, - "id": 3852, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 3851, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6717:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6710:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3853, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3752, - "src": "6722:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6710:17:6", + "constant": false, + "id": 3392, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3396, + "src": "1493:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3391, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1493:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3394, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3396, + "src": "1509:11:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3393, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1509:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3855, - "nodeType": "ExpressionStatement", - "src": "6710:17:6" + "value": null, + "visibility": "internal" } - ] + ], + "src": "1466:55:12" }, - "documentation": "@notice Get tranche invoice\n@return uint[3] result:\n[tranchePercent, totalTranchePercentBefore, milestoneIndex]", - "id": 3857, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTrancheInvoice", - "nodeType": "FunctionDefinition", + "src": "1442:80:12" + }, + { + "anonymous": false, + "documentation": null, + "id": 3402, + "name": "TrancheReleased", + "nodeType": "EventDefinition", "parameters": { - "id": 3740, - "nodeType": "ParameterList", - "parameters": [], - "src": "5592:2:6" - }, - "payable": false, - "returnParameters": { - "id": 3745, + "id": 3401, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3744, - "name": "result", + "id": 3398, + "indexed": true, + "name": "receiver", "nodeType": "VariableDeclaration", - "scope": 3857, - "src": "5616:14:6", + "scope": 3402, + "src": "1549:24:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3]" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "baseType": { - "id": 3741, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5616:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3743, - "length": { - "argumentTypes": null, - "hexValue": "33", - "id": 3742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5621:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "3" - }, - "nodeType": "ArrayTypeName", - "src": "5616:7:6", + "id": 3397, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1549:7:12", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", - "typeString": "uint256[3]" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3400, + "indexed": false, + "name": "percent", + "nodeType": "VariableDeclaration", + "scope": 3402, + "src": "1575:12:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3399, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1575:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "5615:16:6" + "src": "1548:40:12" }, - "scope": 4535, - "src": "5566:1168:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" + "src": "1527:62:12" }, { "body": { - "id": 3923, + "id": 3442, "nodeType": "Block", - "src": "6846:458:6", + "src": "1689:210:12", "statements": [ { "expression": { @@ -25646,29 +11722,279 @@ "arguments": [ { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3865, - "name": "trancheTransferAllowed", + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3415, + "name": "_trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3406, + "src": "1707:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "1707:28:12", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 3417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1707:30:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3418, + "name": "_trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3406, + "src": "1741:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6430, + "src": "1741:30:12", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1741:32:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1776:3:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "1741:38:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1707:72:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3414, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1699:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1699:81:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3425, + "nodeType": "ExpressionStatement", + "src": "1699:81:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3427, + "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4482, - "src": "6864:22:6", + "referencedDeclaration": 3408, + "src": "1798:6:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1816:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1808:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1808:10:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 3866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6864:24:6", + "src": "1798:20:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25682,21 +12008,21 @@ "typeString": "bool" } ], - "id": 3864, + "id": 3426, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "6856:7:6", + "referencedDeclaration": 13444, + "src": "1790:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3867, + "id": 3432, "isConstant": false, "isLValue": false, "isPure": false, @@ -25704,218 +12030,295 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6856:33:6", + "src": "1790:29:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3868, + "id": 3433, "nodeType": "ExpressionStatement", - "src": "6856:33:6" + "src": "1790:29:12" }, { - "assignments": [ - 3873 - ], - "declarations": [ - { - "constant": false, - "id": 3873, - "name": "trancheInvoice", - "nodeType": "VariableDeclaration", - "scope": 3924, - "src": "6900:29:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3]" - }, - "typeName": { - "baseType": { - "id": 3871, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6900:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "length": { - "argumentTypes": null, - "hexValue": "33", - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6905:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "3" - }, - "nodeType": "ArrayTypeName", - "src": "6900:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", - "typeString": "uint256[3]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3876, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3874, - "name": "getTrancheInvoice", + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3434, + "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3857, - "src": "6932:17:6", + "referencedDeclaration": 3362, + "src": "1830:17:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_array$_t_uint256_$3_memory_ptr_$", - "typeString": "function () view returns (uint256[3] memory)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3435, + "name": "_trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3406, + "src": "1850:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 3875, + "src": "1830:38:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3437, + "nodeType": "ExpressionStatement", + "src": "1830:38:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 3440, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6932:19:6", + "leftHandSide": { + "argumentTypes": null, + "id": 3438, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3356, + "src": "1878:5:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3439, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3408, + "src": "1886:6:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "src": "1878:14:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + }, + "id": 3441, + "nodeType": "ExpressionStatement", + "src": "1878:14:12" + } + ] + }, + "documentation": null, + "id": 3443, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3411, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3404, + "src": "1673:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3412, + "modifierName": { + "argumentTypes": null, + "id": 3410, + "name": "Versionable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11833, + "src": "1661:11:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", + "typeString": "type(contract Versionable)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1661:20:12" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3404, + "name": "version", + "nodeType": "VariableDeclaration", + "scope": 3443, + "src": "1607:12:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3403, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1607:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3406, + "name": "_trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 3443, + "src": "1621:23:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3405, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1621:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3408, + "name": "_rates", + "nodeType": "VariableDeclaration", + "scope": 3443, + "src": "1646:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 3407, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10014, + "src": "1646:6:12", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6900:51:6" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "1606:54:12" + }, + "payable": false, + "returnParameters": { + "id": 3413, + "nodeType": "ParameterList", + "parameters": [], + "src": "1689:0:12" + }, + "scope": 4056, + "src": "1595:304:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3454, + "nodeType": "Block", + "src": "1958:36:12", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3878, - "name": "trancheInvoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3873, - "src": "6970:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" - } - }, - "id": 3880, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6985:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6970:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3881, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6990:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6970:21:6", + "id": 3451, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3445, + "src": "1978:8:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 3877, - "name": "require", + "id": 3450, + "name": "_addAdmin", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "6962:7:6", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "1968:9:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 3883, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -25923,142 +12326,135 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6962:30:6", + "src": "1968:19:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3884, + "id": 3453, "nodeType": "ExpressionStatement", - "src": "6962:30:6" + "src": "1968:19:12" + } + ] + }, + "documentation": null, + "id": 3455, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3448, + "modifierName": { + "argumentTypes": null, + "id": 3447, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "1948:9:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "1948:9:12" + } + ], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3445, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 3455, + "src": "1923:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1923:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1922:18:12" + }, + "payable": false, + "returnParameters": { + "id": 3449, + "nodeType": "ParameterList", + "parameters": [], + "src": "1958:0:12" + }, + "scope": 4056, + "src": "1905:89:12", + "stateMutability": "nonpayable", + "superFunction": 1366, + "visibility": "public" + }, + { + "body": { + "id": 3466, + "nodeType": "Block", + "src": "2056:39:12", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3886, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "7010:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3887, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbolsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "7010:23:6", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" - } - }, - "id": 3888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7010:25:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 3889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7010:32:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3890, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7046:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7010:37:6", + "id": 3463, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3457, + "src": "2079:8:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 3885, - "name": "require", + "id": 3462, + "name": "_removeAdmin", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7002:7:6", + "overloadedDeclarations": [], + "referencedDeclaration": 1351, + "src": "2066:12:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 3892, + "id": 3464, "isConstant": false, "isLValue": false, "isPure": false, @@ -26066,293 +12462,135 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7002:46:6", + "src": "2066:22:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3893, + "id": 3465, "nodeType": "ExpressionStatement", - "src": "7002:46:6" + "src": "2066:22:12" + } + ] + }, + "documentation": null, + "id": 3467, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3460, + "modifierName": { + "argumentTypes": null, + "id": 3459, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2046:9:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "2046:9:12" + } + ], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3458, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "id": 3900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3894, - "name": "completedTranches", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "7059:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 3898, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3895, - "name": "trancheInvoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3873, - "src": "7077:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" - } - }, - "id": 3897, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 3896, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7092:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7077:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7059:36:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3899, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7098:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "7059:43:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "constant": false, + "id": 3457, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 3467, + "src": "2021:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 3901, - "nodeType": "ExpressionStatement", - "src": "7059:43:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3902, - "name": "totalTranchePercentReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3333, - "src": "7112:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3905, - "name": "trancheInvoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3873, - "src": "7174:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" - } - }, - "id": 3907, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3906, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7189:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7174:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3903, - "name": "totalTranchePercentReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3333, - "src": "7142:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "7142:31:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7142:50:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7112:80:6", + "typeName": { + "id": 3456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2021:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 3910, - "nodeType": "ExpressionStatement", - "src": "7112:80:6" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "2020:18:12" + }, + "payable": false, + "returnParameters": { + "id": 3461, + "nodeType": "ParameterList", + "parameters": [], + "src": "2056:0:12" + }, + "scope": 4056, + "src": "2000:95:12", + "stateMutability": "nonpayable", + "superFunction": 1374, + "visibility": "public" + }, + { + "body": { + "id": 3478, + "nodeType": "Block", + "src": "2161:43:12", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3912, - "name": "trancheInvoice", + "id": 3475, + "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3873, - "src": "7220:14:6", + "referencedDeclaration": 3469, + "src": "2188:8:12", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 3911, - "name": "_transferTranche", + "id": 3474, + "name": "_addProjectOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4132, - "src": "7203:16:6", + "referencedDeclaration": 1602, + "src": "2171:16:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$3_memory_ptr_$returns$__$", - "typeString": "function (uint256[3] memory)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 3913, + "id": 3476, "isConstant": false, "isLValue": false, "isPure": false, @@ -26360,93 +12598,114 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7203:32:6", + "src": "2171:26:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3914, + "id": 3477, "nodeType": "ExpressionStatement", - "src": "7203:32:6" + "src": "2171:26:12" + } + ] + }, + "documentation": null, + "id": 3479, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3472, + "modifierName": { + "argumentTypes": null, + "id": 3471, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2151:9:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "2151:9:12" + } + ], + "name": "addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3470, + "nodeType": "ParameterList", + "parameters": [ { - "eventCall": { + "constant": false, + "id": 3469, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "2126:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3468, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2126:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2125:18:12" + }, + "payable": false, + "returnParameters": { + "id": 3473, + "nodeType": "ParameterList", + "parameters": [], + "src": "2161:0:12" + }, + "scope": 4056, + "src": "2101:103:12", + "stateMutability": "nonpayable", + "superFunction": 1412, + "visibility": "public" + }, + { + "body": { + "id": 3490, + "nodeType": "Block", + "src": "2273:46:12", + "statements": [ + { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3916, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7267:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7267:10:6", + "id": 3487, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3481, + "src": "2303:8:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3918, - "name": "trancheInvoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3873, - "src": "7279:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" - } - }, - "id": 3920, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3919, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7294:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7279:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } } ], "expression": { @@ -26454,24 +12713,20 @@ { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], - "id": 3915, - "name": "TrancheReleased", + "id": 3486, + "name": "_removeProjectOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "7251:15:6", + "referencedDeclaration": 1618, + "src": "2283:19:12", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 3921, + "id": 3488, "isConstant": false, "isLValue": false, "isPure": false, @@ -26479,598 +12734,500 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7251:46:6", + "src": "2283:29:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3922, - "nodeType": "EmitStatement", - "src": "7246:51:6" + "id": 3489, + "nodeType": "ExpressionStatement", + "src": "2283:29:12" } ] }, - "documentation": "@notice Realise project tranche", - "id": 3924, + "documentation": null, + "id": 3491, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3860, + "id": 3484, "modifierName": { "argumentTypes": null, - "id": 3859, - "name": "onlyOwner", + "id": 3483, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "6823:9:6", + "referencedDeclaration": 1297, + "src": "2263:9:12", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6823:9:6" - }, - { - "arguments": null, - "id": 3862, - "modifierName": { - "argumentTypes": null, - "id": 3861, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9776, - "src": "6833:12:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6833:12:6" + "src": "2263:9:12" } ], - "name": "tranche", + "name": "removeProjectOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 3858, + "id": 3482, "nodeType": "ParameterList", - "parameters": [], - "src": "6811:2:6" + "parameters": [ + { + "constant": false, + "id": 3481, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 3491, + "src": "2238:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2238:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2237:18:12" }, "payable": false, "returnParameters": { - "id": 3863, + "id": 3485, "nodeType": "ParameterList", "parameters": [], - "src": "6846:0:6" + "src": "2273:0:12" }, - "scope": 4535, - "src": "6795:509:6", + "scope": 4056, + "src": "2210:109:12", "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" + "superFunction": 1420, + "visibility": "public" }, { "body": { - "id": 4131, + "id": 3528, "nodeType": "Block", - "src": "7363:1569:6", + "src": "2392:188:12", "statements": [ { - "assignments": [ - 3932 - ], - "declarations": [ - { - "constant": false, - "id": 3932, - "name": "ln", - "nodeType": "VariableDeclaration", - "scope": 4132, - "src": "7373:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3931, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7373:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3937, - "initialValue": { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3933, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "7383:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbolsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "7383:23:6", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" - } - }, - "id": 3935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7383:25:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7383:32:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7373:42:6" - }, - { - "body": { - "id": 4129, - "nodeType": "Block", - "src": "7441:1485:6", - "statements": [ + "arguments": [ { - "assignments": [ - 3942 - ], - "declarations": [ - { - "constant": false, - "id": 3942, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 4132, - "src": "7455:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3941, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7455:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3499, + "name": "_crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3493, + "src": "2410:10:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } - ], - "id": 3949, - "initialValue": { + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3943, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "7472:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 3944, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3501, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "symbolsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "7472:23:6", + "nodeType": "Literal", + "src": "2432:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } - }, - "id": 3945, + ], + "id": 3500, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7472:25:6", + "nodeType": "ElementaryTypeNameExpression", + "src": "2424:7:12", "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 3948, - "indexExpression": { - "argumentTypes": null, - "id": 3947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": true, - "src": "7498:4:6", - "subExpression": { - "argumentTypes": null, - "id": 3946, - "name": "ln", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "7500:2:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeName": "address" }, + "id": 3502, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7472:31:6", + "names": [], + "nodeType": "FunctionCall", + "src": "2424:10:12", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "VariableDeclarationStatement", - "src": "7455:48:6" - }, + "src": "2410:24:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3498, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2402:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2402:33:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3505, + "nodeType": "ExpressionStatement", + "src": "2402:33:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 3951 - ], - "declarations": [ - { - "constant": false, - "id": 3951, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 4132, - "src": "7517:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3950, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7517:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3956, - "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3954, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "7552:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], + "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3952, - "name": "totalFunded", + "id": 3507, + "name": "_crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "7531:11:6", + "referencedDeclaration": 3493, + "src": "2453:10:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, - "id": 3953, + "id": 3508, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "amountOf", + "memberName": "getWToken", "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "7531:20:6", + "referencedDeclaration": 1663, + "src": "2453:20:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function () view external returns (contract IWToken)" } }, - "id": 3955, + "id": 3509, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], - "nodeType": "FunctionCall", - "src": "7531:28:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7517:42:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3957, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "7578:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3958, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7588:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7578:11:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3961, - "nodeType": "IfStatement", - "src": "7574:25:6", - "trueBody": { - "id": 3960, - "nodeType": "Continue", - "src": "7591:8:6" - } - }, - { - "assignments": [ - 3963 - ], - "declarations": [ - { - "constant": false, - "id": 3963, - "name": "sourceAmount", - "nodeType": "VariableDeclaration", - "scope": 4132, - "src": "7614:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3962, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7614:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "nodeType": "FunctionCall", + "src": "2453:22:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } - ], - "id": 3970, - "initialValue": { + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3966, - "name": "_invoice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3928, - "src": "7653:8:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", - "typeString": "uint256[3] memory" - } - }, - "id": 3968, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3967, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7662:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, + "hexValue": "30", + "id": 3511, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7653:11:6", + "nodeType": "Literal", + "src": "2487:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], + "id": 3510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2479:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2479:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2453:36:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3506, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2445:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2445:45:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3515, + "nodeType": "ExpressionStatement", + "src": "2445:45:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 3518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3516, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3352, + "src": "2501:9:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3517, + "name": "_crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3493, + "src": "2513:10:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "src": "2501:22:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3519, + "nodeType": "ExpressionStatement", + "src": "2501:22:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 3526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3520, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3354, + "src": "2533:6:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3964, - "name": "amount", + "id": 3522, + "name": "_crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "7634:6:6", + "referencedDeclaration": 3493, + "src": "2550:10:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, - "id": 3965, + "id": 3523, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "safePercent", + "memberName": "getWToken", "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "7634:18:6", + "referencedDeclaration": 1663, + "src": "2550:20:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function () view external returns (contract IWToken)" } }, - "id": 3969, + "id": 3524, "isConstant": false, "isLValue": false, "isPure": false, @@ -27078,2423 +13235,2650 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7634:31:6", + "src": "2550:22:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 3521, + "name": "IWToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10485, + "src": "2542:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWToken_$10485_$", + "typeString": "type(contract IWToken)" + } + }, + "id": 3525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2542:31:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "src": "2533:40:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 3527, + "nodeType": "ExpressionStatement", + "src": "2533:40:12" + } + ] + }, + "documentation": null, + "id": 3529, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3496, + "modifierName": { + "argumentTypes": null, + "id": 3495, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2373:9:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2373:9:12" + } + ], + "name": "setCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3493, + "name": "_crowdsale", + "nodeType": "VariableDeclaration", + "scope": 3529, + "src": "2347:24:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 3492, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "2347:13:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2346:26:12" + }, + "payable": false, + "returnParameters": { + "id": 3497, + "nodeType": "ParameterList", + "parameters": [], + "src": "2392:0:12" + }, + "scope": 4056, + "src": "2325:255:12", + "stateMutability": "nonpayable", + "superFunction": 1774, + "visibility": "external" + }, + { + "body": { + "id": 3548, + "nodeType": "Block", + "src": "2637:68:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3537, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "2655:5:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "VariableDeclarationStatement", - "src": "7614:51:6" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3974, + "hexValue": "30", + "id": 3539, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3972, - "name": "sourceAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3963, - "src": "7688:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7703:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7688:16:6", + "nodeType": "Literal", + "src": "2672:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 3971, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7680:7:6", + "id": 3538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2664:7:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 3975, + "id": 3540, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7680:25:6", + "src": "2664:10:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 3976, - "nodeType": "ExpressionStatement", - "src": "7680:25:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3977, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "7732:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3982, - "name": "totalTokenRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "7796:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3980, - "name": "totalTokenBought", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3345, - "src": "7775:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "7775:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7775:40:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3984, - "name": "sourceAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3963, - "src": "7833:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3985, - "name": "totalTokenBought", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3345, - "src": "7863:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3978, - "name": "Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "7741:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", - "typeString": "type(library Utils)" - } - }, - "id": 3979, + "src": "2655:19:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3536, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2647:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2647:28:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3543, + "nodeType": "ExpressionStatement", + "src": "2647:28:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 3546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3544, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "2686:4:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3545, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "2693:5:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2686:12:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3547, + "nodeType": "ExpressionStatement", + "src": "2686:12:12" + } + ] + }, + "documentation": null, + "id": 3549, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3534, + "modifierName": { + "argumentTypes": null, + "id": 3533, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2618:9:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2618:9:12" + } + ], + "name": "setSwap", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3531, + "name": "_swap", + "nodeType": "VariableDeclaration", + "scope": 3549, + "src": "2603:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2603:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2602:15:12" + }, + "payable": false, + "returnParameters": { + "id": 3535, + "nodeType": "ParameterList", + "parameters": [], + "src": "2637:0:12" + }, + "scope": 4056, + "src": "2586:119:12", + "stateMutability": "nonpayable", + "superFunction": 1784, + "visibility": "external" + }, + { + "body": { + "id": 3568, + "nodeType": "Block", + "src": "2780:95:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3557, + "name": "_serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "2798:14:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3559, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "safeMulDiv", - "nodeType": "MemberAccess", - "referencedDeclaration": 6323, - "src": "7741:16:6", + "nodeType": "Literal", + "src": "2824:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } - }, - "id": 3986, + ], + "id": 3558, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7741:152:6", + "nodeType": "ElementaryTypeNameExpression", + "src": "2816:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "src": "7732:161:6", + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2816:10:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 3988, - "nodeType": "ExpressionStatement", - "src": "7732:161:6" + "src": "2798:28:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3556, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2790:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2790:37:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3563, + "nodeType": "ExpressionStatement", + "src": "2790:37:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 3566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3564, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3360, + "src": "2838:13:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3565, + "name": "_serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "2854:14:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2838:30:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3567, + "nodeType": "ExpressionStatement", + "src": "2838:30:12" + } + ] + }, + "documentation": null, + "id": 3569, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3554, + "modifierName": { + "argumentTypes": null, + "id": 3553, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2761:9:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2761:9:12" + } + ], + "name": "setServiceWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3551, + "name": "_serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "2737:22:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3550, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2737:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2736:24:12" + }, + "payable": false, + "returnParameters": { + "id": 3555, + "nodeType": "ParameterList", + "parameters": [], + "src": "2780:0:12" + }, + "scope": 4056, + "src": "2711:164:12", + "stateMutability": "nonpayable", + "superFunction": 1779, + "visibility": "external" + }, + { + "body": { + "id": 3596, + "nodeType": "Block", + "src": "3379:190:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3587, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "3422:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3990, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "7916:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3991, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7925:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7916:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3989, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7908:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7908:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3994, - "nodeType": "ExpressionStatement", - "src": "7908:19:6" + "argumentTypes": null, + "id": 3588, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3571, + "src": "3441:8:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, { - "expression": { - "argumentTypes": null, - "id": 4004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3995, - "name": "totalFundedReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "7942:19:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3997, - "indexExpression": { - "argumentTypes": null, - "id": 3996, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "7962:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7942:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4002, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "8004:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3998, - "name": "totalFundedReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "7972:19:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4000, - "indexExpression": { - "argumentTypes": null, - "id": 3999, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "7992:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7972:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "7972:31:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7972:39:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7942:69:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "argumentTypes": null, + "id": 3589, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "3463:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3590, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3575, + "src": "3488:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3591, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3577, + "src": "3508:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3592, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3579, + "src": "3526:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3593, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3356, + "src": "3547:5:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 4005, - "nodeType": "ExpressionStatement", - "src": "7942:69:6" + { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + ], + "expression": { + "argumentTypes": null, + "id": 3584, + "name": "Fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6008, + "src": "3389:4:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Fund_$6008_$", + "typeString": "type(library Fund)" + } + }, + "id": 3586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "recordPurchase", + "nodeType": "MemberAccess", + "referencedDeclaration": 6007, + "src": "3389:19:12", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$5253_storage_ptr_$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_contract$_IRates_$10014_$returns$__$", + "typeString": "function (struct Fund.State storage pointer,address,uint256,bytes32,uint256,uint256,contract IRates)" + } + }, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3389:173:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3595, + "nodeType": "ExpressionStatement", + "src": "3389:173:12" + } + ] + }, + "documentation": "@dev Record purchase result to the fund and check the fund balance\n@param investor An investor address\n@param tokenAmount Token amount that was bought\n@param symbol Symbol of payment method\n@param cost Cost of token amount\n@param costUSD Cost in USD", + "id": 3597, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3582, + "modifierName": { + "argumentTypes": null, + "id": 3581, + "name": "onlyCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4055, + "src": "3361:13:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3361:13:12" + } + ], + "name": "recordPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3571, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 3597, + "src": "3222:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3222:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3573, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 3597, + "src": "3248:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3572, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3248:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3575, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3597, + "src": "3274:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3574, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3274:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3577, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 3597, + "src": "3298:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3298:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3579, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 3597, + "src": "3317:12:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3578, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3317:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3212:123:12" + }, + "payable": true, + "returnParameters": { + "id": 3583, + "nodeType": "ParameterList", + "parameters": [], + "src": "3379:0:12" + }, + "scope": 4056, + "src": "3189:380:12", + "stateMutability": "payable", + "superFunction": 1802, + "visibility": "external" + }, + { + "body": { + "id": 3605, + "nodeType": "Block", + "src": "3690:57:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3602, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "3707:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3603, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTranchePercentReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5234, + "src": "3707:33:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3601, + "id": 3604, + "nodeType": "Return", + "src": "3700:40:12" + } + ] + }, + "documentation": null, + "id": 3606, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalTranchePercentReleased", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3598, + "nodeType": "ParameterList", + "parameters": [], + "src": "3660:2:12" + }, + "payable": false, + "returnParameters": { + "id": 3601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3600, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3606, + "src": "3684:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3599, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3684:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3683:6:12" + }, + "scope": 4056, + "src": "3624:123:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3618, + "nodeType": "Block", + "src": "3828:63:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3613, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "3845:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } }, + "id": 3614, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "completedTranches", + "nodeType": "MemberAccess", + "referencedDeclaration": 5232, + "src": "3845:23:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 3616, + "indexExpression": { + "argumentTypes": null, + "id": 3615, + "name": "milestoneIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3608, + "src": "3869:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3845:39:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3612, + "id": 3617, + "nodeType": "Return", + "src": "3838:46:12" + } + ] + }, + "documentation": null, + "id": 3619, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "completedTranches", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3608, + "name": "milestoneIndex", + "nodeType": "VariableDeclaration", + "scope": 3619, + "src": "3780:19:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3607, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3780:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3779:21:12" + }, + "payable": false, + "returnParameters": { + "id": 3612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3611, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3619, + "src": "3822:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3610, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3822:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3821:6:12" + }, + "scope": 4056, + "src": "3753:138:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3627, + "nodeType": "Block", + "src": "3988:46:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3624, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4005:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3625, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTokenBought", + "nodeType": "MemberAccess", + "referencedDeclaration": 5242, + "src": "4005:22:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3623, + "id": 3626, + "nodeType": "Return", + "src": "3998:29:12" + } + ] + }, + "documentation": null, + "id": 3628, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalTokenBought", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3620, + "nodeType": "ParameterList", + "parameters": [], + "src": "3958:2:12" + }, + "payable": false, + "returnParameters": { + "id": 3623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3622, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3628, + "src": "3982:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3621, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3982:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3981:6:12" + }, + "scope": 4056, + "src": "3933:101:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3636, + "nodeType": "Block", + "src": "4135:48:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3633, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4152:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalTokenRefunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5244, + "src": "4152:24:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3632, + "id": 3635, + "nodeType": "Return", + "src": "4145:31:12" + } + ] + }, + "documentation": null, + "id": 3637, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalTokenRefunded", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3629, + "nodeType": "ParameterList", + "parameters": [], + "src": "4105:2:12" + }, + "payable": false, + "returnParameters": { + "id": 3632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3631, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3637, + "src": "4129:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3630, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4129:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4128:6:12" + }, + "scope": 4056, + "src": "4078:105:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3654, + "nodeType": "Block", + "src": "4284:76:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4006, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8042:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4007, - "name": "METHOD_USD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "8052:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "8042:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4010, - "nodeType": "IfStatement", - "src": "8038:35:6", - "trueBody": { - "id": 4009, - "nodeType": "Continue", - "src": "8065:8:6" + "argumentTypes": null, + "id": 3651, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "4345:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - }, - { - "condition": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4011, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8092:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "expression": { "argumentTypes": null, - "id": 4012, - "name": "METHOD_ETH", + "id": 3646, + "name": "state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "8102:10:6", + "referencedDeclaration": 3364, + "src": "4301:5:12", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "src": "8092:20:6", + "id": 3647, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "4301:23:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" } }, - "falseBody": null, - "id": 4038, - "nodeType": "IfStatement", - "src": "8088:187:6", - "trueBody": { - "id": 4037, - "nodeType": "Block", - "src": "8114:161:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4017, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8154:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4015, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "8140:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "8140:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 4018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8140:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4014, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8132:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8132:30:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4020, - "nodeType": "ExpressionStatement", - "src": "8132:30:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4030, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10563, - "src": "8243:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - ], - "id": 4029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8235:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8235:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4025, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8216:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4023, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "8194:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "8194:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 4026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8194:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4022, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "8188:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 4027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8188:36:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 4028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "8188:46:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 4032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8188:61:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4033, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "8253:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8188:71:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4021, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8180:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8180:80:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4036, - "nodeType": "ExpressionStatement", - "src": "8180:80:6" - } - ] + "id": 3649, + "indexExpression": { + "argumentTypes": null, + "id": 3648, + "name": "_investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3639, + "src": "4325:9:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4301:34:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" } }, - { - "assignments": [ - 4040 - ], - "declarations": [ - { - "constant": false, - "id": 4040, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 4132, - "src": "8289:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4039, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8289:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4050, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4041, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3331, - "src": "8300:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4042, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8320:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8300:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { + "id": 3650, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "4301:43:12", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 3652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4301:52:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3645, + "id": 3653, + "nodeType": "Return", + "src": "4294:59:12" + } + ] + }, + "documentation": null, + "id": 3655, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getInvestorFundedAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3642, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3639, + "name": "_investor", + "nodeType": "VariableDeclaration", + "scope": 3655, + "src": "4222:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4222:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3641, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3655, + "src": "4241:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3640, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4241:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4221:36:12" + }, + "payable": false, + "returnParameters": { + "id": 3645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3644, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3655, + "src": "4278:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3643, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4278:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4277:6:12" + }, + "scope": 4056, + "src": "4189:171:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3670, + "nodeType": "Block", + "src": "4456:72:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "hexValue": "30", - "id": 4048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8396:1:6", - "subdenomination": null, + "id": 3663, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4473:5:12", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } }, - "id": 4049, + "id": 3664, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "Conditional", - "src": "8300:97:6", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4046, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3331, - "src": "8359:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4044, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "8340:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "8340:18:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8340:37:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "memberName": "fundedPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5252, + "src": "4473:23:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$6026_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" } }, - "nodeType": "VariableDeclarationStatement", - "src": "8289:108:6" - }, - { - "condition": { + "id": 3666, + "indexExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4051, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3331, - "src": "8416:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8436:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8416:21:6", + "id": 3665, + "name": "_investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3657, + "src": "4497:9:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "falseBody": null, - "id": 4060, - "nodeType": "IfStatement", - "src": "8412:43:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4055, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8447:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8453:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8447:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4054, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8439:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8439:16:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4059, - "nodeType": "ExpressionStatement", - "src": "8439:16:6" + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4473:34:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3667, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 6137, + "src": "4473:46:12", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 3668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4473:48:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "functionReturnParameters": 3662, + "id": 3669, + "nodeType": "Return", + "src": "4466:55:12" + } + ] + }, + "documentation": null, + "id": 3671, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getInvestorFundedAssetsSymbols", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3657, + "name": "_investor", + "nodeType": "VariableDeclaration", + "scope": 3671, + "src": "4406:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4406:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4405:19:12" + }, + "payable": false, + "returnParameters": { + "id": 3662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3661, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3671, + "src": "4445:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 3659, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4445:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 3660, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4445:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4444:11:12" + }, + "scope": 4056, + "src": "4366:162:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3683, + "nodeType": "Block", + "src": "4618:63:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3678, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4635:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4061, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8474:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4062, - "name": "METHOD_ETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "8484:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "8474:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 4120, - "nodeType": "Block", - "src": "8629:221:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4086, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8651:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4087, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8657:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8651:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4102, - "nodeType": "IfStatement", - "src": "8647:87:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4097, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3329, - "src": "8714:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4098, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8729:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4093, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8696:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4091, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "8674:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "8674:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 4094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8674:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4090, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "8668:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 4095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8668:36:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 4096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "8668:45:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 4099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8668:65:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4089, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8660:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8660:74:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4101, - "nodeType": "ExpressionStatement", - "src": "8660:74:6" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4111, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8806:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8806:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4115, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8829:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4113, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "8818:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8818:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8818:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4107, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8788:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4105, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "8766:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "8766:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 4108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8766:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4104, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "8760:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 4109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8760:36:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 4110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "8760:45:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 4117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8760:74:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4103, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8752:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8752:83:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4119, - "nodeType": "ExpressionStatement", - "src": "8752:83:6" - } - ] - }, - "id": 4121, - "nodeType": "IfStatement", - "src": "8470:380:6", - "trueBody": { - "id": 4085, - "nodeType": "Block", - "src": "8496:127:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4064, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8518:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8524:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8518:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4073, - "nodeType": "IfStatement", - "src": "8514:40:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4070, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8550:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4067, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3329, - "src": "8527:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8527:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 4071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8527:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4072, - "nodeType": "ExpressionStatement", - "src": "8527:27:6" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4081, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4040, - "src": "8603:3:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4079, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "8592:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8592:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8592:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4074, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8572:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8572:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8572:19:6", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 4083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8572:36:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4084, - "nodeType": "ExpressionStatement", - "src": "8572:36:6" - } - ] + "id": 3679, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "4635:28:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3681, + "indexExpression": { + "argumentTypes": null, + "id": 3680, + "name": "_investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "4664:9:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4635:39:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3677, + "id": 3682, + "nodeType": "Return", + "src": "4628:46:12" + } + ] + }, + "documentation": null, + "id": 3684, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getInvestorTokenBoughtAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3673, + "name": "_investor", + "nodeType": "VariableDeclaration", + "scope": 3684, + "src": "4572:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4572:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4571:19:12" + }, + "payable": false, + "returnParameters": { + "id": 3677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3676, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3684, + "src": "4612:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3675, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4612:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4611:6:12" + }, + "scope": 4056, + "src": "4534:147:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3697, + "nodeType": "Block", + "src": "4761:59:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3694, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3686, + "src": "4805:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3691, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4778:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3692, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "4778:17:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" } }, - { - "eventCall": { + "id": 3693, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6125, + "src": "4778:26:12", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 3695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4778:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3690, + "id": 3696, + "nodeType": "Return", + "src": "4771:42:12" + } + ] + }, + "documentation": null, + "id": 3698, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTotalFundedAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3686, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3698, + "src": "4717:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3685, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4717:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4716:17:12" + }, + "payable": false, + "returnParameters": { + "id": 3690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3689, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3698, + "src": "4755:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3688, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4755:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4754:6:12" + }, + "scope": 4056, + "src": "4687:133:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3709, + "nodeType": "Block", + "src": "4897:55:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4123, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8888:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8888:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4125, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "8900:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 4126, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "8908:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4122, - "name": "TrancheTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3387, - "src": "8869:18:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (address,bytes32,uint256)" - } - }, - "id": 4127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8869:46:6", + "id": 3704, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "4914:5:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "id": 4128, - "nodeType": "EmitStatement", - "src": "8864:51:6" + "id": 3705, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "4914:17:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3706, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 6137, + "src": "4914:29:12", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 3707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4914:31:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "functionReturnParameters": 3703, + "id": 3708, + "nodeType": "Return", + "src": "4907:38:12" + } + ] + }, + "documentation": null, + "id": 3710, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTotalFundedAssetsSymbols", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3699, + "nodeType": "ParameterList", + "parameters": [], + "src": "4862:2:12" + }, + "payable": false, + "returnParameters": { + "id": 3703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3702, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3710, + "src": "4886:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 3700, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4886:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - ] + }, + "id": 3701, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4886:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } }, - "condition": { + "value": null, + "visibility": "internal" + } + ], + "src": "4885:11:12" + }, + "scope": 4056, + "src": "4826:126:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3722, + "nodeType": "Block", + "src": "5034:58:12", + "statements": [ + { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3717, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "5051:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3718, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "totalFundedReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5240, + "src": "5051:25:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } }, - "id": 3940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 3720, + "indexExpression": { "argumentTypes": null, - "id": 3938, - "name": "ln", + "id": 3719, + "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "7432:2:6", + "referencedDeclaration": 3712, + "src": "5077:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3939, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5051:34:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3716, + "id": 3721, + "nodeType": "Return", + "src": "5044:41:12" + } + ] + }, + "documentation": null, + "id": 3723, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTotalFundedReleased", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3713, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3712, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3723, + "src": "4990:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3711, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4990:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4989:17:12" + }, + "payable": false, + "returnParameters": { + "id": 3716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3715, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3723, + "src": "5028:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3714, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5028:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5027:6:12" + }, + "scope": 4056, + "src": "4958:134:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3738, + "nodeType": "Block", + "src": "5313:136:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3732, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "5366:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3733, + "name": "trancheTransferAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "5385:22:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 3734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5385:24:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 3735, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3352, + "src": "5423:9:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "expression": { + "argumentTypes": null, + "id": 3730, + "name": "Fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6008, + "src": "5330:4:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Fund_$6008_$", + "typeString": "type(library Fund)" + } + }, + "id": 3731, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "7438:1:6", - "subdenomination": null, + "memberName": "getTrancheInvoice", + "nodeType": "MemberAccess", + "referencedDeclaration": 5629, + "src": "5330:22:12", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$5253_storage_ptr_$_t_bool_$_t_contract$_IW12Crowdsale_$1760_$returns$_t_array$_t_uint256_$3_memory_ptr_$", + "typeString": "function (struct Fund.State storage pointer,bool,contract IW12Crowdsale) view returns (uint256[3] memory)" + } }, - "src": "7432:7:6", + "id": 3736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5330:112:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } }, - "id": 4130, - "nodeType": "WhileStatement", - "src": "7426:1500:6" + "functionReturnParameters": 3729, + "id": 3737, + "nodeType": "Return", + "src": "5323:119:12" } ] }, - "documentation": null, - "id": 4132, + "documentation": "@notice Get tranche invoice\n@return uint[3] result:\n[tranchePercent, totalTranchePercentBefore, milestoneIndex]", + "id": 3739, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "_transferTranche", + "name": "getTrancheInvoice", "nodeType": "FunctionDefinition", "parameters": { - "id": 3929, + "id": 3724, + "nodeType": "ParameterList", + "parameters": [], + "src": "5273:2:12" + }, + "payable": false, + "returnParameters": { + "id": 3729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3928, - "name": "_invoice", + "id": 3728, + "name": "result", "nodeType": "VariableDeclaration", - "scope": 4132, - "src": "7336:16:6", + "scope": 3739, + "src": "5297:14:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29503,27 +15887,27 @@ }, "typeName": { "baseType": { - "id": 3925, + "id": 3725, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7336:4:6", + "src": "5297:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3927, + "id": 3727, "length": { "argumentTypes": null, "hexValue": "33", - "id": 3926, + "id": 3726, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7341:1:6", + "src": "5302:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -29532,7 +15916,7 @@ "value": "3" }, "nodeType": "ArrayTypeName", - "src": "7336:7:6", + "src": "5297:7:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", "typeString": "uint256[3]" @@ -29542,26 +15926,19 @@ "visibility": "internal" } ], - "src": "7335:18:6" + "src": "5296:16:12" }, - "payable": false, - "returnParameters": { - "id": 3930, - "nodeType": "ParameterList", - "parameters": [], - "src": "7363:0:6" - }, - "scope": 4535, - "src": "7310:1622:6", - "stateMutability": "nonpayable", + "scope": 4056, + "src": "5247:202:12", + "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 4222, + "id": 3811, "nodeType": "Block", - "src": "9046:614:6", + "src": "5568:482:12", "statements": [ { "expression": { @@ -29572,18 +15949,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4140, - "name": "tokenRefundAllowed", + "id": 3747, + "name": "trancheTransferAllowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4457, - "src": "9064:18:6", + "referencedDeclaration": 4003, + "src": "5586:22:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 4141, + "id": 3748, "isConstant": false, "isLValue": false, "isPure": false, @@ -29591,7 +15968,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9064:20:6", + "src": "5586:24:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29605,21 +15982,21 @@ "typeString": "bool" } ], - "id": 4139, + "id": 3746, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "9056:7:6", + "referencedDeclaration": 13444, + "src": "5578:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4142, + "id": 3749, "isConstant": false, "isLValue": false, "isPure": false, @@ -29627,225 +16004,93 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9056:29:6", + "src": "5578:33:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4143, + "id": 3750, "nodeType": "ExpressionStatement", - "src": "9056:29:6" + "src": "5578:33:12" }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4145, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9103:11:6", + "assignments": [ + 3755 + ], + "declarations": [ + { + "constant": false, + "id": 3755, + "name": "trancheInvoice", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "5622:29:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" + }, + "typeName": { + "baseType": { + "id": 3753, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5622:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "id": 3754, + "length": { "argumentTypes": null, - "hexValue": "30", - "id": 4146, + "hexValue": "33", + "id": 3752, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9118:1:6", + "src": "5627:1:12", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": null, + "typeString": null }, - "value": "0" + "value": "3" }, - "src": "9103:16:6", + "nodeType": "ArrayTypeName", + "src": "5622:7:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" } - ], - "id": 4144, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9095:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9095:25:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + }, + "value": null, + "visibility": "internal" } - }, - "id": 4149, - "nodeType": "ExpressionStatement", - "src": "9095:25:6" - }, - { - "expression": { + ], + "id": 3758, + "initialValue": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4151, - "name": "tokenBoughtPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "9138:22:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4154, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4152, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9161:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9161:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9138:34:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4155, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9176:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9138:49:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4150, - "name": "require", + "argumentTypes": [], + "id": 3756, + "name": "getTrancheInvoice", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9130:7:6", + "overloadedDeclarations": [], + "referencedDeclaration": 3739, + "src": "5654:17:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_view$__$returns$_t_array$_t_uint256_$3_memory_ptr_$", + "typeString": "function () view returns (uint256[3] memory)" } }, - "id": 4157, + "id": 3757, "isConstant": false, "isLValue": false, "isPure": false, @@ -29853,15 +16098,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9130:58:6", + "src": "5654:19:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } }, - "id": 4158, - "nodeType": "ExpressionStatement", - "src": "9130:58:6" + "nodeType": "VariableDeclarationStatement", + "src": "5622:51:12" }, { "expression": { @@ -29873,108 +16117,77 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4162, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9223:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9223:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 3764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3760, + "name": "trancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3755, + "src": "5692:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4160, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3323, - "src": "9206:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 4161, + }, + "id": 3762, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3761, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "9206:16:6", + "nodeType": "Literal", + "src": "5707:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "id": 4164, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9206:28:6", + "nodeType": "IndexAccess", + "src": "5692:17:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": ">=", + "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 4165, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9238:11:6", + "hexValue": "30", + "id": 3763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5712:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "9206:43:6", + "src": "5692:21:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29988,21 +16201,21 @@ "typeString": "bool" } ], - "id": 4159, + "id": 3759, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "9198:7:6", + "referencedDeclaration": 13444, + "src": "5684:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4167, + "id": 3765, "isConstant": false, "isLValue": false, "isPure": false, @@ -30010,15 +16223,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9198:52:6", + "src": "5684:30:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4168, + "id": 3766, "nodeType": "ExpressionStatement", - "src": "9198:52:6" + "src": "5684:30:12" }, { "expression": { @@ -30030,163 +16243,110 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4179, + "id": 3774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 4172, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9285:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9285:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { + "expression": { "argumentTypes": null, - "id": 4175, - "name": "this", + "id": 3768, + "name": "state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10563, - "src": "9305:4:6", + "referencedDeclaration": 3364, + "src": "5732:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } - ], - "id": 4174, + }, + "id": 3769, "isConstant": false, - "isLValue": false, - "isPure": true, + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9297:7:6", + "memberName": "totalFunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5236, + "src": "5732:17:12", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_struct$_Account_$6026_storage", + "typeString": "struct FundAccount.Account storage ref" + } }, - "id": 4176, + "id": 3770, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9297:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4170, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3323, - "src": "9268:6:6", + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 6137, + "src": "5732:29:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$6026_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$6026_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" } }, - "id": 4171, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 10182, - "src": "9268:16:6", + "names": [], + "nodeType": "FunctionCall", + "src": "5732:31:12", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" } }, - "id": 4177, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9268:43:6", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5732:38:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": ">=", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 4178, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9315:11:6", + "hexValue": "30", + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5774:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "9268:58:6", + "src": "5732:43:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30200,75 +16360,21 @@ "typeString": "bool" } ], - "id": 4169, + "id": 3767, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "9260:7:6", + "referencedDeclaration": 13444, + "src": "5724:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9260:67:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4181, - "nodeType": "ExpressionStatement", - "src": "9260:67:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4183, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9352:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4182, - "name": "_refundAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4421, - "src": "9338:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 4184, + "id": 3775, "isConstant": false, "isLValue": false, "isPure": false, @@ -30276,173 +16382,174 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9338:26:6", + "src": "5724:52:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4185, + "id": 3776, "nodeType": "ExpressionStatement", - "src": "9338:26:6" + "src": "5724:52:12" }, { "expression": { "argumentTypes": null, - "id": 4191, + "id": 3785, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4186, - "name": "totalTokenRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "9375:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + "baseExpression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 4189, - "name": "tokenAmount", + "id": 3777, + "name": "state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9419:11:6", + "referencedDeclaration": 3364, + "src": "5787:5:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } + }, + "id": 3782, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "completedTranches", + "nodeType": "MemberAccess", + "referencedDeclaration": 5232, + "src": "5787:23:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { + }, + "id": 3783, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 4187, - "name": "totalTokenRefunded", + "id": 3779, + "name": "trancheInvoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "9396:18:6", + "referencedDeclaration": 3755, + "src": "5811:14:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } }, - "id": 4188, + "id": 3781, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 3780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5826:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "9396:22:6", + "nodeType": "IndexAccess", + "src": "5811:17:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 4190, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9396:35:6", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5787:42:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "9375:56:6", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5832:4:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5787:49:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 4192, + "id": 3786, "nodeType": "ExpressionStatement", - "src": "9375:56:6" + "src": "5787:49:12" }, { "expression": { "argumentTypes": null, - "id": 4204, + "id": 3797, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "id": 4193, - "name": "tokenBoughtPerInvestor", + "id": 3787, + "name": "state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "9441:22:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4196, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4194, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9464:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9464:10:6", + "referencedDeclaration": 3364, + "src": "5846:5:12", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, + "id": 3789, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9441:34:6", + "memberName": "totalTranchePercentReleased", + "nodeType": "MemberAccess", + "referencedDeclaration": 5234, + "src": "5846:33:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30454,262 +16561,162 @@ "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 4202, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9517:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4197, - "name": "tokenBoughtPerInvestor", + "id": 3793, + "name": "trancheInvoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "9478:22:6", + "referencedDeclaration": 3755, + "src": "5920:14:12", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } }, - "id": 4200, + "id": 3795, "indexExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4198, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9501:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4199, + "hexValue": "30", + "id": 3794, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9501:10:6", + "nodeType": "Literal", + "src": "5935:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9478:34:6", + "src": "5920:17:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 4201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "9478:38:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9478:51:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9441:88:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4205, - "nodeType": "ExpressionStatement", - "src": "9441:88:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4209, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9568:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9568:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4211, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3327, - "src": "9580:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4212, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9586:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4207, - "name": "wToken", + "id": 3790, + "name": "state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3323, - "src": "9548:6:6", + "referencedDeclaration": 3364, + "src": "5882:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "id": 4208, + "id": 3791, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "transferFrom", + "memberName": "totalTranchePercentReleased", "nodeType": "MemberAccess", - "referencedDeclaration": 10193, - "src": "9548:19:6", + "referencedDeclaration": 5234, + "src": "5882:33:12", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 4213, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9548:50:6", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "5882:37:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5882:56:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5846:92:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3798, + "nodeType": "ExpressionStatement", + "src": "5846:92:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3800, + "name": "trancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3755, + "src": "5966:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } ], - "id": 4206, - "name": "require", + "id": 3799, + "name": "_transferTranche", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9540:7:6", + "overloadedDeclarations": [], + "referencedDeclaration": 3830, + "src": "5949:16:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$3_memory_ptr_$returns$__$", + "typeString": "function (uint256[3] memory)" } }, - "id": 4214, + "id": 3801, "isConstant": false, "isLValue": false, "isPure": false, @@ -30717,15 +16724,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9540:59:6", + "src": "5949:32:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4215, + "id": 3802, "nodeType": "ExpressionStatement", - "src": "9540:59:6" + "src": "5949:32:12" }, { "eventCall": { @@ -30735,18 +16742,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4217, + "id": 3804, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9629:3:6", + "referencedDeclaration": 13441, + "src": "6013:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4218, + "id": 3805, "isConstant": false, "isLValue": false, "isPure": false, @@ -30754,7 +16761,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9629:10:6", + "src": "6013:10:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30762,12 +16769,44 @@ }, { "argumentTypes": null, - "id": 4219, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4134, - "src": "9641:11:6", + "baseExpression": { + "argumentTypes": null, + "id": 3806, + "name": "trancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3755, + "src": "6025:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3808, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6040:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6025:17:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30785,18 +16824,18 @@ "typeString": "uint256" } ], - "id": 4216, - "name": "TokenRefunded", + "id": 3803, + "name": "TrancheReleased", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3379, - "src": "9615:13:6", + "referencedDeclaration": 3402, + "src": "5997:15:12", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 4220, + "id": 3809, "isConstant": false, "isLValue": false, "isPure": false, @@ -30804,873 +16843,716 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9615:38:6", + "src": "5997:46:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4221, + "id": 3810, "nodeType": "EmitStatement", - "src": "9610:43:6" + "src": "5992:51:12" } ] }, - "documentation": "@notice Refund bought tokens", - "id": 4223, + "documentation": "@notice Realise project tranche", + "id": 3812, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 4137, + "id": 3742, + "modifierName": { + "argumentTypes": null, + "id": 3741, + "name": "onlyProjectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "5538:16:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5538:16:12" + }, + { + "arguments": null, + "id": 3744, "modifierName": { "argumentTypes": null, - "id": 4136, + "id": 3743, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9776, - "src": "9033:12:6", + "referencedDeclaration": 13257, + "src": "5555:12:12", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "9033:12:6" + "src": "5555:12:12" } ], - "name": "refund", + "name": "tranche", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3740, + "nodeType": "ParameterList", + "parameters": [], + "src": "5526:2:12" + }, + "payable": false, + "returnParameters": { + "id": 3745, + "nodeType": "ParameterList", + "parameters": [], + "src": "5568:0:12" + }, + "scope": 4056, + "src": "5510:540:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 3829, + "nodeType": "Block", + "src": "6109:165:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3822, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "6153:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + { + "argumentTypes": null, + "id": 3823, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3816, + "src": "6172:8:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + { + "argumentTypes": null, + "id": 3824, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3362, + "src": "6194:17:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3825, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3360, + "src": "6225:13:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3826, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3356, + "src": "6252:5:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + }, + { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + ], + "expression": { + "argumentTypes": null, + "id": 3819, + "name": "Fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6008, + "src": "6119:4:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Fund_$6008_$", + "typeString": "type(library Fund)" + } + }, + "id": 3821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferTranche", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "6119:20:12", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$5253_storage_ptr_$_t_array$_t_uint256_$3_memory_ptr_$_t_uint256_$_t_address_$_t_contract$_IRates_$10014_$returns$__$", + "typeString": "function (struct Fund.State storage pointer,uint256[3] memory,uint256,address,contract IRates)" + } + }, + "id": 3827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6119:148:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3828, + "nodeType": "ExpressionStatement", + "src": "6119:148:12" + } + ] + }, + "documentation": null, + "id": 3830, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_transferTranche", "nodeType": "FunctionDefinition", "parameters": { - "id": 4135, + "id": 3817, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4134, - "name": "tokenAmount", + "id": 3816, + "name": "_invoice", "nodeType": "VariableDeclaration", - "scope": 4223, - "src": "9006:16:6", + "scope": 3830, + "src": "6082:16:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" }, "typeName": { - "id": 4133, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9006:4:6", + "baseType": { + "id": 3813, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6082:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3815, + "length": { + "argumentTypes": null, + "hexValue": "33", + "id": 3814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6087:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "6082:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" } }, "value": null, "visibility": "internal" } ], - "src": "9005:18:6" + "src": "6081:18:12" }, "payable": false, "returnParameters": { - "id": 4138, + "id": 3818, "nodeType": "ParameterList", "parameters": [], - "src": "9046:0:6" + "src": "6109:0:12" }, - "scope": 4535, - "src": "8990:670:6", + "scope": 4056, + "src": "6056:218:12", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "external" + "visibility": "internal" }, { "body": { - "id": 4420, + "id": 3927, "nodeType": "Block", - "src": "9716:1798:6", + "src": "6388:644:12", "statements": [ { - "assignments": [ - 4229 - ], - "declarations": [ - { - "constant": false, - "id": 4229, - "name": "ln", - "nodeType": "VariableDeclaration", - "scope": 4421, - "src": "9726:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4228, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9726:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4237, - "initialValue": { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], + "arguments": [ + { + "argumentTypes": null, + "arguments": [], "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4230, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "9736:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 4233, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4231, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9754:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9754:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9736:29:6", + "argumentTypes": [], + "id": 3838, + "name": "tokenRefundAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3978, + "src": "6406:18:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" } }, - "id": 4234, + "id": 3839, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "symbolsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "9736:41:6", + "names": [], + "nodeType": "FunctionCall", + "src": "6406:20:12", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 4235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9736:43:6", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3837, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6398:7:12", "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 4236, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9736:50:6", + "names": [], + "nodeType": "FunctionCall", + "src": "6398:29:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9726:60:6" - }, - { - "body": { - "id": 4418, - "nodeType": "Block", - "src": "9813:1695:6", - "statements": [ - { - "assignments": [ - 4242 - ], - "declarations": [ - { - "constant": false, - "id": 4242, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 4421, - "src": "9827:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4241, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9827:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4252, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4243, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "9844:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 4246, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4244, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9862:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9862:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9844:29:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 4247, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbolsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4920, - "src": "9844:41:6", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4809_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" - } - }, - "id": 4248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9844:43:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 4251, - "indexExpression": { - "argumentTypes": null, - "id": 4250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": true, - "src": "9888:4:6", - "subExpression": { - "argumentTypes": null, - "id": 4249, - "name": "ln", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4229, - "src": "9890:2:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9844:49:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9827:66:6" - }, + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3841, + "nodeType": "ExpressionStatement", + "src": "6398:29:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 4254 - ], - "declarations": [ - { - "constant": false, - "id": 4254, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 4421, - "src": "9907:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4253, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9907:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4262, - "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4260, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "9960:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4255, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "9921:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 4258, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4256, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9939:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9939:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9921:29:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 4259, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "9921:38:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" - } - }, - "id": 4261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9921:46:6", + "id": 3843, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "6445:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "9907:60:6" - }, - { - "condition": { + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4265, + "hexValue": "30", + "id": 3844, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4263, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "9986:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9996:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9986:11:6", + "nodeType": "Literal", + "src": "6460:1:12", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "falseBody": null, - "id": 4267, - "nodeType": "IfStatement", - "src": "9982:25:6", - "trueBody": { - "id": 4266, - "nodeType": "Continue", - "src": "9999:8:6" + "src": "6445:16:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3842, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6437:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6437:25:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3847, + "nodeType": "ExpressionStatement", + "src": "6437:25:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 4269 - ], - "declarations": [ - { - "constant": false, - "id": 4269, - "name": "sourceAmount", - "nodeType": "VariableDeclaration", - "scope": 4421, - "src": "10055:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4268, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10055:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4279, - "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4272, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4225, - "src": "10109:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { + "baseExpression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 4273, - "name": "amount", + "id": 3849, + "name": "state", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "10138:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4274, - "name": "tokenBoughtPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "10162:22:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4277, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4275, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "10185:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10185:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10162:34:6", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "6480:5:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } + }, + "id": 3850, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "6480:28:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + }, + "id": 3853, + "indexExpression": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4270, - "name": "Utils", + "id": 3851, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "10075:5:6", + "referencedDeclaration": 13441, + "src": "6509:3:12", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", - "typeString": "type(library Utils)" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 4271, + "id": 3852, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "safeMulDiv", + "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 6323, - "src": "10075:16:6", + "referencedDeclaration": null, + "src": "6509:10:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 4278, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10075:135:6", + "nodeType": "IndexAccess", + "src": "6480:40:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "10055:155:6" - }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3854, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "6524:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6480:55:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3848, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6472:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6472:64:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3857, + "nodeType": "ExpressionStatement", + "src": "6472:64:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, - "id": 4281, - "name": "sourceAmount", + "id": 3861, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "10233:12:6", + "referencedDeclaration": 13441, + "src": "6571:3:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4282, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10248:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10233:16:6", + "id": 3862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6571:10:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 4280, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10225:7:6", + "expression": { + "argumentTypes": null, + "id": 3859, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3354, + "src": "6554:6:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 3860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "6554:16:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" } }, - "id": 4284, + "id": 3863, "isConstant": false, "isLValue": false, "isPure": false, @@ -31678,153 +17560,211 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10225:25:6", + "src": "6554:28:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 4285, - "nodeType": "ExpressionStatement", - "src": "10225:25:6" - }, - { - "assignments": [ - 4287 - ], - "declarations": [ - { - "constant": false, - "id": 4287, - "name": "releasedTranche", - "nodeType": "VariableDeclaration", - "scope": 4421, - "src": "10328:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4286, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10328:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3864, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "6586:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 4295, - "initialValue": { + }, + "src": "6554:43:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3858, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6546:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6546:52:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3867, + "nodeType": "ExpressionStatement", + "src": "6546:52:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4293, - "name": "totalTranchePercentReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3333, - "src": "10426:27:6", + "expression": { + "argumentTypes": null, + "id": 3871, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6633:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6633:10:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "expression": { + }, + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4290, - "name": "symbol", + "id": 3874, + "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10389:6:6", + "referencedDeclaration": 13530, + "src": "6653:4:12", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_contract$_W12Fund_$4056", + "typeString": "contract W12Fund" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_contract$_W12Fund_$4056", + "typeString": "contract W12Fund" } ], - "expression": { - "argumentTypes": null, - "id": 4288, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "10351:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 4289, + "id": 3873, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "memberName": "amountOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "10351:37:6", + "nodeType": "ElementaryTypeNameExpression", + "src": "6645:7:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 4291, + "id": 3875, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10351:45:6", + "src": "6645:13:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 3869, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3354, + "src": "6616:6:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "id": 4292, + "id": 3870, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "safePercent", + "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 5151, - "src": "10351:74:6", + "referencedDeclaration": 13037, + "src": "6616:16:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 4294, + "id": 3876, "isConstant": false, "isLValue": false, "isPure": false, @@ -31832,1862 +17772,909 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10351:103:6", + "src": "6616:43:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "10328:126:6" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { "argumentTypes": null, - "id": 4312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4296, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "10518:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4304, - "name": "releasedTranche", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4287, - "src": "10594:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4301, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10582:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4299, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "10561:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 4300, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "10561:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" - } - }, - "id": 4302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10561:28:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "10561:32:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10561:49:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4306, - "name": "sourceAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "10628:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4309, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10679:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4307, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "10658:11:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" - } - }, - "id": 4308, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 4908, - "src": "10658:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" - } - }, - "id": 4310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10658:28:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4297, - "name": "Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "10527:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Utils_$6324_$", - "typeString": "type(library Utils)" - } - }, - "id": 4298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeMulDiv", - "nodeType": "MemberAccess", - "referencedDeclaration": 6323, - "src": "10527:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10527:173:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10518:182:6", + "id": 3877, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "6663:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6616:58:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3868, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6608:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:67:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3880, + "nodeType": "ExpressionStatement", + "src": "6608:67:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3882, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "6700:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3881, + "name": "_refundAssets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3942, + "src": "6686:13:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6686:26:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3884, + "nodeType": "ExpressionStatement", + "src": "6686:26:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 3893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3885, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "6723:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3887, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "totalTokenRefunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5244, + "src": "6723:24:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3891, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "6779:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 4313, - "nodeType": "ExpressionStatement", - "src": "10518:182:6" - }, - { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4315, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "10723:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10732:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10723:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4314, - "name": "require", + "argumentTypes": null, + "id": 3888, + "name": "state", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "10715:7:6", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "6750:5:12", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - "id": 4318, + "id": 3889, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10715:19:6", + "memberName": "totalTokenRefunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 5244, + "src": "6750:24:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 4319, - "nodeType": "ExpressionStatement", - "src": "10715:19:6" + "id": 3890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "6750:28:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - { + "id": 3892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6750:41:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6723:68:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3894, + "nodeType": "ExpressionStatement", + "src": "6723:68:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 3909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4320, - "name": "totalFundedReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "10749:19:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4322, - "indexExpression": { - "argumentTypes": null, - "id": 4321, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10769:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10749:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4327, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "10811:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4323, - "name": "totalFundedReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "10779:19:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4325, - "indexExpression": { - "argumentTypes": null, - "id": 4324, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10799:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10779:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "10779:31:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10779:39:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10749:69:6", + "id": 3895, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "6801:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + "id": 3899, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "6801:28:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3900, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3897, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6830:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6830:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6801:40:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3907, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "6889:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 4330, - "nodeType": "ExpressionStatement", - "src": "10749:69:6" - }, - { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { "argumentTypes": null, - "arguments": [ - { + "baseExpression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 4336, - "name": "symbol", + "id": 3901, + "name": "state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10873:6:6", + "referencedDeclaration": 3364, + "src": "6844:5:12", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" } }, - { - "argumentTypes": null, - "id": 4337, - "name": "sourceAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "10881:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 3902, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBoughtPerInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 5248, + "src": "6844:28:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + }, + "id": 3905, + "indexExpression": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4331, - "name": "fundedPerInvestor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "10832:17:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4809_storage_$", - "typeString": "mapping(address => struct FundAccount.Account storage ref)" - } - }, - "id": 4334, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4332, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "10850:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10850:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10832:29:6", + "id": 3903, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6873:3:12", "typeDescriptions": { - "typeIdentifier": "t_struct$_Account_$4809_storage", - "typeString": "struct FundAccount.Account storage ref" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 4335, + "id": 3904, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "withdrawal", + "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 4878, - "src": "10832:40:6", + "referencedDeclaration": null, + "src": "6873:10:12", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4809_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4809_storage_ptr_$", - "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 4338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10832:62:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4339, - "nodeType": "ExpressionStatement", - "src": "10832:62:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4342, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4340, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10913:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4341, - "name": "METHOD_USD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "10923:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "10913:20:6", + "nodeType": "IndexAccess", + "src": "6844:40:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "falseBody": null, - "id": 4344, - "nodeType": "IfStatement", - "src": "10909:34:6", - "trueBody": { - "id": 4343, - "nodeType": "Continue", - "src": "10935:8:6" + "id": 3906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "6844:44:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, + "id": 3908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6844:57:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6801:100:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3910, + "nodeType": "ExpressionStatement", + "src": "6801:100:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4345, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "10962:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 4346, - "name": "METHOD_ETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "10972:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "10962:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 4381, - "nodeType": "Block", - "src": "11151:73:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4374, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10563, - "src": "11185:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - ], - "id": 4373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11177:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11177:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11177:21:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4377, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "11202:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11177:31:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4372, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11169:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11169:40:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4380, - "nodeType": "ExpressionStatement", - "src": "11169:40:6" - } - ] - }, - "id": 4382, - "nodeType": "IfStatement", - "src": "10958:266:6", - "trueBody": { - "id": 4371, - "nodeType": "Block", - "src": "10984:161:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4351, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "11024:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4349, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "11010:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "11010:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 4352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11010:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4348, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11002:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11002:30:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4354, - "nodeType": "ExpressionStatement", - "src": "11002:30:6" + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3914, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6940:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4364, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10563, - "src": "11113:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$4535", - "typeString": "contract W12Fund" - } - ], - "id": 4363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11105:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11105:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4359, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "11086:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4357, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "11064:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "11064:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 4360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11064:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4356, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "11058:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 4361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11058:36:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 4362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "11058:46:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 4366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11058:61:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4367, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "11123:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11058:71:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4355, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11050:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11050:80:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4370, - "nodeType": "ExpressionStatement", - "src": "11050:80:6" + "id": 3915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6940:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" }, - "id": 4385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { "argumentTypes": null, - "id": 4383, - "name": "symbol", + "id": 3916, + "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "11242:6:6", + "referencedDeclaration": 3358, + "src": "6952:4:12", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + { "argumentTypes": null, - "id": 4384, - "name": "METHOD_ETH", + "id": 3917, + "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "11252:10:6", + "referencedDeclaration": 3832, + "src": "6958:11:12", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "src": "11242:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } - }, - "falseBody": { - "id": 4409, - "nodeType": "Block", - "src": "11330:107:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "11402:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11402:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4405, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "11414:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4399, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "11384:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4397, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "11362:5:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", - "typeString": "contract IRates" - } - }, - "id": 4398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getTokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "11362:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 4400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11362:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4396, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "11356:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 4401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11356:36:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 4402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "11356:45:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 4406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11356:65:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "11348:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11348:74:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4408, - "nodeType": "ExpressionStatement", - "src": "11348:74:6" - } - ] - }, - "id": 4410, - "nodeType": "IfStatement", - "src": "11238:199:6", - "trueBody": { - "id": 4394, - "nodeType": "Block", - "src": "11264:60:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4391, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "11302:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4386, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "11282:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11282:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11282:19:6", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 4392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11282:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4393, - "nodeType": "ExpressionStatement", - "src": "11282:27:6" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "11470:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11470:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" }, { - "argumentTypes": null, - "id": 4414, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4242, - "src": "11482:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "typeIdentifier": "t_address", + "typeString": "address" }, { - "argumentTypes": null, - "id": 4415, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "11490:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4411, - "name": "AssetRefunded", + "argumentTypes": null, + "id": 3912, + "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3373, - "src": "11456:13:6", + "referencedDeclaration": 3354, + "src": "6920:6:12", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (address,bytes32,uint256)" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "id": 4416, + "id": 3913, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11456:41:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 13066, + "src": "6920:19:12", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 3918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6920:50:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3911, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "6912:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6912:59:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3920, + "nodeType": "ExpressionStatement", + "src": "6912:59:12" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3922, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "7001:3:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 4417, - "nodeType": "EmitStatement", - "src": "11451:46:6" + "id": 3923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7001:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3924, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "7013:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3921, + "name": "TokenRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3388, + "src": "6987:13:12", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" }, - "id": 4240, + "id": 3925, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4238, - "name": "ln", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4229, - "src": "9804:2:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "names": [], + "nodeType": "FunctionCall", + "src": "6987:38:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3926, + "nodeType": "EmitStatement", + "src": "6982:43:12" + } + ] + }, + "documentation": "@notice Refund bought tokens", + "id": 3928, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3835, + "modifierName": { + "argumentTypes": null, + "id": 3834, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13257, + "src": "6375:12:12", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6375:12:12" + } + ], + "name": "refund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3832, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 3928, + "src": "6348:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3831, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6348:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6347:18:12" + }, + "payable": false, + "returnParameters": { + "id": 3836, + "nodeType": "ParameterList", + "parameters": [], + "src": "6388:0:12" + }, + "scope": 4056, + "src": "6332:700:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 3941, + "nodeType": "Block", + "src": "7088:107:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3936, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "7129:5:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + } + }, + { + "argumentTypes": null, + "id": 3937, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3930, + "src": "7148:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3938, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3356, + "src": "7173:5:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4239, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_State_$5253_storage", + "typeString": "struct Fund.State storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IRates_$10014", + "typeString": "contract IRates" + } + ], + "expression": { + "argumentTypes": null, + "id": 3933, + "name": "Fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6008, + "src": "7098:4:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Fund_$6008_$", + "typeString": "type(library Fund)" + } + }, + "id": 3935, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "9810:1:6", - "subdenomination": null, + "memberName": "refundAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 5844, + "src": "7098:17:12", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$5253_storage_ptr_$_t_uint256_$_t_contract$_IRates_$10014_$returns$__$", + "typeString": "function (struct Fund.State storage pointer,uint256,contract IRates)" + } }, - "src": "9804:7:6", + "id": 3939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7098:90:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 4419, - "nodeType": "WhileStatement", - "src": "9797:1711:6" + "id": 3940, + "nodeType": "ExpressionStatement", + "src": "7098:90:12" } ] }, "documentation": null, - "id": 4421, + "id": 3942, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -33695,16 +18682,16 @@ "name": "_refundAssets", "nodeType": "FunctionDefinition", "parameters": { - "id": 4226, + "id": 3931, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4225, + "id": 3930, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 4421, - "src": "9689:16:6", + "scope": 3942, + "src": "7061:16:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33712,10 +18699,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4224, + "id": 3929, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9689:4:6", + "src": "7061:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33725,40 +18712,40 @@ "visibility": "internal" } ], - "src": "9688:18:6" + "src": "7060:18:12" }, "payable": false, "returnParameters": { - "id": 4227, + "id": 3932, "nodeType": "ParameterList", "parameters": [], - "src": "9716:0:6" + "src": "7088:0:12" }, - "scope": 4535, - "src": "9666:1848:6", + "scope": 4056, + "src": "7038:157:12", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 4456, + "id": 3977, "nodeType": "Block", - "src": "11577:387:6", + "src": "7258:387:12", "statements": [ { "assignments": [ - 4427, - 4429 + 3948, + 3950 ], "declarations": [ { "constant": false, - "id": 4427, + "id": 3948, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4457, - "src": "11588:10:6", + "scope": 3978, + "src": "7269:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33766,10 +18753,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4426, + "id": 3947, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11588:4:6", + "src": "7269:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33780,11 +18767,11 @@ }, { "constant": false, - "id": 4429, + "id": 3950, "name": "found", "nodeType": "VariableDeclaration", - "scope": 4457, - "src": "11600:10:6", + "scope": 3978, + "src": "7281:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33792,10 +18779,10 @@ "typeString": "bool" }, "typeName": { - "id": 4428, + "id": 3949, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11600:4:6", + "src": "7281:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -33805,7 +18792,7 @@ "visibility": "internal" } ], - "id": 4433, + "id": 3954, "initialValue": { "argumentTypes": null, "arguments": [], @@ -33813,32 +18800,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 4430, + "id": 3951, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "11614:9:6", + "referencedDeclaration": 3352, + "src": "7295:9:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, - "id": 4431, + "id": 3952, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getCurrentMilestoneIndex", "nodeType": "MemberAccess", - "referencedDeclaration": 1175, - "src": "11614:34:6", + "referencedDeclaration": 1711, + "src": "7295:34:12", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view external returns (uint256,bool)" } }, - "id": 4432, + "id": 3953, "isConstant": false, "isLValue": false, "isPure": false, @@ -33846,14 +18833,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11614:36:6", + "src": "7295:36:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "11587:63:6" + "src": "7268:63:12" }, { "condition": { @@ -33862,19 +18849,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4436, + "id": 3957, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4434, + "id": 3955, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4427, - "src": "11789:5:6", + "referencedDeclaration": 3948, + "src": "7470:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33885,14 +18872,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4435, + "id": 3956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11798:1:6", + "src": "7479:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -33900,41 +18887,41 @@ }, "value": "0" }, - "src": "11789:10:6", + "src": "7470:10:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 4438, + "id": 3959, "nodeType": "IfStatement", - "src": "11786:22:6", + "src": "7467:22:12", "trueBody": { "expression": null, - "functionReturnParameters": 4425, - "id": 4437, + "functionReturnParameters": 3946, + "id": 3958, "nodeType": "Return", - "src": "11801:7:6" + "src": "7482:7:12" } }, { "assignments": [ - 4440, + 3961, null, null, - 4442, + 3963, null, null ], "declarations": [ { "constant": false, - "id": 4440, + "id": 3961, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 4457, - "src": "11819:14:6", + "scope": 3978, + "src": "7500:14:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33942,10 +18929,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4439, + "id": 3960, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "11819:6:6", + "src": "7500:6:12", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -33958,11 +18945,11 @@ null, { "constant": false, - "id": 4442, + "id": 3963, "name": "withdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 4457, - "src": "11839:23:6", + "scope": 3978, + "src": "7520:23:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33970,10 +18957,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4441, + "id": 3962, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "11839:6:6", + "src": "7520:6:12", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -33985,18 +18972,18 @@ null, null ], - "id": 4447, + "id": 3968, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4445, + "id": 3966, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4427, - "src": "11893:5:6", + "referencedDeclaration": 3948, + "src": "7574:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34012,32 +18999,32 @@ ], "expression": { "argumentTypes": null, - "id": 4443, + "id": 3964, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "11870:9:6", + "referencedDeclaration": 3352, + "src": "7551:9:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, - "id": 4444, + "id": 3965, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMilestone", "nodeType": "MemberAccess", - "referencedDeclaration": 1149, - "src": "11870:22:6", + "referencedDeclaration": 1685, + "src": "7551:22:12", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" } }, - "id": 4446, + "id": 3967, "isConstant": false, "isLValue": false, "isPure": false, @@ -34045,14 +19032,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11870:29:6", + "src": "7551:29:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", - "src": "11818:81:6" + "src": "7499:81:12" }, { "expression": { @@ -34061,7 +19048,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 4454, + "id": 3975, "isConstant": false, "isLValue": false, "isPure": false, @@ -34072,19 +19059,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4450, + "id": 3971, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4448, + "id": 3969, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4440, - "src": "11917:7:6", + "referencedDeclaration": 3961, + "src": "7598:7:12", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34094,18 +19081,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 4449, + "id": 3970, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "11928:3:6", + "referencedDeclaration": 13443, + "src": "7609:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11917:14:6", + "src": "7598:14:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34119,19 +19106,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4453, + "id": 3974, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4451, + "id": 3972, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "11935:3:6", + "referencedDeclaration": 13443, + "src": "7616:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34141,38 +19128,38 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 4452, + "id": 3973, "name": "withdrawalWindow", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4442, - "src": "11941:16:6", + "referencedDeclaration": 3963, + "src": "7622:16:12", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "11935:22:6", + "src": "7616:22:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "11917:40:6", + "src": "7598:40:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4425, - "id": 4455, + "functionReturnParameters": 3946, + "id": 3976, "nodeType": "Return", - "src": "11910:47:6" + "src": "7591:47:12" } ] }, "documentation": null, - "id": 4457, + "id": 3978, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -34180,23 +19167,23 @@ "name": "tokenRefundAllowed", "nodeType": "FunctionDefinition", "parameters": { - "id": 4422, + "id": 3943, "nodeType": "ParameterList", "parameters": [], - "src": "11547:2:6" + "src": "7228:2:12" }, "payable": false, "returnParameters": { - "id": 4425, + "id": 3946, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4424, + "id": 3945, "name": "", "nodeType": "VariableDeclaration", - "scope": 4457, - "src": "11571:4:6", + "scope": 3978, + "src": "7252:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34204,10 +19191,10 @@ "typeString": "bool" }, "typeName": { - "id": 4423, + "id": 3944, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11571:4:6", + "src": "7252:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34217,33 +19204,33 @@ "visibility": "internal" } ], - "src": "11570:6:6" + "src": "7251:6:12" }, - "scope": 4535, - "src": "11520:444:6", + "scope": 4056, + "src": "7201:444:12", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4481, + "id": 4002, "nodeType": "Block", - "src": "12031:166:6", + "src": "7712:166:12", "statements": [ { "assignments": [ - 4463, - 4465 + 3984, + 3986 ], "declarations": [ { "constant": false, - "id": 4463, + "id": 3984, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4482, - "src": "12042:10:6", + "scope": 4003, + "src": "7723:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34251,10 +19238,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4462, + "id": 3983, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12042:4:6", + "src": "7723:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34265,11 +19252,11 @@ }, { "constant": false, - "id": 4465, + "id": 3986, "name": "found", "nodeType": "VariableDeclaration", - "scope": 4482, - "src": "12054:10:6", + "scope": 4003, + "src": "7735:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34277,10 +19264,10 @@ "typeString": "bool" }, "typeName": { - "id": 4464, + "id": 3985, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12054:4:6", + "src": "7735:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34290,7 +19277,7 @@ "visibility": "internal" } ], - "id": 4469, + "id": 3990, "initialValue": { "argumentTypes": null, "arguments": [], @@ -34298,32 +19285,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 4466, + "id": 3987, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "12068:9:6", + "referencedDeclaration": 3352, + "src": "7749:9:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, - "id": 4467, + "id": 3988, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getCurrentMilestoneIndex", "nodeType": "MemberAccess", - "referencedDeclaration": 1175, - "src": "12068:34:6", + "referencedDeclaration": 1711, + "src": "7749:34:12", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view external returns (uint256,bool)" } }, - "id": 4468, + "id": 3989, "isConstant": false, "isLValue": false, "isPure": false, @@ -34331,19 +19318,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12068:36:6", + "src": "7749:36:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "12041:63:6" + "src": "7722:63:12" }, { "condition": { "argumentTypes": null, - "id": 4471, + "id": 3992, "isConstant": false, "isLValue": false, "isPure": false, @@ -34351,15 +19338,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "12118:6:6", + "src": "7799:6:12", "subExpression": { "argumentTypes": null, - "id": 4470, + "id": 3991, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4465, - "src": "12119:5:6", + "referencedDeclaration": 3986, + "src": "7800:5:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34371,15 +19358,15 @@ } }, "falseBody": null, - "id": 4473, + "id": 3994, "nodeType": "IfStatement", - "src": "12115:18:6", + "src": "7796:18:12", "trueBody": { "expression": null, - "functionReturnParameters": 4461, - "id": 4472, + "functionReturnParameters": 3982, + "id": 3993, "nodeType": "Return", - "src": "12126:7:6" + "src": "7807:7:12" } }, { @@ -34389,7 +19376,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 4479, + "id": 4000, "isConstant": false, "isLValue": false, "isPure": false, @@ -34400,19 +19387,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4476, + "id": 3997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4474, + "id": 3995, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4463, - "src": "12150:5:6", + "referencedDeclaration": 3984, + "src": "7831:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34423,14 +19410,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4475, + "id": 3996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12159:1:6", + "src": "7840:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -34438,7 +19425,7 @@ }, "value": "0" }, - "src": "12150:10:6", + "src": "7831:10:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34451,18 +19438,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4477, + "id": 3998, "name": "isWithdrawalWindowActive", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4521, - "src": "12164:24:6", + "referencedDeclaration": 4042, + "src": "7845:24:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 4478, + "id": 3999, "isConstant": false, "isLValue": false, "isPure": false, @@ -34470,27 +19457,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12164:26:6", + "src": "7845:26:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "12150:40:6", + "src": "7831:40:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4461, - "id": 4480, + "functionReturnParameters": 3982, + "id": 4001, "nodeType": "Return", - "src": "12143:47:6" + "src": "7824:47:12" } ] }, "documentation": null, - "id": 4482, + "id": 4003, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -34498,23 +19485,23 @@ "name": "trancheTransferAllowed", "nodeType": "FunctionDefinition", "parameters": { - "id": 4458, + "id": 3979, "nodeType": "ParameterList", "parameters": [], - "src": "12001:2:6" + "src": "7682:2:12" }, "payable": false, "returnParameters": { - "id": 4461, + "id": 3982, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4460, + "id": 3981, "name": "", "nodeType": "VariableDeclaration", - "scope": 4482, - "src": "12025:4:6", + "scope": 4003, + "src": "7706:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34522,10 +19509,10 @@ "typeString": "bool" }, "typeName": { - "id": 4459, + "id": 3980, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12025:4:6", + "src": "7706:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34535,33 +19522,33 @@ "visibility": "internal" } ], - "src": "12024:6:6" + "src": "7705:6:12" }, - "scope": 4535, - "src": "11970:227:6", + "scope": 4056, + "src": "7651:227:12", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4520, + "id": 4041, "nodeType": "Block", - "src": "12266:279:6", + "src": "7947:279:12", "statements": [ { "assignments": [ - 4488, - 4490 + 4009, + 4011 ], "declarations": [ { "constant": false, - "id": 4488, + "id": 4009, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4521, - "src": "12277:10:6", + "scope": 4042, + "src": "7958:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34569,10 +19556,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4487, + "id": 4008, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12277:4:6", + "src": "7958:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34583,11 +19570,11 @@ }, { "constant": false, - "id": 4490, + "id": 4011, "name": "found", "nodeType": "VariableDeclaration", - "scope": 4521, - "src": "12289:10:6", + "scope": 4042, + "src": "7970:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34595,10 +19582,10 @@ "typeString": "bool" }, "typeName": { - "id": 4489, + "id": 4010, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12289:4:6", + "src": "7970:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34608,7 +19595,7 @@ "visibility": "internal" } ], - "id": 4494, + "id": 4015, "initialValue": { "argumentTypes": null, "arguments": [], @@ -34616,32 +19603,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 4491, + "id": 4012, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "12303:9:6", + "referencedDeclaration": 3352, + "src": "7984:9:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, - "id": 4492, + "id": 4013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getCurrentMilestoneIndex", "nodeType": "MemberAccess", - "referencedDeclaration": 1175, - "src": "12303:34:6", + "referencedDeclaration": 1711, + "src": "7984:34:12", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view external returns (uint256,bool)" } }, - "id": 4493, + "id": 4014, "isConstant": false, "isLValue": false, "isPure": false, @@ -34649,14 +19636,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12303:36:6", + "src": "7984:36:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "12276:63:6" + "src": "7957:63:12" }, { "condition": { @@ -34665,7 +19652,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 4500, + "id": 4021, "isConstant": false, "isLValue": false, "isPure": false, @@ -34676,19 +19663,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4497, + "id": 4018, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4495, + "id": 4016, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4488, - "src": "12353:5:6", + "referencedDeclaration": 4009, + "src": "8034:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34699,14 +19686,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4496, + "id": 4017, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12362:1:6", + "src": "8043:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -34714,7 +19701,7 @@ }, "value": "0" }, - "src": "12353:10:6", + "src": "8034:10:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34724,7 +19711,7 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 4499, + "id": 4020, "isConstant": false, "isLValue": false, "isPure": false, @@ -34732,15 +19719,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "12367:6:6", + "src": "8048:6:12", "subExpression": { "argumentTypes": null, - "id": 4498, + "id": 4019, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4490, - "src": "12368:5:6", + "referencedDeclaration": 4011, + "src": "8049:5:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34751,41 +19738,41 @@ "typeString": "bool" } }, - "src": "12353:20:6", + "src": "8034:20:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 4502, + "id": 4023, "nodeType": "IfStatement", - "src": "12350:32:6", + "src": "8031:32:12", "trueBody": { "expression": null, - "functionReturnParameters": 4486, - "id": 4501, + "functionReturnParameters": 4007, + "id": 4022, "nodeType": "Return", - "src": "12375:7:6" + "src": "8056:7:12" } }, { "assignments": [ - 4504, + 4025, null, null, - 4506, + 4027, null, null ], "declarations": [ { "constant": false, - "id": 4504, + "id": 4025, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 4521, - "src": "12393:14:6", + "scope": 4042, + "src": "8074:14:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34793,10 +19780,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4503, + "id": 4024, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "12393:6:6", + "src": "8074:6:12", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34809,11 +19796,11 @@ null, { "constant": false, - "id": 4506, + "id": 4027, "name": "lastWithdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 4521, - "src": "12412:27:6", + "scope": 4042, + "src": "8093:27:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34821,10 +19808,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4505, + "id": 4026, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "12412:6:6", + "src": "8093:6:12", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34836,18 +19823,18 @@ null, null ], - "id": 4511, + "id": 4032, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4509, + "id": 4030, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4488, - "src": "12470:5:6", + "referencedDeclaration": 4009, + "src": "8151:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34863,32 +19850,32 @@ ], "expression": { "argumentTypes": null, - "id": 4507, + "id": 4028, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "12447:9:6", + "referencedDeclaration": 3352, + "src": "8128:9:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, - "id": 4508, + "id": 4029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMilestone", "nodeType": "MemberAccess", - "referencedDeclaration": 1149, - "src": "12447:22:6", + "referencedDeclaration": 1685, + "src": "8128:22:12", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", "typeString": "function (uint256) view external returns (uint32,uint256,uint32,uint32,bytes memory,bytes memory)" } }, - "id": 4510, + "id": 4031, "isConstant": false, "isLValue": false, "isPure": false, @@ -34896,14 +19883,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12447:29:6", + "src": "8128:29:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$", "typeString": "tuple(uint32,uint256,uint32,uint32,bytes memory,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", - "src": "12392:84:6" + "src": "8073:84:12" }, { "expression": { @@ -34912,7 +19899,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 4518, + "id": 4039, "isConstant": false, "isLValue": false, "isPure": false, @@ -34923,19 +19910,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4514, + "id": 4035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4512, + "id": 4033, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4504, - "src": "12494:7:6", + "referencedDeclaration": 4025, + "src": "8175:7:12", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34945,18 +19932,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 4513, + "id": 4034, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "12504:3:6", + "referencedDeclaration": 13443, + "src": "8185:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12494:13:6", + "src": "8175:13:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34970,19 +19957,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4517, + "id": 4038, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4515, + "id": 4036, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "12511:3:6", + "referencedDeclaration": 13443, + "src": "8192:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34992,38 +19979,38 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 4516, + "id": 4037, "name": "lastWithdrawalWindow", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4506, - "src": "12518:20:6", + "referencedDeclaration": 4027, + "src": "8199:20:12", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "12511:27:6", + "src": "8192:27:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "12494:44:6", + "src": "8175:44:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4486, - "id": 4519, + "functionReturnParameters": 4007, + "id": 4040, "nodeType": "Return", - "src": "12487:51:6" + "src": "8168:51:12" } ] }, "documentation": null, - "id": 4521, + "id": 4042, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -35031,23 +20018,23 @@ "name": "isWithdrawalWindowActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 4483, + "id": 4004, "nodeType": "ParameterList", "parameters": [], - "src": "12236:2:6" + "src": "7917:2:12" }, "payable": false, "returnParameters": { - "id": 4486, + "id": 4007, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4485, + "id": 4006, "name": "", "nodeType": "VariableDeclaration", - "scope": 4521, - "src": "12260:4:6", + "scope": 4042, + "src": "7941:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35055,10 +20042,10 @@ "typeString": "bool" }, "typeName": { - "id": 4484, + "id": 4005, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12260:4:6", + "src": "7941:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -35068,19 +20055,19 @@ "visibility": "internal" } ], - "src": "12259:6:6" + "src": "7940:6:12" }, - "scope": 4535, - "src": "12203:342:6", + "scope": 4056, + "src": "7884:342:12", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4533, + "id": 4054, "nodeType": "Block", - "src": "12585:58:6", + "src": "8255:70:12", "statements": [ { "expression": { @@ -35092,7 +20079,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 4529, + "id": 4050, "isConstant": false, "isLValue": false, "isPure": false, @@ -35101,18 +20088,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4526, + "id": 4045, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "12603:3:6", + "referencedDeclaration": 13441, + "src": "8273:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4527, + "id": 4046, "isConstant": false, "isLValue": false, "isPure": false, @@ -35120,7 +20107,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12603:10:6", + "src": "8273:10:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -35130,18 +20117,56 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 4528, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4523, - "src": "12617:6:6", + "arguments": [ + { + "argumentTypes": null, + "id": 4048, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3352, + "src": "8295:9:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 4047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8287:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8287:18:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "12603:20:6", + "src": "8273:32:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -35155,21 +20180,21 @@ "typeString": "bool" } ], - "id": 4525, + "id": 4044, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "12595:7:6", + "referencedDeclaration": 13444, + "src": "8265:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4530, + "id": 4051, "isConstant": false, "isLValue": false, "isPure": false, @@ -35177,69 +20202,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12595:29:6", + "src": "8265:41:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4531, + "id": 4052, "nodeType": "ExpressionStatement", - "src": "12595:29:6" + "src": "8265:41:12" }, { - "id": 4532, + "id": 4053, "nodeType": "PlaceholderStatement", - "src": "12635:1:6" + "src": "8317:1:12" } ] }, "documentation": null, - "id": 4534, - "name": "onlyFrom", + "id": 4055, + "name": "onlyCrowdsale", "nodeType": "ModifierDefinition", "parameters": { - "id": 4524, + "id": 4043, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4523, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 4534, - "src": "12569:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4522, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12569:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12568:16:6" + "parameters": [], + "src": "8255:0:12" }, - "src": "12551:92:6", + "src": "8232:93:12", "visibility": "internal" } ], - "scope": 4536, - "src": "497:12148:6" + "scope": 4057, + "src": "648:7679:12" } ], - "src": "0:12646:6" + "src": "0:8328:12" }, "compiler": { "name": "solc", @@ -35247,12 +20245,87 @@ }, "networks": { "4": { - "events": {}, + "events": { + "0xe2d0f4d539cb385db666a31aa9b27fd786afc933dc82ca8518d045424d6fa882": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "cost", + "type": "uint256" + } + ], + "name": "FundsReceived", + "type": "event" + }, + "0xd434f0d1dd08e14b2acdd7a506c6e8b6edaf1a5825d23ca9b5e51a9ad883f71c": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "AssetRefunded", + "type": "event" + }, + "0x17e68c82fdc39ec76fff0be24ead989575d8eec009a729fa4bd738bc1f6a2dbb": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "TrancheTransferred", + "type": "event" + } + }, "links": { - "FundAccount": "0x2fe4ce4bcaf46c1fd0772f6ec0f13b5eff901a89" + "FundAccount": "0x27bd1f295f0fa80072dfb5214fb12b88518e7041", + "Utils": "0x9666c128e3ab46e2e2480fa50e5294c54dad5621", + "Percent": "0x04596c9a67ad5870686616d58c2a8198f8b94b34", + "Fund": "0x4a4c642901cad1f377af52374cc46ee880b15ad3" } } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:55:06.489Z" + "updatedAt": "2018-12-06T13:18:18.799Z" } \ No newline at end of file diff --git a/build/contracts/W12FundCrowdsaleStub.json b/build/contracts/W12FundCrowdsaleStub.json index 75c2305c..1e023e0b 100644 --- a/build/contracts/W12FundCrowdsaleStub.json +++ b/build/contracts/W12FundCrowdsaleStub.json @@ -1,6 +1,20 @@ { "contractName": "W12FundCrowdsaleStub", "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -16,18 +30,51 @@ "type": "function" }, { - "constant": false, + "constant": true, "inputs": [], - "name": "renounceOwnership", - "outputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "name": "version", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, { "constant": true, "inputs": [], - "name": "owner", + "name": "getFund", "outputs": [ { "name": "", @@ -38,64 +85,117 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ { - "name": "_newOwner", + "name": "account", "type": "address" } ], - "name": "transferOwnership", + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { + "constant": false, "inputs": [ { - "name": "version", - "type": "uint256" + "name": "account", + "type": "address" } ], + "name": "removeAdmin", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" + "type": "function" }, { - "anonymous": false, + "constant": true, "inputs": [ { - "indexed": true, - "name": "previousOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipRenounced", - "type": "event" + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, + "constant": false, "inputs": [ { - "indexed": true, - "name": "previousOwner", + "name": "account", "type": "address" - }, + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ { - "indexed": true, - "name": "newOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipTransferred", - "type": "event" + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { "constant": false, @@ -459,24 +559,24 @@ "type": "function" } ], - "bytecode": "0x6080604052600160025534801561001557600080fd5b50604051602080610b65833981016040525160005560018054600160a060020a03191633179055610b1a8061004b6000396000f30060806040526004361061011c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166307f5d633811461011e57806314f66d341461012c578063208853c91461015a5780632442e1cb146101845780632e325020146102ba5780633baba4d7146103ab5780634090cb64146103c057806354fd4d50146103f1578063564566a814610406578063715018a61461042f578063770bd64714610444578063820a3435146104615780638da5cb5b146104ac578063a4fd6f5614610406578063d119d6cd146104c1578063d5b22623146104e2578063d6d65f3d1461053e578063daa4cf8814610553578063e93b054014610568578063f2fde38b14610580578063f77e0868146105a1575b005b61011c6004356024356105be565b34801561013857600080fd5b506101416105c2565b6040805192835290151560208301528051918290030190f35b34801561016657600080fd5b506101726004356105cf565b60408051918252519081900360200190f35b34801561019057600080fd5b5061019c6004356105d5565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610219578181015183820152602001610201565b50505050905090810190601f1680156102465780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156102c657600080fd5b506102d260043561074f565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561035257818101518382015260200161033a565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610391578181015183820152602001610379565b505050509050019850505050505050505060405180910390f35b3480156103b757600080fd5b50610172610761565b3480156103cc57600080fd5b506103d5610766565b60408051600160a060020a039092168252519081900360200190f35b3480156103fd57600080fd5b50610172610776565b34801561041257600080fd5b5061041b610761565b604080519115158252519081900360200190f35b34801561043b57600080fd5b5061011c61077c565b34801561045057600080fd5b5061011c60043560243515156107ea565b34801561046d57600080fd5b5061011c60048035906024803563ffffffff9081169260443592606435831692608435169160a43580830192908201359160c435918201910135610803565b3480156104b857600080fd5b506103d561094a565b3480156104cd57600080fd5b5061011c600160a060020a0360043516610959565b3480156104ee57600080fd5b5061011c602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a43591820191013561093c565b34801561054a57600080fd5b50610141610988565b34801561055f57600080fd5b50610141610995565b34801561057457600080fd5b5061011c60043561099c565b34801561058c57600080fd5b5061011c600160a060020a036004351661099f565b3480156105ad57600080fd5b5061011c60043560243515156109bf565b5050565b60055460065460ff169091565b50600090565b600081815260076020908152604080832080546001808301546002808501546003860180548851601f60001997831615610100029790970190911693909304948501899004890283018901909752838252889788978897606097889763ffffffff9182169796868316966401000000009004909216946004909301928491908301828280156106a55780601f1061067a576101008083540402835291602001916106a5565b820191906000526020600020905b81548152906001019060200180831161068857829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156107335780601f1061070857610100808354040283529160200191610733565b820191906000526020600020905b81548152906001019060200180831161071657829003601f168201915b5050505050905095509550955095509550955091939550919395565b60008060008060608091939550919395565b600090565b600854600160a060020a03165b90565b60005481565b600154600160a060020a0316331461079357600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6003919091556004805460ff1916911515919091179055565b60c0604051908101604052808963ffffffff1681526020018881526020018763ffffffff1681526020018663ffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050815260200183838080601f0160208091040260200160405190810160405280939291908181526020018383808284375050509290935250505060008a8152600760209081526040918290208351815463ffffffff91821663ffffffff1991821617835585840151600184015593850151600283018054606088015184166401000000000267ffffffff0000000019939094169616959095171617909255608083015180516109209260038501920190610a56565b5060a0820151805161093c916004840191602090910190610a56565b505050505050505050505050565b600154600160a060020a031681565b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035460045460ff169091565b6000809091565b50565b600154600160a060020a031633146109b657600080fd5b61099c816109d8565b6005919091556006805460ff1916911515919091179055565b600160a060020a03811615156109ed57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610a9757805160ff1916838001178555610ac4565b82800160010185558215610ac4579182015b82811115610ac4578251825591602001919060010190610aa9565b50610ad0929150610ad4565b5090565b61077391905b80821115610ad05760008155600101610ada5600a165627a7a72305820fd3a93710d515e0df80ae2165807066d6bc92846efa3c9b07c3afaa35fe803830029", - "deployedBytecode": "0x60806040526004361061011c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166307f5d633811461011e57806314f66d341461012c578063208853c91461015a5780632442e1cb146101845780632e325020146102ba5780633baba4d7146103ab5780634090cb64146103c057806354fd4d50146103f1578063564566a814610406578063715018a61461042f578063770bd64714610444578063820a3435146104615780638da5cb5b146104ac578063a4fd6f5614610406578063d119d6cd146104c1578063d5b22623146104e2578063d6d65f3d1461053e578063daa4cf8814610553578063e93b054014610568578063f2fde38b14610580578063f77e0868146105a1575b005b61011c6004356024356105be565b34801561013857600080fd5b506101416105c2565b6040805192835290151560208301528051918290030190f35b34801561016657600080fd5b506101726004356105cf565b60408051918252519081900360200190f35b34801561019057600080fd5b5061019c6004356105d5565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610219578181015183820152602001610201565b50505050905090810190601f1680156102465780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156102c657600080fd5b506102d260043561074f565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561035257818101518382015260200161033a565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610391578181015183820152602001610379565b505050509050019850505050505050505060405180910390f35b3480156103b757600080fd5b50610172610761565b3480156103cc57600080fd5b506103d5610766565b60408051600160a060020a039092168252519081900360200190f35b3480156103fd57600080fd5b50610172610776565b34801561041257600080fd5b5061041b610761565b604080519115158252519081900360200190f35b34801561043b57600080fd5b5061011c61077c565b34801561045057600080fd5b5061011c60043560243515156107ea565b34801561046d57600080fd5b5061011c60048035906024803563ffffffff9081169260443592606435831692608435169160a43580830192908201359160c435918201910135610803565b3480156104b857600080fd5b506103d561094a565b3480156104cd57600080fd5b5061011c600160a060020a0360043516610959565b3480156104ee57600080fd5b5061011c602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a43591820191013561093c565b34801561054a57600080fd5b50610141610988565b34801561055f57600080fd5b50610141610995565b34801561057457600080fd5b5061011c60043561099c565b34801561058c57600080fd5b5061011c600160a060020a036004351661099f565b3480156105ad57600080fd5b5061011c60043560243515156109bf565b5050565b60055460065460ff169091565b50600090565b600081815260076020908152604080832080546001808301546002808501546003860180548851601f60001997831615610100029790970190911693909304948501899004890283018901909752838252889788978897606097889763ffffffff9182169796868316966401000000009004909216946004909301928491908301828280156106a55780601f1061067a576101008083540402835291602001916106a5565b820191906000526020600020905b81548152906001019060200180831161068857829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156107335780601f1061070857610100808354040283529160200191610733565b820191906000526020600020905b81548152906001019060200180831161071657829003601f168201915b5050505050905095509550955095509550955091939550919395565b60008060008060608091939550919395565b600090565b600854600160a060020a03165b90565b60005481565b600154600160a060020a0316331461079357600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6003919091556004805460ff1916911515919091179055565b60c0604051908101604052808963ffffffff1681526020018881526020018763ffffffff1681526020018663ffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050815260200183838080601f0160208091040260200160405190810160405280939291908181526020018383808284375050509290935250505060008a8152600760209081526040918290208351815463ffffffff91821663ffffffff1991821617835585840151600184015593850151600283018054606088015184166401000000000267ffffffff0000000019939094169616959095171617909255608083015180516109209260038501920190610a56565b5060a0820151805161093c916004840191602090910190610a56565b505050505050505050505050565b600154600160a060020a031681565b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035460045460ff169091565b6000809091565b50565b600154600160a060020a031633146109b657600080fd5b61099c816109d8565b6005919091556006805460ff1916911515919091179055565b600160a060020a03811615156109ed57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610a9757805160ff1916838001178555610ac4565b82800160010185558215610ac4579182015b82811115610ac4578251825591602001919060010190610aa9565b50610ad0929150610ad4565b5090565b61077391905b80821115610ad05760008155600101610ada5600a165627a7a72305820fd3a93710d515e0df80ae2165807066d6bc92846efa3c9b07c3afaa35fe803830029", - "sourceMap": "524:3045:19:-;;;487:1:41;657:51;;1017:56:19;8:9:-1;5:2;;;30:1;27;20:12;5:2;1017:56:19;;;;;;;;;;;;;123:7:37;:18;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;524:3045:19;;;;;;", - "deployedSourceMap": "524:3045:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3500:67;;;;;;;;2806:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2806:151:19;;;;;;;;;;;;;;;;;;;;;;;;;;;3264:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3264:77:19;;;;;;;;;;;;;;;;;;;;;1602:438;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1602:438:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1602:438:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1602:438:19;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1602:438:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2387:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2387:101:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2387:101:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2387:101:19;;;;;;;;;;;;;;;;;;;;;;;3112:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3112:59:19;;;;1430:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1430:84:19;;;;;;;;-1:-1:-1;;;;;1430:84:19;;;;;;;;;;;;;;53:19:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:37;;;;3403:55:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3403:55:19;;;;;;;;;;;;;;;;;;;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;2648:152:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2648:152:19;;;;;;;;;2046:335;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2046:335:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;1520:76:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1520:76:19;-1:-1:-1;;;;;1520:76:19;;;;;1131:293;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1131:293:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2494:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2494:148:19;;;;3177:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3177:81:19;;;;1079:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1079:46:19;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;-1:-1:-1;;;;;1274:103:45;;;;;2963:143:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2963:143:19;;;;;;;;;3500:67;;;:::o;2806:151::-;2904:19;;2925:24;;;;2806:151;;:::o;3264:77::-;-1:-1:-1;3327:10:19;;3264:77::o;1602:438::-;1659:6;1734:25;;;:18;:25;;;;;;;;:33;;;1781:40;;;;1835:37;;;;;1942:30;;;1713:320;;;;;-1:-1:-1;;1713:320:19;;;;1734:33;1713:320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1659:6;;;;;;1689:5;;;;1734:33;;;;;1781:40;1835:37;;;;1886:42;;;;;;;;1986:37;;;;1942:30;;1713:320;;;1942:30;1713:320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1713:320:19;;;;;;;;;;;;;-1:-1:-1;;1713:320:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1713:320:19;;-1:-1:-1;1713:320:19;-1:-1:-1;1713:320:19;;;-1:-1:-1;1713:320:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1602:438;;;;;;;:::o;2387:101::-;2440:6;2448;2456:4;2462:6;2470;2478;2387:101;;;;;;;:::o;3112:59::-;3163:4;3112:59;:::o;1430:84::-;1500:7;;-1:-1:-1;;;;;1500:7:19;1430:84;;:::o;53:19:37:-;;;;:::o;1001:111:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;2648:152:19:-;2726:22;:26;;;;2762:27;:31;;-1:-1:-1;;2762:31:19;;;;;;;;;;2648:152::o;2046:335::-;2188:186;;;;;;;;;2221:1;2188:186;;;;;;2252:1;2188:186;;;;2280:1;2188:186;;;;;;2313:1;2188:186;;;;;;2334:1;;2188:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2362:1;;2188:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2188:186:19;;;;-1:-1:-1;;;2162:23:19;;;;:18;:23;;;;;;;;;:212;;;;;;;;-1:-1:-1;;2162:212:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2162:212:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2162:212:19;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;2046:335:19:o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;1520:76:19:-;1578:7;:11;;-1:-1:-1;;1578:11:19;-1:-1:-1;;;;;1578:11:19;;;;;;;;;;1520:76::o;2494:148::-;2583:22;;2607:27;;;;2494:148;;:::o;3177:81::-;3232:10;3244;3177:81;;:::o;1079:46::-;;:::o;1274:103:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;2963:143:19:-;3038:19;:23;;;;3071:24;:28;;-1:-1:-1;;3071:28:19;;;;;;;;;;2963:143::o;1512:171:45:-;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o;524:3045:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;524:3045:19;;;-1:-1:-1;524:3045:19;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/ReentrancyGuard.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"solidity-bytes-utils/contracts/BytesLib.sol\";\nimport \"../../crowdsale/IW12Crowdsale.sol\";\nimport \"../../crowdsale/IW12Fund.sol\";\nimport \"../../token/IWToken.sol\";\nimport \"../../libs/Percent.sol\";\nimport \"../../versioning/Versionable.sol\";\n\ncontract W12FundCrowdsaleStub is Versionable, IW12Crowdsale, Ownable, ReentrancyGuard {\n uint _currentMilestoneIndex;\n bool _currentMilestoneIndexFound;\n uint _lastMilestoneIndex;\n bool _lastMilestoneIndexFound;\n mapping (uint => Milestone) _currentMilestones;\n IWToken _wtoken;\n\n struct Milestone {\n uint32 endDate;\n uint tranchePercent;\n uint32 voteEndDate;\n uint32 withdrawalWindow;\n bytes name;\n bytes description;\n }\n\n constructor(uint version) Versionable(version) public {}\n\n function setParameters(uint price) external {}\n\n function setup(\n uint[6][] parametersOfStages,\n uint[] bonusConditionsOfStages,\n uint[4][] parametersOfMilestones,\n uint32[] nameAndDescriptionsOffsetOfMilestones,\n bytes nameAndDescriptionsOfMilestones,\n bytes32[] paymentMethodsList\n ) external {}\n\n function getWToken() external view returns (IWToken) {\n return _wtoken;\n }\n\n function _getWTokenMockData(IWToken a) external {\n _wtoken = a;\n }\n\n function getMilestone(uint index) external view returns (uint32, uint, uint32, uint32, bytes, bytes) {\n return (\n _currentMilestones[index].endDate,\n _currentMilestones[index].tranchePercent,\n _currentMilestones[index].voteEndDate,\n _currentMilestones[index].withdrawalWindow,\n _currentMilestones[index].name,\n _currentMilestones[index].description\n );\n }\n\n function _getMilestoneMockData(uint idx, uint32 a, uint b, uint32 c, uint32 d, bytes e, bytes f) external {\n _currentMilestones[idx] = Milestone({\n endDate: a,\n tranchePercent: b,\n voteEndDate: c,\n withdrawalWindow: d,\n name: e,\n description: f\n });\n }\n\n function getStage(uint index) external view returns (uint32, uint32, uint, uint32, uint[], uint[]) {}\n\n function getCurrentMilestoneIndex() external view returns (uint, bool) {\n return (_currentMilestoneIndex, _currentMilestoneIndexFound);\n }\n\n function _getCurrentMilestoneIndexMockData(uint a, bool b) external {\n _currentMilestoneIndex = a;\n _currentMilestoneIndexFound = b;\n }\n\n function getLastMilestoneIndex() external view returns (uint index, bool found) {\n return (_lastMilestoneIndex, _lastMilestoneIndexFound);\n }\n\n function _getLastMilestoneIndexMockData(uint a, bool b) external {\n _lastMilestoneIndex = a;\n _lastMilestoneIndexFound = b;\n }\n\n function milestonesLength() external view returns (uint) {}\n\n function getCurrentStageIndex() external view returns (uint index, bool found) {}\n\n function getSaleVolumeBonus(uint value) external view returns (uint bonus) {}\n\n function isEnded() external view returns (bool) {}\n\n function isSaleActive() external view returns (bool) {}\n\n function() payable external {}\n\n function buyTokens(bytes32 method, uint amount) payable external {}\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50604051602080610bdc8339810160408181529151600081905560018054600160a060020a031916331790819055600160a060020a0316825291517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a1506001600255610b528061008a6000396000f3006080604052600436106101745763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166307f5d633811461017657806314f66d34146101845780631785f53c146101b2578063208853c9146101d35780632348238c146101fd5780632442e1cb1461021e57806324d7806c146103545780632e325020146103895780633baba4d71461047a5780633bcdb164146101b25780634090cb641461048f57806354fd4d50146104c0578063564566a8146104d557806370480275146101b2578063770bd647146104ea578063820a3435146105075780638bad0c0a146105525780638edd6eb614610567578063a4fd6f56146104d5578063c6dbdf611461057c578063d0934d6114610552578063d119d6cd14610591578063d155790b146101b2578063d5b22623146105b2578063d6d65f3d1461060e578063d8e9ce6414610354578063daa4cf8814610623578063e93b054014610638578063f77e086814610650575b005b61017460043560243561066d565b34801561019057600080fd5b50610199610671565b6040805192835290151560208301528051918290030190f35b3480156101be57600080fd5b50610174600160a060020a036004351661067e565b3480156101df57600080fd5b506101eb600435610681565b60408051918252519081900360200190f35b34801561020957600080fd5b50610174600160a060020a0360043516610687565b34801561022a57600080fd5b5061023660043561071a565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156102b357818101518382015260200161029b565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156103135781810151838201526020016102fb565b50505050905090810190601f1680156103405780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561036057600080fd5b50610375600160a060020a0360043516610681565b604080519115158252519081900360200190f35b34801561039557600080fd5b506103a1600435610894565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610421578181015183820152602001610409565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610460578181015183820152602001610448565b505050509050019850505050505050505060405180910390f35b34801561048657600080fd5b506101eb6108a6565b34801561049b57600080fd5b506104a46108ab565b60408051600160a060020a039092168252519081900360200190f35b3480156104cc57600080fd5b506101eb6108bb565b3480156104e157600080fd5b506103756108a6565b3480156104f657600080fd5b5061017460043560243515156108c1565b34801561051357600080fd5b5061017460048035906024803563ffffffff9081169260443592606435831692608435169160a43580830192908201359160c4359182019101356108da565b34801561055e57600080fd5b50610174610a21565b34801561057357600080fd5b506104a46108a6565b34801561058857600080fd5b506104a4610a23565b34801561059d57600080fd5b50610174600160a060020a0360043516610a32565b3480156105be57600080fd5b50610174602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a435918201910135610a13565b34801561061a57600080fd5b50610199610a61565b34801561062f57600080fd5b50610199610a6e565b34801561064457600080fd5b5061017460043561067e565b34801561065c57600080fd5b506101746004356024351515610a75565b5050565b60055460065460ff169091565b50565b50600090565b600154600160a060020a0316331461069e57600080fd5b600160a060020a03811615156106b357600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600081815260076020908152604080832080546001808301546002808501546003860180548851601f60001997831615610100029790970190911693909304948501899004890283018901909752838252889788978897606097889763ffffffff9182169796868316966401000000009004909216946004909301928491908301828280156107ea5780601f106107bf576101008083540402835291602001916107ea565b820191906000526020600020905b8154815290600101906020018083116107cd57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156108785780601f1061084d57610100808354040283529160200191610878565b820191906000526020600020905b81548152906001019060200180831161085b57829003601f168201915b5050505050905095509550955095509550955091939550919395565b60008060008060608091939550919395565b600090565b600854600160a060020a03165b90565b60005481565b6003919091556004805460ff1916911515919091179055565b60c0604051908101604052808963ffffffff1681526020018881526020018763ffffffff1681526020018663ffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050815260200183838080601f0160208091040260200160405190810160405280939291908181526020018383808284375050509290935250505060008a8152600760209081526040918290208351815463ffffffff91821663ffffffff1991821617835585840151600184015593850151600283018054606088015184166401000000000267ffffffff0000000019939094169616959095171617909255608083015180516109f79260038501920190610a8e565b5060a08201518051610a13916004840191602090910190610a8e565b505050505050505050505050565b565b600154600160a060020a031690565b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035460045460ff169091565b6000809091565b6005919091556006805460ff1916911515919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610acf57805160ff1916838001178555610afc565b82800160010185558215610afc579182015b82811115610afc578251825591602001919060010190610ae1565b50610b08929150610b0c565b5090565b6108b891905b80821115610b085760008155600101610b125600a165627a7a72305820c3d8ef58d44cd40cbf322dadb657151850894858ec1a33170fb1642187206a9b0029", + "deployedBytecode": "0x6080604052600436106101745763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166307f5d633811461017657806314f66d34146101845780631785f53c146101b2578063208853c9146101d35780632348238c146101fd5780632442e1cb1461021e57806324d7806c146103545780632e325020146103895780633baba4d71461047a5780633bcdb164146101b25780634090cb641461048f57806354fd4d50146104c0578063564566a8146104d557806370480275146101b2578063770bd647146104ea578063820a3435146105075780638bad0c0a146105525780638edd6eb614610567578063a4fd6f56146104d5578063c6dbdf611461057c578063d0934d6114610552578063d119d6cd14610591578063d155790b146101b2578063d5b22623146105b2578063d6d65f3d1461060e578063d8e9ce6414610354578063daa4cf8814610623578063e93b054014610638578063f77e086814610650575b005b61017460043560243561066d565b34801561019057600080fd5b50610199610671565b6040805192835290151560208301528051918290030190f35b3480156101be57600080fd5b50610174600160a060020a036004351661067e565b3480156101df57600080fd5b506101eb600435610681565b60408051918252519081900360200190f35b34801561020957600080fd5b50610174600160a060020a0360043516610687565b34801561022a57600080fd5b5061023660043561071a565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156102b357818101518382015260200161029b565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156103135781810151838201526020016102fb565b50505050905090810190601f1680156103405780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561036057600080fd5b50610375600160a060020a0360043516610681565b604080519115158252519081900360200190f35b34801561039557600080fd5b506103a1600435610894565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610421578181015183820152602001610409565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610460578181015183820152602001610448565b505050509050019850505050505050505060405180910390f35b34801561048657600080fd5b506101eb6108a6565b34801561049b57600080fd5b506104a46108ab565b60408051600160a060020a039092168252519081900360200190f35b3480156104cc57600080fd5b506101eb6108bb565b3480156104e157600080fd5b506103756108a6565b3480156104f657600080fd5b5061017460043560243515156108c1565b34801561051357600080fd5b5061017460048035906024803563ffffffff9081169260443592606435831692608435169160a43580830192908201359160c4359182019101356108da565b34801561055e57600080fd5b50610174610a21565b34801561057357600080fd5b506104a46108a6565b34801561058857600080fd5b506104a4610a23565b34801561059d57600080fd5b50610174600160a060020a0360043516610a32565b3480156105be57600080fd5b50610174602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a435918201910135610a13565b34801561061a57600080fd5b50610199610a61565b34801561062f57600080fd5b50610199610a6e565b34801561064457600080fd5b5061017460043561067e565b34801561065c57600080fd5b506101746004356024351515610a75565b5050565b60055460065460ff169091565b50565b50600090565b600154600160a060020a0316331461069e57600080fd5b600160a060020a03811615156106b357600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600081815260076020908152604080832080546001808301546002808501546003860180548851601f60001997831615610100029790970190911693909304948501899004890283018901909752838252889788978897606097889763ffffffff9182169796868316966401000000009004909216946004909301928491908301828280156107ea5780601f106107bf576101008083540402835291602001916107ea565b820191906000526020600020905b8154815290600101906020018083116107cd57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156108785780601f1061084d57610100808354040283529160200191610878565b820191906000526020600020905b81548152906001019060200180831161085b57829003601f168201915b5050505050905095509550955095509550955091939550919395565b60008060008060608091939550919395565b600090565b600854600160a060020a03165b90565b60005481565b6003919091556004805460ff1916911515919091179055565b60c0604051908101604052808963ffffffff1681526020018881526020018763ffffffff1681526020018663ffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050815260200183838080601f0160208091040260200160405190810160405280939291908181526020018383808284375050509290935250505060008a8152600760209081526040918290208351815463ffffffff91821663ffffffff1991821617835585840151600184015593850151600283018054606088015184166401000000000267ffffffff0000000019939094169616959095171617909255608083015180516109f79260038501920190610a8e565b5060a08201518051610a13916004840191602090910190610a8e565b505050505050505050505050565b565b600154600160a060020a031690565b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035460045460ff169091565b6000809091565b6005919091556006805460ff1916911515919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610acf57805160ff1916838001178555610afc565b82800160010185558215610afc579182015b82811115610afc578251825591602001919060010190610ae1565b50610b08929150610b0c565b5090565b6108b891905b80821115610b085760008155600101610b125600a165627a7a72305820c3d8ef58d44cd40cbf322dadb657151850894858ec1a33170fb1642187206a9b0029", + "sourceMap": "468:3537:27:-;;;963:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;963:56:27;;;;;;;;;;;;;;;;123:7:48;:18;;;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;-1:-1:-1;;;;;436:8:55;417:28;;;;;;;;;963:56:27;417:28:55;;;-1:-1:-1;559:1:62;543:13;:17;468:3537:27;;;;;;", + "deployedSourceMap": "468:3537:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3938:65;;;;;;;;3256:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3256:149:27;;;;;;;;;;;;;;;;;;;;;;;;;;;1244:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1244:47:27;-1:-1:-1;;;;;1244:47:27;;;;;3708:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3708:75:27;;;;;;;;;;;;;;;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;-1:-1:-1;;;;;855:171:55;;;;;2060:436:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2060:436:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2060:436:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2060:436:27;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2060:436:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1085:63:27;-1:-1:-1;;;;;1085:63:27;;;;;;;;;;;;;;;;;;;;;;;2843:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2843:99:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2843:99:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2843:99:27;;;;;;;;;;;;;;;;;;;;;;;3558:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3558:59:27;;;;1888:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1888:84:27;;;;;;;;-1:-1:-1;;;;;1888:84:27;;;;;;;;;;;;;;53:19:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:48;;;;3843:53:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3843:53:27;;;;3100:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3100:150:27;;;;;;;;;2502:335;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2502:335:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1204:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1204:34:27;;;;1025:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1025:54:27;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;1978:76:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1978:76:27;-1:-1:-1;;;;;1978:76:27;;;;;1589:293;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1589:293:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2948:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2948:146:27;;;;3623:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3623:79:27;;;;1537:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1537:46:27;;;;;3411:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3411:141:27;;;;;;;;;3938:65;;;:::o;3256:149::-;3352:19;;3373:24;;;;3256:149;;:::o;1244:47::-;;:::o;3708:75::-;-1:-1:-1;3769:10:27;;3708:75::o;855:171:55:-;586:8;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;2060:436:27:-;2115:6;2190:25;;;:18;:25;;;;;;;;:33;;;2237:40;;;;2291:37;;;;;2398:30;;;2169:320;;;;;-1:-1:-1;;2169:320:27;;;;2190:33;2169:320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2115:6;;;;;;2145:5;;;;2190:33;;;;;2237:40;2291:37;;;;2342:42;;;;;;;;2442:37;;;;2398:30;;2169:320;;;2398:30;2169:320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2169:320:27;;;;;;;;;;;;;-1:-1:-1;;2169:320:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2169:320:27;;-1:-1:-1;2169:320:27;-1:-1:-1;2169:320:27;;;-1:-1:-1;2169:320:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2060:436;;;;;;;:::o;2843:99::-;2894:6;2902;2910:4;2916:6;2924;2932;2843:99;;;;;;;:::o;3558:59::-;3609:4;3558:59;:::o;1888:84::-;1958:7;;-1:-1:-1;;;;;1958:7:27;1888:84;;:::o;53:19:48:-;;;;:::o;3100:150:27:-;3176:22;:26;;;;3212:27;:31;;-1:-1:-1;;3212:31:27;;;;;;;;;;3100:150::o;2502:335::-;2644:186;;;;;;;;;2677:1;2644:186;;;;;;2708:1;2644:186;;;;2736:1;2644:186;;;;;;2769:1;2644:186;;;;;;2790:1;;2644:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2818:1;;2644:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2644:186:27;;;;-1:-1:-1;;;2618:23:27;;;;:18;:23;;;;;;;;;:212;;;;;;;;-1:-1:-1;;2618:212:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2618:212:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2618:212:27;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;2502:335:27:o;1204:34::-;:::o;664:75:55:-;726:8;;-1:-1:-1;;;;;726:8:55;664:75;:::o;1978:76:27:-;2036:7;:11;;-1:-1:-1;;2036:11:27;-1:-1:-1;;;;;2036:11:27;;;;;;;;;;1978:76::o;2948:146::-;3035:22;;3059:27;;;;2948:146;;:::o;3623:79::-;3676:10;3688;3623:79;;:::o;3411:141::-;3484:19;:23;;;;3517:24;:28;;-1:-1:-1;;3517:28:27;;;;;;;;;;3411:141::o;468:3537::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;468:3537:27;;;-1:-1:-1;468:3537:27;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Secondary.sol\";\nimport \"openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"solidity-bytes-utils/contracts/BytesLib.sol\";\nimport \"../../crowdsale/IW12Crowdsale.sol\";\nimport \"../../crowdsale/IW12Fund.sol\";\nimport \"../../token/IWToken.sol\";\nimport \"../../libs/Percent.sol\";\nimport \"../../versioning/Versionable.sol\";\n\ncontract W12FundCrowdsaleStub is Versionable, IW12Crowdsale, Secondary, ReentrancyGuard {\n uint _currentMilestoneIndex;\n bool _currentMilestoneIndexFound;\n uint _lastMilestoneIndex;\n bool _lastMilestoneIndexFound;\n mapping (uint => Milestone) _currentMilestones;\n IWToken _wtoken;\n\n struct Milestone {\n uint32 endDate;\n uint tranchePercent;\n uint32 voteEndDate;\n uint32 withdrawalWindow;\n bytes name;\n bytes description;\n }\n\n constructor(uint version) Versionable(version) public {}\n\n function getFund() external view returns (IW12Fund) {}\n\n function isAdmin(address account) public view returns (bool) {}\n\n function addAdmin(address account) public {}\n\n function renounceAdmin() public {}\n\n function removeAdmin(address account) public {}\n\n function isProjectOwner(address account) public view returns (bool) {}\n\n function addProjectOwner(address account) public {}\n\n function renounceProjectOwner() public {}\n\n function removeProjectOwner(address account) public {}\n\n function setParameters(uint price) external {}\n\n function setup(\n uint[6][] parametersOfStages,\n uint[] bonusConditionsOfStages,\n uint[4][] parametersOfMilestones,\n uint32[] nameAndDescriptionsOffsetOfMilestones,\n bytes nameAndDescriptionsOfMilestones,\n bytes32[] paymentMethodsList\n ) external {}\n\n function getWToken() external view returns (IWToken) {\n return _wtoken;\n }\n\n function _getWTokenMockData(IWToken a) external {\n _wtoken = a;\n }\n\n function getMilestone(uint index) public view returns (uint32, uint, uint32, uint32, bytes, bytes) {\n return (\n _currentMilestones[index].endDate,\n _currentMilestones[index].tranchePercent,\n _currentMilestones[index].voteEndDate,\n _currentMilestones[index].withdrawalWindow,\n _currentMilestones[index].name,\n _currentMilestones[index].description\n );\n }\n\n function _getMilestoneMockData(uint idx, uint32 a, uint b, uint32 c, uint32 d, bytes e, bytes f) external {\n _currentMilestones[idx] = Milestone({\n endDate: a,\n tranchePercent: b,\n voteEndDate: c,\n withdrawalWindow: d,\n name: e,\n description: f\n });\n }\n\n function getStage(uint index) public view returns (uint32, uint32, uint, uint32, uint[], uint[]) {}\n\n function getCurrentMilestoneIndex() public view returns (uint, bool) {\n return (_currentMilestoneIndex, _currentMilestoneIndexFound);\n }\n\n function _getCurrentMilestoneIndexMockData(uint a, bool b) public {\n _currentMilestoneIndex = a;\n _currentMilestoneIndexFound = b;\n }\n\n function getLastMilestoneIndex() public view returns (uint index, bool found) {\n return (_lastMilestoneIndex, _lastMilestoneIndexFound);\n }\n\n function _getLastMilestoneIndexMockData(uint a, bool b) public {\n _lastMilestoneIndex = a;\n _lastMilestoneIndexFound = b;\n }\n\n function milestonesLength() external view returns (uint) {}\n\n function getCurrentStageIndex() public view returns (uint index, bool found) {}\n\n function getSaleVolumeBonus(uint value) public view returns (uint bonus) {}\n\n function isEnded() public view returns (bool) {}\n\n function isSaleActive() public view returns (bool) {}\n\n function() payable external {}\n\n function buyTokens(bytes32 method, uint amount) payable public {}\n}\n", "sourcePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundCrowdsaleStub.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundCrowdsaleStub.sol", "exportedSymbols": { "W12FundCrowdsaleStub": [ - 6828 + 8990 ] }, - "id": 6829, + "id": 8991, "nodeType": "SourceUnit", "nodes": [ { - "id": 6527, + "id": 8636, "literals": [ "solidity", "^", @@ -484,115 +584,104 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:19" + "src": "0:24:27" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 6528, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 8637, "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 10135, - "src": "26:63:19", + "scope": 8991, + "sourceUnit": 12454, + "src": "26:65:27", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 6529, + "absolutePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "file": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "id": 8638, "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 9778, - "src": "90:61:19", + "scope": 8991, + "sourceUnit": 13259, + "src": "92:67:27", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 6530, - "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 10049, - "src": "152:59:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 6531, + "id": 8639, "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 10212, - "src": "212:63:19", + "scope": 8991, + "sourceUnit": 12389, + "src": "160:59:27", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", "file": "solidity-bytes-utils/contracts/BytesLib.sol", - "id": 6532, + "id": 8640, "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 10474, - "src": "276:53:19", + "scope": 8991, + "sourceUnit": 13427, + "src": "220:53:27", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "file": "../../crowdsale/IW12Crowdsale.sol", - "id": 6533, + "id": 8641, "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 1225, - "src": "330:43:19", + "scope": 8991, + "sourceUnit": 1761, + "src": "274:43:27", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", "file": "../../crowdsale/IW12Fund.sol", - "id": 6534, + "id": 8642, "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 1262, - "src": "374:38:19", + "scope": 8991, + "sourceUnit": 1804, + "src": "318:38:27", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", "file": "../../token/IWToken.sol", - "id": 6535, + "id": 8643, "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 7895, - "src": "413:33:19", + "scope": 8991, + "sourceUnit": 10486, + "src": "357:33:27", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "file": "../../libs/Percent.sol", - "id": 6536, + "id": 8644, "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 5215, - "src": "447:32:19", + "scope": 8991, + "sourceUnit": 6432, + "src": "391:32:27", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "../../versioning/Versionable.sol", - "id": 6537, + "id": 8645, "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 9517, - "src": "480:42:19", + "scope": 8991, + "sourceUnit": 11834, + "src": "424:42:27", "symbolAliases": [], "unitAlias": "" }, @@ -602,102 +691,106 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6538, + "id": 8646, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "557:11:19", + "referencedDeclaration": 11833, + "src": "501:11:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", + "typeIdentifier": "t_contract$_Versionable_$11833", "typeString": "contract Versionable" } }, - "id": 6539, + "id": 8647, "nodeType": "InheritanceSpecifier", - "src": "557:11:19" + "src": "501:11:27" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 6540, + "id": 8648, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "570:13:19", + "referencedDeclaration": 1760, + "src": "514:13:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, - "id": 6541, + "id": 8649, "nodeType": "InheritanceSpecifier", - "src": "570:13:19" + "src": "514:13:27" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 6542, - "name": "Ownable", + "id": 8650, + "name": "Secondary", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "585:7:19", + "referencedDeclaration": 12453, + "src": "529:9:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" } }, - "id": 6543, + "id": 8651, "nodeType": "InheritanceSpecifier", - "src": "585:7:19" + "src": "529:9:27" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 6544, + "id": 8652, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9777, - "src": "594:15:19", + "referencedDeclaration": 13258, + "src": "540:15:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9777", + "typeIdentifier": "t_contract$_ReentrancyGuard_$13258", "typeString": "contract ReentrancyGuard" } }, - "id": 6545, + "id": 8653, "nodeType": "InheritanceSpecifier", - "src": "594:15:19" + "src": "540:15:27" } ], "contractDependencies": [ - 1224, - 9516, - 9777, - 10134 + 1375, + 1421, + 1760, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6828, + "id": 8990, "linearizedBaseContracts": [ - 6828, - 9777, - 10134, - 1224, - 9516 + 8990, + 13258, + 12453, + 1760, + 1421, + 1375, + 11833 ], "name": "W12FundCrowdsaleStub", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 6547, + "id": 8655, "name": "_currentMilestoneIndex", "nodeType": "VariableDeclaration", - "scope": 6828, - "src": "616:27:19", + "scope": 8990, + "src": "562:27:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -705,10 +798,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6546, + "id": 8654, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "616:4:19", + "src": "562:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -719,11 +812,11 @@ }, { "constant": false, - "id": 6549, + "id": 8657, "name": "_currentMilestoneIndexFound", "nodeType": "VariableDeclaration", - "scope": 6828, - "src": "649:32:19", + "scope": 8990, + "src": "595:32:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -731,10 +824,10 @@ "typeString": "bool" }, "typeName": { - "id": 6548, + "id": 8656, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "649:4:19", + "src": "595:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -745,11 +838,11 @@ }, { "constant": false, - "id": 6551, + "id": 8659, "name": "_lastMilestoneIndex", "nodeType": "VariableDeclaration", - "scope": 6828, - "src": "687:24:19", + "scope": 8990, + "src": "633:24:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -757,10 +850,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6550, + "id": 8658, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "687:4:19", + "src": "633:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -771,11 +864,11 @@ }, { "constant": false, - "id": 6553, + "id": 8661, "name": "_lastMilestoneIndexFound", "nodeType": "VariableDeclaration", - "scope": 6828, - "src": "717:29:19", + "scope": 8990, + "src": "663:29:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -783,10 +876,10 @@ "typeString": "bool" }, "typeName": { - "id": 6552, + "id": 8660, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "717:4:19", + "src": "663:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -797,44 +890,44 @@ }, { "constant": false, - "id": 6557, + "id": 8665, "name": "_currentMilestones", "nodeType": "VariableDeclaration", - "scope": 6828, - "src": "752:46:19", + "scope": 8990, + "src": "698:46:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone)" }, "typeName": { - "id": 6556, + "id": 8664, "keyType": { - "id": 6554, + "id": 8662, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "761:4:19", + "src": "707:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "752:27:19", + "src": "698:27:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone)" }, "valueType": { "contractScope": null, - "id": 6555, + "id": 8663, "name": "Milestone", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6572, - "src": "769:9:19", + "referencedDeclaration": 8680, + "src": "715:9:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage_ptr", + "typeIdentifier": "t_struct$_Milestone_$8680_storage_ptr", "typeString": "struct W12FundCrowdsaleStub.Milestone" } } @@ -844,26 +937,26 @@ }, { "constant": false, - "id": 6559, + "id": 8667, "name": "_wtoken", "nodeType": "VariableDeclaration", - "scope": 6828, - "src": "804:15:19", + "scope": 8990, + "src": "750:15:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 6558, + "id": 8666, "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "804:7:19", + "referencedDeclaration": 10485, + "src": "750:7:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, @@ -872,15 +965,15 @@ }, { "canonicalName": "W12FundCrowdsaleStub.Milestone", - "id": 6572, + "id": 8680, "members": [ { "constant": false, - "id": 6561, + "id": 8669, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 6572, - "src": "853:14:19", + "scope": 8680, + "src": "799:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -888,10 +981,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6560, + "id": 8668, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "853:6:19", + "src": "799:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -902,11 +995,11 @@ }, { "constant": false, - "id": 6563, + "id": 8671, "name": "tranchePercent", "nodeType": "VariableDeclaration", - "scope": 6572, - "src": "877:19:19", + "scope": 8680, + "src": "823:19:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -914,10 +1007,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6562, + "id": 8670, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "877:4:19", + "src": "823:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -928,11 +1021,11 @@ }, { "constant": false, - "id": 6565, + "id": 8673, "name": "voteEndDate", "nodeType": "VariableDeclaration", - "scope": 6572, - "src": "906:18:19", + "scope": 8680, + "src": "852:18:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -940,10 +1033,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6564, + "id": 8672, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "906:6:19", + "src": "852:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -954,11 +1047,11 @@ }, { "constant": false, - "id": 6567, + "id": 8675, "name": "withdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 6572, - "src": "934:23:19", + "scope": 8680, + "src": "880:23:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -966,10 +1059,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6566, + "id": 8674, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "934:6:19", + "src": "880:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -980,11 +1073,11 @@ }, { "constant": false, - "id": 6569, + "id": 8677, "name": "name", "nodeType": "VariableDeclaration", - "scope": 6572, - "src": "967:10:19", + "scope": 8680, + "src": "913:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -992,10 +1085,10 @@ "typeString": "bytes" }, "typeName": { - "id": 6568, + "id": 8676, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "967:5:19", + "src": "913:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1006,11 +1099,11 @@ }, { "constant": false, - "id": 6571, + "id": 8679, "name": "description", "nodeType": "VariableDeclaration", - "scope": 6572, - "src": "987:17:19", + "scope": 8680, + "src": "933:17:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1018,10 +1111,10 @@ "typeString": "bytes" }, "typeName": { - "id": 6570, + "id": 8678, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "987:5:19", + "src": "933:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1033,19 +1126,19 @@ ], "name": "Milestone", "nodeType": "StructDefinition", - "scope": 6828, - "src": "826:185:19", + "scope": 8990, + "src": "772:185:27", "visibility": "public" }, { "body": { - "id": 6580, + "id": 8688, "nodeType": "Block", - "src": "1071:2:19", + "src": "1017:2:27", "statements": [] }, "documentation": null, - "id": 6581, + "id": 8689, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1054,49 +1147,49 @@ "arguments": [ { "argumentTypes": null, - "id": 6577, + "id": 8685, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6574, - "src": "1055:7:19", + "referencedDeclaration": 8682, + "src": "1001:7:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 6578, + "id": 8686, "modifierName": { "argumentTypes": null, - "id": 6576, + "id": 8684, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "1043:11:19", + "referencedDeclaration": 11833, + "src": "989:11:27", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "1043:20:19" + "src": "989:20:27" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6575, + "id": 8683, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6574, + "id": 8682, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6581, - "src": "1029:12:19", + "scope": 8689, + "src": "975:12:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1104,10 +1197,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6573, + "id": 8681, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1029:4:19", + "src": "975:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1117,606 +1210,1157 @@ "visibility": "internal" } ], - "src": "1028:14:19" + "src": "974:14:27" }, "payable": false, "returnParameters": { - "id": 6579, + "id": 8687, "nodeType": "ParameterList", "parameters": [], - "src": "1071:0:19" + "src": "1017:0:27" }, - "scope": 6828, - "src": "1017:56:19", + "scope": 8990, + "src": "963:56:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6586, + "id": 8694, "nodeType": "Block", - "src": "1123:2:19", + "src": "1077:2:27", "statements": [] }, "documentation": null, - "id": 6587, + "id": 8695, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "setParameters", + "name": "getFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 6584, + "id": 8690, + "nodeType": "ParameterList", + "parameters": [], + "src": "1041:2:27" + }, + "payable": false, + "returnParameters": { + "id": 8693, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6583, - "name": "price", + "id": 8692, + "name": "", "nodeType": "VariableDeclaration", - "scope": 6587, - "src": "1102:10:19", + "scope": 8695, + "src": "1067:8:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" }, "typeName": { - "id": 6582, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1102:4:19", + "contractScope": null, + "id": 8691, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "1067:8:27", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } }, "value": null, "visibility": "internal" } ], - "src": "1101:12:19" - }, - "payable": false, - "returnParameters": { - "id": 6585, - "nodeType": "ParameterList", - "parameters": [], - "src": "1123:0:19" + "src": "1066:10:27" }, - "scope": 6828, - "src": "1079:46:19", - "stateMutability": "nonpayable", - "superFunction": 1103, + "scope": 8990, + "src": "1025:54:27", + "stateMutability": "view", + "superFunction": 1668, "visibility": "external" }, { "body": { - "id": 6611, + "id": 8702, "nodeType": "Block", - "src": "1422:2:19", + "src": "1146:2:27", "statements": [] }, "documentation": null, - "id": 6612, + "id": 8703, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "setup", + "name": "isAdmin", "nodeType": "FunctionDefinition", "parameters": { - "id": 6609, + "id": 8698, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6592, - "name": "parametersOfStages", + "id": 8697, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 6612, - "src": "1155:28:19", + "scope": 8703, + "src": "1102:15:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", - "typeString": "uint256[6][]" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "baseType": { - "baseType": { - "id": 6588, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1155:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6590, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 6589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1160:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "1155:7:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", - "typeString": "uint256[6]" - } - }, - "id": 6591, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1155:9:19", + "id": 8696, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:27", "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", - "typeString": "uint256[6][]" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" - }, + } + ], + "src": "1101:17:27" + }, + "payable": false, + "returnParameters": { + "id": 8701, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 6595, - "name": "bonusConditionsOfStages", + "id": 8700, + "name": "", "nodeType": "VariableDeclaration", - "scope": 6612, - "src": "1193:30:19", + "scope": 8703, + "src": "1140:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "baseType": { - "id": 6593, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1193:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6594, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1193:6:19", + "id": 8699, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1140:4:27", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "value": null, "visibility": "internal" - }, + } + ], + "src": "1139:6:27" + }, + "scope": 8990, + "src": "1085:63:27", + "stateMutability": "view", + "superFunction": 1361, + "visibility": "public" + }, + { + "body": { + "id": 8708, + "nodeType": "Block", + "src": "1196:2:27", + "statements": [] + }, + "documentation": null, + "id": 8709, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8706, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 6600, - "name": "parametersOfMilestones", + "id": 8705, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 6612, - "src": "1233:32:19", + "scope": 8709, + "src": "1172:15:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", - "typeString": "uint256[4][]" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "baseType": { - "baseType": { - "id": 6596, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1233:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6598, - "length": { - "argumentTypes": null, - "hexValue": "34", - "id": 6597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1238:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "4" - }, - "nodeType": "ArrayTypeName", - "src": "1233:7:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", - "typeString": "uint256[4]" - } - }, - "id": 6599, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1233:9:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", - "typeString": "uint256[4][]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6603, - "name": "nameAndDescriptionsOffsetOfMilestones", - "nodeType": "VariableDeclaration", - "scope": 6612, - "src": "1275:46:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 6601, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1275:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 6602, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1275:8:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6605, - "name": "nameAndDescriptionsOfMilestones", - "nodeType": "VariableDeclaration", - "scope": 6612, - "src": "1331:37:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6604, - "name": "bytes", + "id": 8704, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "1331:5:19", + "src": "1172:7:27", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" - }, + } + ], + "src": "1171:17:27" + }, + "payable": false, + "returnParameters": { + "id": 8707, + "nodeType": "ParameterList", + "parameters": [], + "src": "1196:0:27" + }, + "scope": 8990, + "src": "1154:44:27", + "stateMutability": "nonpayable", + "superFunction": 1366, + "visibility": "public" + }, + { + "body": { + "id": 8712, + "nodeType": "Block", + "src": "1236:2:27", + "statements": [] + }, + "documentation": null, + "id": 8713, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8710, + "nodeType": "ParameterList", + "parameters": [], + "src": "1226:2:27" + }, + "payable": false, + "returnParameters": { + "id": 8711, + "nodeType": "ParameterList", + "parameters": [], + "src": "1236:0:27" + }, + "scope": 8990, + "src": "1204:34:27", + "stateMutability": "nonpayable", + "superFunction": 1369, + "visibility": "public" + }, + { + "body": { + "id": 8718, + "nodeType": "Block", + "src": "1289:2:27", + "statements": [] + }, + "documentation": null, + "id": 8719, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8716, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 6608, - "name": "paymentMethodsList", + "id": 8715, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 6612, - "src": "1378:28:19", + "scope": 8719, + "src": "1265:15:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[]" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "baseType": { - "id": 6606, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1378:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 6607, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1378:9:19", + "id": 8714, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1265:7:27", "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "1145:267:19" + "src": "1264:17:27" }, "payable": false, "returnParameters": { - "id": 6610, + "id": 8717, "nodeType": "ParameterList", "parameters": [], - "src": "1422:0:19" + "src": "1289:0:27" }, - "scope": 6828, - "src": "1131:293:19", + "scope": 8990, + "src": "1244:47:27", "stateMutability": "nonpayable", - "superFunction": 1127, - "visibility": "external" + "superFunction": 1374, + "visibility": "public" }, { "body": { - "id": 6619, + "id": 8726, "nodeType": "Block", - "src": "1483:31:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6617, - "name": "_wtoken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6559, - "src": "1500:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "functionReturnParameters": 6616, - "id": 6618, - "nodeType": "Return", - "src": "1493:14:19" - } - ] + "src": "1365:2:27", + "statements": [] }, "documentation": null, - "id": 6620, + "id": 8727, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getWToken", + "name": "isProjectOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 6613, + "id": 8722, "nodeType": "ParameterList", - "parameters": [], - "src": "1448:2:19" + "parameters": [ + { + "constant": false, + "id": 8721, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8727, + "src": "1321:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1321:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1320:17:27" }, "payable": false, "returnParameters": { - "id": 6616, + "id": 8725, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6615, + "id": 8724, "name": "", "nodeType": "VariableDeclaration", - "scope": 6620, - "src": "1474:7:19", + "scope": 8727, + "src": "1359:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "contractScope": null, - "id": 6614, - "name": "IWToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "1474:7:19", + "id": 8723, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1359:4:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "value": null, "visibility": "internal" } ], - "src": "1473:9:19" + "src": "1358:6:27" }, - "scope": 6828, - "src": "1430:84:19", + "scope": 8990, + "src": "1297:70:27", "stateMutability": "view", - "superFunction": 1132, - "visibility": "external" + "superFunction": 1407, + "visibility": "public" }, { "body": { - "id": 6629, + "id": 8732, "nodeType": "Block", - "src": "1568:28:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6625, - "name": "_wtoken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6559, - "src": "1578:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6626, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6622, - "src": "1588:1:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "src": "1578:11:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 6628, - "nodeType": "ExpressionStatement", - "src": "1578:11:19" - } - ] + "src": "1422:2:27", + "statements": [] }, "documentation": null, - "id": 6630, + "id": 8733, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "_getWTokenMockData", + "name": "addProjectOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 6623, + "id": 8730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6622, - "name": "a", + "id": 8729, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 6630, - "src": "1548:9:19", + "scope": 8733, + "src": "1398:15:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "contractScope": null, - "id": 6621, - "name": "IWToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "1548:7:19", + "id": 8728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1398:7:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "1547:11:19" + "src": "1397:17:27" }, "payable": false, "returnParameters": { - "id": 6624, + "id": 8731, "nodeType": "ParameterList", "parameters": [], - "src": "1568:0:19" + "src": "1422:0:27" }, - "scope": 6828, - "src": "1520:76:19", + "scope": 8990, + "src": "1373:51:27", "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" + "superFunction": 1412, + "visibility": "public" }, { "body": { - "id": 6673, + "id": 8736, "nodeType": "Block", - "src": "1703:337:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6647, - "name": "_currentMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "1734:18:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", - "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" - } - }, - "id": 6649, + "src": "1469:2:27", + "statements": [] + }, + "documentation": null, + "id": 8737, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8734, + "nodeType": "ParameterList", + "parameters": [], + "src": "1459:2:27" + }, + "payable": false, + "returnParameters": { + "id": 8735, + "nodeType": "ParameterList", + "parameters": [], + "src": "1469:0:27" + }, + "scope": 8990, + "src": "1430:41:27", + "stateMutability": "nonpayable", + "superFunction": 1415, + "visibility": "public" + }, + { + "body": { + "id": 8742, + "nodeType": "Block", + "src": "1529:2:27", + "statements": [] + }, + "documentation": null, + "id": 8743, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8739, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8743, + "src": "1505:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8738, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1505:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1504:17:27" + }, + "payable": false, + "returnParameters": { + "id": 8741, + "nodeType": "ParameterList", + "parameters": [], + "src": "1529:0:27" + }, + "scope": 8990, + "src": "1477:54:27", + "stateMutability": "nonpayable", + "superFunction": 1420, + "visibility": "public" + }, + { + "body": { + "id": 8748, + "nodeType": "Block", + "src": "1581:2:27", + "statements": [] + }, + "documentation": null, + "id": 8749, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setParameters", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8745, + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 8749, + "src": "1560:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8744, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1560:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1559:12:27" + }, + "payable": false, + "returnParameters": { + "id": 8747, + "nodeType": "ParameterList", + "parameters": [], + "src": "1581:0:27" + }, + "scope": 8990, + "src": "1537:46:27", + "stateMutability": "nonpayable", + "superFunction": 1634, + "visibility": "external" + }, + { + "body": { + "id": 8773, + "nodeType": "Block", + "src": "1880:2:27", + "statements": [] + }, + "documentation": null, + "id": 8774, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setup", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8754, + "name": "parametersOfStages", + "nodeType": "VariableDeclaration", + "scope": 8774, + "src": "1613:28:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", + "typeString": "uint256[6][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 8750, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1613:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8752, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 8751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1618:1:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "1613:7:27", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "id": 8753, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1613:9:27", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", + "typeString": "uint256[6][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8757, + "name": "bonusConditionsOfStages", + "nodeType": "VariableDeclaration", + "scope": 8774, + "src": "1651:30:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 8755, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1651:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8756, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1651:6:27", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8762, + "name": "parametersOfMilestones", + "nodeType": "VariableDeclaration", + "scope": 8774, + "src": "1691:32:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", + "typeString": "uint256[4][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 8758, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1691:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8760, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 8759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1696:1:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "1691:7:27", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "id": 8761, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1691:9:27", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", + "typeString": "uint256[4][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8765, + "name": "nameAndDescriptionsOffsetOfMilestones", + "nodeType": "VariableDeclaration", + "scope": 8774, + "src": "1733:46:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 8763, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1733:6:27", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 8764, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1733:8:27", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8767, + "name": "nameAndDescriptionsOfMilestones", + "nodeType": "VariableDeclaration", + "scope": 8774, + "src": "1789:37:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 8766, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1789:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8770, + "name": "paymentMethodsList", + "nodeType": "VariableDeclaration", + "scope": 8774, + "src": "1836:28:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 8768, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1836:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 8769, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1836:9:27", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1603:267:27" + }, + "payable": false, + "returnParameters": { + "id": 8772, + "nodeType": "ParameterList", + "parameters": [], + "src": "1880:0:27" + }, + "scope": 8990, + "src": "1589:293:27", + "stateMutability": "nonpayable", + "superFunction": 1658, + "visibility": "external" + }, + { + "body": { + "id": 8781, + "nodeType": "Block", + "src": "1941:31:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8779, + "name": "_wtoken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8667, + "src": "1958:7:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "functionReturnParameters": 8778, + "id": 8780, + "nodeType": "Return", + "src": "1951:14:27" + } + ] + }, + "documentation": null, + "id": 8782, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getWToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8775, + "nodeType": "ParameterList", + "parameters": [], + "src": "1906:2:27" + }, + "payable": false, + "returnParameters": { + "id": 8778, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8777, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8782, + "src": "1932:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 8776, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "1932:7:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1931:9:27" + }, + "scope": 8990, + "src": "1888:84:27", + "stateMutability": "view", + "superFunction": 1663, + "visibility": "external" + }, + { + "body": { + "id": 8791, + "nodeType": "Block", + "src": "2026:28:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8787, + "name": "_wtoken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8667, + "src": "2036:7:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8788, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8784, + "src": "2046:1:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "src": "2036:11:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 8790, + "nodeType": "ExpressionStatement", + "src": "2036:11:27" + } + ] + }, + "documentation": null, + "id": 8792, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_getWTokenMockData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8784, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 8792, + "src": "2006:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 8783, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "2006:7:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:11:27" + }, + "payable": false, + "returnParameters": { + "id": 8786, + "nodeType": "ParameterList", + "parameters": [], + "src": "2026:0:27" + }, + "scope": 8990, + "src": "1978:76:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 8835, + "nodeType": "Block", + "src": "2159:337:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8809, + "name": "_currentMilestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8665, + "src": "2190:18:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", + "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" + } + }, + "id": 8811, "indexExpression": { "argumentTypes": null, - "id": 6648, + "id": 8810, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6632, - "src": "1753:5:19", + "referencedDeclaration": 8794, + "src": "2209:5:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1727,21 +2371,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1734:25:19", + "src": "2190:25:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6650, + "id": 8812, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 6561, - "src": "1734:33:19", + "referencedDeclaration": 8669, + "src": "2190:33:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1753,26 +2397,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6651, + "id": 8813, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "1781:18:19", + "referencedDeclaration": 8665, + "src": "2237:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6653, + "id": 8815, "indexExpression": { "argumentTypes": null, - "id": 6652, + "id": 8814, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6632, - "src": "1800:5:19", + "referencedDeclaration": 8794, + "src": "2256:5:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1783,21 +2427,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1781:25:19", + "src": "2237:25:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6654, + "id": 8816, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tranchePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 6563, - "src": "1781:40:19", + "referencedDeclaration": 8671, + "src": "2237:40:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1809,26 +2453,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6655, + "id": 8817, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "1835:18:19", + "referencedDeclaration": 8665, + "src": "2291:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6657, + "id": 8819, "indexExpression": { "argumentTypes": null, - "id": 6656, + "id": 8818, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6632, - "src": "1854:5:19", + "referencedDeclaration": 8794, + "src": "2310:5:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1839,21 +2483,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1835:25:19", + "src": "2291:25:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6658, + "id": 8820, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voteEndDate", "nodeType": "MemberAccess", - "referencedDeclaration": 6565, - "src": "1835:37:19", + "referencedDeclaration": 8673, + "src": "2291:37:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1865,26 +2509,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6659, + "id": 8821, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "1886:18:19", + "referencedDeclaration": 8665, + "src": "2342:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6661, + "id": 8823, "indexExpression": { "argumentTypes": null, - "id": 6660, + "id": 8822, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6632, - "src": "1905:5:19", + "referencedDeclaration": 8794, + "src": "2361:5:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1895,21 +2539,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1886:25:19", + "src": "2342:25:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6662, + "id": 8824, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "withdrawalWindow", "nodeType": "MemberAccess", - "referencedDeclaration": 6567, - "src": "1886:42:19", + "referencedDeclaration": 8675, + "src": "2342:42:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1921,26 +2565,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6663, + "id": 8825, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "1942:18:19", + "referencedDeclaration": 8665, + "src": "2398:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6665, + "id": 8827, "indexExpression": { "argumentTypes": null, - "id": 6664, + "id": 8826, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6632, - "src": "1961:5:19", + "referencedDeclaration": 8794, + "src": "2417:5:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1951,21 +2595,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1942:25:19", + "src": "2398:25:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6666, + "id": 8828, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 6569, - "src": "1942:30:19", + "referencedDeclaration": 8677, + "src": "2398:30:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -1977,26 +2621,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6667, + "id": 8829, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "1986:18:19", + "referencedDeclaration": 8665, + "src": "2442:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6669, + "id": 8831, "indexExpression": { "argumentTypes": null, - "id": 6668, + "id": 8830, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6632, - "src": "2005:5:19", + "referencedDeclaration": 8794, + "src": "2461:5:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2007,49 +2651,49 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1986:25:19", + "src": "2442:25:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6670, + "id": 8832, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "description", "nodeType": "MemberAccess", - "referencedDeclaration": 6571, - "src": "1986:37:19", + "referencedDeclaration": 8679, + "src": "2442:37:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } } ], - "id": 6671, + "id": 8833, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1720:313:19", + "src": "2176:313:27", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_storage_$_t_bytes_storage_$", "typeString": "tuple(uint32,uint256,uint32,uint32,bytes storage ref,bytes storage ref)" } }, - "functionReturnParameters": 6646, - "id": 6672, + "functionReturnParameters": 8808, + "id": 8834, "nodeType": "Return", - "src": "1713:320:19" + "src": "2169:320:27" } ] }, "documentation": null, - "id": 6674, + "id": 8836, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2057,16 +2701,16 @@ "name": "getMilestone", "nodeType": "FunctionDefinition", "parameters": { - "id": 6633, + "id": 8795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6632, + "id": 8794, "name": "index", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1624:10:19", + "scope": 8836, + "src": "2082:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2074,10 +2718,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6631, + "id": 8793, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1624:4:19", + "src": "2082:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2087,20 +2731,20 @@ "visibility": "internal" } ], - "src": "1623:12:19" + "src": "2081:12:27" }, "payable": false, "returnParameters": { - "id": 6646, + "id": 8808, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6635, + "id": 8797, "name": "", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1659:6:19", + "scope": 8836, + "src": "2115:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2108,10 +2752,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6634, + "id": 8796, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1659:6:19", + "src": "2115:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2122,11 +2766,11 @@ }, { "constant": false, - "id": 6637, + "id": 8799, "name": "", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1667:4:19", + "scope": 8836, + "src": "2123:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2134,10 +2778,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6636, + "id": 8798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1667:4:19", + "src": "2123:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2148,11 +2792,11 @@ }, { "constant": false, - "id": 6639, + "id": 8801, "name": "", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1673:6:19", + "scope": 8836, + "src": "2129:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2160,10 +2804,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6638, + "id": 8800, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1673:6:19", + "src": "2129:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2174,11 +2818,11 @@ }, { "constant": false, - "id": 6641, + "id": 8803, "name": "", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1681:6:19", + "scope": 8836, + "src": "2137:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2186,10 +2830,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6640, + "id": 8802, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1681:6:19", + "src": "2137:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2200,11 +2844,11 @@ }, { "constant": false, - "id": 6643, + "id": 8805, "name": "", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1689:5:19", + "scope": 8836, + "src": "2145:5:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2212,10 +2856,10 @@ "typeString": "bytes" }, "typeName": { - "id": 6642, + "id": 8804, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1689:5:19", + "src": "2145:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2226,11 +2870,11 @@ }, { "constant": false, - "id": 6645, + "id": 8807, "name": "", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1696:5:19", + "scope": 8836, + "src": "2152:5:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2238,10 +2882,10 @@ "typeString": "bytes" }, "typeName": { - "id": 6644, + "id": 8806, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1696:5:19", + "src": "2152:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2251,24 +2895,24 @@ "visibility": "internal" } ], - "src": "1658:44:19" + "src": "2114:44:27" }, - "scope": 6828, - "src": "1602:438:19", + "scope": 8990, + "src": "2060:436:27", "stateMutability": "view", - "superFunction": 1149, - "visibility": "external" + "superFunction": 1685, + "visibility": "public" }, { "body": { - "id": 6704, + "id": 8866, "nodeType": "Block", - "src": "2152:229:19", + "src": "2608:229:27", "statements": [ { "expression": { "argumentTypes": null, - "id": 6702, + "id": 8864, "isConstant": false, "isLValue": false, "isPure": false, @@ -2277,26 +2921,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6691, + "id": 8853, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "2162:18:19", + "referencedDeclaration": 8665, + "src": "2618:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6693, + "id": 8855, "indexExpression": { "argumentTypes": null, - "id": 6692, + "id": 8854, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6676, - "src": "2181:3:19", + "referencedDeclaration": 8838, + "src": "2637:3:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2307,9 +2951,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2162:23:19", + "src": "2618:23:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, @@ -2320,12 +2964,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6695, + "id": 8857, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6678, - "src": "2221:1:19", + "referencedDeclaration": 8840, + "src": "2677:1:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2333,12 +2977,12 @@ }, { "argumentTypes": null, - "id": 6696, + "id": 8858, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "2252:1:19", + "referencedDeclaration": 8842, + "src": "2708:1:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2346,12 +2990,12 @@ }, { "argumentTypes": null, - "id": 6697, + "id": 8859, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6682, - "src": "2280:1:19", + "referencedDeclaration": 8844, + "src": "2736:1:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2359,12 +3003,12 @@ }, { "argumentTypes": null, - "id": 6698, + "id": 8860, "name": "d", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6684, - "src": "2313:1:19", + "referencedDeclaration": 8846, + "src": "2769:1:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2372,12 +3016,12 @@ }, { "argumentTypes": null, - "id": 6699, + "id": 8861, "name": "e", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6686, - "src": "2334:1:19", + "referencedDeclaration": 8848, + "src": "2790:1:27", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -2385,12 +3029,12 @@ }, { "argumentTypes": null, - "id": 6700, + "id": 8862, "name": "f", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6688, - "src": "2362:1:19", + "referencedDeclaration": 8850, + "src": "2818:1:27", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -2399,18 +3043,18 @@ ], "expression": { "argumentTypes": null, - "id": 6694, + "id": 8856, "name": "Milestone", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6572, - "src": "2188:9:19", + "referencedDeclaration": 8680, + "src": "2644:9:27", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Milestone_$6572_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Milestone_$8680_storage_ptr_$", "typeString": "type(struct W12FundCrowdsaleStub.Milestone storage pointer)" } }, - "id": 6701, + "id": 8863, "isConstant": false, "isLValue": false, "isPure": false, @@ -2425,26 +3069,26 @@ "description" ], "nodeType": "FunctionCall", - "src": "2188:186:19", + "src": "2644:186:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_memory", + "typeIdentifier": "t_struct$_Milestone_$8680_memory", "typeString": "struct W12FundCrowdsaleStub.Milestone memory" } }, - "src": "2162:212:19", + "src": "2618:212:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6703, + "id": 8865, "nodeType": "ExpressionStatement", - "src": "2162:212:19" + "src": "2618:212:27" } ] }, "documentation": null, - "id": 6705, + "id": 8867, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2452,16 +3096,16 @@ "name": "_getMilestoneMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 6689, + "id": 8851, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6676, + "id": 8838, "name": "idx", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2077:8:19", + "scope": 8867, + "src": "2533:8:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2469,10 +3113,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6675, + "id": 8837, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2077:4:19", + "src": "2533:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2483,11 +3127,11 @@ }, { "constant": false, - "id": 6678, + "id": 8840, "name": "a", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2087:8:19", + "scope": 8867, + "src": "2543:8:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2495,10 +3139,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6677, + "id": 8839, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2087:6:19", + "src": "2543:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2509,11 +3153,11 @@ }, { "constant": false, - "id": 6680, + "id": 8842, "name": "b", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2097:6:19", + "scope": 8867, + "src": "2553:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2521,10 +3165,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6679, + "id": 8841, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2097:4:19", + "src": "2553:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2535,11 +3179,11 @@ }, { "constant": false, - "id": 6682, + "id": 8844, "name": "c", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2105:8:19", + "scope": 8867, + "src": "2561:8:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2547,10 +3191,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6681, + "id": 8843, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2105:6:19", + "src": "2561:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2561,11 +3205,11 @@ }, { "constant": false, - "id": 6684, + "id": 8846, "name": "d", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2115:8:19", + "scope": 8867, + "src": "2571:8:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2573,10 +3217,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6683, + "id": 8845, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2115:6:19", + "src": "2571:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2587,11 +3231,11 @@ }, { "constant": false, - "id": 6686, + "id": 8848, "name": "e", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2125:7:19", + "scope": 8867, + "src": "2581:7:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2599,10 +3243,10 @@ "typeString": "bytes" }, "typeName": { - "id": 6685, + "id": 8847, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2125:5:19", + "src": "2581:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2613,11 +3257,11 @@ }, { "constant": false, - "id": 6688, + "id": 8850, "name": "f", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2134:7:19", + "scope": 8867, + "src": "2590:7:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2625,10 +3269,10 @@ "typeString": "bytes" }, "typeName": { - "id": 6687, + "id": 8849, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2134:5:19", + "src": "2590:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2638,30 +3282,30 @@ "visibility": "internal" } ], - "src": "2076:66:19" + "src": "2532:66:27" }, "payable": false, "returnParameters": { - "id": 6690, + "id": 8852, "nodeType": "ParameterList", "parameters": [], - "src": "2152:0:19" + "src": "2608:0:27" }, - "scope": 6828, - "src": "2046:335:19", + "scope": 8990, + "src": "2502:335:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6724, + "id": 8886, "nodeType": "Block", - "src": "2486:2:19", + "src": "2940:2:27", "statements": [] }, "documentation": null, - "id": 6725, + "id": 8887, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2669,16 +3313,16 @@ "name": "getStage", "nodeType": "FunctionDefinition", "parameters": { - "id": 6708, + "id": 8870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6707, + "id": 8869, "name": "index", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2405:10:19", + "scope": 8887, + "src": "2861:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2686,10 +3330,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6706, + "id": 8868, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2405:4:19", + "src": "2861:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2699,20 +3343,46 @@ "visibility": "internal" } ], - "src": "2404:12:19" + "src": "2860:12:27" }, "payable": false, "returnParameters": { - "id": 6723, + "id": 8885, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6710, + "id": 8872, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8887, + "src": "2894:6:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 8871, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2894:6:27", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8874, "name": "", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2440:6:19", + "scope": 8887, + "src": "2902:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2720,10 +3390,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6709, + "id": 8873, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2440:6:19", + "src": "2902:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2734,11 +3404,37 @@ }, { "constant": false, - "id": 6712, + "id": 8876, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8887, + "src": "2910:4:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8875, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2910:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8878, "name": "", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2448:6:19", + "scope": 8887, + "src": "2916:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2746,10 +3442,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6711, + "id": 8877, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2448:6:19", + "src": "2916:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2760,11 +3456,168 @@ }, { "constant": false, - "id": 6714, + "id": 8881, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8887, + "src": "2924:6:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 8879, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2924:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8880, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2924:6:27", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8884, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8887, + "src": "2932:6:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 8882, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2932:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8883, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2932:6:27", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2893:46:27" + }, + "scope": 8990, + "src": "2843:99:27", + "stateMutability": "view", + "superFunction": 1704, + "visibility": "public" + }, + { + "body": { + "id": 8898, + "nodeType": "Block", + "src": "3017:77:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 8894, + "name": "_currentMilestoneIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8655, + "src": "3035:22:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8895, + "name": "_currentMilestoneIndexFound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8657, + "src": "3059:27:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 8896, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3034:53:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "functionReturnParameters": 8893, + "id": 8897, + "nodeType": "Return", + "src": "3027:60:27" + } + ] + }, + "documentation": null, + "id": 8899, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCurrentMilestoneIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8888, + "nodeType": "ParameterList", + "parameters": [], + "src": "2981:2:27" + }, + "payable": false, + "returnParameters": { + "id": 8893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8890, "name": "", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2456:4:19", + "scope": 8899, + "src": "3005:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2772,75 +3625,186 @@ "typeString": "uint256" }, "typeName": { - "id": 6713, + "id": 8889, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2456:4:19", + "src": "3005:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8892, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8899, + "src": "3011:4:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8891, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3011:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3004:12:27" + }, + "scope": 8990, + "src": "2948:146:27", + "stateMutability": "view", + "superFunction": 1711, + "visibility": "public" + }, + { + "body": { + "id": 8914, + "nodeType": "Block", + "src": "3166:84:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8906, + "name": "_currentMilestoneIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8655, + "src": "3176:22:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8907, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8901, + "src": "3201:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3176:26:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" + "id": 8909, + "nodeType": "ExpressionStatement", + "src": "3176:26:27" }, { - "constant": false, - "id": 6716, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2462:6:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 6715, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2462:6:19", + "expression": { + "argumentTypes": null, + "id": 8912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8910, + "name": "_currentMilestoneIndexFound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8657, + "src": "3212:27:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8911, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8903, + "src": "3242:1:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3212:31:27", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "value": null, - "visibility": "internal" - }, + "id": 8913, + "nodeType": "ExpressionStatement", + "src": "3212:31:27" + } + ] + }, + "documentation": null, + "id": 8915, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_getCurrentMilestoneIndexMockData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8904, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 6719, - "name": "", + "id": 8901, + "name": "a", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2470:6:19", + "scope": 8915, + "src": "3143:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "baseType": { - "id": 6717, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2470:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6718, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2470:6:19", + "id": 8900, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3143:4:27", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -2848,54 +3812,51 @@ }, { "constant": false, - "id": 6722, - "name": "", + "id": 8903, + "name": "b", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2478:6:19", + "scope": 8915, + "src": "3151:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "baseType": { - "id": 6720, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2478:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6721, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2478:6:19", + "id": 8902, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3151:4:27", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "value": null, "visibility": "internal" } ], - "src": "2439:46:19" + "src": "3142:16:27" }, - "scope": 6828, - "src": "2387:101:19", - "stateMutability": "view", - "superFunction": 1168, - "visibility": "external" + "payable": false, + "returnParameters": { + "id": 8905, + "nodeType": "ParameterList", + "parameters": [], + "src": "3166:0:27" + }, + "scope": 8990, + "src": "3100:150:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, { "body": { - "id": 6736, + "id": 8926, "nodeType": "Block", - "src": "2565:77:19", + "src": "3334:71:27", "statements": [ { "expression": { @@ -2903,12 +3864,12 @@ "components": [ { "argumentTypes": null, - "id": 6732, - "name": "_currentMilestoneIndex", + "id": 8922, + "name": "_lastMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6547, - "src": "2583:22:19", + "referencedDeclaration": 8659, + "src": "3352:19:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2916,64 +3877,64 @@ }, { "argumentTypes": null, - "id": 6733, - "name": "_currentMilestoneIndexFound", + "id": 8923, + "name": "_lastMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6549, - "src": "2607:27:19", + "referencedDeclaration": 8661, + "src": "3373:24:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 6734, + "id": 8924, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2582:53:19", + "src": "3351:47:27", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, - "functionReturnParameters": 6731, - "id": 6735, + "functionReturnParameters": 8921, + "id": 8925, "nodeType": "Return", - "src": "2575:60:19" + "src": "3344:54:27" } ] }, "documentation": null, - "id": 6737, + "id": 8927, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getCurrentMilestoneIndex", + "name": "getLastMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 6726, + "id": 8916, "nodeType": "ParameterList", "parameters": [], - "src": "2527:2:19" + "src": "3286:2:27" }, "payable": false, "returnParameters": { - "id": 6731, + "id": 8921, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6728, - "name": "", + "id": 8918, + "name": "index", "nodeType": "VariableDeclaration", - "scope": 6737, - "src": "2553:4:19", + "scope": 8927, + "src": "3310:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2981,10 +3942,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6727, + "id": 8917, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2553:4:19", + "src": "3310:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2995,11 +3956,11 @@ }, { "constant": false, - "id": 6730, - "name": "", + "id": 8920, + "name": "found", "nodeType": "VariableDeclaration", - "scope": 6737, - "src": "2559:4:19", + "scope": 8927, + "src": "3322:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3007,10 +3968,10 @@ "typeString": "bool" }, "typeName": { - "id": 6729, + "id": 8919, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2559:4:19", + "src": "3322:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3020,36 +3981,36 @@ "visibility": "internal" } ], - "src": "2552:12:19" + "src": "3309:24:27" }, - "scope": 6828, - "src": "2494:148:19", + "scope": 8990, + "src": "3256:149:27", "stateMutability": "view", - "superFunction": 1175, - "visibility": "external" + "superFunction": 1718, + "visibility": "public" }, { "body": { - "id": 6752, + "id": 8942, "nodeType": "Block", - "src": "2716:84:19", + "src": "3474:78:27", "statements": [ { "expression": { "argumentTypes": null, - "id": 6746, + "id": 8936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6744, - "name": "_currentMilestoneIndex", + "id": 8934, + "name": "_lastMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6547, - "src": "2726:22:19", + "referencedDeclaration": 8659, + "src": "3484:19:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3059,43 +4020,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6745, + "id": 8935, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6739, - "src": "2751:1:19", + "referencedDeclaration": 8929, + "src": "3506:1:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2726:26:19", + "src": "3484:23:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6747, + "id": 8937, "nodeType": "ExpressionStatement", - "src": "2726:26:19" + "src": "3484:23:27" }, { "expression": { "argumentTypes": null, - "id": 6750, + "id": 8940, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6748, - "name": "_currentMilestoneIndexFound", + "id": 8938, + "name": "_lastMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6549, - "src": "2762:27:19", + "referencedDeclaration": 8661, + "src": "3517:24:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3105,48 +4066,203 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6749, + "id": 8939, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6741, - "src": "2792:1:19", + "referencedDeclaration": 8931, + "src": "3544:1:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2762:31:19", + "src": "3517:28:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6751, + "id": 8941, "nodeType": "ExpressionStatement", - "src": "2762:31:19" + "src": "3517:28:27" } ] }, "documentation": null, - "id": 6753, + "id": 8943, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_getLastMilestoneIndexMockData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8932, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8929, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 8943, + "src": "3451:6:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8928, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3451:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8931, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 8943, + "src": "3459:6:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8930, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3459:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3450:16:27" + }, + "payable": false, + "returnParameters": { + "id": 8933, + "nodeType": "ParameterList", + "parameters": [], + "src": "3474:0:27" + }, + "scope": 8990, + "src": "3411:141:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8948, + "nodeType": "Block", + "src": "3615:2:27", + "statements": [] + }, + "documentation": null, + "id": 8949, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "milestonesLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8944, + "nodeType": "ParameterList", + "parameters": [], + "src": "3583:2:27" + }, + "payable": false, + "returnParameters": { + "id": 8947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8946, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8949, + "src": "3609:4:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8945, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3609:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3608:6:27" + }, + "scope": 8990, + "src": "3558:59:27", + "stateMutability": "view", + "superFunction": 1723, + "visibility": "external" + }, + { + "body": { + "id": 8956, + "nodeType": "Block", + "src": "3700:2:27", + "statements": [] + }, + "documentation": null, + "id": 8957, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "_getCurrentMilestoneIndexMockData", + "name": "getCurrentStageIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 6742, + "id": 8950, + "nodeType": "ParameterList", + "parameters": [], + "src": "3652:2:27" + }, + "payable": false, + "returnParameters": { + "id": 8955, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6739, - "name": "a", + "id": 8952, + "name": "index", "nodeType": "VariableDeclaration", - "scope": 6753, - "src": "2691:6:19", + "scope": 8957, + "src": "3676:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3154,10 +4270,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6738, + "id": 8951, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2691:4:19", + "src": "3676:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3168,11 +4284,11 @@ }, { "constant": false, - "id": 6741, - "name": "b", + "id": 8954, + "name": "found", "nodeType": "VariableDeclaration", - "scope": 6753, - "src": "2699:6:19", + "scope": 8957, + "src": "3688:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3180,10 +4296,10 @@ "typeString": "bool" }, "typeName": { - "id": 6740, + "id": 8953, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2699:4:19", + "src": "3688:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3193,104 +4309,40 @@ "visibility": "internal" } ], - "src": "2690:16:19" - }, - "payable": false, - "returnParameters": { - "id": 6743, - "nodeType": "ParameterList", - "parameters": [], - "src": "2716:0:19" + "src": "3675:24:27" }, - "scope": 6828, - "src": "2648:152:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" + "scope": 8990, + "src": "3623:79:27", + "stateMutability": "view", + "superFunction": 1730, + "visibility": "public" }, { "body": { - "id": 6764, + "id": 8964, "nodeType": "Block", - "src": "2886:71:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 6760, - "name": "_lastMilestoneIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6551, - "src": "2904:19:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6761, - "name": "_lastMilestoneIndexFound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6553, - "src": "2925:24:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 6762, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2903:47:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "functionReturnParameters": 6759, - "id": 6763, - "nodeType": "Return", - "src": "2896:54:19" - } - ] + "src": "3781:2:27", + "statements": [] }, "documentation": null, - "id": 6765, + "id": 8965, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getLastMilestoneIndex", + "name": "getSaleVolumeBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 6754, - "nodeType": "ParameterList", - "parameters": [], - "src": "2836:2:19" - }, - "payable": false, - "returnParameters": { - "id": 6759, + "id": 8960, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6756, - "name": "index", + "id": 8959, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 6765, - "src": "2862:10:19", + "scope": 8965, + "src": "3736:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3298,10 +4350,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6755, + "id": 8958, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2862:4:19", + "src": "3736:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3309,187 +4361,144 @@ }, "value": null, "visibility": "internal" - }, + } + ], + "src": "3735:12:27" + }, + "payable": false, + "returnParameters": { + "id": 8963, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 6758, - "name": "found", + "id": 8962, + "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 6765, - "src": "2874:10:19", + "scope": 8965, + "src": "3769:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 6757, - "name": "bool", + "id": 8961, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2874:4:19", + "src": "3769:4:27", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "2861:24:19" + "src": "3768:12:27" }, - "scope": 6828, - "src": "2806:151:19", + "scope": 8990, + "src": "3708:75:27", "stateMutability": "view", - "superFunction": 1182, - "visibility": "external" + "superFunction": 1737, + "visibility": "public" }, { "body": { - "id": 6780, + "id": 8970, "nodeType": "Block", - "src": "3028:78:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6772, - "name": "_lastMilestoneIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6551, - "src": "3038:19:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6773, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6767, - "src": "3060:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3038:23:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6775, - "nodeType": "ExpressionStatement", - "src": "3038:23:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 6778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6776, - "name": "_lastMilestoneIndexFound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6553, - "src": "3071:24:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6777, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6769, - "src": "3098:1:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3071:28:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6779, - "nodeType": "ExpressionStatement", - "src": "3071:28:19" - } - ] + "src": "3835:2:27", + "statements": [] }, "documentation": null, - "id": 6781, + "id": 8971, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "_getLastMilestoneIndexMockData", + "name": "isEnded", "nodeType": "FunctionDefinition", "parameters": { - "id": 6770, + "id": 8966, + "nodeType": "ParameterList", + "parameters": [], + "src": "3805:2:27" + }, + "payable": false, + "returnParameters": { + "id": 8969, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6767, - "name": "a", + "id": 8968, + "name": "", "nodeType": "VariableDeclaration", - "scope": 6781, - "src": "3003:6:19", + "scope": 8971, + "src": "3829:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "id": 6766, - "name": "uint", + "id": 8967, + "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3003:4:19", + "src": "3829:4:27", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "value": null, "visibility": "internal" - }, + } + ], + "src": "3828:6:27" + }, + "scope": 8990, + "src": "3789:48:27", + "stateMutability": "view", + "superFunction": 1742, + "visibility": "public" + }, + { + "body": { + "id": 8976, + "nodeType": "Block", + "src": "3894:2:27", + "statements": [] + }, + "documentation": null, + "id": 8977, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isSaleActive", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8972, + "nodeType": "ParameterList", + "parameters": [], + "src": "3864:2:27" + }, + "payable": false, + "returnParameters": { + "id": 8975, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 6769, - "name": "b", + "id": 8974, + "name": "", "nodeType": "VariableDeclaration", - "scope": 6781, - "src": "3011:6:19", + "scope": 8977, + "src": "3888:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3497,10 +4506,10 @@ "typeString": "bool" }, "typeName": { - "id": 6768, + "id": 8973, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3011:4:19", + "src": "3888:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3510,54 +4519,100 @@ "visibility": "internal" } ], - "src": "3002:16:19" + "src": "3887:6:27" }, - "payable": false, + "scope": 8990, + "src": "3843:53:27", + "stateMutability": "view", + "superFunction": 1747, + "visibility": "public" + }, + { + "body": { + "id": 8980, + "nodeType": "Block", + "src": "3930:2:27", + "statements": [] + }, + "documentation": null, + "id": 8981, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8978, + "nodeType": "ParameterList", + "parameters": [], + "src": "3910:2:27" + }, + "payable": true, "returnParameters": { - "id": 6771, + "id": 8979, "nodeType": "ParameterList", "parameters": [], - "src": "3028:0:19" + "src": "3930:0:27" }, - "scope": 6828, - "src": "2963:143:19", - "stateMutability": "nonpayable", + "scope": 8990, + "src": "3902:30:27", + "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6786, + "id": 8988, "nodeType": "Block", - "src": "3169:2:19", + "src": "4001:2:27", "statements": [] }, "documentation": null, - "id": 6787, + "id": 8989, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "milestonesLength", + "name": "buyTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 6782, - "nodeType": "ParameterList", - "parameters": [], - "src": "3137:2:19" - }, - "payable": false, - "returnParameters": { - "id": 6785, + "id": 8986, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6784, - "name": "", + "id": 8983, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 8989, + "src": "3957:14:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8982, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3957:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8985, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6787, - "src": "3163:4:19", + "scope": 8989, + "src": "3973:11:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3565,10 +4620,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6783, + "id": 8984, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3163:4:19", + "src": "3973:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3577,128 +4632,654 @@ "value": null, "visibility": "internal" } - ], - "src": "3162:6:19" + ], + "src": "3956:29:27" + }, + "payable": true, + "returnParameters": { + "id": 8987, + "nodeType": "ParameterList", + "parameters": [], + "src": "4001:0:27" + }, + "scope": 8990, + "src": "3938:65:27", + "stateMutability": "payable", + "superFunction": 1754, + "visibility": "public" + } + ], + "scope": 8991, + "src": "468:3537:27" + } + ], + "src": "0:4006:27" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundCrowdsaleStub.sol", + "exportedSymbols": { + "W12FundCrowdsaleStub": [ + 8990 + ] + }, + "id": 8991, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8636, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:27" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 8637, + "nodeType": "ImportDirective", + "scope": 8991, + "sourceUnit": 12454, + "src": "26:65:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "file": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "id": 8638, + "nodeType": "ImportDirective", + "scope": 8991, + "sourceUnit": 13259, + "src": "92:67:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 8639, + "nodeType": "ImportDirective", + "scope": 8991, + "sourceUnit": 12389, + "src": "160:59:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", + "file": "solidity-bytes-utils/contracts/BytesLib.sol", + "id": 8640, + "nodeType": "ImportDirective", + "scope": 8991, + "sourceUnit": 13427, + "src": "220:53:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../../crowdsale/IW12Crowdsale.sol", + "id": 8641, + "nodeType": "ImportDirective", + "scope": 8991, + "sourceUnit": 1761, + "src": "274:43:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "../../crowdsale/IW12Fund.sol", + "id": 8642, + "nodeType": "ImportDirective", + "scope": 8991, + "sourceUnit": 1804, + "src": "318:38:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../../token/IWToken.sol", + "id": 8643, + "nodeType": "ImportDirective", + "scope": 8991, + "sourceUnit": 10486, + "src": "357:33:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", + "file": "../../libs/Percent.sol", + "id": 8644, + "nodeType": "ImportDirective", + "scope": 8991, + "sourceUnit": 6432, + "src": "391:32:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", + "file": "../../versioning/Versionable.sol", + "id": 8645, + "nodeType": "ImportDirective", + "scope": 8991, + "sourceUnit": 11834, + "src": "424:42:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 8646, + "name": "Versionable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11833, + "src": "501:11:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Versionable_$11833", + "typeString": "contract Versionable" + } + }, + "id": 8647, + "nodeType": "InheritanceSpecifier", + "src": "501:11:27" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 8648, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "514:13:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 8649, + "nodeType": "InheritanceSpecifier", + "src": "514:13:27" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 8650, + "name": "Secondary", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12453, + "src": "529:9:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" + } + }, + "id": 8651, + "nodeType": "InheritanceSpecifier", + "src": "529:9:27" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 8652, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13258, + "src": "540:15:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$13258", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 8653, + "nodeType": "InheritanceSpecifier", + "src": "540:15:27" + } + ], + "contractDependencies": [ + 1375, + 1421, + 1760, + 11833, + 12453, + 13258 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 8990, + "linearizedBaseContracts": [ + 8990, + 13258, + 12453, + 1760, + 1421, + 1375, + 11833 + ], + "name": "W12FundCrowdsaleStub", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 8655, + "name": "_currentMilestoneIndex", + "nodeType": "VariableDeclaration", + "scope": 8990, + "src": "562:27:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8654, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "562:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8657, + "name": "_currentMilestoneIndexFound", + "nodeType": "VariableDeclaration", + "scope": 8990, + "src": "595:32:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8656, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "595:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8659, + "name": "_lastMilestoneIndex", + "nodeType": "VariableDeclaration", + "scope": 8990, + "src": "633:24:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "633:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8661, + "name": "_lastMilestoneIndexFound", + "nodeType": "VariableDeclaration", + "scope": 8990, + "src": "663:29:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8660, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "663:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8665, + "name": "_currentMilestones", + "nodeType": "VariableDeclaration", + "scope": 8990, + "src": "698:46:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", + "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone)" + }, + "typeName": { + "id": 8664, + "keyType": { + "id": 8662, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "707:4:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "698:27:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", + "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone)" + }, + "valueType": { + "contractScope": null, + "id": 8663, + "name": "Milestone", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 8680, + "src": "715:9:27", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$8680_storage_ptr", + "typeString": "struct W12FundCrowdsaleStub.Milestone" + } + } }, - "scope": 6828, - "src": "3112:59:19", - "stateMutability": "view", - "superFunction": 1187, - "visibility": "external" + "value": null, + "visibility": "internal" }, { - "body": { - "id": 6794, - "nodeType": "Block", - "src": "3256:2:19", - "statements": [] + "constant": false, + "id": 8667, + "name": "_wtoken", + "nodeType": "VariableDeclaration", + "scope": 8990, + "src": "750:15:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" }, - "documentation": null, - "id": 6795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getCurrentStageIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6788, - "nodeType": "ParameterList", - "parameters": [], - "src": "3206:2:19" + "typeName": { + "contractScope": null, + "id": 8666, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "750:7:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } }, - "payable": false, - "returnParameters": { - "id": 6793, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6790, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 6795, - "src": "3232:10:19", - "stateVariable": false, - "storageLocation": "default", + "value": null, + "visibility": "internal" + }, + { + "canonicalName": "W12FundCrowdsaleStub.Milestone", + "id": 8680, + "members": [ + { + "constant": false, + "id": 8669, + "name": "endDate", + "nodeType": "VariableDeclaration", + "scope": 8680, + "src": "799:14:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 8668, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "799:6:27", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8671, + "name": "tranchePercent", + "nodeType": "VariableDeclaration", + "scope": 8680, + "src": "823:19:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8670, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "823:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "typeName": { - "id": 6789, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3232:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + } }, - { - "constant": false, - "id": 6792, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 6795, - "src": "3244:10:19", - "stateVariable": false, - "storageLocation": "default", + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8673, + "name": "voteEndDate", + "nodeType": "VariableDeclaration", + "scope": 8680, + "src": "852:18:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 8672, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "852:6:27", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6791, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3244:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3231:24:19" - }, - "scope": 6828, - "src": "3177:81:19", - "stateMutability": "view", - "superFunction": 1194, - "visibility": "external" + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8675, + "name": "withdrawalWindow", + "nodeType": "VariableDeclaration", + "scope": 8680, + "src": "880:23:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 8674, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "880:6:27", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8677, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 8680, + "src": "913:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 8676, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "913:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8679, + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 8680, + "src": "933:17:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 8678, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "933:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Milestone", + "nodeType": "StructDefinition", + "scope": 8990, + "src": "772:185:27", + "visibility": "public" }, { "body": { - "id": 6802, + "id": 8688, "nodeType": "Block", - "src": "3339:2:19", + "src": "1017:2:27", "statements": [] }, "documentation": null, - "id": 6803, + "id": 8689, "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSaleVolumeBonus", + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 8685, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8682, + "src": "1001:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8686, + "modifierName": { + "argumentTypes": null, + "id": 8684, + "name": "Versionable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11833, + "src": "989:11:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", + "typeString": "type(contract Versionable)" + } + }, + "nodeType": "ModifierInvocation", + "src": "989:20:27" + } + ], + "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6798, + "id": 8683, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6797, - "name": "value", + "id": 8682, + "name": "version", "nodeType": "VariableDeclaration", - "scope": 6803, - "src": "3292:10:19", + "scope": 8689, + "src": "975:12:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3706,10 +5287,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6796, + "id": 8681, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3292:4:19", + "src": "975:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3719,142 +5300,144 @@ "visibility": "internal" } ], - "src": "3291:12:19" + "src": "974:14:27" }, "payable": false, "returnParameters": { - "id": 6801, + "id": 8687, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6800, - "name": "bonus", - "nodeType": "VariableDeclaration", - "scope": 6803, - "src": "3327:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6799, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3327:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3326:12:19" + "parameters": [], + "src": "1017:0:27" }, - "scope": 6828, - "src": "3264:77:19", - "stateMutability": "view", - "superFunction": 1201, - "visibility": "external" + "scope": 8990, + "src": "963:56:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, { "body": { - "id": 6808, + "id": 8694, "nodeType": "Block", - "src": "3395:2:19", + "src": "1077:2:27", "statements": [] }, "documentation": null, - "id": 6809, + "id": 8695, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "isEnded", + "name": "getFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 6804, + "id": 8690, "nodeType": "ParameterList", "parameters": [], - "src": "3363:2:19" + "src": "1041:2:27" }, "payable": false, "returnParameters": { - "id": 6807, + "id": 8693, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6806, + "id": 8692, "name": "", "nodeType": "VariableDeclaration", - "scope": 6809, - "src": "3389:4:19", + "scope": 8695, + "src": "1067:8:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" }, "typeName": { - "id": 6805, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3389:4:19", + "contractScope": null, + "id": 8691, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "1067:8:27", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } }, "value": null, "visibility": "internal" } ], - "src": "3388:6:19" + "src": "1066:10:27" }, - "scope": 6828, - "src": "3347:50:19", + "scope": 8990, + "src": "1025:54:27", "stateMutability": "view", - "superFunction": 1206, + "superFunction": 1668, "visibility": "external" }, { "body": { - "id": 6814, + "id": 8702, "nodeType": "Block", - "src": "3456:2:19", + "src": "1146:2:27", "statements": [] }, "documentation": null, - "id": 6815, + "id": 8703, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "isSaleActive", + "name": "isAdmin", "nodeType": "FunctionDefinition", "parameters": { - "id": 6810, + "id": 8698, "nodeType": "ParameterList", - "parameters": [], - "src": "3424:2:19" + "parameters": [ + { + "constant": false, + "id": 8697, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8703, + "src": "1102:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8696, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1101:17:27" }, "payable": false, "returnParameters": { - "id": 6813, + "id": 8701, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6812, + "id": 8700, "name": "", "nodeType": "VariableDeclaration", - "scope": 6815, - "src": "3450:4:19", + "scope": 8703, + "src": "1140:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3862,10 +5445,10 @@ "typeString": "bool" }, "typeName": { - "id": 6811, + "id": 8699, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3450:4:19", + "src": "1140:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3875,818 +5458,423 @@ "visibility": "internal" } ], - "src": "3449:6:19" + "src": "1139:6:27" }, - "scope": 6828, - "src": "3403:55:19", + "scope": 8990, + "src": "1085:63:27", "stateMutability": "view", - "superFunction": 1211, - "visibility": "external" - }, - { - "body": { - "id": 6818, - "nodeType": "Block", - "src": "3492:2:19", - "statements": [] - }, - "documentation": null, - "id": 6819, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6816, - "nodeType": "ParameterList", - "parameters": [], - "src": "3472:2:19" - }, - "payable": true, - "returnParameters": { - "id": 6817, - "nodeType": "ParameterList", - "parameters": [], - "src": "3492:0:19" - }, - "scope": 6828, - "src": "3464:30:19", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" + "superFunction": 1361, + "visibility": "public" }, { "body": { - "id": 6826, + "id": 8708, "nodeType": "Block", - "src": "3565:2:19", + "src": "1196:2:27", "statements": [] }, "documentation": null, - "id": 6827, + "id": 8709, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "buyTokens", + "name": "addAdmin", "nodeType": "FunctionDefinition", "parameters": { - "id": 6824, + "id": 8706, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6821, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 6827, - "src": "3519:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6820, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3519:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6823, - "name": "amount", + "id": 8705, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 6827, - "src": "3535:11:19", + "scope": 8709, + "src": "1172:15:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 6822, - "name": "uint", + "id": 8704, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "3535:4:19", + "src": "1172:7:27", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3518:29:19" - }, - "payable": true, - "returnParameters": { - "id": 6825, - "nodeType": "ParameterList", - "parameters": [], - "src": "3565:0:19" - }, - "scope": 6828, - "src": "3500:67:19", - "stateMutability": "payable", - "superFunction": 1218, - "visibility": "external" - } - ], - "scope": 6829, - "src": "524:3045:19" - } - ], - "src": "0:3570:19" - }, - "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundCrowdsaleStub.sol", - "exportedSymbols": { - "W12FundCrowdsaleStub": [ - 6828 - ] - }, - "id": 6829, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6527, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:19" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 6528, - "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 10135, - "src": "26:63:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 6529, - "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 9778, - "src": "90:61:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 6530, - "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 10049, - "src": "152:59:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 6531, - "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 10212, - "src": "212:63:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", - "file": "solidity-bytes-utils/contracts/BytesLib.sol", - "id": 6532, - "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 10474, - "src": "276:53:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", - "file": "../../crowdsale/IW12Crowdsale.sol", - "id": 6533, - "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 1225, - "src": "330:43:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", - "file": "../../crowdsale/IW12Fund.sol", - "id": 6534, - "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 1262, - "src": "374:38:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", - "file": "../../token/IWToken.sol", - "id": 6535, - "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 7895, - "src": "413:33:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", - "file": "../../libs/Percent.sol", - "id": 6536, - "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 5215, - "src": "447:32:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "../../versioning/Versionable.sol", - "id": 6537, - "nodeType": "ImportDirective", - "scope": 6829, - "sourceUnit": 9517, - "src": "480:42:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 6538, - "name": "Versionable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "557:11:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", - "typeString": "contract Versionable" - } - }, - "id": 6539, - "nodeType": "InheritanceSpecifier", - "src": "557:11:19" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 6540, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "570:13:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1171:17:27" }, - "id": 6541, - "nodeType": "InheritanceSpecifier", - "src": "570:13:19" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 6542, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "585:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" - } + "payable": false, + "returnParameters": { + "id": 8707, + "nodeType": "ParameterList", + "parameters": [], + "src": "1196:0:27" }, - "id": 6543, - "nodeType": "InheritanceSpecifier", - "src": "585:7:19" + "scope": 8990, + "src": "1154:44:27", + "stateMutability": "nonpayable", + "superFunction": 1366, + "visibility": "public" }, { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 6544, - "name": "ReentrancyGuard", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9777, - "src": "594:15:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9777", - "typeString": "contract ReentrancyGuard" - } + "body": { + "id": 8712, + "nodeType": "Block", + "src": "1236:2:27", + "statements": [] }, - "id": 6545, - "nodeType": "InheritanceSpecifier", - "src": "594:15:19" - } - ], - "contractDependencies": [ - 1224, - 9516, - 9777, - 10134 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 6828, - "linearizedBaseContracts": [ - 6828, - 9777, - 10134, - 1224, - 9516 - ], - "name": "W12FundCrowdsaleStub", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 6547, - "name": "_currentMilestoneIndex", - "nodeType": "VariableDeclaration", - "scope": 6828, - "src": "616:27:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "documentation": null, + "id": 8713, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8710, + "nodeType": "ParameterList", + "parameters": [], + "src": "1226:2:27" }, - "typeName": { - "id": 6546, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "616:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "payable": false, + "returnParameters": { + "id": 8711, + "nodeType": "ParameterList", + "parameters": [], + "src": "1236:0:27" }, - "value": null, - "visibility": "internal" + "scope": 8990, + "src": "1204:34:27", + "stateMutability": "nonpayable", + "superFunction": 1369, + "visibility": "public" }, { - "constant": false, - "id": 6549, - "name": "_currentMilestoneIndexFound", - "nodeType": "VariableDeclaration", - "scope": 6828, - "src": "649:32:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "649:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "body": { + "id": 8718, + "nodeType": "Block", + "src": "1289:2:27", + "statements": [] }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6551, - "name": "_lastMilestoneIndex", - "nodeType": "VariableDeclaration", - "scope": 6828, - "src": "687:24:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "documentation": null, + "id": 8719, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8715, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8719, + "src": "1265:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8714, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1265:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1264:17:27" }, - "typeName": { - "id": 6550, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "687:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "payable": false, + "returnParameters": { + "id": 8717, + "nodeType": "ParameterList", + "parameters": [], + "src": "1289:0:27" }, - "value": null, - "visibility": "internal" + "scope": 8990, + "src": "1244:47:27", + "stateMutability": "nonpayable", + "superFunction": 1374, + "visibility": "public" }, { - "constant": false, - "id": 6553, - "name": "_lastMilestoneIndexFound", - "nodeType": "VariableDeclaration", - "scope": 6828, - "src": "717:29:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "body": { + "id": 8726, + "nodeType": "Block", + "src": "1365:2:27", + "statements": [] }, - "typeName": { - "id": 6552, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "717:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "documentation": null, + "id": 8727, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8721, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8727, + "src": "1321:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1321:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1320:17:27" }, - "value": null, - "visibility": "internal" + "payable": false, + "returnParameters": { + "id": 8725, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8724, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8727, + "src": "1359:4:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8723, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1359:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1358:6:27" + }, + "scope": 8990, + "src": "1297:70:27", + "stateMutability": "view", + "superFunction": 1407, + "visibility": "public" }, { - "constant": false, - "id": 6557, - "name": "_currentMilestones", - "nodeType": "VariableDeclaration", - "scope": 6828, - "src": "752:46:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", - "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone)" + "body": { + "id": 8732, + "nodeType": "Block", + "src": "1422:2:27", + "statements": [] }, - "typeName": { - "id": 6556, - "keyType": { - "id": 6554, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "761:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "752:27:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", - "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone)" - }, - "valueType": { - "contractScope": null, - "id": 6555, - "name": "Milestone", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6572, - "src": "769:9:19", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage_ptr", - "typeString": "struct W12FundCrowdsaleStub.Milestone" + "documentation": null, + "id": 8733, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8729, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8733, + "src": "1398:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1398:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" } - } + ], + "src": "1397:17:27" }, - "value": null, - "visibility": "internal" + "payable": false, + "returnParameters": { + "id": 8731, + "nodeType": "ParameterList", + "parameters": [], + "src": "1422:0:27" + }, + "scope": 8990, + "src": "1373:51:27", + "stateMutability": "nonpayable", + "superFunction": 1412, + "visibility": "public" }, { - "constant": false, - "id": 6559, - "name": "_wtoken", - "nodeType": "VariableDeclaration", - "scope": 6828, - "src": "804:15:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" + "body": { + "id": 8736, + "nodeType": "Block", + "src": "1469:2:27", + "statements": [] }, - "typeName": { - "contractScope": null, - "id": 6558, - "name": "IWToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "804:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } + "documentation": null, + "id": 8737, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8734, + "nodeType": "ParameterList", + "parameters": [], + "src": "1459:2:27" }, - "value": null, - "visibility": "internal" - }, - { - "canonicalName": "W12FundCrowdsaleStub.Milestone", - "id": 6572, - "members": [ - { - "constant": false, - "id": 6561, - "name": "endDate", - "nodeType": "VariableDeclaration", - "scope": 6572, - "src": "853:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 6560, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "853:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6563, - "name": "tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 6572, - "src": "877:19:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6562, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "877:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6565, - "name": "voteEndDate", - "nodeType": "VariableDeclaration", - "scope": 6572, - "src": "906:18:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 6564, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "906:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6567, - "name": "withdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 6572, - "src": "934:23:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 6566, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "934:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6569, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 6572, - "src": "967:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6568, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "967:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6571, - "name": "description", - "nodeType": "VariableDeclaration", - "scope": 6572, - "src": "987:17:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6570, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "987:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Milestone", - "nodeType": "StructDefinition", - "scope": 6828, - "src": "826:185:19", + "payable": false, + "returnParameters": { + "id": 8735, + "nodeType": "ParameterList", + "parameters": [], + "src": "1469:0:27" + }, + "scope": 8990, + "src": "1430:41:27", + "stateMutability": "nonpayable", + "superFunction": 1415, "visibility": "public" }, { "body": { - "id": 6580, + "id": 8742, "nodeType": "Block", - "src": "1071:2:19", + "src": "1529:2:27", "statements": [] }, "documentation": null, - "id": 6581, + "id": 8743, "implemented": true, - "isConstructor": true, + "isConstructor": false, "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 6577, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6574, - "src": "1055:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6578, - "modifierName": { - "argumentTypes": null, - "id": 6576, - "name": "Versionable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "1043:11:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", - "typeString": "type(contract Versionable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1043:20:19" - } - ], - "name": "", + "modifiers": [], + "name": "removeProjectOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 6575, + "id": 8740, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6574, - "name": "version", + "id": 8739, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 6581, - "src": "1029:12:19", + "scope": 8743, + "src": "1505:15:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 6573, - "name": "uint", + "id": 8738, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "1029:4:19", + "src": "1505:7:27", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "1028:14:19" + "src": "1504:17:27" }, "payable": false, "returnParameters": { - "id": 6579, + "id": 8741, "nodeType": "ParameterList", "parameters": [], - "src": "1071:0:19" + "src": "1529:0:27" }, - "scope": 6828, - "src": "1017:56:19", + "scope": 8990, + "src": "1477:54:27", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 1420, "visibility": "public" }, { "body": { - "id": 6586, + "id": 8748, "nodeType": "Block", - "src": "1123:2:19", + "src": "1581:2:27", "statements": [] }, "documentation": null, - "id": 6587, + "id": 8749, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4694,16 +5882,16 @@ "name": "setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 6584, + "id": 8746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6583, + "id": 8745, "name": "price", "nodeType": "VariableDeclaration", - "scope": 6587, - "src": "1102:10:19", + "scope": 8749, + "src": "1560:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4711,10 +5899,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6582, + "id": 8744, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1102:4:19", + "src": "1560:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4724,30 +5912,30 @@ "visibility": "internal" } ], - "src": "1101:12:19" + "src": "1559:12:27" }, "payable": false, "returnParameters": { - "id": 6585, + "id": 8747, "nodeType": "ParameterList", "parameters": [], - "src": "1123:0:19" + "src": "1581:0:27" }, - "scope": 6828, - "src": "1079:46:19", + "scope": 8990, + "src": "1537:46:27", "stateMutability": "nonpayable", - "superFunction": 1103, + "superFunction": 1634, "visibility": "external" }, { "body": { - "id": 6611, + "id": 8773, "nodeType": "Block", - "src": "1422:2:19", + "src": "1880:2:27", "statements": [] }, "documentation": null, - "id": 6612, + "id": 8774, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4755,16 +5943,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 6609, + "id": 8771, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6592, + "id": 8754, "name": "parametersOfStages", "nodeType": "VariableDeclaration", - "scope": 6612, - "src": "1155:28:19", + "scope": 8774, + "src": "1613:28:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4774,27 +5962,27 @@ "typeName": { "baseType": { "baseType": { - "id": 6588, + "id": 8750, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1155:4:19", + "src": "1613:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6590, + "id": 8752, "length": { "argumentTypes": null, "hexValue": "36", - "id": 6589, + "id": 8751, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1160:1:19", + "src": "1618:1:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -4803,16 +5991,16 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "1155:7:19", + "src": "1613:7:27", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" } }, - "id": 6591, + "id": 8753, "length": null, "nodeType": "ArrayTypeName", - "src": "1155:9:19", + "src": "1613:9:27", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", "typeString": "uint256[6][]" @@ -4823,11 +6011,11 @@ }, { "constant": false, - "id": 6595, + "id": 8757, "name": "bonusConditionsOfStages", "nodeType": "VariableDeclaration", - "scope": 6612, - "src": "1193:30:19", + "scope": 8774, + "src": "1651:30:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4836,19 +6024,19 @@ }, "typeName": { "baseType": { - "id": 6593, + "id": 8755, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1193:4:19", + "src": "1651:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6594, + "id": 8756, "length": null, "nodeType": "ArrayTypeName", - "src": "1193:6:19", + "src": "1651:6:27", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -4859,11 +6047,11 @@ }, { "constant": false, - "id": 6600, + "id": 8762, "name": "parametersOfMilestones", "nodeType": "VariableDeclaration", - "scope": 6612, - "src": "1233:32:19", + "scope": 8774, + "src": "1691:32:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4873,27 +6061,27 @@ "typeName": { "baseType": { "baseType": { - "id": 6596, + "id": 8758, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1233:4:19", + "src": "1691:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6598, + "id": 8760, "length": { "argumentTypes": null, "hexValue": "34", - "id": 6597, + "id": 8759, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1238:1:19", + "src": "1696:1:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -4902,16 +6090,16 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "1233:7:19", + "src": "1691:7:27", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, - "id": 6599, + "id": 8761, "length": null, "nodeType": "ArrayTypeName", - "src": "1233:9:19", + "src": "1691:9:27", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" @@ -4922,11 +6110,11 @@ }, { "constant": false, - "id": 6603, + "id": 8765, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "VariableDeclaration", - "scope": 6612, - "src": "1275:46:19", + "scope": 8774, + "src": "1733:46:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4935,19 +6123,19 @@ }, "typeName": { "baseType": { - "id": 6601, + "id": 8763, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1275:6:19", + "src": "1733:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 6602, + "id": 8764, "length": null, "nodeType": "ArrayTypeName", - "src": "1275:8:19", + "src": "1733:8:27", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -4958,11 +6146,11 @@ }, { "constant": false, - "id": 6605, + "id": 8767, "name": "nameAndDescriptionsOfMilestones", "nodeType": "VariableDeclaration", - "scope": 6612, - "src": "1331:37:19", + "scope": 8774, + "src": "1789:37:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4970,10 +6158,10 @@ "typeString": "bytes" }, "typeName": { - "id": 6604, + "id": 8766, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1331:5:19", + "src": "1789:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4984,11 +6172,11 @@ }, { "constant": false, - "id": 6608, + "id": 8770, "name": "paymentMethodsList", "nodeType": "VariableDeclaration", - "scope": 6612, - "src": "1378:28:19", + "scope": 8774, + "src": "1836:28:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4997,19 +6185,19 @@ }, "typeName": { "baseType": { - "id": 6606, + "id": 8768, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1378:7:19", + "src": "1836:7:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 6607, + "id": 8769, "length": null, "nodeType": "ArrayTypeName", - "src": "1378:9:19", + "src": "1836:9:27", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -5019,50 +6207,50 @@ "visibility": "internal" } ], - "src": "1145:267:19" + "src": "1603:267:27" }, "payable": false, "returnParameters": { - "id": 6610, + "id": 8772, "nodeType": "ParameterList", "parameters": [], - "src": "1422:0:19" + "src": "1880:0:27" }, - "scope": 6828, - "src": "1131:293:19", + "scope": 8990, + "src": "1589:293:27", "stateMutability": "nonpayable", - "superFunction": 1127, + "superFunction": 1658, "visibility": "external" }, { "body": { - "id": 6619, + "id": 8781, "nodeType": "Block", - "src": "1483:31:19", + "src": "1941:31:27", "statements": [ { "expression": { "argumentTypes": null, - "id": 6617, + "id": 8779, "name": "_wtoken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6559, - "src": "1500:7:19", + "referencedDeclaration": 8667, + "src": "1958:7:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "functionReturnParameters": 6616, - "id": 6618, + "functionReturnParameters": 8778, + "id": 8780, "nodeType": "Return", - "src": "1493:14:19" + "src": "1951:14:27" } ] }, "documentation": null, - "id": 6620, + "id": 8782, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5070,38 +6258,38 @@ "name": "getWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 6613, + "id": 8775, "nodeType": "ParameterList", "parameters": [], - "src": "1448:2:19" + "src": "1906:2:27" }, "payable": false, "returnParameters": { - "id": 6616, + "id": 8778, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6615, + "id": 8777, "name": "", "nodeType": "VariableDeclaration", - "scope": 6620, - "src": "1474:7:19", + "scope": 8782, + "src": "1932:7:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 6614, + "id": 8776, "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "1474:7:19", + "referencedDeclaration": 10485, + "src": "1932:7:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, @@ -5109,38 +6297,38 @@ "visibility": "internal" } ], - "src": "1473:9:19" + "src": "1931:9:27" }, - "scope": 6828, - "src": "1430:84:19", + "scope": 8990, + "src": "1888:84:27", "stateMutability": "view", - "superFunction": 1132, + "superFunction": 1663, "visibility": "external" }, { "body": { - "id": 6629, + "id": 8791, "nodeType": "Block", - "src": "1568:28:19", + "src": "2026:28:27", "statements": [ { "expression": { "argumentTypes": null, - "id": 6627, + "id": 8789, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6625, + "id": 8787, "name": "_wtoken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6559, - "src": "1578:7:19", + "referencedDeclaration": 8667, + "src": "2036:7:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, @@ -5148,31 +6336,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6626, + "id": 8788, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6622, - "src": "1588:1:19", + "referencedDeclaration": 8784, + "src": "2046:1:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "src": "1578:11:19", + "src": "2036:11:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "id": 6628, + "id": 8790, "nodeType": "ExpressionStatement", - "src": "1578:11:19" + "src": "2036:11:27" } ] }, "documentation": null, - "id": 6630, + "id": 8792, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5180,31 +6368,31 @@ "name": "_getWTokenMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 6623, + "id": 8785, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6622, + "id": 8784, "name": "a", "nodeType": "VariableDeclaration", - "scope": 6630, - "src": "1548:9:19", + "scope": 8792, + "src": "2006:9:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 6621, + "id": 8783, "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "1548:7:19", + "referencedDeclaration": 10485, + "src": "2006:7:27", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, @@ -5212,26 +6400,26 @@ "visibility": "internal" } ], - "src": "1547:11:19" + "src": "2005:11:27" }, "payable": false, "returnParameters": { - "id": 6624, + "id": 8786, "nodeType": "ParameterList", "parameters": [], - "src": "1568:0:19" + "src": "2026:0:27" }, - "scope": 6828, - "src": "1520:76:19", + "scope": 8990, + "src": "1978:76:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6673, + "id": 8835, "nodeType": "Block", - "src": "1703:337:19", + "src": "2159:337:27", "statements": [ { "expression": { @@ -5243,26 +6431,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6647, + "id": 8809, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "1734:18:19", + "referencedDeclaration": 8665, + "src": "2190:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6649, + "id": 8811, "indexExpression": { "argumentTypes": null, - "id": 6648, + "id": 8810, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6632, - "src": "1753:5:19", + "referencedDeclaration": 8794, + "src": "2209:5:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5273,21 +6461,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1734:25:19", + "src": "2190:25:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6650, + "id": 8812, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 6561, - "src": "1734:33:19", + "referencedDeclaration": 8669, + "src": "2190:33:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5299,26 +6487,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6651, + "id": 8813, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "1781:18:19", + "referencedDeclaration": 8665, + "src": "2237:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6653, + "id": 8815, "indexExpression": { "argumentTypes": null, - "id": 6652, + "id": 8814, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6632, - "src": "1800:5:19", + "referencedDeclaration": 8794, + "src": "2256:5:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5329,21 +6517,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1781:25:19", + "src": "2237:25:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6654, + "id": 8816, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tranchePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 6563, - "src": "1781:40:19", + "referencedDeclaration": 8671, + "src": "2237:40:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5355,26 +6543,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6655, + "id": 8817, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "1835:18:19", + "referencedDeclaration": 8665, + "src": "2291:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6657, + "id": 8819, "indexExpression": { "argumentTypes": null, - "id": 6656, + "id": 8818, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6632, - "src": "1854:5:19", + "referencedDeclaration": 8794, + "src": "2310:5:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5385,21 +6573,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1835:25:19", + "src": "2291:25:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6658, + "id": 8820, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voteEndDate", "nodeType": "MemberAccess", - "referencedDeclaration": 6565, - "src": "1835:37:19", + "referencedDeclaration": 8673, + "src": "2291:37:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5411,26 +6599,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6659, + "id": 8821, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "1886:18:19", + "referencedDeclaration": 8665, + "src": "2342:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6661, + "id": 8823, "indexExpression": { "argumentTypes": null, - "id": 6660, + "id": 8822, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6632, - "src": "1905:5:19", + "referencedDeclaration": 8794, + "src": "2361:5:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5441,21 +6629,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1886:25:19", + "src": "2342:25:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6662, + "id": 8824, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "withdrawalWindow", "nodeType": "MemberAccess", - "referencedDeclaration": 6567, - "src": "1886:42:19", + "referencedDeclaration": 8675, + "src": "2342:42:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5467,26 +6655,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6663, + "id": 8825, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "1942:18:19", + "referencedDeclaration": 8665, + "src": "2398:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6665, + "id": 8827, "indexExpression": { "argumentTypes": null, - "id": 6664, + "id": 8826, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6632, - "src": "1961:5:19", + "referencedDeclaration": 8794, + "src": "2417:5:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5497,21 +6685,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1942:25:19", + "src": "2398:25:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6666, + "id": 8828, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 6569, - "src": "1942:30:19", + "referencedDeclaration": 8677, + "src": "2398:30:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -5523,26 +6711,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6667, + "id": 8829, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "1986:18:19", + "referencedDeclaration": 8665, + "src": "2442:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6669, + "id": 8831, "indexExpression": { "argumentTypes": null, - "id": 6668, + "id": 8830, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6632, - "src": "2005:5:19", + "referencedDeclaration": 8794, + "src": "2461:5:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5553,49 +6741,49 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1986:25:19", + "src": "2442:25:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6670, + "id": 8832, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "description", "nodeType": "MemberAccess", - "referencedDeclaration": 6571, - "src": "1986:37:19", + "referencedDeclaration": 8679, + "src": "2442:37:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } } ], - "id": 6671, + "id": 8833, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1720:313:19", + "src": "2176:313:27", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint32_$_t_bytes_storage_$_t_bytes_storage_$", "typeString": "tuple(uint32,uint256,uint32,uint32,bytes storage ref,bytes storage ref)" } }, - "functionReturnParameters": 6646, - "id": 6672, + "functionReturnParameters": 8808, + "id": 8834, "nodeType": "Return", - "src": "1713:320:19" + "src": "2169:320:27" } ] }, "documentation": null, - "id": 6674, + "id": 8836, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5603,16 +6791,16 @@ "name": "getMilestone", "nodeType": "FunctionDefinition", "parameters": { - "id": 6633, + "id": 8795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6632, + "id": 8794, "name": "index", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1624:10:19", + "scope": 8836, + "src": "2082:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5620,10 +6808,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6631, + "id": 8793, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1624:4:19", + "src": "2082:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5633,20 +6821,20 @@ "visibility": "internal" } ], - "src": "1623:12:19" + "src": "2081:12:27" }, "payable": false, "returnParameters": { - "id": 6646, + "id": 8808, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6635, + "id": 8797, "name": "", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1659:6:19", + "scope": 8836, + "src": "2115:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5654,10 +6842,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6634, + "id": 8796, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1659:6:19", + "src": "2115:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5668,11 +6856,11 @@ }, { "constant": false, - "id": 6637, + "id": 8799, "name": "", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1667:4:19", + "scope": 8836, + "src": "2123:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5680,10 +6868,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6636, + "id": 8798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1667:4:19", + "src": "2123:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5694,11 +6882,11 @@ }, { "constant": false, - "id": 6639, + "id": 8801, "name": "", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1673:6:19", + "scope": 8836, + "src": "2129:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5706,10 +6894,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6638, + "id": 8800, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1673:6:19", + "src": "2129:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5720,11 +6908,11 @@ }, { "constant": false, - "id": 6641, + "id": 8803, "name": "", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1681:6:19", + "scope": 8836, + "src": "2137:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5732,10 +6920,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6640, + "id": 8802, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1681:6:19", + "src": "2137:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5746,11 +6934,11 @@ }, { "constant": false, - "id": 6643, + "id": 8805, "name": "", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1689:5:19", + "scope": 8836, + "src": "2145:5:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5758,10 +6946,10 @@ "typeString": "bytes" }, "typeName": { - "id": 6642, + "id": 8804, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1689:5:19", + "src": "2145:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5772,11 +6960,11 @@ }, { "constant": false, - "id": 6645, + "id": 8807, "name": "", "nodeType": "VariableDeclaration", - "scope": 6674, - "src": "1696:5:19", + "scope": 8836, + "src": "2152:5:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5784,10 +6972,10 @@ "typeString": "bytes" }, "typeName": { - "id": 6644, + "id": 8806, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1696:5:19", + "src": "2152:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5797,24 +6985,24 @@ "visibility": "internal" } ], - "src": "1658:44:19" + "src": "2114:44:27" }, - "scope": 6828, - "src": "1602:438:19", + "scope": 8990, + "src": "2060:436:27", "stateMutability": "view", - "superFunction": 1149, - "visibility": "external" + "superFunction": 1685, + "visibility": "public" }, { "body": { - "id": 6704, + "id": 8866, "nodeType": "Block", - "src": "2152:229:19", + "src": "2608:229:27", "statements": [ { "expression": { "argumentTypes": null, - "id": 6702, + "id": 8864, "isConstant": false, "isLValue": false, "isPure": false, @@ -5823,26 +7011,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6691, + "id": 8853, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "2162:18:19", + "referencedDeclaration": 8665, + "src": "2618:18:27", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6572_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$8680_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 6693, + "id": 8855, "indexExpression": { "argumentTypes": null, - "id": 6692, + "id": 8854, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6676, - "src": "2181:3:19", + "referencedDeclaration": 8838, + "src": "2637:3:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5853,9 +7041,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2162:23:19", + "src": "2618:23:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, @@ -5866,12 +7054,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6695, + "id": 8857, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6678, - "src": "2221:1:19", + "referencedDeclaration": 8840, + "src": "2677:1:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5879,12 +7067,12 @@ }, { "argumentTypes": null, - "id": 6696, + "id": 8858, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "2252:1:19", + "referencedDeclaration": 8842, + "src": "2708:1:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5892,12 +7080,12 @@ }, { "argumentTypes": null, - "id": 6697, + "id": 8859, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6682, - "src": "2280:1:19", + "referencedDeclaration": 8844, + "src": "2736:1:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5905,12 +7093,12 @@ }, { "argumentTypes": null, - "id": 6698, + "id": 8860, "name": "d", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6684, - "src": "2313:1:19", + "referencedDeclaration": 8846, + "src": "2769:1:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5918,12 +7106,12 @@ }, { "argumentTypes": null, - "id": 6699, + "id": 8861, "name": "e", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6686, - "src": "2334:1:19", + "referencedDeclaration": 8848, + "src": "2790:1:27", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -5931,12 +7119,12 @@ }, { "argumentTypes": null, - "id": 6700, + "id": 8862, "name": "f", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6688, - "src": "2362:1:19", + "referencedDeclaration": 8850, + "src": "2818:1:27", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -5945,18 +7133,18 @@ ], "expression": { "argumentTypes": null, - "id": 6694, + "id": 8856, "name": "Milestone", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6572, - "src": "2188:9:19", + "referencedDeclaration": 8680, + "src": "2644:9:27", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Milestone_$6572_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Milestone_$8680_storage_ptr_$", "typeString": "type(struct W12FundCrowdsaleStub.Milestone storage pointer)" } }, - "id": 6701, + "id": 8863, "isConstant": false, "isLValue": false, "isPure": false, @@ -5971,26 +7159,26 @@ "description" ], "nodeType": "FunctionCall", - "src": "2188:186:19", + "src": "2644:186:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_memory", + "typeIdentifier": "t_struct$_Milestone_$8680_memory", "typeString": "struct W12FundCrowdsaleStub.Milestone memory" } }, - "src": "2162:212:19", + "src": "2618:212:27", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$6572_storage", + "typeIdentifier": "t_struct$_Milestone_$8680_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 6703, + "id": 8865, "nodeType": "ExpressionStatement", - "src": "2162:212:19" + "src": "2618:212:27" } ] }, "documentation": null, - "id": 6705, + "id": 8867, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5998,16 +7186,16 @@ "name": "_getMilestoneMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 6689, + "id": 8851, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6676, + "id": 8838, "name": "idx", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2077:8:19", + "scope": 8867, + "src": "2533:8:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6015,10 +7203,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6675, + "id": 8837, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2077:4:19", + "src": "2533:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6029,11 +7217,11 @@ }, { "constant": false, - "id": 6678, + "id": 8840, "name": "a", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2087:8:19", + "scope": 8867, + "src": "2543:8:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6041,10 +7229,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6677, + "id": 8839, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2087:6:19", + "src": "2543:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6055,11 +7243,11 @@ }, { "constant": false, - "id": 6680, + "id": 8842, "name": "b", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2097:6:19", + "scope": 8867, + "src": "2553:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6067,10 +7255,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6679, + "id": 8841, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2097:4:19", + "src": "2553:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6081,11 +7269,11 @@ }, { "constant": false, - "id": 6682, + "id": 8844, "name": "c", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2105:8:19", + "scope": 8867, + "src": "2561:8:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6093,10 +7281,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6681, + "id": 8843, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2105:6:19", + "src": "2561:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6107,11 +7295,11 @@ }, { "constant": false, - "id": 6684, + "id": 8846, "name": "d", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2115:8:19", + "scope": 8867, + "src": "2571:8:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6119,10 +7307,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6683, + "id": 8845, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2115:6:19", + "src": "2571:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6133,11 +7321,11 @@ }, { "constant": false, - "id": 6686, + "id": 8848, "name": "e", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2125:7:19", + "scope": 8867, + "src": "2581:7:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6145,10 +7333,10 @@ "typeString": "bytes" }, "typeName": { - "id": 6685, + "id": 8847, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2125:5:19", + "src": "2581:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6159,11 +7347,11 @@ }, { "constant": false, - "id": 6688, + "id": 8850, "name": "f", "nodeType": "VariableDeclaration", - "scope": 6705, - "src": "2134:7:19", + "scope": 8867, + "src": "2590:7:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6171,10 +7359,10 @@ "typeString": "bytes" }, "typeName": { - "id": 6687, + "id": 8849, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2134:5:19", + "src": "2590:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6184,30 +7372,30 @@ "visibility": "internal" } ], - "src": "2076:66:19" + "src": "2532:66:27" }, "payable": false, "returnParameters": { - "id": 6690, + "id": 8852, "nodeType": "ParameterList", "parameters": [], - "src": "2152:0:19" + "src": "2608:0:27" }, - "scope": 6828, - "src": "2046:335:19", + "scope": 8990, + "src": "2502:335:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6724, + "id": 8886, "nodeType": "Block", - "src": "2486:2:19", + "src": "2940:2:27", "statements": [] }, "documentation": null, - "id": 6725, + "id": 8887, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6215,16 +7403,16 @@ "name": "getStage", "nodeType": "FunctionDefinition", "parameters": { - "id": 6708, + "id": 8870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6707, + "id": 8869, "name": "index", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2405:10:19", + "scope": 8887, + "src": "2861:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6232,10 +7420,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6706, + "id": 8868, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2405:4:19", + "src": "2861:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6245,20 +7433,20 @@ "visibility": "internal" } ], - "src": "2404:12:19" + "src": "2860:12:27" }, "payable": false, "returnParameters": { - "id": 6723, + "id": 8885, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6710, + "id": 8872, "name": "", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2440:6:19", + "scope": 8887, + "src": "2894:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6266,10 +7454,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6709, + "id": 8871, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2440:6:19", + "src": "2894:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6280,11 +7468,11 @@ }, { "constant": false, - "id": 6712, + "id": 8874, "name": "", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2448:6:19", + "scope": 8887, + "src": "2902:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6292,10 +7480,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6711, + "id": 8873, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2448:6:19", + "src": "2902:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6306,11 +7494,11 @@ }, { "constant": false, - "id": 6714, + "id": 8876, "name": "", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2456:4:19", + "scope": 8887, + "src": "2910:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6318,10 +7506,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6713, + "id": 8875, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2456:4:19", + "src": "2910:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6332,11 +7520,11 @@ }, { "constant": false, - "id": 6716, + "id": 8878, "name": "", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2462:6:19", + "scope": 8887, + "src": "2916:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6344,10 +7532,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6715, + "id": 8877, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2462:6:19", + "src": "2916:6:27", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6358,11 +7546,11 @@ }, { "constant": false, - "id": 6719, + "id": 8881, "name": "", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2470:6:19", + "scope": 8887, + "src": "2924:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6371,19 +7559,19 @@ }, "typeName": { "baseType": { - "id": 6717, + "id": 8879, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2470:4:19", + "src": "2924:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6718, + "id": 8880, "length": null, "nodeType": "ArrayTypeName", - "src": "2470:6:19", + "src": "2924:6:27", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -6394,11 +7582,11 @@ }, { "constant": false, - "id": 6722, + "id": 8884, "name": "", "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "2478:6:19", + "scope": 8887, + "src": "2932:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6407,19 +7595,19 @@ }, "typeName": { "baseType": { - "id": 6720, + "id": 8882, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2478:4:19", + "src": "2932:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6721, + "id": 8883, "length": null, "nodeType": "ArrayTypeName", - "src": "2478:6:19", + "src": "2932:6:27", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -6429,19 +7617,19 @@ "visibility": "internal" } ], - "src": "2439:46:19" + "src": "2893:46:27" }, - "scope": 6828, - "src": "2387:101:19", + "scope": 8990, + "src": "2843:99:27", "stateMutability": "view", - "superFunction": 1168, - "visibility": "external" + "superFunction": 1704, + "visibility": "public" }, { "body": { - "id": 6736, + "id": 8898, "nodeType": "Block", - "src": "2565:77:19", + "src": "3017:77:27", "statements": [ { "expression": { @@ -6449,12 +7637,12 @@ "components": [ { "argumentTypes": null, - "id": 6732, + "id": 8894, "name": "_currentMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6547, - "src": "2583:22:19", + "referencedDeclaration": 8655, + "src": "3035:22:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6462,40 +7650,40 @@ }, { "argumentTypes": null, - "id": 6733, + "id": 8895, "name": "_currentMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6549, - "src": "2607:27:19", + "referencedDeclaration": 8657, + "src": "3059:27:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 6734, + "id": 8896, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2582:53:19", + "src": "3034:53:27", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, - "functionReturnParameters": 6731, - "id": 6735, + "functionReturnParameters": 8893, + "id": 8897, "nodeType": "Return", - "src": "2575:60:19" + "src": "3027:60:27" } ] }, "documentation": null, - "id": 6737, + "id": 8899, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6503,23 +7691,23 @@ "name": "getCurrentMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 6726, + "id": 8888, "nodeType": "ParameterList", "parameters": [], - "src": "2527:2:19" + "src": "2981:2:27" }, "payable": false, "returnParameters": { - "id": 6731, + "id": 8893, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6728, + "id": 8890, "name": "", "nodeType": "VariableDeclaration", - "scope": 6737, - "src": "2553:4:19", + "scope": 8899, + "src": "3005:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6527,10 +7715,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6727, + "id": 8889, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2553:4:19", + "src": "3005:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6541,11 +7729,11 @@ }, { "constant": false, - "id": 6730, + "id": 8892, "name": "", "nodeType": "VariableDeclaration", - "scope": 6737, - "src": "2559:4:19", + "scope": 8899, + "src": "3011:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6553,10 +7741,10 @@ "typeString": "bool" }, "typeName": { - "id": 6729, + "id": 8891, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2559:4:19", + "src": "3011:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6566,36 +7754,36 @@ "visibility": "internal" } ], - "src": "2552:12:19" + "src": "3004:12:27" }, - "scope": 6828, - "src": "2494:148:19", + "scope": 8990, + "src": "2948:146:27", "stateMutability": "view", - "superFunction": 1175, - "visibility": "external" + "superFunction": 1711, + "visibility": "public" }, { "body": { - "id": 6752, + "id": 8914, "nodeType": "Block", - "src": "2716:84:19", + "src": "3166:84:27", "statements": [ { "expression": { "argumentTypes": null, - "id": 6746, + "id": 8908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6744, + "id": 8906, "name": "_currentMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6547, - "src": "2726:22:19", + "referencedDeclaration": 8655, + "src": "3176:22:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6605,43 +7793,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6745, + "id": 8907, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6739, - "src": "2751:1:19", + "referencedDeclaration": 8901, + "src": "3201:1:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2726:26:19", + "src": "3176:26:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6747, + "id": 8909, "nodeType": "ExpressionStatement", - "src": "2726:26:19" + "src": "3176:26:27" }, { "expression": { "argumentTypes": null, - "id": 6750, + "id": 8912, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6748, + "id": 8910, "name": "_currentMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6549, - "src": "2762:27:19", + "referencedDeclaration": 8657, + "src": "3212:27:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6651,31 +7839,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6749, + "id": 8911, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6741, - "src": "2792:1:19", + "referencedDeclaration": 8903, + "src": "3242:1:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2762:31:19", + "src": "3212:31:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6751, + "id": 8913, "nodeType": "ExpressionStatement", - "src": "2762:31:19" + "src": "3212:31:27" } ] }, "documentation": null, - "id": 6753, + "id": 8915, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6683,16 +7871,16 @@ "name": "_getCurrentMilestoneIndexMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 6742, + "id": 8904, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6739, + "id": 8901, "name": "a", "nodeType": "VariableDeclaration", - "scope": 6753, - "src": "2691:6:19", + "scope": 8915, + "src": "3143:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6700,10 +7888,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6738, + "id": 8900, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2691:4:19", + "src": "3143:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6714,11 +7902,11 @@ }, { "constant": false, - "id": 6741, + "id": 8903, "name": "b", "nodeType": "VariableDeclaration", - "scope": 6753, - "src": "2699:6:19", + "scope": 8915, + "src": "3151:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6726,10 +7914,10 @@ "typeString": "bool" }, "typeName": { - "id": 6740, + "id": 8902, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2699:4:19", + "src": "3151:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6739,26 +7927,26 @@ "visibility": "internal" } ], - "src": "2690:16:19" + "src": "3142:16:27" }, "payable": false, "returnParameters": { - "id": 6743, + "id": 8905, "nodeType": "ParameterList", "parameters": [], - "src": "2716:0:19" + "src": "3166:0:27" }, - "scope": 6828, - "src": "2648:152:19", + "scope": 8990, + "src": "3100:150:27", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": { - "id": 6764, + "id": 8926, "nodeType": "Block", - "src": "2886:71:19", + "src": "3334:71:27", "statements": [ { "expression": { @@ -6766,12 +7954,12 @@ "components": [ { "argumentTypes": null, - "id": 6760, + "id": 8922, "name": "_lastMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6551, - "src": "2904:19:19", + "referencedDeclaration": 8659, + "src": "3352:19:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6779,40 +7967,40 @@ }, { "argumentTypes": null, - "id": 6761, + "id": 8923, "name": "_lastMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6553, - "src": "2925:24:19", + "referencedDeclaration": 8661, + "src": "3373:24:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 6762, + "id": 8924, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2903:47:19", + "src": "3351:47:27", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, - "functionReturnParameters": 6759, - "id": 6763, + "functionReturnParameters": 8921, + "id": 8925, "nodeType": "Return", - "src": "2896:54:19" + "src": "3344:54:27" } ] }, "documentation": null, - "id": 6765, + "id": 8927, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6820,23 +8008,23 @@ "name": "getLastMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 6754, + "id": 8916, "nodeType": "ParameterList", "parameters": [], - "src": "2836:2:19" + "src": "3286:2:27" }, "payable": false, "returnParameters": { - "id": 6759, + "id": 8921, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6756, + "id": 8918, "name": "index", "nodeType": "VariableDeclaration", - "scope": 6765, - "src": "2862:10:19", + "scope": 8927, + "src": "3310:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6844,10 +8032,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6755, + "id": 8917, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2862:4:19", + "src": "3310:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6858,11 +8046,11 @@ }, { "constant": false, - "id": 6758, + "id": 8920, "name": "found", "nodeType": "VariableDeclaration", - "scope": 6765, - "src": "2874:10:19", + "scope": 8927, + "src": "3322:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6870,10 +8058,10 @@ "typeString": "bool" }, "typeName": { - "id": 6757, + "id": 8919, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2874:4:19", + "src": "3322:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6883,36 +8071,36 @@ "visibility": "internal" } ], - "src": "2861:24:19" + "src": "3309:24:27" }, - "scope": 6828, - "src": "2806:151:19", + "scope": 8990, + "src": "3256:149:27", "stateMutability": "view", - "superFunction": 1182, - "visibility": "external" + "superFunction": 1718, + "visibility": "public" }, { "body": { - "id": 6780, + "id": 8942, "nodeType": "Block", - "src": "3028:78:19", + "src": "3474:78:27", "statements": [ { "expression": { "argumentTypes": null, - "id": 6774, + "id": 8936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6772, + "id": 8934, "name": "_lastMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6551, - "src": "3038:19:19", + "referencedDeclaration": 8659, + "src": "3484:19:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6922,43 +8110,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6773, + "id": 8935, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6767, - "src": "3060:1:19", + "referencedDeclaration": 8929, + "src": "3506:1:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3038:23:19", + "src": "3484:23:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6775, + "id": 8937, "nodeType": "ExpressionStatement", - "src": "3038:23:19" + "src": "3484:23:27" }, { "expression": { "argumentTypes": null, - "id": 6778, + "id": 8940, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6776, + "id": 8938, "name": "_lastMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6553, - "src": "3071:24:19", + "referencedDeclaration": 8661, + "src": "3517:24:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6968,31 +8156,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6777, + "id": 8939, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6769, - "src": "3098:1:19", + "referencedDeclaration": 8931, + "src": "3544:1:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3071:28:19", + "src": "3517:28:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6779, + "id": 8941, "nodeType": "ExpressionStatement", - "src": "3071:28:19" + "src": "3517:28:27" } ] }, "documentation": null, - "id": 6781, + "id": 8943, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7000,16 +8188,16 @@ "name": "_getLastMilestoneIndexMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 6770, + "id": 8932, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6767, + "id": 8929, "name": "a", "nodeType": "VariableDeclaration", - "scope": 6781, - "src": "3003:6:19", + "scope": 8943, + "src": "3451:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7017,10 +8205,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6766, + "id": 8928, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3003:4:19", + "src": "3451:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7031,11 +8219,11 @@ }, { "constant": false, - "id": 6769, + "id": 8931, "name": "b", "nodeType": "VariableDeclaration", - "scope": 6781, - "src": "3011:6:19", + "scope": 8943, + "src": "3459:6:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7043,10 +8231,10 @@ "typeString": "bool" }, "typeName": { - "id": 6768, + "id": 8930, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3011:4:19", + "src": "3459:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7056,30 +8244,30 @@ "visibility": "internal" } ], - "src": "3002:16:19" + "src": "3450:16:27" }, "payable": false, "returnParameters": { - "id": 6771, + "id": 8933, "nodeType": "ParameterList", "parameters": [], - "src": "3028:0:19" + "src": "3474:0:27" }, - "scope": 6828, - "src": "2963:143:19", + "scope": 8990, + "src": "3411:141:27", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": { - "id": 6786, + "id": 8948, "nodeType": "Block", - "src": "3169:2:19", + "src": "3615:2:27", "statements": [] }, "documentation": null, - "id": 6787, + "id": 8949, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7087,23 +8275,23 @@ "name": "milestonesLength", "nodeType": "FunctionDefinition", "parameters": { - "id": 6782, + "id": 8944, "nodeType": "ParameterList", "parameters": [], - "src": "3137:2:19" + "src": "3583:2:27" }, "payable": false, "returnParameters": { - "id": 6785, + "id": 8947, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6784, + "id": 8946, "name": "", "nodeType": "VariableDeclaration", - "scope": 6787, - "src": "3163:4:19", + "scope": 8949, + "src": "3609:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7111,10 +8299,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6783, + "id": 8945, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3163:4:19", + "src": "3609:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7124,23 +8312,23 @@ "visibility": "internal" } ], - "src": "3162:6:19" + "src": "3608:6:27" }, - "scope": 6828, - "src": "3112:59:19", + "scope": 8990, + "src": "3558:59:27", "stateMutability": "view", - "superFunction": 1187, + "superFunction": 1723, "visibility": "external" }, { "body": { - "id": 6794, + "id": 8956, "nodeType": "Block", - "src": "3256:2:19", + "src": "3700:2:27", "statements": [] }, "documentation": null, - "id": 6795, + "id": 8957, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7148,23 +8336,23 @@ "name": "getCurrentStageIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 6788, + "id": 8950, "nodeType": "ParameterList", "parameters": [], - "src": "3206:2:19" + "src": "3652:2:27" }, "payable": false, "returnParameters": { - "id": 6793, + "id": 8955, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6790, + "id": 8952, "name": "index", "nodeType": "VariableDeclaration", - "scope": 6795, - "src": "3232:10:19", + "scope": 8957, + "src": "3676:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7172,10 +8360,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6789, + "id": 8951, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3232:4:19", + "src": "3676:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7186,11 +8374,11 @@ }, { "constant": false, - "id": 6792, + "id": 8954, "name": "found", "nodeType": "VariableDeclaration", - "scope": 6795, - "src": "3244:10:19", + "scope": 8957, + "src": "3688:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7198,10 +8386,10 @@ "typeString": "bool" }, "typeName": { - "id": 6791, + "id": 8953, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3244:4:19", + "src": "3688:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7211,23 +8399,23 @@ "visibility": "internal" } ], - "src": "3231:24:19" + "src": "3675:24:27" }, - "scope": 6828, - "src": "3177:81:19", + "scope": 8990, + "src": "3623:79:27", "stateMutability": "view", - "superFunction": 1194, - "visibility": "external" + "superFunction": 1730, + "visibility": "public" }, { "body": { - "id": 6802, + "id": 8964, "nodeType": "Block", - "src": "3339:2:19", + "src": "3781:2:27", "statements": [] }, "documentation": null, - "id": 6803, + "id": 8965, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7235,16 +8423,16 @@ "name": "getSaleVolumeBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 6798, + "id": 8960, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6797, + "id": 8959, "name": "value", "nodeType": "VariableDeclaration", - "scope": 6803, - "src": "3292:10:19", + "scope": 8965, + "src": "3736:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7252,10 +8440,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6796, + "id": 8958, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3292:4:19", + "src": "3736:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7265,20 +8453,20 @@ "visibility": "internal" } ], - "src": "3291:12:19" + "src": "3735:12:27" }, "payable": false, "returnParameters": { - "id": 6801, + "id": 8963, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6800, + "id": 8962, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 6803, - "src": "3327:10:19", + "scope": 8965, + "src": "3769:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7286,10 +8474,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6799, + "id": 8961, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3327:4:19", + "src": "3769:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7299,23 +8487,23 @@ "visibility": "internal" } ], - "src": "3326:12:19" + "src": "3768:12:27" }, - "scope": 6828, - "src": "3264:77:19", + "scope": 8990, + "src": "3708:75:27", "stateMutability": "view", - "superFunction": 1201, - "visibility": "external" + "superFunction": 1737, + "visibility": "public" }, { "body": { - "id": 6808, + "id": 8970, "nodeType": "Block", - "src": "3395:2:19", + "src": "3835:2:27", "statements": [] }, "documentation": null, - "id": 6809, + "id": 8971, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7323,23 +8511,23 @@ "name": "isEnded", "nodeType": "FunctionDefinition", "parameters": { - "id": 6804, + "id": 8966, "nodeType": "ParameterList", "parameters": [], - "src": "3363:2:19" + "src": "3805:2:27" }, "payable": false, "returnParameters": { - "id": 6807, + "id": 8969, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6806, + "id": 8968, "name": "", "nodeType": "VariableDeclaration", - "scope": 6809, - "src": "3389:4:19", + "scope": 8971, + "src": "3829:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7347,10 +8535,10 @@ "typeString": "bool" }, "typeName": { - "id": 6805, + "id": 8967, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3389:4:19", + "src": "3829:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7360,23 +8548,23 @@ "visibility": "internal" } ], - "src": "3388:6:19" + "src": "3828:6:27" }, - "scope": 6828, - "src": "3347:50:19", + "scope": 8990, + "src": "3789:48:27", "stateMutability": "view", - "superFunction": 1206, - "visibility": "external" + "superFunction": 1742, + "visibility": "public" }, { "body": { - "id": 6814, + "id": 8976, "nodeType": "Block", - "src": "3456:2:19", + "src": "3894:2:27", "statements": [] }, "documentation": null, - "id": 6815, + "id": 8977, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7384,23 +8572,23 @@ "name": "isSaleActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 6810, + "id": 8972, "nodeType": "ParameterList", "parameters": [], - "src": "3424:2:19" + "src": "3864:2:27" }, "payable": false, "returnParameters": { - "id": 6813, + "id": 8975, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6812, + "id": 8974, "name": "", "nodeType": "VariableDeclaration", - "scope": 6815, - "src": "3450:4:19", + "scope": 8977, + "src": "3888:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7408,10 +8596,10 @@ "typeString": "bool" }, "typeName": { - "id": 6811, + "id": 8973, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3450:4:19", + "src": "3888:4:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7421,23 +8609,23 @@ "visibility": "internal" } ], - "src": "3449:6:19" + "src": "3887:6:27" }, - "scope": 6828, - "src": "3403:55:19", + "scope": 8990, + "src": "3843:53:27", "stateMutability": "view", - "superFunction": 1211, - "visibility": "external" + "superFunction": 1747, + "visibility": "public" }, { "body": { - "id": 6818, + "id": 8980, "nodeType": "Block", - "src": "3492:2:19", + "src": "3930:2:27", "statements": [] }, "documentation": null, - "id": 6819, + "id": 8981, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7445,33 +8633,33 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6816, + "id": 8978, "nodeType": "ParameterList", "parameters": [], - "src": "3472:2:19" + "src": "3910:2:27" }, "payable": true, "returnParameters": { - "id": 6817, + "id": 8979, "nodeType": "ParameterList", "parameters": [], - "src": "3492:0:19" + "src": "3930:0:27" }, - "scope": 6828, - "src": "3464:30:19", + "scope": 8990, + "src": "3902:30:27", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6826, + "id": 8988, "nodeType": "Block", - "src": "3565:2:19", + "src": "4001:2:27", "statements": [] }, "documentation": null, - "id": 6827, + "id": 8989, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7479,16 +8667,16 @@ "name": "buyTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 6824, + "id": 8986, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6821, + "id": 8983, "name": "method", "nodeType": "VariableDeclaration", - "scope": 6827, - "src": "3519:14:19", + "scope": 8989, + "src": "3957:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7496,10 +8684,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 6820, + "id": 8982, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3519:7:19", + "src": "3957:7:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7510,11 +8698,11 @@ }, { "constant": false, - "id": 6823, + "id": 8985, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6827, - "src": "3535:11:19", + "scope": 8989, + "src": "3973:11:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7522,10 +8710,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6822, + "id": 8984, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3535:4:19", + "src": "3973:4:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7535,27 +8723,27 @@ "visibility": "internal" } ], - "src": "3518:29:19" + "src": "3956:29:27" }, "payable": true, "returnParameters": { - "id": 6825, + "id": 8987, "nodeType": "ParameterList", "parameters": [], - "src": "3565:0:19" + "src": "4001:0:27" }, - "scope": 6828, - "src": "3500:67:19", + "scope": 8990, + "src": "3938:65:27", "stateMutability": "payable", - "superFunction": 1218, - "visibility": "external" + "superFunction": 1754, + "visibility": "public" } ], - "scope": 6829, - "src": "524:3045:19" + "scope": 8991, + "src": "468:3537:27" } ], - "src": "0:3570:19" + "src": "0:4006:27" }, "compiler": { "name": "solc", @@ -7563,5 +8751,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.311Z" + "updatedAt": "2018-12-06T13:14:33.200Z" } \ No newline at end of file diff --git a/build/contracts/W12FundFactory.json b/build/contracts/W12FundFactory.json index 27f0b261..0a9fafe1 100644 --- a/build/contracts/W12FundFactory.json +++ b/build/contracts/W12FundFactory.json @@ -70,24 +70,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5060405160408061353a833981016040528051602090910151600091825560018054600160a060020a031916600160a060020a039092169190911790556134dd90819061005d90396000f3006080604052600436106100325763ffffffff60e060020a60003504166317444626811461003757806354fd4d501461007d575b600080fd5b34801561004357600080fd5b50610061600160a060020a03600435811690602435166044356100a4565b60408051600160a060020a039092168252519081900360200190f35b34801561008957600080fd5b50610092610295565b60408051918252519081900360200190f35b600080546001548390600160a060020a03166100be61029b565b9283526020830191909152600160a060020a03166040808301919091525190819003606001906000f0801580156100f9573d6000803e3d6000fd5b50905080600160a060020a031663acb3c073856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561015757600080fd5b505af115801561016b573d6000803e3d6000fd5b5050505080600160a060020a03166323bffccc846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156101ca57600080fd5b505af11580156101de573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b15801561024257600080fd5b505af1158015610256573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbeacbaab8887097be64d667b2a06e62db7e00cc1429a8ebe02535e97a6cc8fcd9150600090a29392505050565b60005481565b604051613206806102ac833901905600608060405260016002553480156200001657600080fd5b5060405160608062003206833981016040908152815160208301519190920151600083905560018054600160a060020a03191633179055620000668264010000000062002fad620000d982021704565b80156200008b57506064620000898364010000000062002fd26200011682021704565b105b15156200009757600080fd5b600160a060020a0381161515620000ad57600080fd5b60089190915560058054600160a060020a031916600160a060020a0390921691909117905550620001c2565b6000620000ee64010000000062000168810204565b82101580156200011057506200010c6401000000006200016d810204565b8211155b92915050565b60006200012c82640100000000620000d9810204565b15156200013857600080fd5b620001106200014f6401000000006200018a810204565b8390600a0a64010000000062002f0e6200018f82021704565b600090565b600062000182640100000000620001a5810204565b600a0a905090565b600290565b600081838115156200019d57fe5b049392505050565b6000620001ba6401000000006200018a810204565b600201905090565b61303480620001d26000396000f3006080604052600436106101665763ffffffff60e060020a600035041663015dd28c811461016b5780630babd864146101d057806319ae48ed1461020157806323585f961461022857806323bffccc14610254578063278ecde11461027757806343f48fbd1461028f578063483a20b2146102a457806354fd4d50146102c55780635641f3c3146102da5780636b90d6d2146102ef5780636ebc0af114610304578063715018a6146103195780637a1c2da31461032e5780638119c065146103465780638429fffe1461035b5780638da5cb5b146103705780639124a789146103855780639ab269a6146103a65780639c1e03a0146103be5780639e80baac146103d3578063a328665a146103e8578063a3b768e1146103fd578063acb3c0731461044a578063adb9dd081461046b578063b4105a3e1461048c578063d0baf2f5146104a1578063f206cb64146104c1578063f2fde38b146104e5578063fb2814c414610506575b600080fd5b34801561017757600080fd5b5061018061051b565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101bc5781810151838201526020016101a4565b505050509050019250505060405180910390f35b3480156101dc57600080fd5b506101e5610602565b60408051600160a060020a039092168252519081900360200190f35b34801561020d57600080fd5b50610216610611565b60408051918252519081900360200190f35b34801561023457600080fd5b50610240600435610617565b604080519115158252519081900360200190f35b34801561026057600080fd5b50610275600160a060020a036004351661062c565b005b34801561028357600080fd5b50610275600435610687565b34801561029b57600080fd5b506101e5610943565b3480156102b057600080fd5b50610275600160a060020a0360043516610952565b3480156102d157600080fd5b50610216610ade565b3480156102e657600080fd5b506101e5610ae4565b3480156102fb57600080fd5b50610240610af3565b34801561031057600080fd5b50610275610d08565b34801561032557600080fd5b50610275610ec8565b34801561033a57600080fd5b50610216600435610f36565b34801561035257600080fd5b506101e5610f48565b34801561036757600080fd5b50610240610f57565b34801561037c57600080fd5b506101e5611170565b34801561039157600080fd5b50610216600160a060020a036004351661117f565b3480156103b257600080fd5b5061021660043561119a565b3480156103ca57600080fd5b506101e56111b3565b3480156103df57600080fd5b506102406111c2565b3480156103f457600080fd5b50610216611275565b34801561040957600080fd5b5061041261127b565b6040518082606080838360005b8381101561043757818101518382015260200161041f565b5050505090500191505060405180910390f35b34801561045657600080fd5b50610275600160a060020a036004351661184f565b34801561047757600080fd5b50610180600160a060020a03600435166118aa565b34801561049857600080fd5b506102166119a7565b610275600160a060020a03600435166024356044356064356084356119ad565b3480156104cd57600080fd5b50610216600160a060020a0360043516602435611da9565b3480156104f157600080fd5b50610275600160a060020a0360043516611dd8565b34801561051257600080fd5b50610216611dfb565b6060600b73__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561057257600080fd5b505af4158015610586573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156105af57600080fd5b8101908080516401000000008111156105c757600080fd5b820160208101848111156105da57600080fd5b81518560208202830111640100000000821117156105f757600080fd5b509094505050505090565b600454600160a060020a031681565b60095481565b600a6020526000908152604090205460ff1681565b600154600160a060020a0316331461064357600080fd5b600160a060020a038116151561065857600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025460011461069657600080fd5b600280556106a2610af3565b15156106ad57600080fd5b8015156106b957600080fd5b336000908152601160205260409020548111156106d557600080fd5b600480546040805160e060020a6370a082310281523393810193909352518392600160a060020a03909216916370a082319160248083019260209291908290030181600087803b15801561072857600080fd5b505af115801561073c573d6000803e3d6000fd5b505050506040513d602081101561075257600080fd5b5051101561075f57600080fd5b60048054604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523393810193909352306024840152518392600160a060020a039092169163dd62ed3e9160448083019260209291908290030181600087803b1580156107ce57600080fd5b505af11580156107e2573d6000803e3d6000fd5b505050506040513d60208110156107f857600080fd5b5051101561080557600080fd5b61080e81611e01565b601054610821908263ffffffff61249916565b60105533600090815260116020526040902054610844908263ffffffff6124a616565b336000818152601160209081526040808320949094556004805460065486517f23b872dd00000000000000000000000000000000000000000000000000000000815292830195909552600160a060020a03948516602483015260448201879052945194909316936323b872dd93606480820194918390030190829087803b1580156108ce57600080fd5b505af11580156108e2573d6000803e3d6000fd5b505050506040513d60208110156108f857600080fd5b5051151561090557600080fd5b60408051828152905133917fb7feb6c1d7169f40790388a31c0160d8f962a2b6c31970c28bd8cdfefa25ea29919081900360200190a2506001600255565b600554600160a060020a031681565b600154600160a060020a0316331461096957600080fd5b600160a060020a038116151561097e57600080fd5b6000600160a060020a031681600160a060020a0316634090cb646040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109c757600080fd5b505af11580156109db573d6000803e3d6000fd5b505050506040513d60208110156109f157600080fd5b5051600160a060020a03161415610a0757600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610a8357600080fd5b505af1158015610a97573d6000803e3d6000fd5b505050506040513d6020811015610aad57600080fd5b50516004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550565b60005481565b600754600160a060020a031681565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610b5657600080fd5b505af1158015610b6a573d6000803e3d6000fd5b505050506040513d6040811015610b8057600080fd5b5080516020909101519094509250831515610b9a57610d01565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610bea57600080fd5b505af1158015610bfe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610c2757600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610c5d57600080fd5b82016020810184811115610c7057600080fd5b8151640100000000811182820187101715610c8a57600080fd5b50509291906020018051640100000000811115610ca657600080fd5b82016020810184811115610cb957600080fd5b8151640100000000811182820187101715610cd357600080fd5b50509291905050505050935050509150428263ffffffff1611158015610cfe57508063ffffffff1642105b94505b5050505090565b610d10612f8e565b600154600160a060020a03163314610d2757600080fd5b600254600114610d3657600080fd5b60028055610d426111c2565b1515610d4d57600080fd5b610d5561127b565b8051909150600010610d6657600080fd5b6040805160e060020a6320e1e1d1028152600b6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b158015610dbb57600080fd5b505af4158015610dcf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610df857600080fd5b810190808051640100000000811115610e1057600080fd5b82016020810184811115610e2357600080fd5b8151856020820283011164010000000082111715610e4057600080fd5b50505115159250610e5391505057600080fd5b6040818101516000908152600a60205220805460ff191660011790558051600954610e7d91612499565b600955610e89816124b8565b8051604080519182525133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a2506001600255565b600154600160a060020a03163314610edf57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000908152600e602052604090205490565b600654600160a060020a031681565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610fba57600080fd5b505af1158015610fce573d6000803e3d6000fd5b505050506040513d6040811015610fe457600080fd5b5080516020909101519094509250831580610ffd575082155b1561100757610d01565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561105757600080fd5b505af115801561106b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561109457600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156110ca57600080fd5b820160208101848111156110dd57600080fd5b81516401000000008111828201871017156110f757600080fd5b5050929190602001805164010000000081111561111357600080fd5b8201602081018481111561112657600080fd5b815164010000000081118282018710171561114057600080fd5b50509291905050505050935050509150428263ffffffff161180610cfe575063ffffffff16421015949350505050565b600154600160a060020a031681565b600160a060020a031660009081526011602052604090205490565b60006111ad600b8363ffffffff612c7016565b92915050565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561121957600080fd5b505af115801561122d573d6000803e3d6000fd5b505050506040513d604081101561124357600080fd5b508051602090910151909250905080151561125d57611270565b81158061126d575061126d610f57565b92505b505090565b60085481565b611283612f8e565b60008060008060008060008060006112996111c2565b15156112a457611843565b600354604080517fd6d65f3d0000000000000000000000000000000000000000000000000000000081528151600160a060020a039093169263d6d65f3d926004808401939192918290030181600087803b15801561130157600080fd5b505af1158015611315573d6000803e3d6000fd5b505050506040513d604081101561132b57600080fd5b5051600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151939c50600160a060020a03909216926314f66d349260048082019392918290030181600087803b15801561138c57600080fd5b505af11580156113a0573d6000803e3d6000fd5b505050506040513d60408110156113b657600080fd5b50516003546040805160e060020a632442e1cb028152600481018490529051929a50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561140b57600080fd5b505af115801561141f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561144857600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561147e57600080fd5b8201602081018481111561149157600080fd5b81516401000000008111828201871017156114ab57600080fd5b505092919060200180516401000000008111156114c757600080fd5b820160208101848111156114da57600080fd5b81516401000000008111828201871017156114f457600080fd5b505092919050505050509950505050886000148061151157508888145b61151e5760018903611520565b885b6003546040805160e060020a632442e1cb028152600481018490529051929b50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561157357600080fd5b505af1158015611587573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156115b057600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156115e657600080fd5b820160208101848111156115f957600080fd5b815164010000000081118282018710171561161357600080fd5b5050929190602001805164010000000081111561162f57600080fd5b8201602081018481111561164257600080fd5b815164010000000081118282018710171561165c57600080fd5b50509291905050505050975050965050600a60008a815260200190815260200160002060009054906101000a900460ff169350831561169a57611843565b8892505b600083111561180f576003546040805160e060020a632442e1cb0281526000199095016004860181905290519094600160a060020a0390921691632442e1cb91602480830192600092919082900301818387803b1580156116fe57600080fd5b505af1158015611712573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561173b57600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561177157600080fd5b8201602081018481111561178457600080fd5b815164010000000081118282018710171561179e57600080fd5b505092919060200180516401000000008111156117ba57600080fd5b820160208101848111156117cd57600080fd5b81516401000000008111828201871017156117e757600080fd5b5097995061180898508a97508996505063ffffffff61249916945050505050565b915061169e565b60095461183290611826888563ffffffff61249916565b9063ffffffff6124a616565b8a5260208a0182905260408a018990525b50505050505050505090565b600154600160a060020a0316331461186657600080fd5b600160a060020a038116151561187b57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038116600090815260126020526040808220815160e060020a6320e1e1d10281526004810191909152905160609273__FundAccount___________________________926320e1e1d19260248083019392829003018186803b15801561191657600080fd5b505af415801561192a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561195357600080fd5b81019080805164010000000081111561196b57600080fd5b8201602081018481111561197e57600080fd5b815185602082028301116401000000008211171561199b57600080fd5b50909695505050505050565b600f5481565b600354600160a060020a03163381146119c557600080fd5b600085116119d257600080fd5b600083116119df57600080fd5b600082116119ec57600080fd5b600160a060020a0386161515611a0157600080fd5b600554604080517f7d20abf8000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691637d20abf8916024808201926020929091908290030181600087803b158015611a6857600080fd5b505af1158015611a7c573d6000803e3d6000fd5b505050506040513d6020811015611a9257600080fd5b50511515611a9f57600080fd5b60eb60020a6208aa8902841415611ac25734831115611abd57600080fd5b611c82565b600554604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611b2957600080fd5b505af1158015611b3d573d6000803e3d6000fd5b505050506040513d6020811015611b5357600080fd5b50511515611b6057600080fd5b611b8183611b75600b8763ffffffff612c7016565b9063ffffffff61249916565b6005546040805160e460020a630b12e441028152600481018890529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015611bd257600080fd5b505af1158015611be6573d6000803e3d6000fd5b505050506040513d6020811015611bfc57600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015611c4b57600080fd5b505af1158015611c5f573d6000803e3d6000fd5b505050506040513d6020811015611c7557600080fd5b50511015611c8257600080fd5b600160a060020a038616600090815260116020526040902054611cab908663ffffffff61249916565b600160a060020a0387166000908152601160209081526040808320939093556012905220611ce090858563ffffffff612c8616565b600160a060020a0386166000908152601260205260409020611d129060ea60020a621554d1028463ffffffff612c8616565b600f54611d25908663ffffffff61249916565b600f55611d3a600b858563ffffffff612c8616565b611d55600b60ea60020a621554d1028463ffffffff612c8616565b60408051868152602081018690528082018590529051600160a060020a038816917fe2d0f4d539cb385db666a31aa9b27fd786afc933dc82ca8518d045424d6fa882919081900360600190a2505050505050565b600160a060020a0382166000908152601260205260408120611dd1908363ffffffff612c7016565b9392505050565b600154600160a060020a03163314611def57600080fd5b611df881612cc6565b50565b60105481565b33600090815260126020526040808220815160e060020a6320e1e1d102815260048101919091529051829182918291829173__FundAccount___________________________916320e1e1d19160248083019286929190829003018186803b158015611e6c57600080fd5b505af4158015611e80573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611ea957600080fd5b810190808051640100000000811115611ec157600080fd5b82016020810184811115611ed457600080fd5b8151856020820283011164010000000082111715611ef157600080fd5b50505197505050505b84156124915733600090815260126020526040808220815160e060020a6320e1e1d10281526004810191909152905173__FundAccount___________________________926320e1e1d19260248082019391829003018186803b158015611f6057600080fd5b505af4158015611f74573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611f9d57600080fd5b810190808051640100000000811115611fb557600080fd5b82016020810184811115611fc857600080fd5b8151856020820283011164010000000082111715611fe557600080fd5b50508051600019909901989093508892508210905061200057fe5b60209081029091018101513360009081526012909252604090912090945061202e908563ffffffff612c7016565b925082151561203c57611efa565b336000908152601160205260409020546120599087908590612d44565b91506000821161206857600080fd5b60095461208c90612080600b8763ffffffff612c7016565b9063ffffffff612e6c16565b90506120bd6120a682611826600b8863ffffffff612c7016565b836120b8600b8863ffffffff612c7016565b612d44565b9250600083116120cc57600080fd5b6000848152600e60205260409020546120eb908463ffffffff61249916565b6000858152600e6020908152604080832093909355338252601290522061211990858463ffffffff612e7b16565b60ea60020a621554d10284141561212f57611efa565b60eb60020a6208aa890284146122e257600554604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156121a657600080fd5b505af11580156121ba573d6000803e3d6000fd5b505050506040513d60208110156121d057600080fd5b505115156121dd57600080fd5b6005546040805160e460020a630b12e4410281526004810187905290518592600160a060020a03169163b12e44109160248083019260209291908290030181600087803b15801561222d57600080fd5b505af1158015612241573d6000803e3d6000fd5b505050506040513d602081101561225757600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156122a657600080fd5b505af11580156122ba573d6000803e3d6000fd5b505050506040513d60208110156122d057600080fd5b505110156122dd57600080fd5b6122f0565b30318311156122f057600080fd5b60eb60020a6208aa890284141561233457604051339084156108fc029085906000818181858888f1935050505015801561232e573d6000803e3d6000fd5b50612452565b6005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561238557600080fd5b505af1158015612399573d6000803e3d6000fd5b505050506040513d60208110156123af57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561241b57600080fd5b505af115801561242f573d6000803e3d6000fd5b505050506040513d602081101561244557600080fd5b5051151561245257600080fd5b6040805185815260208101859052815133927fd434f0d1dd08e14b2acdd7a506c6e8b6edaf1a5825d23ca9b5e51a9ad883f71c928290030190a2611efa565b505050505050565b818101828110156111ad57fe5b6000828211156124b257fe5b50900390565b6000806000806000600b73__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561251557600080fd5b505af4158015612529573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561255257600080fd5b81019080805164010000000081111561256a57600080fd5b8201602081018481111561257d57600080fd5b815185602082028301116401000000008211171561259a57600080fd5b50505197505050505b8415612491576040805160e060020a6320e1e1d1028152600b6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b1580156125fe57600080fd5b505af4158015612612573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561263b57600080fd5b81019080805164010000000081111561265357600080fd5b8201602081018481111561266657600080fd5b815185602082028301116401000000008211171561268357600080fd5b50508051600019909901989093508892508210905061269e57fe5b6020908102909101015193506126bb600b8563ffffffff612c7016565b92508215156126c9576125a3565b85516126d6908490612e6c565b9150600082116126e557600080fd5b6127086126ff601054600f546124a690919063ffffffff16565b83600f54612d44565b92506000831161271757600080fd5b6000848152600e6020526040902054612736908463ffffffff61249916565b6000858152600e602052604090205560ea60020a621554d10284141561275b576125a3565b60eb60020a6208aa8902841461290957600554604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156127d257600080fd5b505af11580156127e6573d6000803e3d6000fd5b505050506040513d60208110156127fc57600080fd5b5051151561280957600080fd5b6005546040805160e460020a630b12e4410281526004810187905290518592600160a060020a03169163b12e44109160248083019260209291908290030181600087803b15801561285957600080fd5b505af115801561286d573d6000803e3d6000fd5b505050506040513d602081101561288357600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156128d257600080fd5b505af11580156128e6573d6000803e3d6000fd5b505050506040513d60208110156128fc57600080fd5b5051101561290957600080fd5b60006008541161291a57600061292e565b60085461292e90849063ffffffff612e6c16565b905060006008541115612948576000811161294857600080fd5b60eb60020a6208aa89028414156129e057600081111561299e57600754604051600160a060020a039091169082156108fc029083906000818181858888f1935050505015801561299c573d6000803e3d6000fd5b505b336108fc6129b2858463ffffffff6124a616565b6040518115909202916000818181858888f193505050501580156129da573d6000803e3d6000fd5b50612c31565b6000811115612b0c576005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612a3a57600080fd5b505af1158015612a4e573d6000803e3d6000fd5b505050506040513d6020811015612a6457600080fd5b5051600754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015612ad557600080fd5b505af1158015612ae9573d6000803e3d6000fd5b505050506040513d6020811015612aff57600080fd5b50511515612b0c57600080fd5b6005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612b5d57600080fd5b505af1158015612b71573d6000803e3d6000fd5b505050506040513d6020811015612b8757600080fd5b5051600160a060020a031663a9059cbb33612ba8868563ffffffff6124a616565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612bfa57600080fd5b505af1158015612c0e573d6000803e3d6000fd5b505050506040513d6020811015612c2457600080fd5b50511515612c3157600080fd5b6040805185815260208101859052815133927f17e68c82fdc39ec76fff0be24ead989575d8eec009a729fa4bd738bc1f6a2dbb928290030190a26125a3565b6000908152600291909101602052604090205490565b612c908383612ec7565b6000828152600284016020526040902054612cb1908263ffffffff61249916565b60009283526002909301602052506040902055565b600160a060020a0381161515612cdb57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080808080851515612d5357fe5b871580612d5e575086155b15612d6857612e61565b612d7a6000198863ffffffff612f0e16565b9250828811612daa57612da386612d978a8a63ffffffff612f2316565b9063ffffffff612f0e16565b9450612e61565b85881415612dba57869450612e61565b85871415612dca57879450612e61565b8715612e4b57878311612ddd5782612ddf565b875b9150612df1828863ffffffff612f2316565b9050612e13612e06828863ffffffff612f0e16565b869063ffffffff61249916565b9450612e328682811515612e2357fe5b8691900663ffffffff61249916565b9350612e44888363ffffffff6124a616565b9750612dca565b612e5e612e06858863ffffffff612f0e16565b94505b505050509392505050565b6000611dd183836120b8612f4c565b612e858383612f5e565b1515612e9057600080fd5b80612e9b8484612c70565b1015612ea657600080fd5b6000828152600284016020526040902054612cb1908263ffffffff6124a616565b612ed18282612f5e565b1515612f0a57815460018181018455600084815260208082209093018490558381528185019092526040909120805460ff191690911790555b5050565b60008183811515612f1b57fe5b049392505050565b6000821515612f34575060006111ad565b50818102818382811515612f4457fe5b04146111ad57fe5b6000612f56612f77565b600a0a905090565b6000908152600191909101602052604090205460ff1690565b6000612f81612f89565b600201905090565b600290565b6060604051908101604052806003906020820280388339509192915050565b6000612fb7613003565b82101580156111ad5750612fc9612f4c565b90911115919050565b6000612fdd82612fad565b1515612fe857600080fd5b6111ad612ff3612f89565b8390600a0a63ffffffff612f0e16565b6000905600a165627a7a723058208de91a32092d1f0941348b8b0064a0b6c78b50e07821a1259b8e759a408543450029a165627a7a72305820d00db5fe854556a58fb81cbfdd33b416e2ce807cf717375c920af278fd7abd170029", - "deployedBytecode": "0x6080604052600436106100325763ffffffff60e060020a60003504166317444626811461003757806354fd4d501461007d575b600080fd5b34801561004357600080fd5b50610061600160a060020a03600435811690602435166044356100a4565b60408051600160a060020a039092168252519081900360200190f35b34801561008957600080fd5b50610092610295565b60408051918252519081900360200190f35b600080546001548390600160a060020a03166100be61029b565b9283526020830191909152600160a060020a03166040808301919091525190819003606001906000f0801580156100f9573d6000803e3d6000fd5b50905080600160a060020a031663acb3c073856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561015757600080fd5b505af115801561016b573d6000803e3d6000fd5b5050505080600160a060020a03166323bffccc846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156101ca57600080fd5b505af11580156101de573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b15801561024257600080fd5b505af1158015610256573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbeacbaab8887097be64d667b2a06e62db7e00cc1429a8ebe02535e97a6cc8fcd9150600090a29392505050565b60005481565b604051613206806102ac833901905600608060405260016002553480156200001657600080fd5b5060405160608062003206833981016040908152815160208301519190920151600083905560018054600160a060020a03191633179055620000668264010000000062002fad620000d982021704565b80156200008b57506064620000898364010000000062002fd26200011682021704565b105b15156200009757600080fd5b600160a060020a0381161515620000ad57600080fd5b60089190915560058054600160a060020a031916600160a060020a0390921691909117905550620001c2565b6000620000ee64010000000062000168810204565b82101580156200011057506200010c6401000000006200016d810204565b8211155b92915050565b60006200012c82640100000000620000d9810204565b15156200013857600080fd5b620001106200014f6401000000006200018a810204565b8390600a0a64010000000062002f0e6200018f82021704565b600090565b600062000182640100000000620001a5810204565b600a0a905090565b600290565b600081838115156200019d57fe5b049392505050565b6000620001ba6401000000006200018a810204565b600201905090565b61303480620001d26000396000f3006080604052600436106101665763ffffffff60e060020a600035041663015dd28c811461016b5780630babd864146101d057806319ae48ed1461020157806323585f961461022857806323bffccc14610254578063278ecde11461027757806343f48fbd1461028f578063483a20b2146102a457806354fd4d50146102c55780635641f3c3146102da5780636b90d6d2146102ef5780636ebc0af114610304578063715018a6146103195780637a1c2da31461032e5780638119c065146103465780638429fffe1461035b5780638da5cb5b146103705780639124a789146103855780639ab269a6146103a65780639c1e03a0146103be5780639e80baac146103d3578063a328665a146103e8578063a3b768e1146103fd578063acb3c0731461044a578063adb9dd081461046b578063b4105a3e1461048c578063d0baf2f5146104a1578063f206cb64146104c1578063f2fde38b146104e5578063fb2814c414610506575b600080fd5b34801561017757600080fd5b5061018061051b565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101bc5781810151838201526020016101a4565b505050509050019250505060405180910390f35b3480156101dc57600080fd5b506101e5610602565b60408051600160a060020a039092168252519081900360200190f35b34801561020d57600080fd5b50610216610611565b60408051918252519081900360200190f35b34801561023457600080fd5b50610240600435610617565b604080519115158252519081900360200190f35b34801561026057600080fd5b50610275600160a060020a036004351661062c565b005b34801561028357600080fd5b50610275600435610687565b34801561029b57600080fd5b506101e5610943565b3480156102b057600080fd5b50610275600160a060020a0360043516610952565b3480156102d157600080fd5b50610216610ade565b3480156102e657600080fd5b506101e5610ae4565b3480156102fb57600080fd5b50610240610af3565b34801561031057600080fd5b50610275610d08565b34801561032557600080fd5b50610275610ec8565b34801561033a57600080fd5b50610216600435610f36565b34801561035257600080fd5b506101e5610f48565b34801561036757600080fd5b50610240610f57565b34801561037c57600080fd5b506101e5611170565b34801561039157600080fd5b50610216600160a060020a036004351661117f565b3480156103b257600080fd5b5061021660043561119a565b3480156103ca57600080fd5b506101e56111b3565b3480156103df57600080fd5b506102406111c2565b3480156103f457600080fd5b50610216611275565b34801561040957600080fd5b5061041261127b565b6040518082606080838360005b8381101561043757818101518382015260200161041f565b5050505090500191505060405180910390f35b34801561045657600080fd5b50610275600160a060020a036004351661184f565b34801561047757600080fd5b50610180600160a060020a03600435166118aa565b34801561049857600080fd5b506102166119a7565b610275600160a060020a03600435166024356044356064356084356119ad565b3480156104cd57600080fd5b50610216600160a060020a0360043516602435611da9565b3480156104f157600080fd5b50610275600160a060020a0360043516611dd8565b34801561051257600080fd5b50610216611dfb565b6060600b73__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561057257600080fd5b505af4158015610586573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156105af57600080fd5b8101908080516401000000008111156105c757600080fd5b820160208101848111156105da57600080fd5b81518560208202830111640100000000821117156105f757600080fd5b509094505050505090565b600454600160a060020a031681565b60095481565b600a6020526000908152604090205460ff1681565b600154600160a060020a0316331461064357600080fd5b600160a060020a038116151561065857600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025460011461069657600080fd5b600280556106a2610af3565b15156106ad57600080fd5b8015156106b957600080fd5b336000908152601160205260409020548111156106d557600080fd5b600480546040805160e060020a6370a082310281523393810193909352518392600160a060020a03909216916370a082319160248083019260209291908290030181600087803b15801561072857600080fd5b505af115801561073c573d6000803e3d6000fd5b505050506040513d602081101561075257600080fd5b5051101561075f57600080fd5b60048054604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523393810193909352306024840152518392600160a060020a039092169163dd62ed3e9160448083019260209291908290030181600087803b1580156107ce57600080fd5b505af11580156107e2573d6000803e3d6000fd5b505050506040513d60208110156107f857600080fd5b5051101561080557600080fd5b61080e81611e01565b601054610821908263ffffffff61249916565b60105533600090815260116020526040902054610844908263ffffffff6124a616565b336000818152601160209081526040808320949094556004805460065486517f23b872dd00000000000000000000000000000000000000000000000000000000815292830195909552600160a060020a03948516602483015260448201879052945194909316936323b872dd93606480820194918390030190829087803b1580156108ce57600080fd5b505af11580156108e2573d6000803e3d6000fd5b505050506040513d60208110156108f857600080fd5b5051151561090557600080fd5b60408051828152905133917fb7feb6c1d7169f40790388a31c0160d8f962a2b6c31970c28bd8cdfefa25ea29919081900360200190a2506001600255565b600554600160a060020a031681565b600154600160a060020a0316331461096957600080fd5b600160a060020a038116151561097e57600080fd5b6000600160a060020a031681600160a060020a0316634090cb646040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109c757600080fd5b505af11580156109db573d6000803e3d6000fd5b505050506040513d60208110156109f157600080fd5b5051600160a060020a03161415610a0757600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610a8357600080fd5b505af1158015610a97573d6000803e3d6000fd5b505050506040513d6020811015610aad57600080fd5b50516004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550565b60005481565b600754600160a060020a031681565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610b5657600080fd5b505af1158015610b6a573d6000803e3d6000fd5b505050506040513d6040811015610b8057600080fd5b5080516020909101519094509250831515610b9a57610d01565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610bea57600080fd5b505af1158015610bfe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610c2757600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610c5d57600080fd5b82016020810184811115610c7057600080fd5b8151640100000000811182820187101715610c8a57600080fd5b50509291906020018051640100000000811115610ca657600080fd5b82016020810184811115610cb957600080fd5b8151640100000000811182820187101715610cd357600080fd5b50509291905050505050935050509150428263ffffffff1611158015610cfe57508063ffffffff1642105b94505b5050505090565b610d10612f8e565b600154600160a060020a03163314610d2757600080fd5b600254600114610d3657600080fd5b60028055610d426111c2565b1515610d4d57600080fd5b610d5561127b565b8051909150600010610d6657600080fd5b6040805160e060020a6320e1e1d1028152600b6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b158015610dbb57600080fd5b505af4158015610dcf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610df857600080fd5b810190808051640100000000811115610e1057600080fd5b82016020810184811115610e2357600080fd5b8151856020820283011164010000000082111715610e4057600080fd5b50505115159250610e5391505057600080fd5b6040818101516000908152600a60205220805460ff191660011790558051600954610e7d91612499565b600955610e89816124b8565b8051604080519182525133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a2506001600255565b600154600160a060020a03163314610edf57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000908152600e602052604090205490565b600654600160a060020a031681565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610fba57600080fd5b505af1158015610fce573d6000803e3d6000fd5b505050506040513d6040811015610fe457600080fd5b5080516020909101519094509250831580610ffd575082155b1561100757610d01565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561105757600080fd5b505af115801561106b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561109457600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156110ca57600080fd5b820160208101848111156110dd57600080fd5b81516401000000008111828201871017156110f757600080fd5b5050929190602001805164010000000081111561111357600080fd5b8201602081018481111561112657600080fd5b815164010000000081118282018710171561114057600080fd5b50509291905050505050935050509150428263ffffffff161180610cfe575063ffffffff16421015949350505050565b600154600160a060020a031681565b600160a060020a031660009081526011602052604090205490565b60006111ad600b8363ffffffff612c7016565b92915050565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561121957600080fd5b505af115801561122d573d6000803e3d6000fd5b505050506040513d604081101561124357600080fd5b508051602090910151909250905080151561125d57611270565b81158061126d575061126d610f57565b92505b505090565b60085481565b611283612f8e565b60008060008060008060008060006112996111c2565b15156112a457611843565b600354604080517fd6d65f3d0000000000000000000000000000000000000000000000000000000081528151600160a060020a039093169263d6d65f3d926004808401939192918290030181600087803b15801561130157600080fd5b505af1158015611315573d6000803e3d6000fd5b505050506040513d604081101561132b57600080fd5b5051600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151939c50600160a060020a03909216926314f66d349260048082019392918290030181600087803b15801561138c57600080fd5b505af11580156113a0573d6000803e3d6000fd5b505050506040513d60408110156113b657600080fd5b50516003546040805160e060020a632442e1cb028152600481018490529051929a50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561140b57600080fd5b505af115801561141f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561144857600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561147e57600080fd5b8201602081018481111561149157600080fd5b81516401000000008111828201871017156114ab57600080fd5b505092919060200180516401000000008111156114c757600080fd5b820160208101848111156114da57600080fd5b81516401000000008111828201871017156114f457600080fd5b505092919050505050509950505050886000148061151157508888145b61151e5760018903611520565b885b6003546040805160e060020a632442e1cb028152600481018490529051929b50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561157357600080fd5b505af1158015611587573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156115b057600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156115e657600080fd5b820160208101848111156115f957600080fd5b815164010000000081118282018710171561161357600080fd5b5050929190602001805164010000000081111561162f57600080fd5b8201602081018481111561164257600080fd5b815164010000000081118282018710171561165c57600080fd5b50509291905050505050975050965050600a60008a815260200190815260200160002060009054906101000a900460ff169350831561169a57611843565b8892505b600083111561180f576003546040805160e060020a632442e1cb0281526000199095016004860181905290519094600160a060020a0390921691632442e1cb91602480830192600092919082900301818387803b1580156116fe57600080fd5b505af1158015611712573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561173b57600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561177157600080fd5b8201602081018481111561178457600080fd5b815164010000000081118282018710171561179e57600080fd5b505092919060200180516401000000008111156117ba57600080fd5b820160208101848111156117cd57600080fd5b81516401000000008111828201871017156117e757600080fd5b5097995061180898508a97508996505063ffffffff61249916945050505050565b915061169e565b60095461183290611826888563ffffffff61249916565b9063ffffffff6124a616565b8a5260208a0182905260408a018990525b50505050505050505090565b600154600160a060020a0316331461186657600080fd5b600160a060020a038116151561187b57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038116600090815260126020526040808220815160e060020a6320e1e1d10281526004810191909152905160609273__FundAccount___________________________926320e1e1d19260248083019392829003018186803b15801561191657600080fd5b505af415801561192a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561195357600080fd5b81019080805164010000000081111561196b57600080fd5b8201602081018481111561197e57600080fd5b815185602082028301116401000000008211171561199b57600080fd5b50909695505050505050565b600f5481565b600354600160a060020a03163381146119c557600080fd5b600085116119d257600080fd5b600083116119df57600080fd5b600082116119ec57600080fd5b600160a060020a0386161515611a0157600080fd5b600554604080517f7d20abf8000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691637d20abf8916024808201926020929091908290030181600087803b158015611a6857600080fd5b505af1158015611a7c573d6000803e3d6000fd5b505050506040513d6020811015611a9257600080fd5b50511515611a9f57600080fd5b60eb60020a6208aa8902841415611ac25734831115611abd57600080fd5b611c82565b600554604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611b2957600080fd5b505af1158015611b3d573d6000803e3d6000fd5b505050506040513d6020811015611b5357600080fd5b50511515611b6057600080fd5b611b8183611b75600b8763ffffffff612c7016565b9063ffffffff61249916565b6005546040805160e460020a630b12e441028152600481018890529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015611bd257600080fd5b505af1158015611be6573d6000803e3d6000fd5b505050506040513d6020811015611bfc57600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015611c4b57600080fd5b505af1158015611c5f573d6000803e3d6000fd5b505050506040513d6020811015611c7557600080fd5b50511015611c8257600080fd5b600160a060020a038616600090815260116020526040902054611cab908663ffffffff61249916565b600160a060020a0387166000908152601160209081526040808320939093556012905220611ce090858563ffffffff612c8616565b600160a060020a0386166000908152601260205260409020611d129060ea60020a621554d1028463ffffffff612c8616565b600f54611d25908663ffffffff61249916565b600f55611d3a600b858563ffffffff612c8616565b611d55600b60ea60020a621554d1028463ffffffff612c8616565b60408051868152602081018690528082018590529051600160a060020a038816917fe2d0f4d539cb385db666a31aa9b27fd786afc933dc82ca8518d045424d6fa882919081900360600190a2505050505050565b600160a060020a0382166000908152601260205260408120611dd1908363ffffffff612c7016565b9392505050565b600154600160a060020a03163314611def57600080fd5b611df881612cc6565b50565b60105481565b33600090815260126020526040808220815160e060020a6320e1e1d102815260048101919091529051829182918291829173__FundAccount___________________________916320e1e1d19160248083019286929190829003018186803b158015611e6c57600080fd5b505af4158015611e80573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611ea957600080fd5b810190808051640100000000811115611ec157600080fd5b82016020810184811115611ed457600080fd5b8151856020820283011164010000000082111715611ef157600080fd5b50505197505050505b84156124915733600090815260126020526040808220815160e060020a6320e1e1d10281526004810191909152905173__FundAccount___________________________926320e1e1d19260248082019391829003018186803b158015611f6057600080fd5b505af4158015611f74573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611f9d57600080fd5b810190808051640100000000811115611fb557600080fd5b82016020810184811115611fc857600080fd5b8151856020820283011164010000000082111715611fe557600080fd5b50508051600019909901989093508892508210905061200057fe5b60209081029091018101513360009081526012909252604090912090945061202e908563ffffffff612c7016565b925082151561203c57611efa565b336000908152601160205260409020546120599087908590612d44565b91506000821161206857600080fd5b60095461208c90612080600b8763ffffffff612c7016565b9063ffffffff612e6c16565b90506120bd6120a682611826600b8863ffffffff612c7016565b836120b8600b8863ffffffff612c7016565b612d44565b9250600083116120cc57600080fd5b6000848152600e60205260409020546120eb908463ffffffff61249916565b6000858152600e6020908152604080832093909355338252601290522061211990858463ffffffff612e7b16565b60ea60020a621554d10284141561212f57611efa565b60eb60020a6208aa890284146122e257600554604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156121a657600080fd5b505af11580156121ba573d6000803e3d6000fd5b505050506040513d60208110156121d057600080fd5b505115156121dd57600080fd5b6005546040805160e460020a630b12e4410281526004810187905290518592600160a060020a03169163b12e44109160248083019260209291908290030181600087803b15801561222d57600080fd5b505af1158015612241573d6000803e3d6000fd5b505050506040513d602081101561225757600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156122a657600080fd5b505af11580156122ba573d6000803e3d6000fd5b505050506040513d60208110156122d057600080fd5b505110156122dd57600080fd5b6122f0565b30318311156122f057600080fd5b60eb60020a6208aa890284141561233457604051339084156108fc029085906000818181858888f1935050505015801561232e573d6000803e3d6000fd5b50612452565b6005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561238557600080fd5b505af1158015612399573d6000803e3d6000fd5b505050506040513d60208110156123af57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561241b57600080fd5b505af115801561242f573d6000803e3d6000fd5b505050506040513d602081101561244557600080fd5b5051151561245257600080fd5b6040805185815260208101859052815133927fd434f0d1dd08e14b2acdd7a506c6e8b6edaf1a5825d23ca9b5e51a9ad883f71c928290030190a2611efa565b505050505050565b818101828110156111ad57fe5b6000828211156124b257fe5b50900390565b6000806000806000600b73__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561251557600080fd5b505af4158015612529573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561255257600080fd5b81019080805164010000000081111561256a57600080fd5b8201602081018481111561257d57600080fd5b815185602082028301116401000000008211171561259a57600080fd5b50505197505050505b8415612491576040805160e060020a6320e1e1d1028152600b6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b1580156125fe57600080fd5b505af4158015612612573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561263b57600080fd5b81019080805164010000000081111561265357600080fd5b8201602081018481111561266657600080fd5b815185602082028301116401000000008211171561268357600080fd5b50508051600019909901989093508892508210905061269e57fe5b6020908102909101015193506126bb600b8563ffffffff612c7016565b92508215156126c9576125a3565b85516126d6908490612e6c565b9150600082116126e557600080fd5b6127086126ff601054600f546124a690919063ffffffff16565b83600f54612d44565b92506000831161271757600080fd5b6000848152600e6020526040902054612736908463ffffffff61249916565b6000858152600e602052604090205560ea60020a621554d10284141561275b576125a3565b60eb60020a6208aa8902841461290957600554604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b1580156127d257600080fd5b505af11580156127e6573d6000803e3d6000fd5b505050506040513d60208110156127fc57600080fd5b5051151561280957600080fd5b6005546040805160e460020a630b12e4410281526004810187905290518592600160a060020a03169163b12e44109160248083019260209291908290030181600087803b15801561285957600080fd5b505af115801561286d573d6000803e3d6000fd5b505050506040513d602081101561288357600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156128d257600080fd5b505af11580156128e6573d6000803e3d6000fd5b505050506040513d60208110156128fc57600080fd5b5051101561290957600080fd5b60006008541161291a57600061292e565b60085461292e90849063ffffffff612e6c16565b905060006008541115612948576000811161294857600080fd5b60eb60020a6208aa89028414156129e057600081111561299e57600754604051600160a060020a039091169082156108fc029083906000818181858888f1935050505015801561299c573d6000803e3d6000fd5b505b336108fc6129b2858463ffffffff6124a616565b6040518115909202916000818181858888f193505050501580156129da573d6000803e3d6000fd5b50612c31565b6000811115612b0c576005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612a3a57600080fd5b505af1158015612a4e573d6000803e3d6000fd5b505050506040513d6020811015612a6457600080fd5b5051600754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015612ad557600080fd5b505af1158015612ae9573d6000803e3d6000fd5b505050506040513d6020811015612aff57600080fd5b50511515612b0c57600080fd5b6005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612b5d57600080fd5b505af1158015612b71573d6000803e3d6000fd5b505050506040513d6020811015612b8757600080fd5b5051600160a060020a031663a9059cbb33612ba8868563ffffffff6124a616565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612bfa57600080fd5b505af1158015612c0e573d6000803e3d6000fd5b505050506040513d6020811015612c2457600080fd5b50511515612c3157600080fd5b6040805185815260208101859052815133927f17e68c82fdc39ec76fff0be24ead989575d8eec009a729fa4bd738bc1f6a2dbb928290030190a26125a3565b6000908152600291909101602052604090205490565b612c908383612ec7565b6000828152600284016020526040902054612cb1908263ffffffff61249916565b60009283526002909301602052506040902055565b600160a060020a0381161515612cdb57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080808080851515612d5357fe5b871580612d5e575086155b15612d6857612e61565b612d7a6000198863ffffffff612f0e16565b9250828811612daa57612da386612d978a8a63ffffffff612f2316565b9063ffffffff612f0e16565b9450612e61565b85881415612dba57869450612e61565b85871415612dca57879450612e61565b8715612e4b57878311612ddd5782612ddf565b875b9150612df1828863ffffffff612f2316565b9050612e13612e06828863ffffffff612f0e16565b869063ffffffff61249916565b9450612e328682811515612e2357fe5b8691900663ffffffff61249916565b9350612e44888363ffffffff6124a616565b9750612dca565b612e5e612e06858863ffffffff612f0e16565b94505b505050509392505050565b6000611dd183836120b8612f4c565b612e858383612f5e565b1515612e9057600080fd5b80612e9b8484612c70565b1015612ea657600080fd5b6000828152600284016020526040902054612cb1908263ffffffff6124a616565b612ed18282612f5e565b1515612f0a57815460018181018455600084815260208082209093018490558381528185019092526040909120805460ff191690911790555b5050565b60008183811515612f1b57fe5b049392505050565b6000821515612f34575060006111ad565b50818102818382811515612f4457fe5b04146111ad57fe5b6000612f56612f77565b600a0a905090565b6000908152600191909101602052604090205460ff1690565b6000612f81612f89565b600201905090565b600290565b6060604051908101604052806003906020820280388339509192915050565b6000612fb7613003565b82101580156111ad5750612fc9612f4c565b90911115919050565b6000612fdd82612fad565b1515612fe857600080fd5b6111ad612ff3612f89565b8390600a0a63ffffffff612f0e16565b6000905600a165627a7a723058208de91a32092d1f0941348b8b0064a0b6c78b50e07821a1259b8e759a408543450029a165627a7a72305820d00db5fe854556a58fb81cbfdd33b416e2ce807cf717375c920af278fd7abd170029", - "sourceMap": "127:583:10:-;;;254:100;8:9:-1;5:2;;;30:1;27;20:12;5:2;254:100:10;;;;;;;;;;;;;;;;;;;123:7:37;:18;;;333:5:10;:14;;-1:-1:-1;;;;;;333:14:10;-1:-1:-1;;;;;333:14:10;;;;;;;;;127:583;;;;;;;;", - "deployedSourceMap": "127:583:10:-;;;;;;;;;-1:-1:-1;;;127:583:10;;;;;;;;;;;;;;;;;;360:348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;360:348:10;-1:-1:-1;;;;;360:348:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;360:348:10;;;;;;;;;;;;;;53:19:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:37;;;;;;;;;;;;;;;;;;;;360:348:10;459:15;507:7;;535:5;;516:17;;-1:-1:-1;;;;;535:5:10;495:46;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;495:46:10;;;;;;;;;;;;;;;;;-1:-1:-1;495:46:10;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;495:46:10;486:55;;552:6;-1:-1:-1;;;;;552:14:10;;567:4;552:20;;;;;-1:-1:-1;;;552:20:10;;;;;;;-1:-1:-1;;;;;552:20:10;-1:-1:-1;;;;;552:20:10;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;552:20:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;552:20:10;;;;582:6;-1:-1:-1;;;;;582:23:10;;606:13;582:38;;;;;-1:-1:-1;;;582:38:10;;;;;;;-1:-1:-1;;;;;582:38:10;-1:-1:-1;;;;;582:38:10;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;582:38:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;630:36:10;;;;;;655:10;630:36;;;;;;-1:-1:-1;;;;;630:24:10;;;-1:-1:-1;630:24:10;;-1:-1:-1;630:36:10;;;;;-1:-1:-1;;630:36:10;;;;;;;-1:-1:-1;630:24:10;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;630:36:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;682:19:10;;-1:-1:-1;;;;;682:19:10;;;-1:-1:-1;682:19:10;;-1:-1:-1;682:19:10;;;360:348;;;;;:::o;53:19:37:-;;;;:::o;127:583:10:-;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"./IW12FundFactory.sol\";\nimport \"../W12Fund.sol\";\nimport \"../../versioning/Versionable.sol\";\n\ncontract W12FundFactory is Versionable, IW12FundFactory {\n IRates rates;\n\n event FundCreated(address indexed fund);\n\n constructor(uint version, IRates _rates) Versionable(version) public {\n rates = _rates;\n }\n\n function createFund(address swap, address serviceWallet, uint trancheFeePercent) external returns (IW12Fund result) {\n result = new W12Fund(version, trancheFeePercent, rates);\n\n result.setSwap(swap);\n result.setServiceWallet(serviceWallet);\n result.transferOwnership(msg.sender);\n\n emit FundCreated(result);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50604051604080612580833981016040528051602090910151600091825560018054600160a060020a031916600160a060020a0390921691909117905561252390819061005d90396000f3006080604052600436106100325763ffffffff60e060020a60003504166317444626811461003757806354fd4d501461007d575b600080fd5b34801561004357600080fd5b50610061600160a060020a03600435811690602435166044356100a4565b60408051600160a060020a039092168252519081900360200190f35b34801561008957600080fd5b50610092610431565b60408051918252519081900360200190f35b600080546001548390600160a060020a03166100be610437565b9283526020830191909152600160a060020a03166040808301919091525190819003606001906000f0801580156100f9573d6000803e3d6000fd5b50905080600160a060020a031663acb3c073856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561015757600080fd5b505af115801561016b573d6000803e3d6000fd5b5050505080600160a060020a03166323bffccc846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156101ca57600080fd5b505af11580156101de573d6000803e3d6000fd5b5050604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063704802759250602480830192600092919082900301818387803b15801561024257600080fd5b505af1158015610256573d6000803e3d6000fd5b5050604080517f3bcdb1640000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0385169350633bcdb1649250602480830192600092919082900301818387803b1580156102ba57600080fd5b505af11580156102ce573d6000803e3d6000fd5b5050604080517f2348238c0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0385169350632348238c9250602480830192600092919082900301818387803b15801561033257600080fd5b505af1158015610346573d6000803e3d6000fd5b5050505080600160a060020a0316638bad0c0a6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561038857600080fd5b505af115801561039c573d6000803e3d6000fd5b5050505080600160a060020a031663d0934d616040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbeacbaab8887097be64d667b2a06e62db7e00cc1429a8ebe02535e97a6cc8fcd9150600090a29392505050565b60005481565b6040516120b08061044883390190560060806040523480156200001157600080fd5b50604051606080620020b083398101604090815281516020830151919092015182620000463364010000000062000243810204565b6200005a3364010000000062000295810204565b60025560038054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a160016004908155604080517f520b00660000000000000000000000000000000000000000000000000000000081529182018490525173__Percent_______________________________9163520b0066916024808301926020929190829003018186803b1580156200011f57600080fd5b505af415801562000134573d6000803e3d6000fd5b505050506040513d60208110156200014b57600080fd5b50518015620001f5575060648273__Percent_______________________________630fe9114790916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015620001c557600080fd5b505af4158015620001da573d6000803e3d6000fd5b505050506040513d6020811015620001f157600080fd5b5051105b15156200020157600080fd5b600160a060020a03811615156200021757600080fd5b600a9190915560078054600160a060020a031916600160a060020a03909216919091179055506200037a565b6200025e60008264010000000062001c8d620002e782021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b620002b060018264010000000062001c8d620002e782021704565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600160a060020a0381161515620002fd57600080fd5b62000312828264010000000062000342810204565b156200031d57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200035a57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b611d26806200038a6000396000f3006080604052600436106101b35763ffffffff60e060020a600035041663015dd28c81146101b85780630babd8641461021d5780631785f53c1461024e57806319ae48ed146102715780632348238c1461029857806323585f96146102b957806323bffccc146102e557806324d7806c14610306578063278ecde1146103275780633bcdb1641461033f57806343f48fbd14610360578063483a20b21461037557806354fd4d50146103965780635641f3c3146103ab5780636b90d6d2146103c05780636ebc0af1146103d557806370480275146103ea5780637a1c2da31461040b5780638119c065146104235780638429fffe146104385780638bad0c0a1461044d5780639124a789146104625780639ab269a6146104835780639c1e03a01461049b5780639e80baac146104b0578063a328665a146104c5578063a3b768e1146104da578063acb3c07314610527578063adb9dd0814610548578063b4105a3e14610569578063c6dbdf611461057e578063d0934d6114610593578063d0baf2f5146105a8578063d155790b146105c8578063d8e9ce64146105e9578063f206cb641461060a578063fb2814c41461062e575b600080fd5b3480156101c457600080fd5b506101cd610643565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102095781810151838201526020016101f1565b505050509050019250505060405180910390f35b34801561022957600080fd5b50610232610742565b60408051600160a060020a039092168252519081900360200190f35b34801561025a57600080fd5b5061026f600160a060020a0360043516610751565b005b34801561027d57600080fd5b50610286610771565b60408051918252519081900360200190f35b3480156102a457600080fd5b5061026f600160a060020a0360043516610777565b3480156102c557600080fd5b506102d160043561080a565b604080519115158252519081900360200190f35b3480156102f157600080fd5b5061026f600160a060020a036004351661081f565b34801561031257600080fd5b506102d1600160a060020a0360043516610877565b34801561033357600080fd5b5061026f60043561088f565b34801561034b57600080fd5b5061026f600160a060020a0360043516610b59565b34801561036c57600080fd5b50610232610b76565b34801561038157600080fd5b5061026f600160a060020a0360043516610b85565b3480156103a257600080fd5b50610286610d0e565b3480156103b757600080fd5b50610232610d14565b3480156103cc57600080fd5b506102d1610d23565b3480156103e157600080fd5b5061026f610f4e565b3480156103f657600080fd5b5061026f600160a060020a036004351661111f565b34801561041757600080fd5b5061028660043561113c565b34801561042f57600080fd5b5061023261114e565b34801561044457600080fd5b506102d161115d565b34801561045957600080fd5b5061026f61138c565b34801561046e57600080fd5b50610286600160a060020a0360043516611397565b34801561048f57600080fd5b506102866004356113b2565b3480156104a757600080fd5b5061023261145a565b3480156104bc57600080fd5b506102d1611469565b3480156104d157600080fd5b5061028661151c565b3480156104e657600080fd5b506104ef611522565b6040518082606080838360005b838110156105145781810151838201526020016104fc565b5050505090500191505060405180910390f35b34801561053357600080fd5b5061026f600160a060020a03600435166115e1565b34801561055457600080fd5b506101cd600160a060020a0360043516611639565b34801561057557600080fd5b5061028661174c565b34801561058a57600080fd5b50610232611752565b34801561059f57600080fd5b5061026f611761565b61026f600160a060020a036004351660243560443560643560843561176a565b3480156105d457600080fd5b5061026f600160a060020a0360043516611841565b3480156105f557600080fd5b506102d1600160a060020a036004351661185e565b34801561061657600080fd5b50610286600160a060020a0360043516602435611871565b34801561063a57600080fd5b5061028661192c565b604080517f20e1e1d1000000000000000000000000000000000000000000000000000000008152600d6004820152905160609173__FundAccount___________________________916320e1e1d191602480820192600092909190829003018186803b1580156106b257600080fd5b505af41580156106c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156106ef57600080fd5b81019080805164010000000081111561070757600080fd5b8201602081018481111561071a57600080fd5b815185602082028301116401000000008211171561073757600080fd5b509094505050505090565b600654600160a060020a031681565b61075a33610877565b151561076557600080fd5b61076e81611932565b50565b600c5490565b600354600160a060020a0316331461078e57600080fd5b600160a060020a03811615156107a357600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b6000908152600b602052604090205460ff1690565b61082833610877565b151561083357600080fd5b600160a060020a038116151561084857600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000610889818363ffffffff61197a16565b92915050565b60048054600101908190556108a2610d23565b15156108ad57600080fd5b8115156108b957600080fd5b336000908152601360205260409020548211156108d557600080fd5b600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015290518492600160a060020a0316916370a082319160248083019260209291908290030181600087803b15801561093a57600080fd5b505af115801561094e573d6000803e3d6000fd5b505050506040513d602081101561096457600080fd5b5051101561097157600080fd5b600654604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518492600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b505050506040513d6020811015610a0657600080fd5b50511015610a1357600080fd5b610a1c826119b1565b601254610a2f908363ffffffff611a5016565b60125533600090815260136020526040902054610a52908363ffffffff611a6916565b3360008181526013602090815260408083209490945560065460085485517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810195909552600160a060020a0390811660248601526044850188905294519416936323b872dd93606480820194918390030190829087803b158015610ada57600080fd5b505af1158015610aee573d6000803e3d6000fd5b505050506040513d6020811015610b0457600080fd5b50511515610b1157600080fd5b60408051838152905133917fb7feb6c1d7169f40790388a31c0160d8f962a2b6c31970c28bd8cdfefa25ea29919081900360200190a26004548114610b5557600080fd5b5050565b610b6233610877565b1515610b6d57600080fd5b61076e81611a80565b600754600160a060020a031681565b610b8e33610877565b1515610b9957600080fd5b600160a060020a0381161515610bae57600080fd5b6000600160a060020a031681600160a060020a0316634090cb646040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610bf757600080fd5b505af1158015610c0b573d6000803e3d6000fd5b505050506040513d6020811015610c2157600080fd5b5051600160a060020a03161415610c3757600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610cb357600080fd5b505af1158015610cc7573d6000803e3d6000fd5b505050506040513d6020811015610cdd57600080fd5b50516006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550565b60025481565b600954600160a060020a031681565b600554604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610d8657600080fd5b505af1158015610d9a573d6000803e3d6000fd5b505050506040513d6040811015610db057600080fd5b5080516020909101519094509250831515610dca57610f47565b600554604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610e3057600080fd5b505af1158015610e44573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610e6d57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610ea357600080fd5b82016020810184811115610eb657600080fd5b8151640100000000811182820187101715610ed057600080fd5b50509291906020018051640100000000811115610eec57600080fd5b82016020810184811115610eff57600080fd5b8151640100000000811182820187101715610f1957600080fd5b50509291905050505050935050509150428263ffffffff1611158015610f4457508063ffffffff1642105b94505b5050505090565b610f56611cdb565b610f5f3361185e565b1515610f6a57600080fd5b6004805460010190819055610f7d611469565b1515610f8857600080fd5b610f90611522565b8051909250600010610fa157600080fd5b604080517f20e1e1d1000000000000000000000000000000000000000000000000000000008152600d6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b15801561100c57600080fd5b505af4158015611020573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561104957600080fd5b81019080805164010000000081111561106157600080fd5b8201602081018481111561107457600080fd5b815185602082028301116401000000008211171561109157600080fd5b505051151592506110a491505057600080fd5b6040828101516000908152600b60205220805460ff191660011790558151600c546110ce91611a50565b600c556110da82611ac8565b8151604080519182525133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a26004548114610b5557600080fd5b61112833610877565b151561113357600080fd5b61076e81611bb1565b60009081526010602052604090205490565b600854600160a060020a031681565b600554604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b1580156111c057600080fd5b505af11580156111d4573d6000803e3d6000fd5b505050506040513d60408110156111ea57600080fd5b5080516020909101519094509250831580611203575082155b1561120d57610f47565b600554604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561127357600080fd5b505af1158015611287573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156112b057600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156112e657600080fd5b820160208101848111156112f957600080fd5b815164010000000081118282018710171561131357600080fd5b5050929190602001805164010000000081111561132f57600080fd5b8201602081018481111561134257600080fd5b815164010000000081118282018710171561135c57600080fd5b50509291905050505050935050509150428263ffffffff161180610f44575063ffffffff16421015949350505050565b61139533611932565b565b600160a060020a031660009081526013602052604090205490565b604080517f75dff138000000000000000000000000000000000000000000000000000000008152600d600482015260248101839052905160009173__FundAccount___________________________916375dff13891604480820192602092909190829003018186803b15801561142857600080fd5b505af415801561143c573d6000803e3d6000fd5b505050506040513d602081101561145257600080fd5b505192915050565b600554600160a060020a031681565b6000806000600560009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b1580156114c057600080fd5b505af11580156114d4573d6000803e3d6000fd5b505050506040513d60408110156114ea57600080fd5b508051602090910151909250905080151561150457611517565b811580611514575061151461115d565b92505b505090565b600a5481565b61152a611cdb565b73__Fund__________________________________63c4466008600b61154e611469565b6005546040805160e060020a63ffffffff871602815260048101949094529115156024840152600160a060020a03166044830152516064808301926060929190829003018186803b1580156115a257600080fd5b505af41580156115b6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060608110156115db57600080fd5b50905090565b6115ea33610877565b15156115f557600080fd5b600160a060020a038116151561160a57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03811660009081526014602052604080822081517f20e1e1d10000000000000000000000000000000000000000000000000000000081526004810191909152905160609273__FundAccount___________________________926320e1e1d19260248083019392829003018186803b1580156116bb57600080fd5b505af41580156116cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156116f857600080fd5b81019080805164010000000081111561171057600080fd5b8201602081018481111561172357600080fd5b815185602082028301116401000000008211171561174057600080fd5b50909695505050505050565b60115490565b600354600160a060020a031690565b61139533611bf9565b600554600160a060020a0316331461178157600080fd5b600754604080517f46d1230a000000000000000000000000000000000000000000000000000000008152600b6004820152600160a060020a03808916602483015260448201889052606482018790526084820186905260a4820185905290921660c48301525173__Fund__________________________________916346d1230a9160e4808301926000929190829003018186803b15801561182257600080fd5b505af4158015611836573d6000803e3d6000fd5b505050505050505050565b61184a33610877565b151561185557600080fd5b61076e81611bf9565b600061088960018363ffffffff61197a16565b600160a060020a038216600090815260146020908152604080832081517f75dff138000000000000000000000000000000000000000000000000000000008152600481019190915260248101859052905173__FundAccount___________________________926375dff1389260448082019391829003018186803b1580156118f957600080fd5b505af415801561190d573d6000803e3d6000fd5b505050506040513d602081101561192357600080fd5b50519392505050565b60125490565b61194360008263ffffffff611c4116565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a038216151561199157600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600754604080517fe0650238000000000000000000000000000000000000000000000000000000008152600b600482015260248101849052600160a060020a0390921660448301525173__Fund__________________________________9163e0650238916064808301926000929190829003018186803b158015611a3557600080fd5b505af4158015611a49573d6000803e3d6000fd5b5050505050565b600082820183811015611a6257600080fd5b9392505050565b60008083831115611a7957600080fd5b5050900390565b611a9160018263ffffffff611c8d16565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600a546009546007546040517f69b3e2d2000000000000000000000000000000000000000000000000000000008152600b6004820181815273__Fund__________________________________956369b3e2d295929488949193600160a060020a039081169391169160240185606080838360005b83811015611b55578181015183820152602001611b3d565b5050505090500184815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019550505050505060006040518083038186803b158015611a3557600080fd5b611bc260008263ffffffff611c8d16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b611c0a60018263ffffffff611c4116565b604051600160a060020a038216907fa3bfdef3d8149bacf15b7b64199fca8228c0fd4f8fcdd11cc7871829baf319c390600090a250565b600160a060020a0381161515611c5657600080fd5b611c60828261197a565b1515611c6b57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0381161515611ca257600080fd5b611cac828261197a565b15611cb657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60606040519081016040528060039060208202803883395091929150505600a165627a7a7230582023843bc1390d15a563641dfde08a8e626b30a42f639a2a8ca5c9866e9667be490029a165627a7a72305820642d9025fa1e92038b67d59b0f0b4da1188c5aea216be3c668824c43fc4724e50029", + "deployedBytecode": "0x6080604052600436106100325763ffffffff60e060020a60003504166317444626811461003757806354fd4d501461007d575b600080fd5b34801561004357600080fd5b50610061600160a060020a03600435811690602435166044356100a4565b60408051600160a060020a039092168252519081900360200190f35b34801561008957600080fd5b50610092610431565b60408051918252519081900360200190f35b600080546001548390600160a060020a03166100be610437565b9283526020830191909152600160a060020a03166040808301919091525190819003606001906000f0801580156100f9573d6000803e3d6000fd5b50905080600160a060020a031663acb3c073856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561015757600080fd5b505af115801561016b573d6000803e3d6000fd5b5050505080600160a060020a03166323bffccc846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156101ca57600080fd5b505af11580156101de573d6000803e3d6000fd5b5050604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063704802759250602480830192600092919082900301818387803b15801561024257600080fd5b505af1158015610256573d6000803e3d6000fd5b5050604080517f3bcdb1640000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0385169350633bcdb1649250602480830192600092919082900301818387803b1580156102ba57600080fd5b505af11580156102ce573d6000803e3d6000fd5b5050604080517f2348238c0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0385169350632348238c9250602480830192600092919082900301818387803b15801561033257600080fd5b505af1158015610346573d6000803e3d6000fd5b5050505080600160a060020a0316638bad0c0a6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561038857600080fd5b505af115801561039c573d6000803e3d6000fd5b5050505080600160a060020a031663d0934d616040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbeacbaab8887097be64d667b2a06e62db7e00cc1429a8ebe02535e97a6cc8fcd9150600090a29392505050565b60005481565b6040516120b08061044883390190560060806040523480156200001157600080fd5b50604051606080620020b083398101604090815281516020830151919092015182620000463364010000000062000243810204565b6200005a3364010000000062000295810204565b60025560038054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a160016004908155604080517f520b00660000000000000000000000000000000000000000000000000000000081529182018490525173__Percent_______________________________9163520b0066916024808301926020929190829003018186803b1580156200011f57600080fd5b505af415801562000134573d6000803e3d6000fd5b505050506040513d60208110156200014b57600080fd5b50518015620001f5575060648273__Percent_______________________________630fe9114790916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015620001c557600080fd5b505af4158015620001da573d6000803e3d6000fd5b505050506040513d6020811015620001f157600080fd5b5051105b15156200020157600080fd5b600160a060020a03811615156200021757600080fd5b600a9190915560078054600160a060020a031916600160a060020a03909216919091179055506200037a565b6200025e60008264010000000062001c8d620002e782021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b620002b060018264010000000062001c8d620002e782021704565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600160a060020a0381161515620002fd57600080fd5b62000312828264010000000062000342810204565b156200031d57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200035a57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b611d26806200038a6000396000f3006080604052600436106101b35763ffffffff60e060020a600035041663015dd28c81146101b85780630babd8641461021d5780631785f53c1461024e57806319ae48ed146102715780632348238c1461029857806323585f96146102b957806323bffccc146102e557806324d7806c14610306578063278ecde1146103275780633bcdb1641461033f57806343f48fbd14610360578063483a20b21461037557806354fd4d50146103965780635641f3c3146103ab5780636b90d6d2146103c05780636ebc0af1146103d557806370480275146103ea5780637a1c2da31461040b5780638119c065146104235780638429fffe146104385780638bad0c0a1461044d5780639124a789146104625780639ab269a6146104835780639c1e03a01461049b5780639e80baac146104b0578063a328665a146104c5578063a3b768e1146104da578063acb3c07314610527578063adb9dd0814610548578063b4105a3e14610569578063c6dbdf611461057e578063d0934d6114610593578063d0baf2f5146105a8578063d155790b146105c8578063d8e9ce64146105e9578063f206cb641461060a578063fb2814c41461062e575b600080fd5b3480156101c457600080fd5b506101cd610643565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102095781810151838201526020016101f1565b505050509050019250505060405180910390f35b34801561022957600080fd5b50610232610742565b60408051600160a060020a039092168252519081900360200190f35b34801561025a57600080fd5b5061026f600160a060020a0360043516610751565b005b34801561027d57600080fd5b50610286610771565b60408051918252519081900360200190f35b3480156102a457600080fd5b5061026f600160a060020a0360043516610777565b3480156102c557600080fd5b506102d160043561080a565b604080519115158252519081900360200190f35b3480156102f157600080fd5b5061026f600160a060020a036004351661081f565b34801561031257600080fd5b506102d1600160a060020a0360043516610877565b34801561033357600080fd5b5061026f60043561088f565b34801561034b57600080fd5b5061026f600160a060020a0360043516610b59565b34801561036c57600080fd5b50610232610b76565b34801561038157600080fd5b5061026f600160a060020a0360043516610b85565b3480156103a257600080fd5b50610286610d0e565b3480156103b757600080fd5b50610232610d14565b3480156103cc57600080fd5b506102d1610d23565b3480156103e157600080fd5b5061026f610f4e565b3480156103f657600080fd5b5061026f600160a060020a036004351661111f565b34801561041757600080fd5b5061028660043561113c565b34801561042f57600080fd5b5061023261114e565b34801561044457600080fd5b506102d161115d565b34801561045957600080fd5b5061026f61138c565b34801561046e57600080fd5b50610286600160a060020a0360043516611397565b34801561048f57600080fd5b506102866004356113b2565b3480156104a757600080fd5b5061023261145a565b3480156104bc57600080fd5b506102d1611469565b3480156104d157600080fd5b5061028661151c565b3480156104e657600080fd5b506104ef611522565b6040518082606080838360005b838110156105145781810151838201526020016104fc565b5050505090500191505060405180910390f35b34801561053357600080fd5b5061026f600160a060020a03600435166115e1565b34801561055457600080fd5b506101cd600160a060020a0360043516611639565b34801561057557600080fd5b5061028661174c565b34801561058a57600080fd5b50610232611752565b34801561059f57600080fd5b5061026f611761565b61026f600160a060020a036004351660243560443560643560843561176a565b3480156105d457600080fd5b5061026f600160a060020a0360043516611841565b3480156105f557600080fd5b506102d1600160a060020a036004351661185e565b34801561061657600080fd5b50610286600160a060020a0360043516602435611871565b34801561063a57600080fd5b5061028661192c565b604080517f20e1e1d1000000000000000000000000000000000000000000000000000000008152600d6004820152905160609173__FundAccount___________________________916320e1e1d191602480820192600092909190829003018186803b1580156106b257600080fd5b505af41580156106c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156106ef57600080fd5b81019080805164010000000081111561070757600080fd5b8201602081018481111561071a57600080fd5b815185602082028301116401000000008211171561073757600080fd5b509094505050505090565b600654600160a060020a031681565b61075a33610877565b151561076557600080fd5b61076e81611932565b50565b600c5490565b600354600160a060020a0316331461078e57600080fd5b600160a060020a03811615156107a357600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b6000908152600b602052604090205460ff1690565b61082833610877565b151561083357600080fd5b600160a060020a038116151561084857600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000610889818363ffffffff61197a16565b92915050565b60048054600101908190556108a2610d23565b15156108ad57600080fd5b8115156108b957600080fd5b336000908152601360205260409020548211156108d557600080fd5b600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015290518492600160a060020a0316916370a082319160248083019260209291908290030181600087803b15801561093a57600080fd5b505af115801561094e573d6000803e3d6000fd5b505050506040513d602081101561096457600080fd5b5051101561097157600080fd5b600654604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518492600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b505050506040513d6020811015610a0657600080fd5b50511015610a1357600080fd5b610a1c826119b1565b601254610a2f908363ffffffff611a5016565b60125533600090815260136020526040902054610a52908363ffffffff611a6916565b3360008181526013602090815260408083209490945560065460085485517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810195909552600160a060020a0390811660248601526044850188905294519416936323b872dd93606480820194918390030190829087803b158015610ada57600080fd5b505af1158015610aee573d6000803e3d6000fd5b505050506040513d6020811015610b0457600080fd5b50511515610b1157600080fd5b60408051838152905133917fb7feb6c1d7169f40790388a31c0160d8f962a2b6c31970c28bd8cdfefa25ea29919081900360200190a26004548114610b5557600080fd5b5050565b610b6233610877565b1515610b6d57600080fd5b61076e81611a80565b600754600160a060020a031681565b610b8e33610877565b1515610b9957600080fd5b600160a060020a0381161515610bae57600080fd5b6000600160a060020a031681600160a060020a0316634090cb646040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610bf757600080fd5b505af1158015610c0b573d6000803e3d6000fd5b505050506040513d6020811015610c2157600080fd5b5051600160a060020a03161415610c3757600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610cb357600080fd5b505af1158015610cc7573d6000803e3d6000fd5b505050506040513d6020811015610cdd57600080fd5b50516006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550565b60025481565b600954600160a060020a031681565b600554604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610d8657600080fd5b505af1158015610d9a573d6000803e3d6000fd5b505050506040513d6040811015610db057600080fd5b5080516020909101519094509250831515610dca57610f47565b600554604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610e3057600080fd5b505af1158015610e44573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610e6d57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610ea357600080fd5b82016020810184811115610eb657600080fd5b8151640100000000811182820187101715610ed057600080fd5b50509291906020018051640100000000811115610eec57600080fd5b82016020810184811115610eff57600080fd5b8151640100000000811182820187101715610f1957600080fd5b50509291905050505050935050509150428263ffffffff1611158015610f4457508063ffffffff1642105b94505b5050505090565b610f56611cdb565b610f5f3361185e565b1515610f6a57600080fd5b6004805460010190819055610f7d611469565b1515610f8857600080fd5b610f90611522565b8051909250600010610fa157600080fd5b604080517f20e1e1d1000000000000000000000000000000000000000000000000000000008152600d6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b15801561100c57600080fd5b505af4158015611020573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561104957600080fd5b81019080805164010000000081111561106157600080fd5b8201602081018481111561107457600080fd5b815185602082028301116401000000008211171561109157600080fd5b505051151592506110a491505057600080fd5b6040828101516000908152600b60205220805460ff191660011790558151600c546110ce91611a50565b600c556110da82611ac8565b8151604080519182525133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a26004548114610b5557600080fd5b61112833610877565b151561113357600080fd5b61076e81611bb1565b60009081526010602052604090205490565b600854600160a060020a031681565b600554604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b1580156111c057600080fd5b505af11580156111d4573d6000803e3d6000fd5b505050506040513d60408110156111ea57600080fd5b5080516020909101519094509250831580611203575082155b1561120d57610f47565b600554604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561127357600080fd5b505af1158015611287573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156112b057600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156112e657600080fd5b820160208101848111156112f957600080fd5b815164010000000081118282018710171561131357600080fd5b5050929190602001805164010000000081111561132f57600080fd5b8201602081018481111561134257600080fd5b815164010000000081118282018710171561135c57600080fd5b50509291905050505050935050509150428263ffffffff161180610f44575063ffffffff16421015949350505050565b61139533611932565b565b600160a060020a031660009081526013602052604090205490565b604080517f75dff138000000000000000000000000000000000000000000000000000000008152600d600482015260248101839052905160009173__FundAccount___________________________916375dff13891604480820192602092909190829003018186803b15801561142857600080fd5b505af415801561143c573d6000803e3d6000fd5b505050506040513d602081101561145257600080fd5b505192915050565b600554600160a060020a031681565b6000806000600560009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b1580156114c057600080fd5b505af11580156114d4573d6000803e3d6000fd5b505050506040513d60408110156114ea57600080fd5b508051602090910151909250905080151561150457611517565b811580611514575061151461115d565b92505b505090565b600a5481565b61152a611cdb565b73__Fund__________________________________63c4466008600b61154e611469565b6005546040805160e060020a63ffffffff871602815260048101949094529115156024840152600160a060020a03166044830152516064808301926060929190829003018186803b1580156115a257600080fd5b505af41580156115b6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060608110156115db57600080fd5b50905090565b6115ea33610877565b15156115f557600080fd5b600160a060020a038116151561160a57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03811660009081526014602052604080822081517f20e1e1d10000000000000000000000000000000000000000000000000000000081526004810191909152905160609273__FundAccount___________________________926320e1e1d19260248083019392829003018186803b1580156116bb57600080fd5b505af41580156116cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156116f857600080fd5b81019080805164010000000081111561171057600080fd5b8201602081018481111561172357600080fd5b815185602082028301116401000000008211171561174057600080fd5b50909695505050505050565b60115490565b600354600160a060020a031690565b61139533611bf9565b600554600160a060020a0316331461178157600080fd5b600754604080517f46d1230a000000000000000000000000000000000000000000000000000000008152600b6004820152600160a060020a03808916602483015260448201889052606482018790526084820186905260a4820185905290921660c48301525173__Fund__________________________________916346d1230a9160e4808301926000929190829003018186803b15801561182257600080fd5b505af4158015611836573d6000803e3d6000fd5b505050505050505050565b61184a33610877565b151561185557600080fd5b61076e81611bf9565b600061088960018363ffffffff61197a16565b600160a060020a038216600090815260146020908152604080832081517f75dff138000000000000000000000000000000000000000000000000000000008152600481019190915260248101859052905173__FundAccount___________________________926375dff1389260448082019391829003018186803b1580156118f957600080fd5b505af415801561190d573d6000803e3d6000fd5b505050506040513d602081101561192357600080fd5b50519392505050565b60125490565b61194360008263ffffffff611c4116565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a038216151561199157600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600754604080517fe0650238000000000000000000000000000000000000000000000000000000008152600b600482015260248101849052600160a060020a0390921660448301525173__Fund__________________________________9163e0650238916064808301926000929190829003018186803b158015611a3557600080fd5b505af4158015611a49573d6000803e3d6000fd5b5050505050565b600082820183811015611a6257600080fd5b9392505050565b60008083831115611a7957600080fd5b5050900390565b611a9160018263ffffffff611c8d16565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600a546009546007546040517f69b3e2d2000000000000000000000000000000000000000000000000000000008152600b6004820181815273__Fund__________________________________956369b3e2d295929488949193600160a060020a039081169391169160240185606080838360005b83811015611b55578181015183820152602001611b3d565b5050505090500184815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019550505050505060006040518083038186803b158015611a3557600080fd5b611bc260008263ffffffff611c8d16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b611c0a60018263ffffffff611c4116565b604051600160a060020a038216907fa3bfdef3d8149bacf15b7b64199fca8228c0fd4f8fcdd11cc7871829baf319c390600090a250565b600160a060020a0381161515611c5657600080fd5b611c60828261197a565b1515611c6b57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0381161515611ca257600080fd5b611cac828261197a565b15611cb657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60606040519081016040528060039060208202803883395091929150505600a165627a7a7230582023843bc1390d15a563641dfde08a8e626b30a42f639a2a8ca5c9866e9667be490029a165627a7a72305820642d9025fa1e92038b67d59b0f0b4da1188c5aea216be3c668824c43fc4724e50029", + "sourceMap": "127:780:16:-;;;254:100;8:9:-1;5:2;;;30:1;27;20:12;5:2;254:100:16;;;;;;;;;;;;;;;;;;;123:7:48;:18;;;333:5:16;:14;;-1:-1:-1;;;;;;333:14:16;-1:-1:-1;;;;;333:14:16;;;;;;;;;127:780;;;;;;;;", + "deployedSourceMap": "127:780:16:-;;;;;;;;;-1:-1:-1;;;127:780:16;;;;;;;;;;;;;;;;;;360:545;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;360:545:16;-1:-1:-1;;;;;360:545:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;360:545:16;;;;;;;;;;;;;;53:19:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:48;;;;;;;;;;;;;;;;;;;;360:545:16;459:15;507:7;;535:5;;516:17;;-1:-1:-1;;;;;535:5:16;495:46;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;495:46:16;;;;;;;;;;;;;;;;;-1:-1:-1;495:46:16;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;495:46:16;486:55;;552:6;-1:-1:-1;;;;;552:14:16;;567:4;552:20;;;;;-1:-1:-1;;;552:20:16;;;;;;;-1:-1:-1;;;;;552:20:16;-1:-1:-1;;;;;552:20:16;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;552:20:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;552:20:16;;;;582:6;-1:-1:-1;;;;;582:23:16;;606:13;582:38;;;;;-1:-1:-1;;;582:38:16;;;;;;;-1:-1:-1;;;;;582:38:16;-1:-1:-1;;;;;582:38:16;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;582:38:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;677:27:16;;;;;;693:10;677:27;;;;;;-1:-1:-1;;;;;677:15:16;;;-1:-1:-1;677:15:16;;-1:-1:-1;677:27:16;;;;;-1:-1:-1;;677:27:16;;;;;;;-1:-1:-1;677:15:16;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;677:27:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;714:34:16;;;;;;737:10;714:34;;;;;;-1:-1:-1;;;;;714:22:16;;;-1:-1:-1;714:22:16;;-1:-1:-1;714:34:16;;;;;-1:-1:-1;;714:34:16;;;;;;;-1:-1:-1;714:22:16;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;714:34:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;758:34:16;;;;;;781:10;758:34;;;;;;-1:-1:-1;;;;;758:22:16;;;-1:-1:-1;758:22:16;;-1:-1:-1;758:34:16;;;;;-1:-1:-1;;758:34:16;;;;;;;-1:-1:-1;758:22:16;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;758:34:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;758:34:16;;;;802:6;-1:-1:-1;;;;;802:20:16;;:22;;;;;-1:-1:-1;;;802:22:16;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;802:22:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;802:22:16;;;;834:6;-1:-1:-1;;;;;834:27:16;;:29;;;;;-1:-1:-1;;;834:29:16;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;834:29:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;879:19:16;;-1:-1:-1;;;;;879:19:16;;;-1:-1:-1;879:19:16;;-1:-1:-1;879:19:16;;;360:545;;;;;:::o;53:19:48:-;;;;:::o;127:780:16:-;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"./IW12FundFactory.sol\";\nimport \"../W12Fund.sol\";\nimport \"../../versioning/Versionable.sol\";\n\ncontract W12FundFactory is Versionable, IW12FundFactory {\n IRates rates;\n\n event FundCreated(address indexed fund);\n\n constructor(uint version, IRates _rates) Versionable(version) public {\n rates = _rates;\n }\n\n function createFund(address swap, address serviceWallet, uint trancheFeePercent) external returns (IW12Fund result) {\n result = new W12Fund(version, trancheFeePercent, rates);\n\n result.setSwap(swap);\n result.setServiceWallet(serviceWallet);\n\n // transfer all permissions to sender\n result.addAdmin(msg.sender);\n result.addProjectOwner(msg.sender);\n result.transferPrimary(msg.sender);\n result.renounceAdmin();\n result.renounceProjectOwner();\n\n emit FundCreated(result);\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/crowdsale/factories/W12FundFactory.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/W12FundFactory.sol", "exportedSymbols": { "W12FundFactory": [ - 4791 + 4420 ] }, - "id": 4792, + "id": 4421, "nodeType": "SourceUnit", "nodes": [ { - "id": 4718, + "id": 4323, "literals": [ "solidity", "^", @@ -95,38 +95,38 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:10" + "src": "0:24:16" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", "file": "./IW12FundFactory.sol", - "id": 4719, + "id": 4324, "nodeType": "ImportDirective", - "scope": 4792, - "sourceUnit": 4578, - "src": "26:31:10", + "scope": 4421, + "sourceUnit": 4100, + "src": "26:31:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", "file": "../W12Fund.sol", - "id": 4720, + "id": 4325, "nodeType": "ImportDirective", - "scope": 4792, - "sourceUnit": 4536, - "src": "58:24:10", + "scope": 4421, + "sourceUnit": 4057, + "src": "58:24:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "../../versioning/Versionable.sol", - "id": 4721, + "id": 4326, "nodeType": "ImportDirective", - "scope": 4792, - "sourceUnit": 9517, - "src": "83:42:10", + "scope": 4421, + "sourceUnit": 11834, + "src": "83:42:16", "symbolAliases": [], "unitAlias": "" }, @@ -136,78 +136,78 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4722, + "id": 4327, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "154:11:10", + "referencedDeclaration": 11833, + "src": "154:11:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", + "typeIdentifier": "t_contract$_Versionable_$11833", "typeString": "contract Versionable" } }, - "id": 4723, + "id": 4328, "nodeType": "InheritanceSpecifier", - "src": "154:11:10" + "src": "154:11:16" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 4724, + "id": 4329, "name": "IW12FundFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4577, - "src": "167:15:10", + "referencedDeclaration": 4099, + "src": "167:15:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" } }, - "id": 4725, + "id": 4330, "nodeType": "InheritanceSpecifier", - "src": "167:15:10" + "src": "167:15:16" } ], "contractDependencies": [ - 4535, - 4577, - 9516 + 4056, + 4099, + 11833 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 4791, + "id": 4420, "linearizedBaseContracts": [ - 4791, - 4577, - 9516 + 4420, + 4099, + 11833 ], "name": "W12FundFactory", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 4727, + "id": 4332, "name": "rates", "nodeType": "VariableDeclaration", - "scope": 4791, - "src": "189:12:10", + "scope": 4420, + "src": "189:12:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 4726, + "id": 4331, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "189:6:10", + "referencedDeclaration": 10014, + "src": "189:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -217,21 +217,21 @@ { "anonymous": false, "documentation": null, - "id": 4731, + "id": 4336, "name": "FundCreated", "nodeType": "EventDefinition", "parameters": { - "id": 4730, + "id": 4335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4729, + "id": 4334, "indexed": true, "name": "fund", "nodeType": "VariableDeclaration", - "scope": 4731, - "src": "226:20:10", + "scope": 4336, + "src": "226:20:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -239,10 +239,10 @@ "typeString": "address" }, "typeName": { - "id": 4728, + "id": 4333, "name": "address", "nodeType": "ElementaryTypeName", - "src": "226:7:10", + "src": "226:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -252,34 +252,34 @@ "visibility": "internal" } ], - "src": "225:22:10" + "src": "225:22:16" }, - "src": "208:40:10" + "src": "208:40:16" }, { "body": { - "id": 4745, + "id": 4350, "nodeType": "Block", - "src": "323:31:10", + "src": "323:31:16", "statements": [ { "expression": { "argumentTypes": null, - "id": 4743, + "id": 4348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4741, + "id": 4346, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4727, - "src": "333:5:10", + "referencedDeclaration": 4332, + "src": "333:5:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -287,31 +287,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4742, + "id": 4347, "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4735, - "src": "341:6:10", + "referencedDeclaration": 4340, + "src": "341:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "src": "333:14:10", + "src": "333:14:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 4744, + "id": 4349, "nodeType": "ExpressionStatement", - "src": "333:14:10" + "src": "333:14:16" } ] }, "documentation": null, - "id": 4746, + "id": 4351, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -320,49 +320,49 @@ "arguments": [ { "argumentTypes": null, - "id": 4738, + "id": 4343, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4733, - "src": "307:7:10", + "referencedDeclaration": 4338, + "src": "307:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 4739, + "id": 4344, "modifierName": { "argumentTypes": null, - "id": 4737, + "id": 4342, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "295:11:10", + "referencedDeclaration": 11833, + "src": "295:11:16", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "295:20:10" + "src": "295:20:16" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 4736, + "id": 4341, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4733, + "id": 4338, "name": "version", "nodeType": "VariableDeclaration", - "scope": 4746, - "src": "266:12:10", + "scope": 4351, + "src": "266:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -370,10 +370,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4732, + "id": 4337, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "266:4:10", + "src": "266:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -384,26 +384,26 @@ }, { "constant": false, - "id": 4735, + "id": 4340, "name": "_rates", "nodeType": "VariableDeclaration", - "scope": 4746, - "src": "280:13:10", + "scope": 4351, + "src": "280:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 4734, + "id": 4339, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "280:6:10", + "referencedDeclaration": 10014, + "src": "280:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -411,45 +411,45 @@ "visibility": "internal" } ], - "src": "265:29:10" + "src": "265:29:16" }, "payable": false, "returnParameters": { - "id": 4740, + "id": 4345, "nodeType": "ParameterList", "parameters": [], - "src": "323:0:10" + "src": "323:0:16" }, - "scope": 4791, - "src": "254:100:10", + "scope": 4420, + "src": "254:100:16", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4789, + "id": 4418, "nodeType": "Block", - "src": "476:232:10", + "src": "476:429:16", "statements": [ { "expression": { "argumentTypes": null, - "id": 4764, + "id": 4369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4757, + "id": 4362, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4755, - "src": "486:6:10", + "referencedDeclaration": 4360, + "src": "486:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -460,12 +460,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4760, + "id": 4365, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9505, - "src": "507:7:10", + "referencedDeclaration": 11822, + "src": "507:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -473,12 +473,12 @@ }, { "argumentTypes": null, - "id": 4761, + "id": 4366, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4752, - "src": "516:17:10", + "referencedDeclaration": 4357, + "src": "516:17:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -486,14 +486,14 @@ }, { "argumentTypes": null, - "id": 4762, + "id": 4367, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4727, - "src": "535:5:10", + "referencedDeclaration": 4332, + "src": "535:5:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } } @@ -509,35 +509,35 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } ], - "id": 4759, + "id": 4364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "495:11:10", + "src": "495:11:16", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_uint256_$_t_contract$_IRates_$7279_$returns$_t_contract$_W12Fund_$4535_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_uint256_$_t_contract$_IRates_$10014_$returns$_t_contract$_W12Fund_$4056_$", "typeString": "function (uint256,uint256,contract IRates) returns (contract W12Fund)" }, "typeName": { "contractScope": null, - "id": 4758, + "id": 4363, "name": "W12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4535, - "src": "499:7:10", + "referencedDeclaration": 4056, + "src": "499:7:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", + "typeIdentifier": "t_contract$_W12Fund_$4056", "typeString": "contract W12Fund" } } }, - "id": 4763, + "id": 4368, "isConstant": false, "isLValue": false, "isPure": false, @@ -545,21 +545,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "495:46:10", + "src": "495:46:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", + "typeIdentifier": "t_contract$_W12Fund_$4056", "typeString": "contract W12Fund" } }, - "src": "486:55:10", + "src": "486:55:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, - "id": 4765, + "id": 4370, "nodeType": "ExpressionStatement", - "src": "486:55:10" + "src": "486:55:16" }, { "expression": { @@ -567,12 +567,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4769, + "id": 4374, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4748, - "src": "567:4:10", + "referencedDeclaration": 4353, + "src": "567:4:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -588,32 +588,32 @@ ], "expression": { "argumentTypes": null, - "id": 4766, + "id": 4371, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4755, - "src": "552:6:10", + "referencedDeclaration": 4360, + "src": "552:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, - "id": 4768, + "id": 4373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setSwap", "nodeType": "MemberAccess", - "referencedDeclaration": 1242, - "src": "552:14:10", + "referencedDeclaration": 1784, + "src": "552:14:16", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 4770, + "id": 4375, "isConstant": false, "isLValue": false, "isPure": false, @@ -621,15 +621,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "552:20:10", + "src": "552:20:16", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4771, + "id": 4376, "nodeType": "ExpressionStatement", - "src": "552:20:10" + "src": "552:20:16" }, { "expression": { @@ -637,12 +637,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4775, + "id": 4380, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4750, - "src": "606:13:10", + "referencedDeclaration": 4355, + "src": "606:13:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -658,32 +658,32 @@ ], "expression": { "argumentTypes": null, - "id": 4772, + "id": 4377, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4755, - "src": "582:6:10", + "referencedDeclaration": 4360, + "src": "582:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, - "id": 4774, + "id": 4379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setServiceWallet", "nodeType": "MemberAccess", - "referencedDeclaration": 1237, - "src": "582:23:10", + "referencedDeclaration": 1779, + "src": "582:23:16", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 4776, + "id": 4381, "isConstant": false, "isLValue": false, "isPure": false, @@ -691,15 +691,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "582:38:10", + "src": "582:38:16", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4777, + "id": 4382, "nodeType": "ExpressionStatement", - "src": "582:38:10" + "src": "582:38:16" }, { "expression": { @@ -709,18 +709,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4781, + "id": 4386, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "655:3:10", + "referencedDeclaration": 13441, + "src": "693:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4782, + "id": 4387, "isConstant": false, "isLValue": false, "isPure": false, @@ -728,7 +728,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "655:10:10", + "src": "693:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -744,32 +744,32 @@ ], "expression": { "argumentTypes": null, - "id": 4778, + "id": 4383, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4755, - "src": "630:6:10", + "referencedDeclaration": 4360, + "src": "677:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, - "id": 4780, + "id": 4385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transferOwnership", + "memberName": "addAdmin", "nodeType": "MemberAccess", - "referencedDeclaration": 1247, - "src": "630:24:10", + "referencedDeclaration": 1366, + "src": "677:15:16", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 4783, + "id": 4388, "isConstant": false, "isLValue": false, "isPure": false, @@ -777,15 +777,289 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "630:36:10", + "src": "677:27:16", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4784, + "id": 4389, "nodeType": "ExpressionStatement", - "src": "630:36:10" + "src": "677:27:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "737:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "737:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4390, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4360, + "src": "714:6:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addProjectOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1412, + "src": "714:22:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "714:34:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4396, + "nodeType": "ExpressionStatement", + "src": "714:34:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4400, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "781:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "781:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4397, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4360, + "src": "758:6:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferPrimary", + "nodeType": "MemberAccess", + "referencedDeclaration": 1789, + "src": "758:22:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "758:34:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4403, + "nodeType": "ExpressionStatement", + "src": "758:34:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4404, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4360, + "src": "802:6:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "renounceAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1369, + "src": "802:20:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 4407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "802:22:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4408, + "nodeType": "ExpressionStatement", + "src": "802:22:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4409, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4360, + "src": "834:6:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "renounceProjectOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1415, + "src": "834:27:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 4412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "834:29:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4413, + "nodeType": "ExpressionStatement", + "src": "834:29:16" }, { "eventCall": { @@ -793,14 +1067,14 @@ "arguments": [ { "argumentTypes": null, - "id": 4786, + "id": 4415, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4755, - "src": "694:6:10", + "referencedDeclaration": 4360, + "src": "891:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } } @@ -808,22 +1082,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } ], - "id": 4785, + "id": 4414, "name": "FundCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4731, - "src": "682:11:10", + "referencedDeclaration": 4336, + "src": "879:11:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 4787, + "id": 4416, "isConstant": false, "isLValue": false, "isPure": false, @@ -831,20 +1105,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "682:19:10", + "src": "879:19:16", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4788, + "id": 4417, "nodeType": "EmitStatement", - "src": "677:24:10" + "src": "874:24:16" } ] }, "documentation": null, - "id": 4790, + "id": 4419, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -852,16 +1126,16 @@ "name": "createFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 4753, + "id": 4358, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4748, + "id": 4353, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "380:12:10", + "scope": 4419, + "src": "380:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -869,10 +1143,10 @@ "typeString": "address" }, "typeName": { - "id": 4747, + "id": 4352, "name": "address", "nodeType": "ElementaryTypeName", - "src": "380:7:10", + "src": "380:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -883,11 +1157,11 @@ }, { "constant": false, - "id": 4750, + "id": 4355, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "394:21:10", + "scope": 4419, + "src": "394:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -895,10 +1169,10 @@ "typeString": "address" }, "typeName": { - "id": 4749, + "id": 4354, "name": "address", "nodeType": "ElementaryTypeName", - "src": "394:7:10", + "src": "394:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -909,11 +1183,11 @@ }, { "constant": false, - "id": 4752, + "id": 4357, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "417:22:10", + "scope": 4419, + "src": "417:22:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -921,10 +1195,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4751, + "id": 4356, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "417:4:10", + "src": "417:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -934,35 +1208,35 @@ "visibility": "internal" } ], - "src": "379:61:10" + "src": "379:61:16" }, "payable": false, "returnParameters": { - "id": 4756, + "id": 4361, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4755, + "id": 4360, "name": "result", "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "459:15:10", + "scope": 4419, + "src": "459:15:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 4754, + "id": 4359, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "459:8:10", + "referencedDeclaration": 1803, + "src": "459:8:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -970,33 +1244,33 @@ "visibility": "internal" } ], - "src": "458:17:10" + "src": "458:17:16" }, - "scope": 4791, - "src": "360:348:10", + "scope": 4420, + "src": "360:545:16", "stateMutability": "nonpayable", - "superFunction": 4576, + "superFunction": 4098, "visibility": "external" } ], - "scope": 4792, - "src": "127:583:10" + "scope": 4421, + "src": "127:780:16" } ], - "src": "0:711:10" + "src": "0:908:16" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/W12FundFactory.sol", "exportedSymbols": { "W12FundFactory": [ - 4791 + 4420 ] }, - "id": 4792, + "id": 4421, "nodeType": "SourceUnit", "nodes": [ { - "id": 4718, + "id": 4323, "literals": [ "solidity", "^", @@ -1004,38 +1278,38 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:10" + "src": "0:24:16" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", "file": "./IW12FundFactory.sol", - "id": 4719, + "id": 4324, "nodeType": "ImportDirective", - "scope": 4792, - "sourceUnit": 4578, - "src": "26:31:10", + "scope": 4421, + "sourceUnit": 4100, + "src": "26:31:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", "file": "../W12Fund.sol", - "id": 4720, + "id": 4325, "nodeType": "ImportDirective", - "scope": 4792, - "sourceUnit": 4536, - "src": "58:24:10", + "scope": 4421, + "sourceUnit": 4057, + "src": "58:24:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "../../versioning/Versionable.sol", - "id": 4721, + "id": 4326, "nodeType": "ImportDirective", - "scope": 4792, - "sourceUnit": 9517, - "src": "83:42:10", + "scope": 4421, + "sourceUnit": 11834, + "src": "83:42:16", "symbolAliases": [], "unitAlias": "" }, @@ -1045,78 +1319,78 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4722, + "id": 4327, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "154:11:10", + "referencedDeclaration": 11833, + "src": "154:11:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", + "typeIdentifier": "t_contract$_Versionable_$11833", "typeString": "contract Versionable" } }, - "id": 4723, + "id": 4328, "nodeType": "InheritanceSpecifier", - "src": "154:11:10" + "src": "154:11:16" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 4724, + "id": 4329, "name": "IW12FundFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4577, - "src": "167:15:10", + "referencedDeclaration": 4099, + "src": "167:15:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4577", + "typeIdentifier": "t_contract$_IW12FundFactory_$4099", "typeString": "contract IW12FundFactory" } }, - "id": 4725, + "id": 4330, "nodeType": "InheritanceSpecifier", - "src": "167:15:10" + "src": "167:15:16" } ], "contractDependencies": [ - 4535, - 4577, - 9516 + 4056, + 4099, + 11833 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 4791, + "id": 4420, "linearizedBaseContracts": [ - 4791, - 4577, - 9516 + 4420, + 4099, + 11833 ], "name": "W12FundFactory", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 4727, + "id": 4332, "name": "rates", "nodeType": "VariableDeclaration", - "scope": 4791, - "src": "189:12:10", + "scope": 4420, + "src": "189:12:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 4726, + "id": 4331, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "189:6:10", + "referencedDeclaration": 10014, + "src": "189:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -1126,21 +1400,21 @@ { "anonymous": false, "documentation": null, - "id": 4731, + "id": 4336, "name": "FundCreated", "nodeType": "EventDefinition", "parameters": { - "id": 4730, + "id": 4335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4729, + "id": 4334, "indexed": true, "name": "fund", "nodeType": "VariableDeclaration", - "scope": 4731, - "src": "226:20:10", + "scope": 4336, + "src": "226:20:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1148,10 +1422,10 @@ "typeString": "address" }, "typeName": { - "id": 4728, + "id": 4333, "name": "address", "nodeType": "ElementaryTypeName", - "src": "226:7:10", + "src": "226:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1161,34 +1435,34 @@ "visibility": "internal" } ], - "src": "225:22:10" + "src": "225:22:16" }, - "src": "208:40:10" + "src": "208:40:16" }, { "body": { - "id": 4745, + "id": 4350, "nodeType": "Block", - "src": "323:31:10", + "src": "323:31:16", "statements": [ { "expression": { "argumentTypes": null, - "id": 4743, + "id": 4348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4741, + "id": 4346, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4727, - "src": "333:5:10", + "referencedDeclaration": 4332, + "src": "333:5:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -1196,31 +1470,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4742, + "id": 4347, "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4735, - "src": "341:6:10", + "referencedDeclaration": 4340, + "src": "341:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "src": "333:14:10", + "src": "333:14:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 4744, + "id": 4349, "nodeType": "ExpressionStatement", - "src": "333:14:10" + "src": "333:14:16" } ] }, "documentation": null, - "id": 4746, + "id": 4351, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1229,49 +1503,49 @@ "arguments": [ { "argumentTypes": null, - "id": 4738, + "id": 4343, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4733, - "src": "307:7:10", + "referencedDeclaration": 4338, + "src": "307:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 4739, + "id": 4344, "modifierName": { "argumentTypes": null, - "id": 4737, + "id": 4342, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "295:11:10", + "referencedDeclaration": 11833, + "src": "295:11:16", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "295:20:10" + "src": "295:20:16" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 4736, + "id": 4341, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4733, + "id": 4338, "name": "version", "nodeType": "VariableDeclaration", - "scope": 4746, - "src": "266:12:10", + "scope": 4351, + "src": "266:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1279,10 +1553,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4732, + "id": 4337, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "266:4:10", + "src": "266:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1293,26 +1567,26 @@ }, { "constant": false, - "id": 4735, + "id": 4340, "name": "_rates", "nodeType": "VariableDeclaration", - "scope": 4746, - "src": "280:13:10", + "scope": 4351, + "src": "280:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 4734, + "id": 4339, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "280:6:10", + "referencedDeclaration": 10014, + "src": "280:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -1320,45 +1594,45 @@ "visibility": "internal" } ], - "src": "265:29:10" + "src": "265:29:16" }, "payable": false, "returnParameters": { - "id": 4740, + "id": 4345, "nodeType": "ParameterList", "parameters": [], - "src": "323:0:10" + "src": "323:0:16" }, - "scope": 4791, - "src": "254:100:10", + "scope": 4420, + "src": "254:100:16", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4789, + "id": 4418, "nodeType": "Block", - "src": "476:232:10", + "src": "476:429:16", "statements": [ { "expression": { "argumentTypes": null, - "id": 4764, + "id": 4369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4757, + "id": 4362, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4755, - "src": "486:6:10", + "referencedDeclaration": 4360, + "src": "486:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -1369,12 +1643,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4760, + "id": 4365, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9505, - "src": "507:7:10", + "referencedDeclaration": 11822, + "src": "507:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1382,12 +1656,12 @@ }, { "argumentTypes": null, - "id": 4761, + "id": 4366, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4752, - "src": "516:17:10", + "referencedDeclaration": 4357, + "src": "516:17:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1395,14 +1669,14 @@ }, { "argumentTypes": null, - "id": 4762, + "id": 4367, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4727, - "src": "535:5:10", + "referencedDeclaration": 4332, + "src": "535:5:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } } @@ -1418,35 +1692,35 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } ], - "id": 4759, + "id": 4364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "495:11:10", + "src": "495:11:16", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_uint256_$_t_contract$_IRates_$7279_$returns$_t_contract$_W12Fund_$4535_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_uint256_$_t_contract$_IRates_$10014_$returns$_t_contract$_W12Fund_$4056_$", "typeString": "function (uint256,uint256,contract IRates) returns (contract W12Fund)" }, "typeName": { "contractScope": null, - "id": 4758, + "id": 4363, "name": "W12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4535, - "src": "499:7:10", + "referencedDeclaration": 4056, + "src": "499:7:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", + "typeIdentifier": "t_contract$_W12Fund_$4056", "typeString": "contract W12Fund" } } }, - "id": 4763, + "id": 4368, "isConstant": false, "isLValue": false, "isPure": false, @@ -1454,21 +1728,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "495:46:10", + "src": "495:46:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", + "typeIdentifier": "t_contract$_W12Fund_$4056", "typeString": "contract W12Fund" } }, - "src": "486:55:10", + "src": "486:55:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, - "id": 4765, + "id": 4370, "nodeType": "ExpressionStatement", - "src": "486:55:10" + "src": "486:55:16" }, { "expression": { @@ -1476,12 +1750,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4769, + "id": 4374, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4748, - "src": "567:4:10", + "referencedDeclaration": 4353, + "src": "567:4:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1497,32 +1771,32 @@ ], "expression": { "argumentTypes": null, - "id": 4766, + "id": 4371, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4755, - "src": "552:6:10", + "referencedDeclaration": 4360, + "src": "552:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, - "id": 4768, + "id": 4373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setSwap", "nodeType": "MemberAccess", - "referencedDeclaration": 1242, - "src": "552:14:10", + "referencedDeclaration": 1784, + "src": "552:14:16", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 4770, + "id": 4375, "isConstant": false, "isLValue": false, "isPure": false, @@ -1530,15 +1804,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "552:20:10", + "src": "552:20:16", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4771, + "id": 4376, "nodeType": "ExpressionStatement", - "src": "552:20:10" + "src": "552:20:16" }, { "expression": { @@ -1546,12 +1820,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4775, + "id": 4380, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4750, - "src": "606:13:10", + "referencedDeclaration": 4355, + "src": "606:13:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1567,32 +1841,32 @@ ], "expression": { "argumentTypes": null, - "id": 4772, + "id": 4377, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4755, - "src": "582:6:10", + "referencedDeclaration": 4360, + "src": "582:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, - "id": 4774, + "id": 4379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setServiceWallet", "nodeType": "MemberAccess", - "referencedDeclaration": 1237, - "src": "582:23:10", + "referencedDeclaration": 1779, + "src": "582:23:16", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 4776, + "id": 4381, "isConstant": false, "isLValue": false, "isPure": false, @@ -1600,15 +1874,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "582:38:10", + "src": "582:38:16", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4777, + "id": 4382, "nodeType": "ExpressionStatement", - "src": "582:38:10" + "src": "582:38:16" }, { "expression": { @@ -1618,18 +1892,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4781, + "id": 4386, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "655:3:10", + "referencedDeclaration": 13441, + "src": "693:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4782, + "id": 4387, "isConstant": false, "isLValue": false, "isPure": false, @@ -1637,7 +1911,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "655:10:10", + "src": "693:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1653,32 +1927,32 @@ ], "expression": { "argumentTypes": null, - "id": 4778, + "id": 4383, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4755, - "src": "630:6:10", + "referencedDeclaration": 4360, + "src": "677:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, - "id": 4780, + "id": 4385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transferOwnership", + "memberName": "addAdmin", "nodeType": "MemberAccess", - "referencedDeclaration": 1247, - "src": "630:24:10", + "referencedDeclaration": 1366, + "src": "677:15:16", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 4783, + "id": 4388, "isConstant": false, "isLValue": false, "isPure": false, @@ -1686,15 +1960,289 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "630:36:10", + "src": "677:27:16", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4784, + "id": 4389, "nodeType": "ExpressionStatement", - "src": "630:36:10" + "src": "677:27:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "737:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "737:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4390, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4360, + "src": "714:6:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addProjectOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1412, + "src": "714:22:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "714:34:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4396, + "nodeType": "ExpressionStatement", + "src": "714:34:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4400, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "781:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "781:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4397, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4360, + "src": "758:6:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferPrimary", + "nodeType": "MemberAccess", + "referencedDeclaration": 1789, + "src": "758:22:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "758:34:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4403, + "nodeType": "ExpressionStatement", + "src": "758:34:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4404, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4360, + "src": "802:6:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "renounceAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1369, + "src": "802:20:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 4407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "802:22:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4408, + "nodeType": "ExpressionStatement", + "src": "802:22:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4409, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4360, + "src": "834:6:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 4411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "renounceProjectOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1415, + "src": "834:27:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 4412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "834:29:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4413, + "nodeType": "ExpressionStatement", + "src": "834:29:16" }, { "eventCall": { @@ -1702,14 +2250,14 @@ "arguments": [ { "argumentTypes": null, - "id": 4786, + "id": 4415, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4755, - "src": "694:6:10", + "referencedDeclaration": 4360, + "src": "891:6:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } } @@ -1717,22 +2265,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } ], - "id": 4785, + "id": 4414, "name": "FundCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4731, - "src": "682:11:10", + "referencedDeclaration": 4336, + "src": "879:11:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 4787, + "id": 4416, "isConstant": false, "isLValue": false, "isPure": false, @@ -1740,20 +2288,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "682:19:10", + "src": "879:19:16", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4788, + "id": 4417, "nodeType": "EmitStatement", - "src": "677:24:10" + "src": "874:24:16" } ] }, "documentation": null, - "id": 4790, + "id": 4419, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1761,16 +2309,16 @@ "name": "createFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 4753, + "id": 4358, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4748, + "id": 4353, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "380:12:10", + "scope": 4419, + "src": "380:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1778,10 +2326,10 @@ "typeString": "address" }, "typeName": { - "id": 4747, + "id": 4352, "name": "address", "nodeType": "ElementaryTypeName", - "src": "380:7:10", + "src": "380:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1792,11 +2340,11 @@ }, { "constant": false, - "id": 4750, + "id": 4355, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "394:21:10", + "scope": 4419, + "src": "394:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1804,10 +2352,10 @@ "typeString": "address" }, "typeName": { - "id": 4749, + "id": 4354, "name": "address", "nodeType": "ElementaryTypeName", - "src": "394:7:10", + "src": "394:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1818,11 +2366,11 @@ }, { "constant": false, - "id": 4752, + "id": 4357, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "417:22:10", + "scope": 4419, + "src": "417:22:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1830,10 +2378,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4751, + "id": 4356, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "417:4:10", + "src": "417:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1843,35 +2391,35 @@ "visibility": "internal" } ], - "src": "379:61:10" + "src": "379:61:16" }, "payable": false, "returnParameters": { - "id": 4756, + "id": 4361, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4755, + "id": 4360, "name": "result", "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "459:15:10", + "scope": 4419, + "src": "459:15:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 4754, + "id": 4359, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1261, - "src": "459:8:10", + "referencedDeclaration": 1803, + "src": "459:8:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$1261", + "typeIdentifier": "t_contract$_IW12Fund_$1803", "typeString": "contract IW12Fund" } }, @@ -1879,20 +2427,20 @@ "visibility": "internal" } ], - "src": "458:17:10" + "src": "458:17:16" }, - "scope": 4791, - "src": "360:348:10", + "scope": 4420, + "src": "360:545:16", "stateMutability": "nonpayable", - "superFunction": 4576, + "superFunction": 4098, "visibility": "external" } ], - "scope": 4792, - "src": "127:583:10" + "scope": 4421, + "src": "127:780:16" } ], - "src": "0:711:10" + "src": "0:908:16" }, "compiler": { "name": "solc", @@ -1900,14 +2448,89 @@ }, "networks": { "4": { - "events": {}, + "events": { + "0xe2d0f4d539cb385db666a31aa9b27fd786afc933dc82ca8518d045424d6fa882": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "cost", + "type": "uint256" + } + ], + "name": "FundsReceived", + "type": "event" + }, + "0xd434f0d1dd08e14b2acdd7a506c6e8b6edaf1a5825d23ca9b5e51a9ad883f71c": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "AssetRefunded", + "type": "event" + }, + "0x17e68c82fdc39ec76fff0be24ead989575d8eec009a729fa4bd738bc1f6a2dbb": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "TrancheTransferred", + "type": "event" + } + }, "links": { - "FundAccount": "0x2fe4ce4bcaf46c1fd0772f6ec0f13b5eff901a89" + "FundAccount": "0x27bd1f295f0fa80072dfb5214fb12b88518e7041", + "Utils": "0x9666c128e3ab46e2e2480fa50e5294c54dad5621", + "Percent": "0x04596c9a67ad5870686616d58c2a8198f8b94b34", + "Fund": "0x4a4c642901cad1f377af52374cc46ee880b15ad3" }, - "address": "0x0b198991e51e68eb29ff2111e0cb3485792e3eb0", - "transactionHash": "0x45f31ef61ed213e97d4be32194919e05fa6889d66d30217e29335e5821538dae" + "address": "0xa3f15154ef5a090b4c4b2f53ddc35f23164e61e5", + "transactionHash": "0x91aae665ba73fa5cc5d060ae607d6dea3d1f949d50d6d9816011be6ef17f1e69" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:55:06.472Z" + "updatedAt": "2018-12-06T13:19:18.243Z" } \ No newline at end of file diff --git a/build/contracts/W12FundStub.json b/build/contracts/W12FundStub.json index 0c22f14f..454acc3a 100644 --- a/build/contracts/W12FundStub.json +++ b/build/contracts/W12FundStub.json @@ -29,6 +29,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -43,11 +57,25 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [ { - "name": "", + "name": "milestoneIndex", "type": "uint256" } ], @@ -76,6 +104,25 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ @@ -90,6 +137,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -171,8 +232,13 @@ }, { "constant": false, - "inputs": [], - "name": "renounceOwnership", + "inputs": [ + { + "name": "_account", + "type": "address" + } + ], + "name": "addAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -226,17 +292,12 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], + "name": "renounceAdmin", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { @@ -380,6 +441,29 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [ @@ -411,22 +495,32 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "_investor", + "name": "_account", "type": "address" - }, + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ { - "name": "_symbol", - "type": "bytes32" + "name": "account", + "type": "address" } ], - "name": "getInvestorFundedAmount", + "name": "isProjectOwner", "outputs": [ { "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, @@ -434,17 +528,26 @@ "type": "function" }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "_newOwner", + "name": "_investor", "type": "address" + }, + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "getInvestorFundedAmount", + "outputs": [ + { + "name": "", + "type": "uint256" } ], - "name": "transferOwnership", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { @@ -606,16 +709,28 @@ "name": "TrancheReleased", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "PrimaryTransferred", + "type": "event" + }, { "anonymous": false, "inputs": [ { "indexed": true, - "name": "previousOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipRenounced", + "name": "ProjectOwnerAdded", "type": "event" }, { @@ -623,16 +738,35 @@ "inputs": [ { "indexed": true, - "name": "previousOwner", + "name": "account", "type": "address" - }, + } + ], + "name": "ProjectOwnerRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "account", + "type": "address" + } + ], + "name": "AdminAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": true, - "name": "newOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "AdminRemoved", "type": "event" }, { @@ -654,24 +788,24 @@ "type": "function" } ], - "bytecode": "0x608060405260016002553480156200001657600080fd5b5060405160e0806200354083398101604090815281516020830151918301516060840151608085015160a086015160c090960151600085905560018054600160a060020a0319163317905593959293919290918682826200008582640100000000620032876200013982021704565b8015620000aa57506064620000a883640100000000620032ac6200017682021704565b105b1515620000b657600080fd5b600160a060020a0381161515620000cc57600080fd5b60058054600160a060020a0319908116600160a060020a03938416179091556003805482169a83169a909a17909955600680548a16988216989098179097555050600480548716948616949094179093556008556007805490941692169190911790915550620002229050565b60006200014e640100000000620001c8810204565b82101580156200017057506200016c640100000000620001cd810204565b8211155b92915050565b60006200018c8264010000000062000139810204565b15156200019857600080fd5b62000170620001af640100000000620001ea810204565b8390600a0a640100000000620031e8620001ef82021704565b600090565b6000620001e264010000000062000205810204565b600a0a905090565b600290565b60008183811515620001fd57fe5b049392505050565b60006200021a640100000000620001ea810204565b600201905090565b61330e80620002326000396000f3006080604052600436106101715763ffffffff60e060020a600035041663015dd28c81146101735780630babd864146101d857806319ae48ed1461020957806323585f961461023057806323bffccc1461025c578063278ecde11461027d57806343f48fbd14610295578063483a20b2146102aa5780634992a352146102cb57806354fd4d50146102e65780635641f3c3146102fb5780636b90d6d2146103105780636ebc0af114610325578063715018a61461033a5780637a1c2da31461034f5780638119c065146103675780638429fffe1461037c5780638da5cb5b146103915780639124a789146103a65780639ab269a6146103c75780639c1e03a0146103df5780639e80baac146103f4578063a328665a14610409578063a3b768e11461041e578063acb3c0731461046b578063adb9dd081461048c578063b4105a3e146104ad578063d0baf2f5146104c2578063f206cb64146104e2578063f2fde38b14610506578063fb2814c414610527575b005b34801561017f57600080fd5b5061018861053c565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101c45781810151838201526020016101ac565b505050509050019250505060405180910390f35b3480156101e457600080fd5b506101ed610623565b60408051600160a060020a039092168252519081900360200190f35b34801561021557600080fd5b5061021e610632565b60408051918252519081900360200190f35b34801561023c57600080fd5b50610248600435610638565b604080519115158252519081900360200190f35b34801561026857600080fd5b50610171600160a060020a036004351661064d565b34801561028957600080fd5b506101716004356106a8565b3480156102a157600080fd5b506101ed610964565b3480156102b657600080fd5b50610171600160a060020a0360043516610973565b3480156102d757600080fd5b50610171600435602435610aff565b3480156102f257600080fd5b5061021e610e0b565b34801561030757600080fd5b506101ed610e11565b34801561031c57600080fd5b50610248610e20565b34801561033157600080fd5b50610171611035565b34801561034657600080fd5b506101716111f5565b34801561035b57600080fd5b5061021e600435611263565b34801561037357600080fd5b506101ed611275565b34801561038857600080fd5b50610248611284565b34801561039d57600080fd5b506101ed61149d565b3480156103b257600080fd5b5061021e600160a060020a03600435166114ac565b3480156103d357600080fd5b5061021e6004356114c7565b3480156103eb57600080fd5b506101ed6114e0565b34801561040057600080fd5b506102486114ef565b34801561041557600080fd5b5061021e6115a2565b34801561042a57600080fd5b506104336115a8565b6040518082606080838360005b83811015610458578181015183820152602001610440565b5050505090500191505060405180910390f35b34801561047757600080fd5b50610171600160a060020a0360043516611b7c565b34801561049857600080fd5b50610188600160a060020a0360043516611bd7565b3480156104b957600080fd5b5061021e611cd4565b610171600160a060020a0360043516602435604435606435608435611cda565b3480156104ee57600080fd5b5061021e600160a060020a03600435166024356120b4565b34801561051257600080fd5b50610171600160a060020a03600435166120e3565b34801561053357600080fd5b5061021e612106565b6060600b73__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561059357600080fd5b505af41580156105a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156105d057600080fd5b8101908080516401000000008111156105e857600080fd5b820160208101848111156105fb57600080fd5b815185602082028301116401000000008211171561061857600080fd5b509094505050505090565b600454600160a060020a031681565b60095481565b600a6020526000908152604090205460ff1681565b600154600160a060020a0316331461066457600080fd5b600160a060020a038116151561067957600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6002546001146106b757600080fd5b600280556106c3610e20565b15156106ce57600080fd5b8015156106da57600080fd5b336000908152601160205260409020548111156106f657600080fd5b600480546040805160e060020a6370a082310281523393810193909352518392600160a060020a03909216916370a082319160248083019260209291908290030181600087803b15801561074957600080fd5b505af115801561075d573d6000803e3d6000fd5b505050506040513d602081101561077357600080fd5b5051101561078057600080fd5b60048054604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523393810193909352306024840152518392600160a060020a039092169163dd62ed3e9160448083019260209291908290030181600087803b1580156107ef57600080fd5b505af1158015610803573d6000803e3d6000fd5b505050506040513d602081101561081957600080fd5b5051101561082657600080fd5b61082f8161210c565b601054610842908263ffffffff61278e16565b60105533600090815260116020526040902054610865908263ffffffff61279b16565b336000818152601160209081526040808320949094556004805460065486517f23b872dd00000000000000000000000000000000000000000000000000000000815292830195909552600160a060020a03948516602483015260448201879052945194909316936323b872dd93606480820194918390030190829087803b1580156108ef57600080fd5b505af1158015610903573d6000803e3d6000fd5b505050506040513d602081101561091957600080fd5b5051151561092657600080fd5b60408051828152905133917fb7feb6c1d7169f40790388a31c0160d8f962a2b6c31970c28bd8cdfefa25ea29919081900360200190a2506001600255565b600554600160a060020a031681565b600154600160a060020a0316331461098a57600080fd5b600160a060020a038116151561099f57600080fd5b6000600160a060020a031681600160a060020a0316634090cb646040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109e857600080fd5b505af11580156109fc573d6000803e3d6000fd5b505050506040513d6020811015610a1257600080fd5b5051600160a060020a03161415610a2857600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610aa457600080fd5b505af1158015610ab8573d6000803e3d6000fd5b505050506040513d6020811015610ace57600080fd5b50516004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550565b60eb60020a6208aa8902821415610b51573031811115610b1e57600080fd5b604051339082156108fc029083906000818181858888f19350505050158015610b4b573d6000803e3d6000fd5b50610e07565b60ea60020a621554d1028214610e07576005546040805160e060020a63cfec719f028152600481018590529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015610bb257600080fd5b505af1158015610bc6573d6000803e3d6000fd5b505050506040513d6020811015610bdc57600080fd5b50511515610be957600080fd5b6005546040805160e460020a630b12e4410281526004810185905290518392600160a060020a03169163b12e44109160248083019260209291908290030181600087803b158015610c3957600080fd5b505af1158015610c4d573d6000803e3d6000fd5b505050506040513d6020811015610c6357600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610cb257600080fd5b505af1158015610cc6573d6000803e3d6000fd5b505050506040513d6020811015610cdc57600080fd5b50511015610ce957600080fd5b6005546040805160e460020a630b12e441028152600481018590529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b505050506040513d6020811015610d6457600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b158015610dd057600080fd5b505af1158015610de4573d6000803e3d6000fd5b505050506040513d6020811015610dfa57600080fd5b50511515610e0757600080fd5b5050565b60005481565b600754600160a060020a031681565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b505050506040513d6040811015610ead57600080fd5b5080516020909101519094509250831515610ec75761102e565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610f1757600080fd5b505af1158015610f2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610f5457600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610f8a57600080fd5b82016020810184811115610f9d57600080fd5b8151640100000000811182820187101715610fb757600080fd5b50509291906020018051640100000000811115610fd357600080fd5b82016020810184811115610fe657600080fd5b815164010000000081118282018710171561100057600080fd5b50509291905050505050935050509150428263ffffffff161115801561102b57508063ffffffff1642105b94505b5050505090565b61103d613268565b600154600160a060020a0316331461105457600080fd5b60025460011461106357600080fd5b6002805561106f6114ef565b151561107a57600080fd5b6110826115a8565b805190915060001061109357600080fd5b6040805160e060020a6320e1e1d1028152600b6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b1580156110e857600080fd5b505af41580156110fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561112557600080fd5b81019080805164010000000081111561113d57600080fd5b8201602081018481111561115057600080fd5b815185602082028301116401000000008211171561116d57600080fd5b5050511515925061118091505057600080fd5b6040818101516000908152600a60205220805460ff1916600117905580516009546111aa9161278e565b6009556111b6816127ad565b8051604080519182525133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a2506001600255565b600154600160a060020a0316331461120c57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000908152600e602052604090205490565b600654600160a060020a031681565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b1580156112e757600080fd5b505af11580156112fb573d6000803e3d6000fd5b505050506040513d604081101561131157600080fd5b508051602090910151909450925083158061132a575082155b156113345761102e565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561138457600080fd5b505af1158015611398573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156113c157600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156113f757600080fd5b8201602081018481111561140a57600080fd5b815164010000000081118282018710171561142457600080fd5b5050929190602001805164010000000081111561144057600080fd5b8201602081018481111561145357600080fd5b815164010000000081118282018710171561146d57600080fd5b50509291905050505050935050509150428263ffffffff16118061102b575063ffffffff16421015949350505050565b600154600160a060020a031681565b600160a060020a031660009081526011602052604090205490565b60006114da600b8363ffffffff612f4f16565b92915050565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561154657600080fd5b505af115801561155a573d6000803e3d6000fd5b505050506040513d604081101561157057600080fd5b508051602090910151909250905080151561158a5761159d565b81158061159a575061159a611284565b92505b505090565b60085481565b6115b0613268565b60008060008060008060008060006115c66114ef565b15156115d157611b70565b600354604080517fd6d65f3d0000000000000000000000000000000000000000000000000000000081528151600160a060020a039093169263d6d65f3d926004808401939192918290030181600087803b15801561162e57600080fd5b505af1158015611642573d6000803e3d6000fd5b505050506040513d604081101561165857600080fd5b5051600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151939c50600160a060020a03909216926314f66d349260048082019392918290030181600087803b1580156116b957600080fd5b505af11580156116cd573d6000803e3d6000fd5b505050506040513d60408110156116e357600080fd5b50516003546040805160e060020a632442e1cb028152600481018490529051929a50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561173857600080fd5b505af115801561174c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561177557600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156117ab57600080fd5b820160208101848111156117be57600080fd5b81516401000000008111828201871017156117d857600080fd5b505092919060200180516401000000008111156117f457600080fd5b8201602081018481111561180757600080fd5b815164010000000081118282018710171561182157600080fd5b505092919050505050509950505050886000148061183e57508888145b61184b576001890361184d565b885b6003546040805160e060020a632442e1cb028152600481018490529051929b50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b1580156118a057600080fd5b505af11580156118b4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156118dd57600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561191357600080fd5b8201602081018481111561192657600080fd5b815164010000000081118282018710171561194057600080fd5b5050929190602001805164010000000081111561195c57600080fd5b8201602081018481111561196f57600080fd5b815164010000000081118282018710171561198957600080fd5b50509291905050505050975050965050600a60008a815260200190815260200160002060009054906101000a900460ff16935083156119c757611b70565b8892505b6000831115611b3c576003546040805160e060020a632442e1cb0281526000199095016004860181905290519094600160a060020a0390921691632442e1cb91602480830192600092919082900301818387803b158015611a2b57600080fd5b505af1158015611a3f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015611a6857600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611a9e57600080fd5b82016020810184811115611ab157600080fd5b8151640100000000811182820187101715611acb57600080fd5b50509291906020018051640100000000811115611ae757600080fd5b82016020810184811115611afa57600080fd5b8151640100000000811182820187101715611b1457600080fd5b50979950611b3598508a97508996505063ffffffff61278e16945050505050565b91506119cb565b600954611b5f90611b53888563ffffffff61278e16565b9063ffffffff61279b16565b8a5260208a0182905260408a018990525b50505050505050505090565b600154600160a060020a03163314611b9357600080fd5b600160a060020a0381161515611ba857600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038116600090815260126020526040808220815160e060020a6320e1e1d10281526004810191909152905160609273__FundAccount___________________________926320e1e1d19260248083019392829003018186803b158015611c4357600080fd5b505af4158015611c57573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611c8057600080fd5b810190808051640100000000811115611c9857600080fd5b82016020810184811115611cab57600080fd5b8151856020820283011164010000000082111715611cc857600080fd5b50909695505050505050565b600f5481565b600354600160a060020a031660008511611cf357600080fd5b60008311611d0057600080fd5b60008211611d0d57600080fd5b600160a060020a0386161515611d2257600080fd5b600554604080517f7d20abf8000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691637d20abf8916024808201926020929091908290030181600087803b158015611d8957600080fd5b505af1158015611d9d573d6000803e3d6000fd5b505050506040513d6020811015611db357600080fd5b50511515611dc057600080fd5b60eb60020a6208aa8902841415611de35734831115611dde57600080fd5b611f8d565b6005546040805160e060020a63cfec719f028152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611e3457600080fd5b505af1158015611e48573d6000803e3d6000fd5b505050506040513d6020811015611e5e57600080fd5b50511515611e6b57600080fd5b611e8c83611e80600b8763ffffffff612f4f16565b9063ffffffff61278e16565b6005546040805160e460020a630b12e441028152600481018890529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015611edd57600080fd5b505af1158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015611f5657600080fd5b505af1158015611f6a573d6000803e3d6000fd5b505050506040513d6020811015611f8057600080fd5b50511015611f8d57600080fd5b600160a060020a038616600090815260116020526040902054611fb6908663ffffffff61278e16565b600160a060020a0387166000908152601160209081526040808320939093556012905220611feb90858563ffffffff612f6516565b600160a060020a038616600090815260126020526040902061201d9060ea60020a621554d1028463ffffffff612f6516565b600f54612030908663ffffffff61278e16565b600f55612045600b858563ffffffff612f6516565b612060600b60ea60020a621554d1028463ffffffff612f6516565b60408051868152602081018690528082018590529051600160a060020a038816917fe2d0f4d539cb385db666a31aa9b27fd786afc933dc82ca8518d045424d6fa882919081900360600190a2505050505050565b600160a060020a03821660009081526012602052604081206120dc908363ffffffff612f4f16565b9392505050565b600154600160a060020a031633146120fa57600080fd5b61210381612fa5565b50565b60105481565b33600090815260126020526040808220815160e060020a6320e1e1d102815260048101919091529051829182918291829173__FundAccount___________________________916320e1e1d19160248083019286929190829003018186803b15801561217757600080fd5b505af415801561218b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156121b457600080fd5b8101908080516401000000008111156121cc57600080fd5b820160208101848111156121df57600080fd5b81518560208202830111640100000000821117156121fc57600080fd5b50505197505050505b84156127865733600090815260126020526040808220815160e060020a6320e1e1d10281526004810191909152905173__FundAccount___________________________926320e1e1d19260248082019391829003018186803b15801561226b57600080fd5b505af415801561227f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156122a857600080fd5b8101908080516401000000008111156122c057600080fd5b820160208101848111156122d357600080fd5b81518560208202830111640100000000821117156122f057600080fd5b50508051600019909901989093508892508210905061230b57fe5b602090810290910181015133600090815260129092526040909120909450612339908563ffffffff612f4f16565b925082151561234757612205565b336000908152601160205260409020546123649087908590613023565b91506000821161237357600080fd5b6009546123979061238b600b8763ffffffff612f4f16565b9063ffffffff61314b16565b90506123c86123b182611b53600b8863ffffffff612f4f16565b836123c3600b8863ffffffff612f4f16565b613023565b9250600083116123d757600080fd5b6000848152600e60205260409020546123f6908463ffffffff61278e16565b6000858152600e6020908152604080832093909355338252601290522061242490858463ffffffff61315a16565b60ea60020a621554d10284141561243a57612205565b60eb60020a6208aa890284146125d7576005546040805160e060020a63cfec719f028152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561249b57600080fd5b505af11580156124af573d6000803e3d6000fd5b505050506040513d60208110156124c557600080fd5b505115156124d257600080fd5b6005546040805160e460020a630b12e4410281526004810187905290518592600160a060020a03169163b12e44109160248083019260209291908290030181600087803b15801561252257600080fd5b505af1158015612536573d6000803e3d6000fd5b505050506040513d602081101561254c57600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561259b57600080fd5b505af11580156125af573d6000803e3d6000fd5b505050506040513d60208110156125c557600080fd5b505110156125d257600080fd5b6125e5565b30318311156125e557600080fd5b60eb60020a6208aa890284141561262957604051339084156108fc029085906000818181858888f19350505050158015612623573d6000803e3d6000fd5b50612747565b6005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561267a57600080fd5b505af115801561268e573d6000803e3d6000fd5b505050506040513d60208110156126a457600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561271057600080fd5b505af1158015612724573d6000803e3d6000fd5b505050506040513d602081101561273a57600080fd5b5051151561274757600080fd5b6040805185815260208101859052815133927fd434f0d1dd08e14b2acdd7a506c6e8b6edaf1a5825d23ca9b5e51a9ad883f71c928290030190a2612205565b505050505050565b818101828110156114da57fe5b6000828211156127a757fe5b50900390565b6000806000806000600b73__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561280a57600080fd5b505af415801561281e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561284757600080fd5b81019080805164010000000081111561285f57600080fd5b8201602081018481111561287257600080fd5b815185602082028301116401000000008211171561288f57600080fd5b50505197505050505b8415612786576040805160e060020a6320e1e1d1028152600b6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b1580156128f357600080fd5b505af4158015612907573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561293057600080fd5b81019080805164010000000081111561294857600080fd5b8201602081018481111561295b57600080fd5b815185602082028301116401000000008211171561297857600080fd5b50508051600019909901989093508892508210905061299357fe5b6020908102909101015193506129b0600b8563ffffffff612f4f16565b92508215156129be57612898565b85516129cb90849061314b565b9150600082116129da57600080fd5b6129fd6129f4601054600f5461279b90919063ffffffff16565b83600f54613023565b925060008311612a0c57600080fd5b6000848152600e6020526040902054612a2b908463ffffffff61278e16565b6000858152600e602052604090205560ea60020a621554d102841415612a5057612898565b60eb60020a6208aa89028414612be8576005546040805160e060020a63cfec719f028152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015612ab157600080fd5b505af1158015612ac5573d6000803e3d6000fd5b505050506040513d6020811015612adb57600080fd5b50511515612ae857600080fd5b6005546040805160e460020a630b12e4410281526004810187905290518592600160a060020a03169163b12e44109160248083019260209291908290030181600087803b158015612b3857600080fd5b505af1158015612b4c573d6000803e3d6000fd5b505050506040513d6020811015612b6257600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015612bb157600080fd5b505af1158015612bc5573d6000803e3d6000fd5b505050506040513d6020811015612bdb57600080fd5b50511015612be857600080fd5b600060085411612bf9576000612c0d565b600854612c0d90849063ffffffff61314b16565b905060006008541115612c275760008111612c2757600080fd5b60eb60020a6208aa8902841415612cbf576000811115612c7d57600754604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015612c7b573d6000803e3d6000fd5b505b336108fc612c91858463ffffffff61279b16565b6040518115909202916000818181858888f19350505050158015612cb9573d6000803e3d6000fd5b50612f10565b6000811115612deb576005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612d1957600080fd5b505af1158015612d2d573d6000803e3d6000fd5b505050506040513d6020811015612d4357600080fd5b5051600754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015612db457600080fd5b505af1158015612dc8573d6000803e3d6000fd5b505050506040513d6020811015612dde57600080fd5b50511515612deb57600080fd5b6005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612e3c57600080fd5b505af1158015612e50573d6000803e3d6000fd5b505050506040513d6020811015612e6657600080fd5b5051600160a060020a031663a9059cbb33612e87868563ffffffff61279b16565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612ed957600080fd5b505af1158015612eed573d6000803e3d6000fd5b505050506040513d6020811015612f0357600080fd5b50511515612f1057600080fd5b6040805185815260208101859052815133927f17e68c82fdc39ec76fff0be24ead989575d8eec009a729fa4bd738bc1f6a2dbb928290030190a2612898565b6000908152600291909101602052604090205490565b612f6f83836131a6565b6000828152600284016020526040902054612f90908263ffffffff61278e16565b60009283526002909301602052506040902055565b600160a060020a0381161515612fba57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008080808085151561303257fe5b87158061303d575086155b1561304757613140565b6130596000198863ffffffff6131e816565b925082881161308957613082866130768a8a63ffffffff6131fd16565b9063ffffffff6131e816565b9450613140565b8588141561309957869450613140565b858714156130a957879450613140565b871561312a578783116130bc57826130be565b875b91506130d0828863ffffffff6131fd16565b90506130f26130e5828863ffffffff6131e816565b869063ffffffff61278e16565b9450613111868281151561310257fe5b8691900663ffffffff61278e16565b9350613123888363ffffffff61279b16565b97506130a9565b61313d6130e5858863ffffffff6131e816565b94505b505050509392505050565b60006120dc83836123c3613226565b6131648383613238565b151561316f57600080fd5b8061317a8484612f4f565b101561318557600080fd5b6000828152600284016020526040902054612f90908263ffffffff61279b16565b6131b08282613238565b1515610e075781546001808201845560008481526020808220909301849055928352928301905260409020805460ff19169091179055565b600081838115156131f557fe5b049392505050565b600082151561320e575060006114da565b5081810281838281151561321e57fe5b04146114da57fe5b6000613230613251565b600a0a905090565b6000908152600191909101602052604090205460ff1690565b600061325b613263565b600201905090565b600290565b6060604051908101604052806003906020820280388339509192915050565b60006132916132dd565b82101580156114da57506132a3613226565b90911115919050565b60006132b782613287565b15156132c257600080fd5b6114da6132cd613263565b8390600a0a63ffffffff6131e816565b6000905600a165627a7a72305820e8f0c400ad73955ae8688f3047a2b66ed5523274f64a6803c1c6618694e439c90029", - "deployedBytecode": "0x6080604052600436106101715763ffffffff60e060020a600035041663015dd28c81146101735780630babd864146101d857806319ae48ed1461020957806323585f961461023057806323bffccc1461025c578063278ecde11461027d57806343f48fbd14610295578063483a20b2146102aa5780634992a352146102cb57806354fd4d50146102e65780635641f3c3146102fb5780636b90d6d2146103105780636ebc0af114610325578063715018a61461033a5780637a1c2da31461034f5780638119c065146103675780638429fffe1461037c5780638da5cb5b146103915780639124a789146103a65780639ab269a6146103c75780639c1e03a0146103df5780639e80baac146103f4578063a328665a14610409578063a3b768e11461041e578063acb3c0731461046b578063adb9dd081461048c578063b4105a3e146104ad578063d0baf2f5146104c2578063f206cb64146104e2578063f2fde38b14610506578063fb2814c414610527575b005b34801561017f57600080fd5b5061018861053c565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101c45781810151838201526020016101ac565b505050509050019250505060405180910390f35b3480156101e457600080fd5b506101ed610623565b60408051600160a060020a039092168252519081900360200190f35b34801561021557600080fd5b5061021e610632565b60408051918252519081900360200190f35b34801561023c57600080fd5b50610248600435610638565b604080519115158252519081900360200190f35b34801561026857600080fd5b50610171600160a060020a036004351661064d565b34801561028957600080fd5b506101716004356106a8565b3480156102a157600080fd5b506101ed610964565b3480156102b657600080fd5b50610171600160a060020a0360043516610973565b3480156102d757600080fd5b50610171600435602435610aff565b3480156102f257600080fd5b5061021e610e0b565b34801561030757600080fd5b506101ed610e11565b34801561031c57600080fd5b50610248610e20565b34801561033157600080fd5b50610171611035565b34801561034657600080fd5b506101716111f5565b34801561035b57600080fd5b5061021e600435611263565b34801561037357600080fd5b506101ed611275565b34801561038857600080fd5b50610248611284565b34801561039d57600080fd5b506101ed61149d565b3480156103b257600080fd5b5061021e600160a060020a03600435166114ac565b3480156103d357600080fd5b5061021e6004356114c7565b3480156103eb57600080fd5b506101ed6114e0565b34801561040057600080fd5b506102486114ef565b34801561041557600080fd5b5061021e6115a2565b34801561042a57600080fd5b506104336115a8565b6040518082606080838360005b83811015610458578181015183820152602001610440565b5050505090500191505060405180910390f35b34801561047757600080fd5b50610171600160a060020a0360043516611b7c565b34801561049857600080fd5b50610188600160a060020a0360043516611bd7565b3480156104b957600080fd5b5061021e611cd4565b610171600160a060020a0360043516602435604435606435608435611cda565b3480156104ee57600080fd5b5061021e600160a060020a03600435166024356120b4565b34801561051257600080fd5b50610171600160a060020a03600435166120e3565b34801561053357600080fd5b5061021e612106565b6060600b73__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561059357600080fd5b505af41580156105a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156105d057600080fd5b8101908080516401000000008111156105e857600080fd5b820160208101848111156105fb57600080fd5b815185602082028301116401000000008211171561061857600080fd5b509094505050505090565b600454600160a060020a031681565b60095481565b600a6020526000908152604090205460ff1681565b600154600160a060020a0316331461066457600080fd5b600160a060020a038116151561067957600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6002546001146106b757600080fd5b600280556106c3610e20565b15156106ce57600080fd5b8015156106da57600080fd5b336000908152601160205260409020548111156106f657600080fd5b600480546040805160e060020a6370a082310281523393810193909352518392600160a060020a03909216916370a082319160248083019260209291908290030181600087803b15801561074957600080fd5b505af115801561075d573d6000803e3d6000fd5b505050506040513d602081101561077357600080fd5b5051101561078057600080fd5b60048054604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523393810193909352306024840152518392600160a060020a039092169163dd62ed3e9160448083019260209291908290030181600087803b1580156107ef57600080fd5b505af1158015610803573d6000803e3d6000fd5b505050506040513d602081101561081957600080fd5b5051101561082657600080fd5b61082f8161210c565b601054610842908263ffffffff61278e16565b60105533600090815260116020526040902054610865908263ffffffff61279b16565b336000818152601160209081526040808320949094556004805460065486517f23b872dd00000000000000000000000000000000000000000000000000000000815292830195909552600160a060020a03948516602483015260448201879052945194909316936323b872dd93606480820194918390030190829087803b1580156108ef57600080fd5b505af1158015610903573d6000803e3d6000fd5b505050506040513d602081101561091957600080fd5b5051151561092657600080fd5b60408051828152905133917fb7feb6c1d7169f40790388a31c0160d8f962a2b6c31970c28bd8cdfefa25ea29919081900360200190a2506001600255565b600554600160a060020a031681565b600154600160a060020a0316331461098a57600080fd5b600160a060020a038116151561099f57600080fd5b6000600160a060020a031681600160a060020a0316634090cb646040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109e857600080fd5b505af11580156109fc573d6000803e3d6000fd5b505050506040513d6020811015610a1257600080fd5b5051600160a060020a03161415610a2857600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610aa457600080fd5b505af1158015610ab8573d6000803e3d6000fd5b505050506040513d6020811015610ace57600080fd5b50516004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550565b60eb60020a6208aa8902821415610b51573031811115610b1e57600080fd5b604051339082156108fc029083906000818181858888f19350505050158015610b4b573d6000803e3d6000fd5b50610e07565b60ea60020a621554d1028214610e07576005546040805160e060020a63cfec719f028152600481018590529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015610bb257600080fd5b505af1158015610bc6573d6000803e3d6000fd5b505050506040513d6020811015610bdc57600080fd5b50511515610be957600080fd5b6005546040805160e460020a630b12e4410281526004810185905290518392600160a060020a03169163b12e44109160248083019260209291908290030181600087803b158015610c3957600080fd5b505af1158015610c4d573d6000803e3d6000fd5b505050506040513d6020811015610c6357600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610cb257600080fd5b505af1158015610cc6573d6000803e3d6000fd5b505050506040513d6020811015610cdc57600080fd5b50511015610ce957600080fd5b6005546040805160e460020a630b12e441028152600481018590529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b505050506040513d6020811015610d6457600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b158015610dd057600080fd5b505af1158015610de4573d6000803e3d6000fd5b505050506040513d6020811015610dfa57600080fd5b50511515610e0757600080fd5b5050565b60005481565b600754600160a060020a031681565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b505050506040513d6040811015610ead57600080fd5b5080516020909101519094509250831515610ec75761102e565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610f1757600080fd5b505af1158015610f2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610f5457600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610f8a57600080fd5b82016020810184811115610f9d57600080fd5b8151640100000000811182820187101715610fb757600080fd5b50509291906020018051640100000000811115610fd357600080fd5b82016020810184811115610fe657600080fd5b815164010000000081118282018710171561100057600080fd5b50509291905050505050935050509150428263ffffffff161115801561102b57508063ffffffff1642105b94505b5050505090565b61103d613268565b600154600160a060020a0316331461105457600080fd5b60025460011461106357600080fd5b6002805561106f6114ef565b151561107a57600080fd5b6110826115a8565b805190915060001061109357600080fd5b6040805160e060020a6320e1e1d1028152600b6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b1580156110e857600080fd5b505af41580156110fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561112557600080fd5b81019080805164010000000081111561113d57600080fd5b8201602081018481111561115057600080fd5b815185602082028301116401000000008211171561116d57600080fd5b5050511515925061118091505057600080fd5b6040818101516000908152600a60205220805460ff1916600117905580516009546111aa9161278e565b6009556111b6816127ad565b8051604080519182525133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a2506001600255565b600154600160a060020a0316331461120c57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000908152600e602052604090205490565b600654600160a060020a031681565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b1580156112e757600080fd5b505af11580156112fb573d6000803e3d6000fd5b505050506040513d604081101561131157600080fd5b508051602090910151909450925083158061132a575082155b156113345761102e565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561138457600080fd5b505af1158015611398573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156113c157600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156113f757600080fd5b8201602081018481111561140a57600080fd5b815164010000000081118282018710171561142457600080fd5b5050929190602001805164010000000081111561144057600080fd5b8201602081018481111561145357600080fd5b815164010000000081118282018710171561146d57600080fd5b50509291905050505050935050509150428263ffffffff16118061102b575063ffffffff16421015949350505050565b600154600160a060020a031681565b600160a060020a031660009081526011602052604090205490565b60006114da600b8363ffffffff612f4f16565b92915050565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561154657600080fd5b505af115801561155a573d6000803e3d6000fd5b505050506040513d604081101561157057600080fd5b508051602090910151909250905080151561158a5761159d565b81158061159a575061159a611284565b92505b505090565b60085481565b6115b0613268565b60008060008060008060008060006115c66114ef565b15156115d157611b70565b600354604080517fd6d65f3d0000000000000000000000000000000000000000000000000000000081528151600160a060020a039093169263d6d65f3d926004808401939192918290030181600087803b15801561162e57600080fd5b505af1158015611642573d6000803e3d6000fd5b505050506040513d604081101561165857600080fd5b5051600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151939c50600160a060020a03909216926314f66d349260048082019392918290030181600087803b1580156116b957600080fd5b505af11580156116cd573d6000803e3d6000fd5b505050506040513d60408110156116e357600080fd5b50516003546040805160e060020a632442e1cb028152600481018490529051929a50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561173857600080fd5b505af115801561174c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561177557600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156117ab57600080fd5b820160208101848111156117be57600080fd5b81516401000000008111828201871017156117d857600080fd5b505092919060200180516401000000008111156117f457600080fd5b8201602081018481111561180757600080fd5b815164010000000081118282018710171561182157600080fd5b505092919050505050509950505050886000148061183e57508888145b61184b576001890361184d565b885b6003546040805160e060020a632442e1cb028152600481018490529051929b50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b1580156118a057600080fd5b505af11580156118b4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156118dd57600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561191357600080fd5b8201602081018481111561192657600080fd5b815164010000000081118282018710171561194057600080fd5b5050929190602001805164010000000081111561195c57600080fd5b8201602081018481111561196f57600080fd5b815164010000000081118282018710171561198957600080fd5b50509291905050505050975050965050600a60008a815260200190815260200160002060009054906101000a900460ff16935083156119c757611b70565b8892505b6000831115611b3c576003546040805160e060020a632442e1cb0281526000199095016004860181905290519094600160a060020a0390921691632442e1cb91602480830192600092919082900301818387803b158015611a2b57600080fd5b505af1158015611a3f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015611a6857600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611a9e57600080fd5b82016020810184811115611ab157600080fd5b8151640100000000811182820187101715611acb57600080fd5b50509291906020018051640100000000811115611ae757600080fd5b82016020810184811115611afa57600080fd5b8151640100000000811182820187101715611b1457600080fd5b50979950611b3598508a97508996505063ffffffff61278e16945050505050565b91506119cb565b600954611b5f90611b53888563ffffffff61278e16565b9063ffffffff61279b16565b8a5260208a0182905260408a018990525b50505050505050505090565b600154600160a060020a03163314611b9357600080fd5b600160a060020a0381161515611ba857600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038116600090815260126020526040808220815160e060020a6320e1e1d10281526004810191909152905160609273__FundAccount___________________________926320e1e1d19260248083019392829003018186803b158015611c4357600080fd5b505af4158015611c57573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611c8057600080fd5b810190808051640100000000811115611c9857600080fd5b82016020810184811115611cab57600080fd5b8151856020820283011164010000000082111715611cc857600080fd5b50909695505050505050565b600f5481565b600354600160a060020a031660008511611cf357600080fd5b60008311611d0057600080fd5b60008211611d0d57600080fd5b600160a060020a0386161515611d2257600080fd5b600554604080517f7d20abf8000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691637d20abf8916024808201926020929091908290030181600087803b158015611d8957600080fd5b505af1158015611d9d573d6000803e3d6000fd5b505050506040513d6020811015611db357600080fd5b50511515611dc057600080fd5b60eb60020a6208aa8902841415611de35734831115611dde57600080fd5b611f8d565b6005546040805160e060020a63cfec719f028152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611e3457600080fd5b505af1158015611e48573d6000803e3d6000fd5b505050506040513d6020811015611e5e57600080fd5b50511515611e6b57600080fd5b611e8c83611e80600b8763ffffffff612f4f16565b9063ffffffff61278e16565b6005546040805160e460020a630b12e441028152600481018890529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015611edd57600080fd5b505af1158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015611f5657600080fd5b505af1158015611f6a573d6000803e3d6000fd5b505050506040513d6020811015611f8057600080fd5b50511015611f8d57600080fd5b600160a060020a038616600090815260116020526040902054611fb6908663ffffffff61278e16565b600160a060020a0387166000908152601160209081526040808320939093556012905220611feb90858563ffffffff612f6516565b600160a060020a038616600090815260126020526040902061201d9060ea60020a621554d1028463ffffffff612f6516565b600f54612030908663ffffffff61278e16565b600f55612045600b858563ffffffff612f6516565b612060600b60ea60020a621554d1028463ffffffff612f6516565b60408051868152602081018690528082018590529051600160a060020a038816917fe2d0f4d539cb385db666a31aa9b27fd786afc933dc82ca8518d045424d6fa882919081900360600190a2505050505050565b600160a060020a03821660009081526012602052604081206120dc908363ffffffff612f4f16565b9392505050565b600154600160a060020a031633146120fa57600080fd5b61210381612fa5565b50565b60105481565b33600090815260126020526040808220815160e060020a6320e1e1d102815260048101919091529051829182918291829173__FundAccount___________________________916320e1e1d19160248083019286929190829003018186803b15801561217757600080fd5b505af415801561218b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156121b457600080fd5b8101908080516401000000008111156121cc57600080fd5b820160208101848111156121df57600080fd5b81518560208202830111640100000000821117156121fc57600080fd5b50505197505050505b84156127865733600090815260126020526040808220815160e060020a6320e1e1d10281526004810191909152905173__FundAccount___________________________926320e1e1d19260248082019391829003018186803b15801561226b57600080fd5b505af415801561227f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156122a857600080fd5b8101908080516401000000008111156122c057600080fd5b820160208101848111156122d357600080fd5b81518560208202830111640100000000821117156122f057600080fd5b50508051600019909901989093508892508210905061230b57fe5b602090810290910181015133600090815260129092526040909120909450612339908563ffffffff612f4f16565b925082151561234757612205565b336000908152601160205260409020546123649087908590613023565b91506000821161237357600080fd5b6009546123979061238b600b8763ffffffff612f4f16565b9063ffffffff61314b16565b90506123c86123b182611b53600b8863ffffffff612f4f16565b836123c3600b8863ffffffff612f4f16565b613023565b9250600083116123d757600080fd5b6000848152600e60205260409020546123f6908463ffffffff61278e16565b6000858152600e6020908152604080832093909355338252601290522061242490858463ffffffff61315a16565b60ea60020a621554d10284141561243a57612205565b60eb60020a6208aa890284146125d7576005546040805160e060020a63cfec719f028152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b15801561249b57600080fd5b505af11580156124af573d6000803e3d6000fd5b505050506040513d60208110156124c557600080fd5b505115156124d257600080fd5b6005546040805160e460020a630b12e4410281526004810187905290518592600160a060020a03169163b12e44109160248083019260209291908290030181600087803b15801561252257600080fd5b505af1158015612536573d6000803e3d6000fd5b505050506040513d602081101561254c57600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561259b57600080fd5b505af11580156125af573d6000803e3d6000fd5b505050506040513d60208110156125c557600080fd5b505110156125d257600080fd5b6125e5565b30318311156125e557600080fd5b60eb60020a6208aa890284141561262957604051339084156108fc029085906000818181858888f19350505050158015612623573d6000803e3d6000fd5b50612747565b6005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561267a57600080fd5b505af115801561268e573d6000803e3d6000fd5b505050506040513d60208110156126a457600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561271057600080fd5b505af1158015612724573d6000803e3d6000fd5b505050506040513d602081101561273a57600080fd5b5051151561274757600080fd5b6040805185815260208101859052815133927fd434f0d1dd08e14b2acdd7a506c6e8b6edaf1a5825d23ca9b5e51a9ad883f71c928290030190a2612205565b505050505050565b818101828110156114da57fe5b6000828211156127a757fe5b50900390565b6000806000806000600b73__FundAccount___________________________6320e1e1d190916040518263ffffffff1660e060020a0281526004018082815260200191505060006040518083038186803b15801561280a57600080fd5b505af415801561281e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561284757600080fd5b81019080805164010000000081111561285f57600080fd5b8201602081018481111561287257600080fd5b815185602082028301116401000000008211171561288f57600080fd5b50505197505050505b8415612786576040805160e060020a6320e1e1d1028152600b6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b1580156128f357600080fd5b505af4158015612907573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561293057600080fd5b81019080805164010000000081111561294857600080fd5b8201602081018481111561295b57600080fd5b815185602082028301116401000000008211171561297857600080fd5b50508051600019909901989093508892508210905061299357fe5b6020908102909101015193506129b0600b8563ffffffff612f4f16565b92508215156129be57612898565b85516129cb90849061314b565b9150600082116129da57600080fd5b6129fd6129f4601054600f5461279b90919063ffffffff16565b83600f54613023565b925060008311612a0c57600080fd5b6000848152600e6020526040902054612a2b908463ffffffff61278e16565b6000858152600e602052604090205560ea60020a621554d102841415612a5057612898565b60eb60020a6208aa89028414612be8576005546040805160e060020a63cfec719f028152600481018790529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015612ab157600080fd5b505af1158015612ac5573d6000803e3d6000fd5b505050506040513d6020811015612adb57600080fd5b50511515612ae857600080fd5b6005546040805160e460020a630b12e4410281526004810187905290518592600160a060020a03169163b12e44109160248083019260209291908290030181600087803b158015612b3857600080fd5b505af1158015612b4c573d6000803e3d6000fd5b505050506040513d6020811015612b6257600080fd5b50516040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015612bb157600080fd5b505af1158015612bc5573d6000803e3d6000fd5b505050506040513d6020811015612bdb57600080fd5b50511015612be857600080fd5b600060085411612bf9576000612c0d565b600854612c0d90849063ffffffff61314b16565b905060006008541115612c275760008111612c2757600080fd5b60eb60020a6208aa8902841415612cbf576000811115612c7d57600754604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015612c7b573d6000803e3d6000fd5b505b336108fc612c91858463ffffffff61279b16565b6040518115909202916000818181858888f19350505050158015612cb9573d6000803e3d6000fd5b50612f10565b6000811115612deb576005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612d1957600080fd5b505af1158015612d2d573d6000803e3d6000fd5b505050506040513d6020811015612d4357600080fd5b5051600754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015612db457600080fd5b505af1158015612dc8573d6000803e3d6000fd5b505050506040513d6020811015612dde57600080fd5b50511515612deb57600080fd5b6005546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015612e3c57600080fd5b505af1158015612e50573d6000803e3d6000fd5b505050506040513d6020811015612e6657600080fd5b5051600160a060020a031663a9059cbb33612e87868563ffffffff61279b16565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612ed957600080fd5b505af1158015612eed573d6000803e3d6000fd5b505050506040513d6020811015612f0357600080fd5b50511515612f1057600080fd5b6040805185815260208101859052815133927f17e68c82fdc39ec76fff0be24ead989575d8eec009a729fa4bd738bc1f6a2dbb928290030190a2612898565b6000908152600291909101602052604090205490565b612f6f83836131a6565b6000828152600284016020526040902054612f90908263ffffffff61278e16565b60009283526002909301602052506040902055565b600160a060020a0381161515612fba57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008080808085151561303257fe5b87158061303d575086155b1561304757613140565b6130596000198863ffffffff6131e816565b925082881161308957613082866130768a8a63ffffffff6131fd16565b9063ffffffff6131e816565b9450613140565b8588141561309957869450613140565b858714156130a957879450613140565b871561312a578783116130bc57826130be565b875b91506130d0828863ffffffff6131fd16565b90506130f26130e5828863ffffffff6131e816565b869063ffffffff61278e16565b9450613111868281151561310257fe5b8691900663ffffffff61278e16565b9350613123888363ffffffff61279b16565b97506130a9565b61313d6130e5858863ffffffff6131e816565b94505b505050509392505050565b60006120dc83836123c3613226565b6131648383613238565b151561316f57600080fd5b8061317a8484612f4f565b101561318557600080fd5b6000828152600284016020526040902054612f90908263ffffffff61279b16565b6131b08282613238565b1515610e075781546001808201845560008481526020808220909301849055928352928301905260409020805460ff19169091179055565b600081838115156131f557fe5b049392505050565b600082151561320e575060006114da565b5081810281838281151561321e57fe5b04146114da57fe5b6000613230613251565b600a0a905090565b6000908152600191909101602052604090205460ff1690565b600061325b613263565b600201905090565b600290565b6060604051908101604052806003906020820280388339509192915050565b60006132916132dd565b82101580156114da57506132a3613226565b90911115919050565b60006132b782613287565b15156132c257600080fd5b6114da6132cd613263565b8390600a0a63ffffffff6131e816565b6000905600a165627a7a72305820e8f0c400ad73955ae8688f3047a2b66ed5523274f64a6803c1c6618694e439c90029", - "sourceMap": "197:1350:20:-;;;487:1:41;657:51;;235:504:20;8:9:-1;5:2;;;30:1;27;20:12;5:2;235:504:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:7:37;:18;;;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;235:504:20;;;;;;;;;;;2289:30:6;235:504:20;2289:28:6;;;;;;:30;:::i;:::-;:72;;;;-1:-1:-1;2358:3:6;2323:32;:18;:30;;;;;;:32;:::i;:::-;:38;2289:72;2281:81;;;;;;;;-1:-1:-1;;;;;2380:20:6;;;;2372:29;;;;;;2460:5;:14;;-1:-1:-1;;;;;;2460:14:6;;;-1:-1:-1;;;;;2460:14:6;;;;;;;-1:-1:-1;532:43:20;;;;;;;;;;;;;;585:4;:18;;;;;;;;;;;;;;-1:-1:-1;;613:6:20;:31;;;;;;;;;;;;;;2412:17:6;654:38:20;702:13;:30;;;;;;;;;;;;;;-1:-1:-1;197:1350:20;;-1:-1:-1;197:1350:20;672:107:13;723:4;752:5;:3;;;;:5;:::i;:::-;746:2;:11;;:26;;;;-1:-1:-1;767:5:13;:3;;;;:5;:::i;:::-;761:2;:11;;746:26;739:33;672:107;-1:-1:-1;;672:107:13:o;924:139::-;977:4;1001:13;1011:2;1001:9;;;;:13;:::i;:::-;993:22;;;;;;;;1033:23;1046:9;:7;;;;:9;:::i;:::-;1033:2;;1040;:15;1033:6;;;;;;:23;:::i;297:55::-;333:4;297:55;:::o;357:65::-;393:4;414:5;:3;;;;:5;:::i;:::-;408:2;:11;401:18;;357:65;:::o;161:59::-;216:1;161:59;:::o;665:283:44:-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;225:67:13:-;261:4;280:9;:7;;;;:9;:::i;:::-;276:1;:13;269:20;;225:67;:::o;197:1350:20:-;;;;;;;", - "deployedSourceMap": "197:1350:20:-;;;;;;;;;-1:-1:-1;;;197:1350:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5157:120:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5157:120:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5157:120:6;;;;;;;;;;;;;;;;;813:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;813:21:6;;;;;;;;-1:-1:-1;;;;;813:21:6;;;;;;;;;;;;;;1040:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1040:39:6;;;;;;;;;;;;;;;;;;;;1127:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1127:47:6;;;;;;;;;;;;;;;;;;;;;;;2873:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2873:164:6;-1:-1:-1;;;;;2873:164:6;;;;;8990:670;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8990:670:6;;;;;840:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;840:19:6;;;;2487:255;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2487:255:6;-1:-1:-1;;;;;2487:255:6;;;;;979:484:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;979:484:20;;;;;;;53:19:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:37;;;;890:28:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;890:28:6;;;;11520:444;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11520:444:6;;;;6795:509;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6795:509:6;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;5283:128:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5283:128:6;;;;;865:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;865:19:6;;;;12203:342;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12203:342:6;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;4877:141:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4877:141:6;-1:-1:-1;;;;;4877:141:6;;;;;5024:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5024:127:6;;;;;777:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;777:30:6;;;;11970:227;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11970:227:6;;;;956:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;956:29:6;;;;5566:1168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5566:1168:6;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5566:1168:6;;;;;;;;;;;;;;;;2748:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2748:119:6;-1:-1:-1;;;;;2748:119:6;;;;;4715:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4715:156:6;-1:-1:-1;;;;;4715:156:6;;;;;1459:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1459:28:6;;;;3351:1187;;-1:-1:-1;;;;;3351:1187:6;;;;;;;;;;;;;4544:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4544:165:6;-1:-1:-1;;;;;4544:165:6;;;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;-1:-1:-1;;;;;1274:103:45;;;;;1531:30:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1531:30:6;;;;5157:120;5217:9;5245:11;:23;;;;:25;;;;;-1:-1:-1;;;5245:25:6;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5245:25:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5245:25:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5245:25:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;5245:25:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;5245:25:6;;-1:-1:-1;;;;;5157:120:6;:::o;813:21::-;;;-1:-1:-1;;;;;813:21:6;;:::o;1040:39::-;;;;:::o;1127:47::-;;;;;;;;;;;;;;;:::o;2873:164::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;2960:28:6;;;;2952:37;;;;;;3000:13;:30;;-1:-1:-1;;3000:30:6;-1:-1:-1;;;;;3000:30:6;;;;;;;;;;2873:164::o;8990:670::-;1128:14:41;;487:1;1128:39;1120:48;;;;;;584:1;1174:40;;9064:20:6;:18;:20::i;:::-;9056:29;;;;;;;;9103:16;;;9095:25;;;;;;9161:10;9138:34;;;;:22;:34;;;;;;:49;-1:-1:-1;9138:49:6;9130:58;;;;;;9206:6;;;:28;;;-1:-1:-1;;;;;9206:28:6;;9223:10;9206:28;;;;;;;;9238:11;;-1:-1:-1;;;;;9206:6:6;;;;:16;;:28;;;;;;;;;;;;;;:6;;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;9206:28:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9206:28:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9206:28:6;:43;;9198:52;;;;;;9268:6;;;:43;;;;;;9285:10;9268:43;;;;;;;9305:4;9268:43;;;;;9315:11;;-1:-1:-1;;;;;9268:6:6;;;;:16;;:43;;;;;;;;;;;;;;:6;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;9268:43:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9268:43:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9268:43:6;:58;;9260:67;;;;;;9338:26;9352:11;9338:13;:26::i;:::-;9396:18;;:35;;9419:11;9396:35;:22;:35;:::i;:::-;9375:18;:56;9501:10;9478:34;;;;:22;:34;;;;;;:51;;9517:11;9478:51;:38;:51;:::i;:::-;9464:10;9441:34;;;;:22;:34;;;;;;;;:88;;;;9548:6;;;9580:4;;9548:50;;;;;;;;;;;;-1:-1:-1;;;;;9580:4:6;;;9548:50;;;;;;;;;;;;:6;;;;;:19;;:50;;;;;;;;;;;;;:6;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;9548:50:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9548:50:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9548:50:6;9540:59;;;;;;;;9615:38;;;;;;;;9629:10;;9615:38;;;;;;;;;;-1:-1:-1;487:1:41;1227:14;:38;8990:670:6:o;840:19::-;;;-1:-1:-1;;;;;840:19:6;;:::o;2487:255::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;2572:24:6;;;;2564:33;;;;;;2649:1;-1:-1:-1;;;;;2615:36:6;:10;-1:-1:-1;;;;;2615:20:6;;:22;;;;;-1:-1:-1;;;2615:22:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2615:22:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2615:22:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2615:22:6;-1:-1:-1;;;;;2615:36:6;;;2607:45;;;;;;2663:9;:22;;-1:-1:-1;;2663:22:6;-1:-1:-1;;;;;2663:22:6;;;;;;;;2712;;;;;;;;:20;;:22;;;;;;;;;;;;;;;-1:-1:-1;2663:22:6;2712;;;5:2:-1;;;;30:1;27;20:12;5:2;2712:22:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2712:22:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2712:22:6;2695:6;:40;;-1:-1:-1;;2695:40:6;-1:-1:-1;;;;;2695:40:6;;;;;;;;;-1:-1:-1;2487:255:6:o;979:484:20:-;-1:-1:-1;;;;;1052:21:20;;1048:409;;;1105:4;1097:21;:32;-1:-1:-1;1097:32:20;1089:41;;;;;;1144:28;;:10;;:28;;;;;1164:7;;1144:28;;;;1164:7;1144:10;:28;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1144:28:20;1048:409;;;-1:-1:-1;;;;;1192:21:20;;1189:268;;1237:5;;:22;;;-1:-1:-1;;;;;1237:22:20;;;;;;;;;;-1:-1:-1;;;;;1237:5:20;;;;:13;;:22;;;;;;;;;;;;;;;:5;;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;1237:22:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1237:22:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1237:22:20;1229:31;;;;;;;;1288:5;;:30;;;-1:-1:-1;;;;;1288:30:20;;;;;;;;;;1348:7;;-1:-1:-1;;;;;1288:5:20;;:21;;:30;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;1288:30:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1288:30:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1288:30:20;1282:62;;;-1:-1:-1;;;;;1282:62:20;;1338:4;1282:62;;;;;;-1:-1:-1;;;;;1282:47:20;;;;;;:62;;;;;1288:30;;1282:62;;;;;;;;-1:-1:-1;1282:47:20;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;1282:62:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1282:62:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1282:62:20;:73;;1274:82;;;;;;1384:5;;:30;;;-1:-1:-1;;;;;1384:30:20;;;;;;;;;;-1:-1:-1;;;;;1384:5:20;;;;:21;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;1384:30:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1384:30:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1384:30:20;1378:67;;;;;;1425:10;1378:67;;;;;;;;;;;;-1:-1:-1;;;;;1378:46:20;;;;;;:67;;;;;1384:30;;1378:67;;;;;;;;-1:-1:-1;1378:46:20;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;1378:67:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1378:67:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1378:67:20;1370:76;;;;;;;;979:484;;:::o;53:19:37:-;;;;:::o;890:28:6:-;;;-1:-1:-1;;;;;890:28:6;;:::o;11520:444::-;11614:9;;:36;;;;;;;;11571:4;;;;;;;;;;-1:-1:-1;;;;;11614:9:6;;:34;;:36;;;;;;;;;;;11571:4;11614:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;11614:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11614:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11614:36:6;;;;;;;;;-1:-1:-1;11614:36:6;-1:-1:-1;11789:10:6;;11786:22;;;11801:7;;11786:22;11870:9;;:29;;;-1:-1:-1;;;;;11870:29:6;;;;;;;;;;-1:-1:-1;;;;;11870:9:6;;;;:22;;:29;;;;;:9;;:29;;;;;;;;:9;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;11870:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11870:29:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;11870:29:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;11870:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;11870:29:6;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;11870:29:6;;;;;;11818:81;;;;;;;;11928:3;11917:7;:14;;;;:40;;;;;11941:16;11935:22;;:3;:22;11917:40;11910:47;;11520:444;;;;;;:::o;6795:509::-;6900:29;;:::i;:::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1128:14:41;;487:1;1128:39;1120:48;;;;;;584:1;1174:40;;6864:24:6;:22;:24::i;:::-;6856:33;;;;;;;;6932:19;:17;:19::i;:::-;6970:17;;6900:51;;-1:-1:-1;6990:1:6;-1:-1:-1;6962:30:6;;;;;;7010:25;;;-1:-1:-1;;;;;7010:25:6;;:11;:25;;;;;;:23;;;;:25;;;;;-1:-1:-1;;7010:25:6;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;7010:25:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7010:25:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7010:25:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;7010:25:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;7010:32:6;:37;;;-1:-1:-1;7002:46:6;;-1:-1:-1;;7002:46:6;;;;;7077:17;;;;;7059:36;;;;:17;7077;7059:36;;:43;;-1:-1:-1;;7059:43:6;7098:4;7059:43;;;7174:17;;7142:27;;:50;;:31;:50::i;:::-;7112:27;:80;7203:32;7220:14;7203:16;:32::i;:::-;7279:17;;7251:46;;;;;;;7267:10;;7251:46;;;;;;7279:17;7251:46;;;-1:-1:-1;487:1:41;1227:14;:38;6795:509:6:o;1001:111:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;5283:128:6:-;5353:4;5376:28;;;:19;:28;;;;;;;5283:128::o;865:19::-;;;-1:-1:-1;;;;;865:19:6;;:::o;12203:342::-;12303:9;;:36;;;;;;;;12260:4;;;;;;;;;;-1:-1:-1;;;;;12303:9:6;;:34;;:36;;;;;;;;;;;12260:4;12303:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;12303:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12303:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12303:36:6;;;;;;;;;-1:-1:-1;12303:36:6;-1:-1:-1;12353:10:6;;;:20;;;12368:5;12367:6;12353:20;12350:32;;;12375:7;;12350:32;12447:9;;:29;;;-1:-1:-1;;;;;12447:29:6;;;;;;;;;;-1:-1:-1;;;;;12447:9:6;;;;:22;;:29;;;;;:9;;:29;;;;;;;;:9;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;12447:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12447:29:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;12447:29:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;12447:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;12447:29:6;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;12447:29:6;;;;;;12392:84;;;;;;;;12504:3;12494:7;:13;;;:44;;;-1:-1:-1;12511:27:6;;:3;:27;;;12203:342;-1:-1:-1;;;;12203:342:6:o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;4877:141:6:-;-1:-1:-1;;;;;4978:33:6;4955:4;4978:33;;;:22;:33;;;;;;;4877:141::o;5024:127::-;5092:4;5115:29;:11;5136:7;5115:29;:20;:29;:::i;:::-;5108:36;5024:127;-1:-1:-1;;5024:127:6:o;777:30::-;;;-1:-1:-1;;;;;777:30:6;;:::o;11970:227::-;12025:4;12042:10;12054;12068:9;;;;;;;;;-1:-1:-1;;;;;12068:9:6;-1:-1:-1;;;;;12068:34:6;;:36;;;;;-1:-1:-1;;;12068:36:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12068:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12068:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12068:36:6;;;;;;;;;-1:-1:-1;12068:36:6;-1:-1:-1;12118:6:6;;12115:18;;;12126:7;;12115:18;12150:10;;;:40;;;12164:26;:24;:26::i;:::-;12143:47;;11970:227;;;;:::o;956:29::-;;;;:::o;5566:1168::-;5616:14;;:::i;:::-;5691:10;5768:14;5851:27;6046:19;6069:23;6140:14;6224;6256:30;6362:20;5647:24;:22;:24::i;:::-;5646:25;5642:38;;;5673:7;;5642:38;5721:9;;:36;;;;;;;;-1:-1:-1;;;;;5721:9:6;;;;:34;;:36;;;;;;;;;;;;;:9;;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;5721:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5721:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5721:36:6;5802:9;;5721:36;5802:33;;;;;;;5721:36;;-1:-1:-1;;;;;;5802:9:6;;;;:31;;:33;;;;;5721:36;5802:33;;;;;;:9;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;5802:33:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5802:33:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5802:33:6;5884:9;;5802:33;5884;;-1:-1:-1;;;;;5884:33:6;;;;;;;;;;5802;;-1:-1:-1;;;;;;5884:9:6;;;;:22;;:33;;;;;:9;;:33;;;;;;;;:9;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;5884:33:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5884:33:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5884:33:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;5884:33:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;5884:33:6;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;5884:33:6;;;;;;5846:71;;;;;;;5979:5;5988:1;5979:10;:32;;;;6006:5;5993:9;:18;5979:32;:52;;6030:1;6022:5;:9;5979:52;;;6014:5;5979:52;6100:9;;:29;;;-1:-1:-1;;;;;6100:29:6;;;;;;;;;;5971:60;;-1:-1:-1;;;;;;6100:9:6;;;;:22;;:29;;;;;:9;;:29;;;;;;;;:9;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;6100:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6100:29:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;6100:29:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;6100:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;6100:29:6;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;6100:29:6;;;;;;6042:87;;;;;;;;6157:17;:24;6175:5;6157:24;;;;;;;;;;;;;;;;;;;;;6140:41;;6196:9;6192:22;;;6207:7;;6192:22;6241:5;6224:22;;6297:230;6316:1;6304:9;:13;6297:230;;;6394:9;;:33;;;-1:-1:-1;;;;;6394:33:6;;-1:-1:-1;;6333:11:6;;;6394:33;;;;;;;;6333:11;;-1:-1:-1;;;;;6394:9:6;;;;:22;;:33;;;;;:9;;:33;;;;;;;:9;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6394:33:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6394:33:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;6394:33:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;6394:33:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;6394:33:6;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;6359:68:6;;-1:-1:-1;6470:46:6;;-1:-1:-1;6470:25:6;;-1:-1:-1;6359:68:6;;-1:-1:-1;;6470:46:6;:29;:46;;-1:-1:-1;;;;;6470:46:6:i;:::-;6442:74;;6297:230;;;6625:27;;6549:104;;:58;:14;6581:25;6549:58;:31;:58;:::i;:::-;:75;:104;:75;:104;:::i;:::-;6537:116;;:9;6663;;:37;;;6710:9;;;:17;;;5566:1168;;;;;;;;;;;:::o;2748:119::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;2817:19:6;;;;2809:28;;;;;;2848:4;:12;;-1:-1:-1;;2848:12:6;-1:-1:-1;;;;;2848:12:6;;;;;;;;;;2748:119::o;4715:156::-;-1:-1:-1;;;;;4822:28:6;;;;;;:17;:28;;;;;;:42;;-1:-1:-1;;;;;4822:42:6;;;;;;;;;;;4794:9;;4822:40;;;;:42;;;;;:28;:42;;;;;:40;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;4822:42:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4822:42:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4822:42:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4822:42:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;4822:42:6;;4715:156;-1:-1:-1;;;;;;4715:156:6:o;1459:28::-;;;;:::o;3351:1187::-;3532:9;;-1:-1:-1;;;;;3532:9:6;;3565:15;;3557:24;;;;;;3606:1;3599:8;;3591:17;;;;;;3636:1;3626:11;;3618:20;;;;;;-1:-1:-1;;;;;3656:22:6;;;;3648:31;;;;;;3697:5;;:23;;;;;;;;;;;;;;-1:-1:-1;;;;;3697:5:6;;;;:15;;:23;;;;;;;;;;;;;;;:5;;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;3697:23:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3697:23:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3697:23:6;3689:32;;;;;;;;-1:-1:-1;;;;;3761:20:6;;3757:265;;;3806:9;:17;-1:-1:-1;3806:17:6;3798:26;;;;;;3757:265;;;3863:5;;:21;;;-1:-1:-1;;;;;3863:21:6;;;;;;;;;;-1:-1:-1;;;;;3863:5:6;;;;:13;;:21;;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;3863:21:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3863:21:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3863:21:6;3855:30;;;;;;;;3972:38;4005:4;3972:28;:11;3993:6;3972:28;:20;:28;:::i;:::-;:32;:38;:32;:38;:::i;:::-;3913:5;;:29;;;-1:-1:-1;;;;;3913:29:6;;;;;;;;;;-1:-1:-1;;;;;3913:5:6;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;3913:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3913:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3913:29:6;3907:61;;;-1:-1:-1;;;;;3907:61:6;;3962:4;3907:61;;;;;;-1:-1:-1;;;;;3907:46:6;;;;;;:61;;;;;3913:29;;3907:61;;;;;;;;-1:-1:-1;3907:46:6;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;3907:61:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3907:61:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3907:61:6;:103;;3899:112;;;;;;-1:-1:-1;;;;;4104:32:6;;;;;;:22;:32;;;;;;:49;;4141:11;4104:49;:36;:49;:::i;:::-;-1:-1:-1;;;;;4069:32:6;;;;;;:22;:32;;;;;;;;:84;;;;4163:17;:27;;;:49;;4199:6;4207:4;4163:49;:35;:49;:::i;:::-;-1:-1:-1;;;;;4222:27:6;;;;;;:17;:27;;;;;:56;;-1:-1:-1;;;;;4270:7:6;4222:56;:35;:56;:::i;:::-;4339:16;;:33;;4360:11;4339:33;:20;:33;:::i;:::-;4320:16;:52;4382:33;:11;4402:6;4410:4;4382:33;:19;:33;:::i;:::-;4425:40;:11;-1:-1:-1;;;;;4457:7:6;4425:40;:19;:40;:::i;:::-;4481:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4481:50:6;;;;;;;;;;;;;3351:1187;;;;;;:::o;4544:165::-;-1:-1:-1;;;;;4656:28:6;;4633:4;4656:28;;;:17;:28;;;;;:46;;4694:7;4656:46;:37;:46;:::i;:::-;4649:53;4544:165;-1:-1:-1;;;4544:165:6:o;1274:103:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;1531:30:6:-;;;;:::o;9666:1848::-;9754:10;9726:7;9736:29;;;:17;:29;;;;;;:43;;-1:-1:-1;;;;;9736:43:6;;;;;;;;;;;9726:7;;;;;;;;9736:41;;;;:43;;;;;9726:7;;9736:43;;;;;;;:41;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;9736:43:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9736:43:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;9736:43:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;9736:43:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;9736:50:6;;-1:-1:-1;;;;9797:1711:6;9804:7;;9797:1711;;9862:10;9844:29;;;;:17;:29;;;;;;:43;;-1:-1:-1;;;;;9844:43:6;;;;;;;;;;;:41;;;;:43;;;;;;;;;;;:41;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;9844:43:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9844:43:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;9844:43:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;9844:43:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;9844:49:6;;-1:-1:-1;;9888:4:6;;;;9844:43;;-1:-1:-1;9888:4:6;;-1:-1:-1;9844:49:6;;;-1:-1:-1;9844:49:6;;;;;;;;;;;;;;9939:10;9921:29;;;;:17;:29;;;;;;;9844:49;;-1:-1:-1;9921:46:6;;9844:49;9921:46;:38;:46;:::i;:::-;9907:60;-1:-1:-1;9986:11:6;;9982:25;;;9999:8;;9982:25;10185:10;10162:34;;;;:22;:34;;;;;;10075:135;;10109:11;;10138:6;;10075:16;:135::i;:::-;10055:155;-1:-1:-1;10248:1:6;10233:16;;10225:25;;;;;;10426:27;;10351:103;;:45;:11;10389:6;10351:45;:37;:45;:::i;:::-;:74;:103;:74;:103;:::i;:::-;10328:126;-1:-1:-1;10527:173:6;10561:49;10328:126;10561:28;:11;10582:6;10561:28;:20;:28;:::i;:49::-;10628:12;10658:28;:11;10679:6;10658:28;:20;:28;:::i;:::-;10527:16;:173::i;:::-;10518:182;-1:-1:-1;10732:1:6;10723:10;;10715:19;;;;;;10779:27;;;;:19;:27;;;;;;:39;;10811:6;10779:39;:31;:39;:::i;:::-;10749:27;;;;:19;:27;;;;;;;;:69;;;;10850:10;10832:29;;:17;:29;;;:62;;10769:6;10881:12;10832:62;:40;:62;:::i;:::-;-1:-1:-1;;;;;10913:20:6;;10909:34;;;10935:8;;10909:34;-1:-1:-1;;;;;10962:20:6;;10958:266;;11010:5;;:21;;;-1:-1:-1;;;;;11010:21:6;;;;;;;;;;-1:-1:-1;;;;;11010:5:6;;;;:13;;:21;;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;11010:21:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11010:21:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11010:21:6;11002:30;;;;;;;;11064:5;;:29;;;-1:-1:-1;;;;;11064:29:6;;;;;;;;;;11123:6;;-1:-1:-1;;;;;11064:5:6;;:21;;:29;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;11064:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11064:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11064:29:6;11058:61;;;-1:-1:-1;;;;;11058:61:6;;11113:4;11058:61;;;;;;-1:-1:-1;;;;;11058:46:6;;;;;;:61;;;;;11064:29;;11058:61;;;;;;;;-1:-1:-1;11058:46:6;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;11058:61:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11058:61:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11058:61:6;:71;;11050:80;;;;;;10958:266;;;11185:4;11177:21;:31;-1:-1:-1;11177:31:6;11169:40;;;;;;-1:-1:-1;;;;;11242:20:6;;11238:199;;;11282:27;;:10;;:27;;;;;11302:6;;11282:27;;;;11302:6;11282:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11282:27:6;11238:199;;;11362:5;;:29;;;-1:-1:-1;;;;;11362:29:6;;;;;;;;;;-1:-1:-1;;;;;11362:5:6;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;11362:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11362:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11362:29:6;11356:65;;;;;;11402:10;11356:65;;;;;;;;;;;;-1:-1:-1;;;;;11356:45:6;;;;;;:65;;;;;11362:29;;11356:65;;;;;;;;-1:-1:-1;11356:45:6;:65;;;5:2:-1;;;;30:1;27;20:12;5:2;11356:65:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11356:65:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11356:65:6;11348:74;;;;;;;;11456:41;;;;;;;;;;;;;;11470:10;;11456:41;;;;;;;;9797:1711;;;9666:1848;;;;;;:::o;1238:128:44:-;1319:7;;;1339;;;;1332:15;;;1060:116;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:44;;;1060:116::o;7310:1622:6:-;7373:7;7455:14;7517:11;7614:17;8289:8;7383:11;:23;;;;:25;;;;;-1:-1:-1;;;7383:25:6;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7383:25:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7383:25:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7383:25:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;7383:25:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;7383:32:6;;-1:-1:-1;;;;7426:1500:6;7432:7;;7426:1500;;7472:25;;;-1:-1:-1;;;;;7472:25:6;;:11;:25;;;;;;:23;;;;:25;;;;;-1:-1:-1;;7472:25:6;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;7472:25:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7472:25:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7472:25:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;7472:25:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;7472:31:6;;-1:-1:-1;;7498:4:6;;;;7472:25;;-1:-1:-1;7498:4:6;;-1:-1:-1;7472:31:6;;;-1:-1:-1;7472:31:6;;;;;;;;;;;;;;-1:-1:-1;7531:28:6;:11;7472:31;7531:28;:20;:28;:::i;:::-;7517:42;-1:-1:-1;7578:11:6;;7574:25;;;7591:8;;7574:25;7653:11;;7634:31;;:6;;:18;:31::i;:::-;7614:51;-1:-1:-1;7703:1:6;7688:16;;7680:25;;;;;;7741:152;7775:40;7796:18;;7775:16;;:20;;:40;;;;:::i;:::-;7833:12;7863:16;;7741;:152::i;:::-;7732:161;-1:-1:-1;7925:1:6;7916:10;;7908:19;;;;;;7972:27;;;;:19;:27;;;;;;:39;;8004:6;7972:39;:31;:39;:::i;:::-;7942:27;;;;:19;:27;;;;;:69;-1:-1:-1;;;;;8042:20:6;;8038:35;;;8065:8;;8038:35;-1:-1:-1;;;;;8092:20:6;;8088:187;;8140:5;;:21;;;-1:-1:-1;;;;;8140:21:6;;;;;;;;;;-1:-1:-1;;;;;8140:5:6;;;;:13;;:21;;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;8140:21:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8140:21:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8140:21:6;8132:30;;;;;;;;8194:5;;:29;;;-1:-1:-1;;;;;8194:29:6;;;;;;;;;;8253:6;;-1:-1:-1;;;;;8194:5:6;;:21;;:29;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8194:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8194:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8194:29:6;8188:61;;;-1:-1:-1;;;;;8188:61:6;;8243:4;8188:61;;;;;;-1:-1:-1;;;;;8188:46:6;;;;;;:61;;;;;8194:29;;8188:61;;;;;;;;-1:-1:-1;8188:46:6;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;8188:61:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8188:61:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8188:61:6;:71;;8180:80;;;;;;8320:1;8300:17;;:21;:97;;8396:1;8300:97;;;8359:17;;8340:37;;:6;;:37;:18;:37;:::i;:::-;8289:108;;8436:1;8416:17;;:21;8412:43;;;8453:1;8447:7;;8439:16;;;;;;-1:-1:-1;;;;;8474:20:6;;8470:380;;;8524:1;8518:3;:7;8514:40;;;8527:13;;:27;;-1:-1:-1;;;;;8527:13:6;;;;:27;;;;;8550:3;;8527:13;:27;:13;:27;8550:3;8527:13;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8527:27:6;8514:40;8572:10;:36;8592:15;:6;8603:3;8592:15;:10;:15;:::i;:::-;8572:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8572:36:6;8470:380;;;8657:1;8651:3;:7;8647:87;;;8674:5;;:29;;;-1:-1:-1;;;;;8674:29:6;;;;;;;;;;-1:-1:-1;;;;;8674:5:6;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8674:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8674:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8674:29:6;8714:13;;8668:65;;;;;;-1:-1:-1;;;;;8714:13:6;;;8668:65;;;;;;;;;;;;:45;;;;;;;:65;;;;;8674:29;;8668:65;;;;;;;8714:13;8668:45;:65;;;5:2:-1;;;;30:1;27;20:12;5:2;8668:65:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8668:65:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8668:65:6;8660:74;;;;;;;;8766:5;;:29;;;-1:-1:-1;;;;;8766:29:6;;;;;;;;;;-1:-1:-1;;;;;8766:5:6;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8766:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8766:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8766:29:6;-1:-1:-1;;;;;8760:45:6;;8806:10;8818:15;:6;8829:3;8818:15;:10;:15;:::i;:::-;8760:74;;;;;-1:-1:-1;;;8760:74:6;;;;;;;-1:-1:-1;;;;;8760:74:6;-1:-1:-1;;;;;8760:74:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8760:74:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8760:74:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8760:74:6;8752:83;;;;;;;;8869:46;;;;;;;;;;;;;;8888:10;;8869:46;;;;;;;;7426:1500;;933:137:11;1016:4;1039:24;;;:15;;;;;:24;;;;;;;933:137::o;292:206::-;385:31;398:8;408:7;385:12;:31::i;:::-;454:24;;;;:15;;;:24;;;;;;:37;;483:7;454:37;:28;:37;:::i;:::-;427:24;;;;:15;;;;:24;;-1:-1:-1;427:24:11;;;:64;292:206::o;1512:171:45:-;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o;1131:658:16:-;1197:11;;;;;1255:6;;;1248:14;;;;1284:6;;;:16;;-1:-1:-1;1294:6:16;;1284:16;1281:28;;;1302:7;;1281:28;1331:15;-1:-1:-1;;1344:1:16;1331:15;:12;:15;:::i;:::-;1319:27;-1:-1:-1;1361:9:16;;;1357:37;;1379:15;1392:1;1379:8;:1;1385;1379:8;:5;:8;:::i;:::-;:12;:15;:12;:15;:::i;:::-;1372:22;;;;1357:37;1413:1;1408;:6;1404:20;;;1423:1;1416:8;;;;1404:20;1443:1;1438;:6;1434:20;;;1453:1;1446:8;;;;1434:20;1472:6;;1465:267;;1514:1;1507:4;:8;:19;;1522:4;1507:19;;;1518:1;1507:19;1494:32;-1:-1:-1;1560:12:16;1494:32;1570:1;1560:12;:9;:12;:::i;:::-;1540:32;-1:-1:-1;1596:31:16;1607:19;1540:32;1624:1;1607:19;:16;:19;:::i;:::-;1596:6;;:31;:10;:31;:::i;:::-;1587:40;;1656:34;1688:1;1673:12;:16;;;;;;;1656:12;;1673:16;;1656:34;:16;:34;:::i;:::-;1641:49;-1:-1:-1;1709:12:16;:1;1715:5;1709:12;:5;:12;:::i;:::-;1705:16;;1465:267;;;1751:31;1762:19;:12;1779:1;1762:19;:16;:19;:::i;1751:31::-;1742:40;;1131:658;;;;;;;;;;:::o;543:123:13:-;605:4;628:31;645:2;649;653:5;:3;:5::i;504:275:11:-;608:31;621:8;631:7;608:12;:31::i;:::-;600:40;;;;;;;;689:7;658:27;667:8;677:7;658:8;:27::i;:::-;:38;;650:47;;;;;;735:24;;;;:15;;;:24;;;;;;:37;;764:7;735:37;:28;:37;:::i;1198:234::-;1287:31;1300:8;1310:7;1287:12;:31::i;:::-;1286:32;1282:144;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;1334:35:11;;;;;;;;;;;;;1383:25;;;:16;;;:25;;;;;:32;;-1:-1:-1;;1383:32:11;;;;;;1198:234::o;665:283:44:-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;203:380::-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:44;506:8;;485:36;-1:-1:-1;531:7:44;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;357:65:13;393:4;414:5;:3;:5::i;:::-;408:2;:11;401:18;;357:65;:::o;785:142:11:-;872:4;895:25;;;:16;;;;;:25;;;;;;;;;785:142::o;225:67:13:-;261:4;280:9;:7;:9::i;:::-;276:1;:13;269:20;;225:67;:::o;161:59::-;216:1;161:59;:::o;197:1350:20:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;197:1350:20;;;-1:-1:-1;;197:1350:20:o;672:107:13:-;723:4;752:5;:3;:5::i;:::-;746:2;:11;;:26;;;;;767:5;:3;:5::i;:::-;761:11;;;;;672:107;-1:-1:-1;672:107:13:o;924:139::-;977:4;1001:13;1011:2;1001:9;:13::i;:::-;993:22;;;;;;;;1033:23;1046:9;:7;:9::i;:::-;1033:2;;1040;:15;1033:23;:6;:23;:::i;297:55::-;333:4;297:55;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"../../rates/IRates.sol\";\nimport \"../../crowdsale/W12Fund.sol\";\nimport \"../../token/IWToken.sol\";\n\n\ncontract W12FundStub is W12Fund {\n constructor (\n uint version,\n address crowdsaleAddress,\n address swapAddress,\n address wTokenAddress,\n address _serviceWallet,\n uint _trancheFeePercent,\n IRates _rates\n )\n W12Fund(version, _trancheFeePercent, _rates) public\n {\n crowdsale = IW12Crowdsale(crowdsaleAddress);\n swap = swapAddress;\n wToken = IWToken(wTokenAddress);\n trancheFeePercent = _trancheFeePercent;\n serviceWallet = _serviceWallet;\n }\n\n// function _setTotalFunded(uint amount) external {\n// totalFunded = amount;\n// }\n//\n// function _setTotalRefunded(uint amount) external {\n// totalRefunded = amount;\n// }\n\n function() payable external {}\n\n function _outFunds(bytes32 _symbol, uint _amount) external {\n if (_symbol == METHOD_ETH) {\n require(address(this).balance >= _amount);\n msg.sender.transfer(_amount);\n } else if(_symbol != METHOD_USD) {\n require(rates.isToken(_symbol));\n require(ERC20(rates.getTokenAddress(_symbol)).balanceOf(address(this)) >= _amount);\n require(ERC20(rates.getTokenAddress(_symbol)).transfer(msg.sender, _amount));\n }\n }\n\n // allow any sender\n modifier onlyFrom(address sender) {\n _;\n }\n}\n", + "bytecode": "0x60806040523480156200001157600080fd5b5060405160e0806200240883398101604090815281516020830151918301516060840151608085015160a086015160c0909601519395929391929091868282826200006533640100000000620002a3810204565b6200007933640100000000620002f5810204565b60025560038054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a160016004908155604080517f520b00660000000000000000000000000000000000000000000000000000000081529182018490525173__Percent_______________________________9163520b0066916024808301926020929190829003018186803b1580156200013e57600080fd5b505af415801562000153573d6000803e3d6000fd5b505050506040513d60208110156200016a57600080fd5b5051801562000214575060648273__Percent_______________________________630fe9114790916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015620001e457600080fd5b505af4158015620001f9573d6000803e3d6000fd5b505050506040513d60208110156200021057600080fd5b5051105b15156200022057600080fd5b600160a060020a03811615156200023657600080fd5b60078054600160a060020a0319908116600160a060020a03938416179091556005805482169a83169a909a17909955600880548a1698821698909817909755505060068054871694861694909417909355600a556009805490941692169190911790915550620003da9050565b620002be60008264010000000062001f856200034782021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b6200031060018264010000000062001f856200034782021704565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600160a060020a03811615156200035d57600080fd5b620003728282640100000000620003a2810204565b156200037d57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620003ba57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61201e80620003ea6000396000f3006080604052600436106101be5763ffffffff60e060020a600035041663015dd28c81146101c05780630babd864146102255780631785f53c1461025657806319ae48ed146102775780632348238c1461029e57806323585f96146102bf57806323bffccc146102eb57806324d7806c1461030c578063278ecde11461032d5780633bcdb1641461034557806343f48fbd14610366578063483a20b21461037b5780634992a3521461039c57806354fd4d50146103b75780635641f3c3146103cc5780636b90d6d2146103e15780636ebc0af1146103f6578063704802751461040b5780637a1c2da31461042c5780638119c065146104445780638429fffe146104595780638bad0c0a1461046e5780639124a789146104835780639ab269a6146104a45780639c1e03a0146104bc5780639e80baac146104d1578063a328665a146104e6578063a3b768e1146104fb578063acb3c07314610548578063adb9dd0814610569578063b4105a3e1461058a578063c6dbdf611461059f578063d0934d61146105b4578063d0baf2f5146105c9578063d155790b146105e9578063d8e9ce641461060a578063f206cb641461062b578063fb2814c41461064f575b005b3480156101cc57600080fd5b506101d5610664565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102115781810151838201526020016101f9565b505050509050019250505060405180910390f35b34801561023157600080fd5b5061023a610763565b60408051600160a060020a039092168252519081900360200190f35b34801561026257600080fd5b506101be600160a060020a0360043516610772565b34801561028357600080fd5b5061028c61077e565b60408051918252519081900360200190f35b3480156102aa57600080fd5b506101be600160a060020a0360043516610784565b3480156102cb57600080fd5b506102d7600435610817565b604080519115158252519081900360200190f35b3480156102f757600080fd5b506101be600160a060020a036004351661082c565b34801561031857600080fd5b506102d7600160a060020a0360043516610870565b34801561033957600080fd5b506101be600435610888565b34801561035157600080fd5b506101be600160a060020a0360043516610b52565b34801561037257600080fd5b5061023a610b5b565b34801561038757600080fd5b506101be600160a060020a0360043516610b6a565b3480156103a857600080fd5b506101be600435602435610cdf565b3480156103c357600080fd5b5061028c61106d565b3480156103d857600080fd5b5061023a611073565b3480156103ed57600080fd5b506102d7611082565b34801561040257600080fd5b506101be6112ad565b34801561041757600080fd5b506101be600160a060020a036004351661146a565b34801561043857600080fd5b5061028c600435611473565b34801561045057600080fd5b5061023a611485565b34801561046557600080fd5b506102d7611494565b34801561047a57600080fd5b506101be6116c3565b34801561048f57600080fd5b5061028c600160a060020a03600435166116ce565b3480156104b057600080fd5b5061028c6004356116e9565b3480156104c857600080fd5b5061023a611791565b3480156104dd57600080fd5b506102d76117a0565b3480156104f257600080fd5b5061028c611853565b34801561050757600080fd5b50610510611859565b6040518082606080838360005b8381101561053557818101518382015260200161051d565b5050505090500191505060405180910390f35b34801561055457600080fd5b506101be600160a060020a0360043516611918565b34801561057557600080fd5b506101d5600160a060020a036004351661195c565b34801561059657600080fd5b5061028c611a6f565b3480156105ab57600080fd5b5061023a611a75565b3480156105c057600080fd5b506101be611a84565b6101be600160a060020a0360043516602435604435606435608435611a8d565b3480156105f557600080fd5b506101be600160a060020a0360043516611b4d565b34801561061657600080fd5b506102d7600160a060020a0360043516611b56565b34801561063757600080fd5b5061028c600160a060020a0360043516602435611b69565b34801561065b57600080fd5b5061028c611c24565b604080517f20e1e1d1000000000000000000000000000000000000000000000000000000008152600d6004820152905160609173__FundAccount___________________________916320e1e1d191602480820192600092909190829003018186803b1580156106d357600080fd5b505af41580156106e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561071057600080fd5b81019080805164010000000081111561072857600080fd5b8201602081018481111561073b57600080fd5b815185602082028301116401000000008211171561075857600080fd5b509094505050505090565b600654600160a060020a031681565b61077b81611c2a565b50565b600c5490565b600354600160a060020a0316331461079b57600080fd5b600160a060020a03811615156107b057600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b6000908152600b602052604090205460ff1690565b600160a060020a038116151561084157600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000610882818363ffffffff611c7216565b92915050565b600480546001019081905561089b611082565b15156108a657600080fd5b8115156108b257600080fd5b336000908152601360205260409020548211156108ce57600080fd5b600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015290518492600160a060020a0316916370a082319160248083019260209291908290030181600087803b15801561093357600080fd5b505af1158015610947573d6000803e3d6000fd5b505050506040513d602081101561095d57600080fd5b5051101561096a57600080fd5b600654604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518492600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156109d557600080fd5b505af11580156109e9573d6000803e3d6000fd5b505050506040513d60208110156109ff57600080fd5b50511015610a0c57600080fd5b610a1582611ca9565b601254610a28908363ffffffff611d4816565b60125533600090815260136020526040902054610a4b908363ffffffff611d6116565b3360008181526013602090815260408083209490945560065460085485517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810195909552600160a060020a0390811660248601526044850188905294519416936323b872dd93606480820194918390030190829087803b158015610ad357600080fd5b505af1158015610ae7573d6000803e3d6000fd5b505050506040513d6020811015610afd57600080fd5b50511515610b0a57600080fd5b60408051838152905133917fb7feb6c1d7169f40790388a31c0160d8f962a2b6c31970c28bd8cdfefa25ea29919081900360200190a26004548114610b4e57600080fd5b5050565b61077b81611d78565b600754600160a060020a031681565b600160a060020a0381161515610b7f57600080fd5b6000600160a060020a031681600160a060020a0316634090cb646040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610bc857600080fd5b505af1158015610bdc573d6000803e3d6000fd5b505050506040513d6020811015610bf257600080fd5b5051600160a060020a03161415610c0857600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b505050506040513d6020811015610cae57600080fd5b50516006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550565b7f4554480000000000000000000000000000000000000000000000000000000000821415610d48573031811115610d1557600080fd5b604051339082156108fc029083906000818181858888f19350505050158015610d42573d6000803e3d6000fd5b50610b4e565b7f55534400000000000000000000000000000000000000000000000000000000008214610b4e57600754604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b50511515610e0d57600080fd5b600754604080517fb12e44100000000000000000000000000000000000000000000000000000000081526004810185905290518392600160a060020a03169163b12e44109160248083019260209291908290030181600087803b158015610e7357600080fd5b505af1158015610e87573d6000803e3d6000fd5b505050506040513d6020811015610e9d57600080fd5b5051604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610f0257600080fd5b505af1158015610f16573d6000803e3d6000fd5b505050506040513d6020811015610f2c57600080fd5b50511015610f3957600080fd5b600754604080517fb12e4410000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b505050506040513d6020811015610fca57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561103657600080fd5b505af115801561104a573d6000803e3d6000fd5b505050506040513d602081101561106057600080fd5b50511515610b4e57600080fd5b60025481565b600954600160a060020a031681565b600554604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b1580156110e557600080fd5b505af11580156110f9573d6000803e3d6000fd5b505050506040513d604081101561110f57600080fd5b5080516020909101519094509250831515611129576112a6565b600554604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561118f57600080fd5b505af11580156111a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156111cc57600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561120257600080fd5b8201602081018481111561121557600080fd5b815164010000000081118282018710171561122f57600080fd5b5050929190602001805164010000000081111561124b57600080fd5b8201602081018481111561125e57600080fd5b815164010000000081118282018710171561127857600080fd5b50509291905050505050935050509150428263ffffffff16111580156112a357508063ffffffff1642105b94505b5050505090565b6112b5611fd3565b60048054600101908190556112c86117a0565b15156112d357600080fd5b6112db611859565b80519092506000106112ec57600080fd5b604080517f20e1e1d1000000000000000000000000000000000000000000000000000000008152600d6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b15801561135757600080fd5b505af415801561136b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561139457600080fd5b8101908080516401000000008111156113ac57600080fd5b820160208101848111156113bf57600080fd5b81518560208202830111640100000000821117156113dc57600080fd5b505051151592506113ef91505057600080fd5b6040828101516000908152600b60205220805460ff191660011790558151600c5461141991611d48565b600c5561142582611dc0565b8151604080519182525133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a26004548114610b4e57600080fd5b61077b81611ea9565b60009081526010602052604090205490565b600854600160a060020a031681565b600554604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b505050506040513d604081101561152157600080fd5b508051602090910151909450925083158061153a575082155b15611544576112a6565b600554604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b1580156115aa57600080fd5b505af11580156115be573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156115e757600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561161d57600080fd5b8201602081018481111561163057600080fd5b815164010000000081118282018710171561164a57600080fd5b5050929190602001805164010000000081111561166657600080fd5b8201602081018481111561167957600080fd5b815164010000000081118282018710171561169357600080fd5b50509291905050505050935050509150428263ffffffff1611806112a3575063ffffffff16421015949350505050565b6116cc33611c2a565b565b600160a060020a031660009081526013602052604090205490565b604080517f75dff138000000000000000000000000000000000000000000000000000000008152600d600482015260248101839052905160009173__FundAccount___________________________916375dff13891604480820192602092909190829003018186803b15801561175f57600080fd5b505af4158015611773573d6000803e3d6000fd5b505050506040513d602081101561178957600080fd5b505192915050565b600554600160a060020a031681565b6000806000600560009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b1580156117f757600080fd5b505af115801561180b573d6000803e3d6000fd5b505050506040513d604081101561182157600080fd5b508051602090910151909250905080151561183b5761184e565b81158061184b575061184b611494565b92505b505090565b600a5481565b611861611fd3565b73__Fund__________________________________63c4466008600b6118856117a0565b6005546040805160e060020a63ffffffff871602815260048101949094529115156024840152600160a060020a03166044830152516064808301926060929190829003018186803b1580156118d957600080fd5b505af41580156118ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250606081101561191257600080fd5b50905090565b600160a060020a038116151561192d57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03811660009081526014602052604080822081517f20e1e1d10000000000000000000000000000000000000000000000000000000081526004810191909152905160609273__FundAccount___________________________926320e1e1d19260248083019392829003018186803b1580156119de57600080fd5b505af41580156119f2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611a1b57600080fd5b810190808051640100000000811115611a3357600080fd5b82016020810184811115611a4657600080fd5b8151856020820283011164010000000082111715611a6357600080fd5b50909695505050505050565b60115490565b600354600160a060020a031690565b6116cc33611ef1565b600754604080517f46d1230a000000000000000000000000000000000000000000000000000000008152600b6004820152600160a060020a03808916602483015260448201889052606482018790526084820186905260a4820185905290921660c48301525173__Fund__________________________________916346d1230a9160e4808301926000929190829003018186803b158015611b2e57600080fd5b505af4158015611b42573d6000803e3d6000fd5b505050505050505050565b61077b81611ef1565b600061088260018363ffffffff611c7216565b600160a060020a038216600090815260146020908152604080832081517f75dff138000000000000000000000000000000000000000000000000000000008152600481019190915260248101859052905173__FundAccount___________________________926375dff1389260448082019391829003018186803b158015611bf157600080fd5b505af4158015611c05573d6000803e3d6000fd5b505050506040513d6020811015611c1b57600080fd5b50519392505050565b60125490565b611c3b60008263ffffffff611f3916565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515611c8957600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600754604080517fe0650238000000000000000000000000000000000000000000000000000000008152600b600482015260248101849052600160a060020a0390921660448301525173__Fund__________________________________9163e0650238916064808301926000929190829003018186803b158015611d2d57600080fd5b505af4158015611d41573d6000803e3d6000fd5b5050505050565b600082820183811015611d5a57600080fd5b9392505050565b60008083831115611d7157600080fd5b5050900390565b611d8960018263ffffffff611f8516565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600a546009546007546040517f69b3e2d2000000000000000000000000000000000000000000000000000000008152600b6004820181815273__Fund__________________________________956369b3e2d295929488949193600160a060020a039081169391169160240185606080838360005b83811015611e4d578181015183820152602001611e35565b5050505090500184815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019550505050505060006040518083038186803b158015611d2d57600080fd5b611eba60008263ffffffff611f8516565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b611f0260018263ffffffff611f3916565b604051600160a060020a038216907fa3bfdef3d8149bacf15b7b64199fca8228c0fd4f8fcdd11cc7871829baf319c390600090a250565b600160a060020a0381161515611f4e57600080fd5b611f588282611c72565b1515611f6357600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0381161515611f9a57600080fd5b611fa48282611c72565b15611fae57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60606040519081016040528060039060208202803883395091929150505600a165627a7a7230582054dfffbcf266b6f19cf8f3df6099531c3f8703f38ac1fc48beac7d42655cf4160029", + "deployedBytecode": "0x6080604052600436106101be5763ffffffff60e060020a600035041663015dd28c81146101c05780630babd864146102255780631785f53c1461025657806319ae48ed146102775780632348238c1461029e57806323585f96146102bf57806323bffccc146102eb57806324d7806c1461030c578063278ecde11461032d5780633bcdb1641461034557806343f48fbd14610366578063483a20b21461037b5780634992a3521461039c57806354fd4d50146103b75780635641f3c3146103cc5780636b90d6d2146103e15780636ebc0af1146103f6578063704802751461040b5780637a1c2da31461042c5780638119c065146104445780638429fffe146104595780638bad0c0a1461046e5780639124a789146104835780639ab269a6146104a45780639c1e03a0146104bc5780639e80baac146104d1578063a328665a146104e6578063a3b768e1146104fb578063acb3c07314610548578063adb9dd0814610569578063b4105a3e1461058a578063c6dbdf611461059f578063d0934d61146105b4578063d0baf2f5146105c9578063d155790b146105e9578063d8e9ce641461060a578063f206cb641461062b578063fb2814c41461064f575b005b3480156101cc57600080fd5b506101d5610664565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102115781810151838201526020016101f9565b505050509050019250505060405180910390f35b34801561023157600080fd5b5061023a610763565b60408051600160a060020a039092168252519081900360200190f35b34801561026257600080fd5b506101be600160a060020a0360043516610772565b34801561028357600080fd5b5061028c61077e565b60408051918252519081900360200190f35b3480156102aa57600080fd5b506101be600160a060020a0360043516610784565b3480156102cb57600080fd5b506102d7600435610817565b604080519115158252519081900360200190f35b3480156102f757600080fd5b506101be600160a060020a036004351661082c565b34801561031857600080fd5b506102d7600160a060020a0360043516610870565b34801561033957600080fd5b506101be600435610888565b34801561035157600080fd5b506101be600160a060020a0360043516610b52565b34801561037257600080fd5b5061023a610b5b565b34801561038757600080fd5b506101be600160a060020a0360043516610b6a565b3480156103a857600080fd5b506101be600435602435610cdf565b3480156103c357600080fd5b5061028c61106d565b3480156103d857600080fd5b5061023a611073565b3480156103ed57600080fd5b506102d7611082565b34801561040257600080fd5b506101be6112ad565b34801561041757600080fd5b506101be600160a060020a036004351661146a565b34801561043857600080fd5b5061028c600435611473565b34801561045057600080fd5b5061023a611485565b34801561046557600080fd5b506102d7611494565b34801561047a57600080fd5b506101be6116c3565b34801561048f57600080fd5b5061028c600160a060020a03600435166116ce565b3480156104b057600080fd5b5061028c6004356116e9565b3480156104c857600080fd5b5061023a611791565b3480156104dd57600080fd5b506102d76117a0565b3480156104f257600080fd5b5061028c611853565b34801561050757600080fd5b50610510611859565b6040518082606080838360005b8381101561053557818101518382015260200161051d565b5050505090500191505060405180910390f35b34801561055457600080fd5b506101be600160a060020a0360043516611918565b34801561057557600080fd5b506101d5600160a060020a036004351661195c565b34801561059657600080fd5b5061028c611a6f565b3480156105ab57600080fd5b5061023a611a75565b3480156105c057600080fd5b506101be611a84565b6101be600160a060020a0360043516602435604435606435608435611a8d565b3480156105f557600080fd5b506101be600160a060020a0360043516611b4d565b34801561061657600080fd5b506102d7600160a060020a0360043516611b56565b34801561063757600080fd5b5061028c600160a060020a0360043516602435611b69565b34801561065b57600080fd5b5061028c611c24565b604080517f20e1e1d1000000000000000000000000000000000000000000000000000000008152600d6004820152905160609173__FundAccount___________________________916320e1e1d191602480820192600092909190829003018186803b1580156106d357600080fd5b505af41580156106e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561071057600080fd5b81019080805164010000000081111561072857600080fd5b8201602081018481111561073b57600080fd5b815185602082028301116401000000008211171561075857600080fd5b509094505050505090565b600654600160a060020a031681565b61077b81611c2a565b50565b600c5490565b600354600160a060020a0316331461079b57600080fd5b600160a060020a03811615156107b057600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b6000908152600b602052604090205460ff1690565b600160a060020a038116151561084157600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000610882818363ffffffff611c7216565b92915050565b600480546001019081905561089b611082565b15156108a657600080fd5b8115156108b257600080fd5b336000908152601360205260409020548211156108ce57600080fd5b600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015290518492600160a060020a0316916370a082319160248083019260209291908290030181600087803b15801561093357600080fd5b505af1158015610947573d6000803e3d6000fd5b505050506040513d602081101561095d57600080fd5b5051101561096a57600080fd5b600654604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518492600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156109d557600080fd5b505af11580156109e9573d6000803e3d6000fd5b505050506040513d60208110156109ff57600080fd5b50511015610a0c57600080fd5b610a1582611ca9565b601254610a28908363ffffffff611d4816565b60125533600090815260136020526040902054610a4b908363ffffffff611d6116565b3360008181526013602090815260408083209490945560065460085485517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810195909552600160a060020a0390811660248601526044850188905294519416936323b872dd93606480820194918390030190829087803b158015610ad357600080fd5b505af1158015610ae7573d6000803e3d6000fd5b505050506040513d6020811015610afd57600080fd5b50511515610b0a57600080fd5b60408051838152905133917fb7feb6c1d7169f40790388a31c0160d8f962a2b6c31970c28bd8cdfefa25ea29919081900360200190a26004548114610b4e57600080fd5b5050565b61077b81611d78565b600754600160a060020a031681565b600160a060020a0381161515610b7f57600080fd5b6000600160a060020a031681600160a060020a0316634090cb646040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610bc857600080fd5b505af1158015610bdc573d6000803e3d6000fd5b505050506040513d6020811015610bf257600080fd5b5051600160a060020a03161415610c0857600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b505050506040513d6020811015610cae57600080fd5b50516006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550565b7f4554480000000000000000000000000000000000000000000000000000000000821415610d48573031811115610d1557600080fd5b604051339082156108fc029083906000818181858888f19350505050158015610d42573d6000803e3d6000fd5b50610b4e565b7f55534400000000000000000000000000000000000000000000000000000000008214610b4e57600754604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b50511515610e0d57600080fd5b600754604080517fb12e44100000000000000000000000000000000000000000000000000000000081526004810185905290518392600160a060020a03169163b12e44109160248083019260209291908290030181600087803b158015610e7357600080fd5b505af1158015610e87573d6000803e3d6000fd5b505050506040513d6020811015610e9d57600080fd5b5051604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610f0257600080fd5b505af1158015610f16573d6000803e3d6000fd5b505050506040513d6020811015610f2c57600080fd5b50511015610f3957600080fd5b600754604080517fb12e4410000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b505050506040513d6020811015610fca57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561103657600080fd5b505af115801561104a573d6000803e3d6000fd5b505050506040513d602081101561106057600080fd5b50511515610b4e57600080fd5b60025481565b600954600160a060020a031681565b600554604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b1580156110e557600080fd5b505af11580156110f9573d6000803e3d6000fd5b505050506040513d604081101561110f57600080fd5b5080516020909101519094509250831515611129576112a6565b600554604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561118f57600080fd5b505af11580156111a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156111cc57600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561120257600080fd5b8201602081018481111561121557600080fd5b815164010000000081118282018710171561122f57600080fd5b5050929190602001805164010000000081111561124b57600080fd5b8201602081018481111561125e57600080fd5b815164010000000081118282018710171561127857600080fd5b50509291905050505050935050509150428263ffffffff16111580156112a357508063ffffffff1642105b94505b5050505090565b6112b5611fd3565b60048054600101908190556112c86117a0565b15156112d357600080fd5b6112db611859565b80519092506000106112ec57600080fd5b604080517f20e1e1d1000000000000000000000000000000000000000000000000000000008152600d6004820152905173__FundAccount___________________________916320e1e1d1916024808301926000929190829003018186803b15801561135757600080fd5b505af415801561136b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561139457600080fd5b8101908080516401000000008111156113ac57600080fd5b820160208101848111156113bf57600080fd5b81518560208202830111640100000000821117156113dc57600080fd5b505051151592506113ef91505057600080fd5b6040828101516000908152600b60205220805460ff191660011790558151600c5461141991611d48565b600c5561142582611dc0565b8151604080519182525133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a26004548114610b4e57600080fd5b61077b81611ea9565b60009081526010602052604090205490565b600854600160a060020a031681565b600554604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b505050506040513d604081101561152157600080fd5b508051602090910151909450925083158061153a575082155b15611544576112a6565b600554604080517f2442e1cb000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b1580156115aa57600080fd5b505af11580156115be573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156115e757600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561161d57600080fd5b8201602081018481111561163057600080fd5b815164010000000081118282018710171561164a57600080fd5b5050929190602001805164010000000081111561166657600080fd5b8201602081018481111561167957600080fd5b815164010000000081118282018710171561169357600080fd5b50509291905050505050935050509150428263ffffffff1611806112a3575063ffffffff16421015949350505050565b6116cc33611c2a565b565b600160a060020a031660009081526013602052604090205490565b604080517f75dff138000000000000000000000000000000000000000000000000000000008152600d600482015260248101839052905160009173__FundAccount___________________________916375dff13891604480820192602092909190829003018186803b15801561175f57600080fd5b505af4158015611773573d6000803e3d6000fd5b505050506040513d602081101561178957600080fd5b505192915050565b600554600160a060020a031681565b6000806000600560009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b1580156117f757600080fd5b505af115801561180b573d6000803e3d6000fd5b505050506040513d604081101561182157600080fd5b508051602090910151909250905080151561183b5761184e565b81158061184b575061184b611494565b92505b505090565b600a5481565b611861611fd3565b73__Fund__________________________________63c4466008600b6118856117a0565b6005546040805160e060020a63ffffffff871602815260048101949094529115156024840152600160a060020a03166044830152516064808301926060929190829003018186803b1580156118d957600080fd5b505af41580156118ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250606081101561191257600080fd5b50905090565b600160a060020a038116151561192d57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03811660009081526014602052604080822081517f20e1e1d10000000000000000000000000000000000000000000000000000000081526004810191909152905160609273__FundAccount___________________________926320e1e1d19260248083019392829003018186803b1580156119de57600080fd5b505af41580156119f2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611a1b57600080fd5b810190808051640100000000811115611a3357600080fd5b82016020810184811115611a4657600080fd5b8151856020820283011164010000000082111715611a6357600080fd5b50909695505050505050565b60115490565b600354600160a060020a031690565b6116cc33611ef1565b600754604080517f46d1230a000000000000000000000000000000000000000000000000000000008152600b6004820152600160a060020a03808916602483015260448201889052606482018790526084820186905260a4820185905290921660c48301525173__Fund__________________________________916346d1230a9160e4808301926000929190829003018186803b158015611b2e57600080fd5b505af4158015611b42573d6000803e3d6000fd5b505050505050505050565b61077b81611ef1565b600061088260018363ffffffff611c7216565b600160a060020a038216600090815260146020908152604080832081517f75dff138000000000000000000000000000000000000000000000000000000008152600481019190915260248101859052905173__FundAccount___________________________926375dff1389260448082019391829003018186803b158015611bf157600080fd5b505af4158015611c05573d6000803e3d6000fd5b505050506040513d6020811015611c1b57600080fd5b50519392505050565b60125490565b611c3b60008263ffffffff611f3916565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515611c8957600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600754604080517fe0650238000000000000000000000000000000000000000000000000000000008152600b600482015260248101849052600160a060020a0390921660448301525173__Fund__________________________________9163e0650238916064808301926000929190829003018186803b158015611d2d57600080fd5b505af4158015611d41573d6000803e3d6000fd5b5050505050565b600082820183811015611d5a57600080fd5b9392505050565b60008083831115611d7157600080fd5b5050900390565b611d8960018263ffffffff611f8516565b604051600160a060020a038216907f941e31c3e651de34a7fcf0132d9d02c2df9377e6b5f932bec5daf6353c94f90e90600090a250565b600a546009546007546040517f69b3e2d2000000000000000000000000000000000000000000000000000000008152600b6004820181815273__Fund__________________________________956369b3e2d295929488949193600160a060020a039081169391169160240185606080838360005b83811015611e4d578181015183820152602001611e35565b5050505090500184815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019550505050505060006040518083038186803b158015611d2d57600080fd5b611eba60008263ffffffff611f8516565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b611f0260018263ffffffff611f3916565b604051600160a060020a038216907fa3bfdef3d8149bacf15b7b64199fca8228c0fd4f8fcdd11cc7871829baf319c390600090a250565b600160a060020a0381161515611f4e57600080fd5b611f588282611c72565b1515611f6357600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0381161515611f9a57600080fd5b611fa48282611c72565b15611fae57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60606040519081016040528060039060208202803883395091929150505600a165627a7a7230582054dfffbcf266b6f19cf8f3df6099531c3f8703f38ac1fc48beac7d42655cf4160029", + "sourceMap": "198:1410:28:-;;;236:504;8:9:-1;5:2;;;30:1;27;20:12;5:2;236:504:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;306:21:3;316:10;306:9;;;;:21;:::i;:::-;334:28:8;351:10;334:16;;;;:28;:::i;:::-;123:7:48;:18;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;417:28;;;-1:-1:-1;;;;;436:8:55;;;;417:28;;;;;;;;;;;;559:1:62;543:13;:17;;;1707:30:12;;;;;;;;;;;;;:28;;;;:30;;;;;;;;;;;;;;:28;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;1707:30:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1707:30:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1707:30:12;:72;;;;;1776:3;1741:18;:30;;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1741:32:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1741:32:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1741:32:12;:38;1707:72;1699:81;;;;;;;;-1:-1:-1;;;;;1798:20:12;;;;1790:29;;;;;;1878:5;:14;;-1:-1:-1;;;;;;1878:14:12;;;-1:-1:-1;;;;;1878:14:12;;;;;;;533:9:28;:43;;;;;;;;;;;;;;586:4;:18;;;;;;;;;;;;;;-1:-1:-1;;614:6:28;:31;;;;;;;;;;;;;;1830:17:12;655:38:28;703:13;:30;;;;;;;;;;;;;;-1:-1:-1;198:1410:28;;-1:-1:-1;198:1410:28;612:115:3;667:19;:6;678:7;667:10;;;;;;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;689:136:8:-;751:26;:13;769:7;751:17;;;;;;:26;:::i;:::-;792;;-1:-1:-1;;;;;792:26:8;;;;;;;;689:136;:::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;198:1410:28:-;;;;;;;", + "deployedSourceMap": "198:1410:28:-;;;;;;;;;-1:-1:-1;;;198:1410:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4826:126:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4826:126:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4826:126:12;;;;;;;;;;;;;;;;;995:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;995:21:12;;;;;;;;-1:-1:-1;;;;;995:21:12;;;;;;;;;;;;;;2000:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2000:95:12;-1:-1:-1;;;;;2000:95:12;;;;;3624:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3624:123:12;;;;;;;;;;;;;;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;-1:-1:-1;;;;;855:171:55;;;;;3753:138:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3753:138:12;;;;;;;;;;;;;;;;;;;;;;;2711:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2711:164:12;-1:-1:-1;;;;;2711:164:12;;;;;423:104:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;423:104:3;-1:-1:-1;;;;;423:104:3;;;;;6332:700:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6332:700:12;;;;;2101:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2101:103:12;-1:-1:-1;;;;;2101:103:12;;;;;1022:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1022:19:12;;;;2325:255;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2325:255:12;-1:-1:-1;;;;;2325:255:12;;;;;980:486:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;980:486:28;;;;;;;53:19:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:48;;;;1072:28:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1072:28:12;;;;7201:444;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7201:444:12;;;;5510:540;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5510:540:12;;;;1905:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1905:89:12;-1:-1:-1;;;;;1905:89:12;;;;;4958:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4958:134:12;;;;;1047:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1047:19:12;;;;7884:342;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7884:342:12;;;;533:73:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;533:73:3;;;;4534:147:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4534:147:12;-1:-1:-1;;;;;4534:147:12;;;;;4687:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4687:133:12;;;;;959:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;959:30:12;;;;7651:227;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7651:227:12;;;;1138:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1138:29:12;;;;5247:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5247:202:12;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5247:202:12;;;;;;;;;;;;;;;;2586:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2586:119:12;-1:-1:-1;;;;;2586:119:12;;;;;4366:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4366:162:12;-1:-1:-1;;;;;4366:162:12;;;;;3933:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3933:101:12;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;596:87:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;596:87:8;;;;3189:380:12;;-1:-1:-1;;;;;3189:380:12;;;;;;;;;;;;;2210:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2210:109:12;-1:-1:-1;;;;;2210:109:12;;;;;472:118:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;472:118:8;-1:-1:-1;;;;;472:118:8;;;;;4189:171:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4189:171:12;-1:-1:-1;;;;;4189:171:12;;;;;;;4078:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4078:105:12;;;;4826:126;4914:31;;;;;;:17;:31;;;;;;4886:9;;4914:29;;;;:31;;;;;-1:-1:-1;;4914:31:12;;;;;;;;:29;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;4914:31:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4914:31:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4914:31:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4914:31:12;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;4914:31:12;;-1:-1:-1;;;;;4826:126:12;:::o;995:21::-;;;-1:-1:-1;;;;;995:21:12;;:::o;2000:95::-;2066:22;2079:8;2066:12;:22::i;:::-;2000:95;:::o;3624:123::-;3707:33;;3624:123;:::o;855:171:55:-;586:8;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;3753:138:12:-;3822:4;3845:39;;;:5;:39;;;;;;;;;3753:138::o;2711:164::-;-1:-1:-1;;;;;2798:28:12;;;;2790:37;;;;;;2838:13;:30;;-1:-1:-1;;2838:30:12;-1:-1:-1;;;;;2838:30:12;;;;;;;;;;2711:164::o;423:104:3:-;478:4;501:19;478:4;512:7;501:19;:10;:19;:::i;:::-;494:26;423:104;-1:-1:-1;;423:104:3:o;6332:700:12:-;954:13:62;:18;;971:1;954:18;;;;;6406:20:12;:18;:20::i;:::-;6398:29;;;;;;;;6445:16;;;6437:25;;;;;;6509:10;6480:40;;;;:28;:40;;;;;;:55;-1:-1:-1;6480:55:12;6472:64;;;;;;6554:6;;:28;;;;;;6571:10;6554:28;;;;;;6586:11;;-1:-1:-1;;;;;6554:6:12;;:16;;:28;;;;;;;;;;;;;;:6;;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;6554:28:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6554:28:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6554:28:12;:43;;6546:52;;;;;;6616:6;;:43;;;;;;6633:10;6616:43;;;;6653:4;6616:43;;;;;;6663:11;;-1:-1:-1;;;;;6616:6:12;;:16;;:43;;;;;;;;;;;;;;:6;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;6616:43:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6616:43:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6616:43:12;:58;;6608:67;;;;;;6686:26;6700:11;6686:13;:26::i;:::-;6750:24;;:41;;6779:11;6750:41;:28;:41;:::i;:::-;6723:24;:68;6873:10;6844:40;;;;:28;:40;;;;;;:57;;6889:11;6844:57;:44;:57;:::i;:::-;6830:10;6801:40;;;;:28;:40;;;;;;;;:100;;;;6920:6;;6801:28;6952:4;6920:50;;;;;;;;;;;;-1:-1:-1;;;;;6952:4:12;;;6920:50;;;;;;;;;;;;:6;;;:19;;:50;;;;;;;;;;;;;:6;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;6920:50:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6920:50:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6920:50:12;6912:59;;;;;;;;6987:38;;;;;;;;7001:10;;6987:38;;;;;;;;;;1051:13:62;;1035:29;;1027:38;;;;;;6332:700:12;;:::o;2101:103::-;2171:26;2188:8;2171:16;:26::i;1022:19::-;;;-1:-1:-1;;;;;1022:19:12;;:::o;2325:255::-;-1:-1:-1;;;;;2410:24:12;;;;2402:33;;;;;;2487:1;-1:-1:-1;;;;;2453:36:12;:10;-1:-1:-1;;;;;2453:20:12;;:22;;;;;-1:-1:-1;;;2453:22:12;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2453:22:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2453:22:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2453:22:12;-1:-1:-1;;;;;2453:36:12;;;2445:45;;;;;;2501:9;:22;;-1:-1:-1;;2501:22:12;-1:-1:-1;;;;;2501:22:12;;;;;;;;2550;;;;;;;;:20;;:22;;;;;;;;;;;;;;;-1:-1:-1;2501:22:12;2550;;;5:2:-1;;;;30:1;27;20:12;5:2;2550:22:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2550:22:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2550:22:12;2533:6;:40;;-1:-1:-1;;2533:40:12;-1:-1:-1;;;;;2533:40:12;;;;;;;;;-1:-1:-1;2325:255:12:o;980:486:28:-;888:14:12;1053:21:28;;1049:411;;;1106:4;1098:21;:32;-1:-1:-1;1098:32:28;1090:41;;;;;;1145:28;;:10;;:28;;;;;1165:7;;1145:28;;;;1165:7;1145:10;:28;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1145:28:28;1049:411;;;938:14:12;1193:21:28;;1190:270;;1238:5;;:22;;;;;;;;;;;;;;-1:-1:-1;;;;;1238:5:28;;;;:13;;:22;;;;;;;;;;;;;;;:5;;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;1238:22:28;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1238:22:28;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1238:22:28;1230:31;;;;;;;;1290:5;;:30;;;;;;;;;;;;;;1350:7;;-1:-1:-1;;;;;1290:5:28;;:21;;:30;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;1290:30:28;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1290:30:28;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1290:30:28;1283:63;;;;;;1340:4;1283:63;;;;;;-1:-1:-1;;;;;1283:48:28;;;;;;:63;;;;;1290:30;;1283:63;;;;;;;;-1:-1:-1;1283:48:28;:63;;;5:2:-1;;;;30:1;27;20:12;5:2;1283:63:28;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1283:63:28;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1283:63:28;:74;;1275:83;;;;;;1387:5;;:30;;;;;;;;;;;;;;-1:-1:-1;;;;;1387:5:28;;;;:21;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;1387:30:28;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1387:30:28;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1387:30:28;1380:68;;;;;;1428:10;1380:68;;;;;;;;;;;;-1:-1:-1;;;;;1380:47:28;;;;;;:68;;;;;1387:30;;1380:68;;;;;;;;-1:-1:-1;1380:47:28;:68;;;5:2:-1;;;;30:1;27;20:12;5:2;1380:68:28;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1380:68:28;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1380:68:28;1372:77;;;;;;;53:19:48;;;;:::o;1072:28:12:-;;;-1:-1:-1;;;;;1072:28:12;;:::o;7201:444::-;7295:9;;:36;;;;;;;;7252:4;;;;;;;;;;-1:-1:-1;;;;;7295:9:12;;:34;;:36;;;;;;;;;;;7252:4;7295:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;7295:36:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7295:36:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7295:36:12;;;;;;;;;-1:-1:-1;7295:36:12;-1:-1:-1;7470:10:12;;7467:22;;;7482:7;;7467:22;7551:9;;:29;;;;;;;;;;;;;;-1:-1:-1;;;;;7551:9:12;;;;:22;;:29;;;;;:9;;:29;;;;;;;;:9;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;7551:29:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7551:29:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7551:29:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;7551:29:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;7551:29:12;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;7551:29:12;;;;;;7499:81;;;;;;;;7609:3;7598:7;:14;;;;:40;;;;;7622:16;7616:22;;:3;:22;7598:40;7591:47;;7201:444;;;;;;:::o;5510:540::-;5622:29;;:::i;:::-;954:13:62;:18;;971:1;954:18;;;;;5586:24:12;:22;:24::i;:::-;5578:33;;;;;;;;5654:19;:17;:19::i;:::-;5692:17;;5622:51;;-1:-1:-1;5712:1:12;-1:-1:-1;5684:30:12;;;;;;5732:31;;;;;;:17;:31;;;;;;:29;;;;:31;;;;;-1:-1:-1;;5732:31:12;;;;;;;:29;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;5732:31:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5732:31:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5732:31:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;5732:31:12;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;5732:38:12;:43;;;-1:-1:-1;5724:52:12;;-1:-1:-1;;5724:52:12;;;;;5811:17;;;;;5787:23;:42;;;:5;5811:17;5787:42;;:49;;-1:-1:-1;;5787:49:12;5832:4;5787:49;;;5920:17;;5882:33;;:56;;:37;:56::i;:::-;5846:33;:92;5949:32;5966:14;5949:16;:32::i;:::-;6025:17;;5997:46;;;;;;;6013:10;;5997:46;;;;;;6025:17;5997:46;;;1051:13:62;;1035:29;;1027:38;;;;;1905:89:12;1968:19;1978:8;1968:9;:19::i;4958:134::-;5028:4;5051:34;;;:25;:34;;;;;;;4958:134::o;1047:19::-;;;-1:-1:-1;;;;;1047:19:12;;:::o;7884:342::-;7984:9;;:36;;;;;;;;7941:4;;;;;;;;;;-1:-1:-1;;;;;7984:9:12;;:34;;:36;;;;;;;;;;;7941:4;7984:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;7984:36:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7984:36:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7984:36:12;;;;;;;;;-1:-1:-1;7984:36:12;-1:-1:-1;8034:10:12;;;:20;;;8049:5;8048:6;8034:20;8031:32;;;8056:7;;8031:32;8128:9;;:29;;;;;;;;;;;;;;-1:-1:-1;;;;;8128:9:12;;;;:22;;:29;;;;;:9;;:29;;;;;;;;:9;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8128:29:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8128:29:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;8128:29:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;8128:29:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;8128:29:12;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;8128:29:12;;;;;;8073:84;;;;;;;;8185:3;8175:7;:13;;;:44;;;-1:-1:-1;8192:27:12;;:3;:27;;;7884:342;-1:-1:-1;;;;7884:342:12:o;533:73:3:-;575:24;588:10;575:12;:24::i;:::-;533:73::o;4534:147:12:-;-1:-1:-1;;;;;4635:39:12;4612:4;4635:39;;;:28;:39;;;;;;;4534:147::o;4687:133::-;4778:35;;;;;;:17;:35;;;;;;;;;;;;4755:4;;4778:26;;;;:35;;;;;;;;;;;;;;;:26;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;4778:35:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4778:35:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4778:35:12;;4687:133;-1:-1:-1;;4687:133:12:o;959:30::-;;;-1:-1:-1;;;;;959:30:12;;:::o;7651:227::-;7706:4;7723:10;7735;7749:9;;;;;;;;;-1:-1:-1;;;;;7749:9:12;-1:-1:-1;;;;;7749:34:12;;:36;;;;;-1:-1:-1;;;7749:36:12;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7749:36:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7749:36:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7749:36:12;;;;;;;;;-1:-1:-1;7749:36:12;-1:-1:-1;7799:6:12;;7796:18;;;7807:7;;7796:18;7831:10;;;:40;;;7845:26;:24;:26::i;:::-;7824:47;;7651:227;;;;:::o;1138:29::-;;;;:::o;5247:202::-;5297:14;;:::i;:::-;5330:4;:22;5366:5;5385:24;:22;:24::i;:::-;5423:9;;5330:112;;;-1:-1:-1;;;5330:112:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5423:9:12;5330:112;;;;;;;;;;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;5330:112:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5330:112:12;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5330:112:12;-1:-1:-1;5247:202:12;:::o;2586:119::-;-1:-1:-1;;;;;2655:19:12;;;;2647:28;;;;;;2686:4;:12;;-1:-1:-1;;2686:12:12;-1:-1:-1;;;;;2686:12:12;;;;;;;;;;2586:119::o;4366:162::-;-1:-1:-1;;;;;4473:34:12;;;;;;:23;:34;;;;;;:48;;;;;;;;;;;;;;4445:9;;4473:46;;;;:48;;;;;:34;:48;;;;;:46;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;4473:48:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4473:48:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4473:48:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4473:48:12;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;4473:48:12;;4366:162;-1:-1:-1;;;;;;4366:162:12:o;3933:101::-;4005:22;;3933:101;:::o;664:75:55:-;726:8;;-1:-1:-1;;;;;726:8:55;664:75;:::o;596:87:8:-;645:31;665:10;645:19;:31::i;3189:380:12:-;3547:5;;3389:173;;;;;;3422:5;3389:173;;;;-1:-1:-1;;;;;3389:173:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3547:5;;;3389:173;;;;;:4;;:19;;:173;;;;;3547:5;;3389:173;;;;;;;:4;:173;;;5:2:-1;;;;30:1;27;20:12;5:2;3389:173:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3389:173:12;;;;3189:380;;;;;:::o;2210:109::-;2283:29;2303:8;2283:19;:29::i;472:118:8:-;534:4;557:26;:13;575:7;557:26;:17;:26;:::i;4189:171:12:-;-1:-1:-1;;;;;4301:34:12;;4278:4;4301:34;;;:23;:34;;;;;;;;:52;;;;;;;;;;;;;;;;;;;;:43;;;;:52;;;;;;;;;;;:43;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;4301:52:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4301:52:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4301:52:12;;4189:171;-1:-1:-1;;;4189:171:12:o;4078:105::-;4152:24;;4078:105;:::o;733:123:3:-;791:22;:6;805:7;791:22;:13;:22;:::i;:::-;828:21;;-1:-1:-1;;;;;828:21:3;;;;;;;;733:123;:::o;725:166:52:-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;7038:157:12:-;7173:5;;7098:90;;;;;;7129:5;7098:90;;;;;;;;;;-1:-1:-1;;;;;7173:5:12;;;7098:90;;;;;:4;;:17;;:90;;;;;7173:5;;7098:90;;;;;;;:4;:90;;;5:2:-1;;;;30:1;27;20:12;5:2;7098:90:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7098:90:12;;;;7038:157;:::o;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;;1397:1;1272:131;-1:-1:-1;;;1272:131:54:o;1078:::-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;689:136:8:-;751:26;:13;769:7;751:26;:17;:26;:::i;:::-;792;;-1:-1:-1;;;;;792:26:8;;;;;;;;689:136;:::o;6056:218:12:-;6194:17;;6225:13;;6252:5;;6119:148;;;;;6153:5;6119:148;;;;;;:4;;:20;;6153:5;;6172:8;;6194:17;;-1:-1:-1;;;;;6225:13:12;;;;6252:5;;;6119:148;;6172:8;6119:148;;;6172:8;6225:13;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6119:148:12;;;;;;;;;;;;-1:-1:-1;;;;;6119:148:12;-1:-1:-1;;;;;6119:148:12;;;;;;-1:-1:-1;;;;;6119:148:12;-1:-1:-1;;;;;6119:148:12;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;612:115:3;667:19;:6;678:7;667:19;:10;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;831:144:8:-;896:29;:13;917:7;896:29;:20;:29;:::i;:::-;940:28;;-1:-1:-1;;;;;940:28:8;;;;;;;;831:144;:::o;477:170:52:-;-1:-1:-1;;;;;552:21:52;;;;544:30;;;;;;588:18;592:4;598:7;588:3;:18::i;:::-;580:27;;;;;;;;-1:-1:-1;;;;;614:20:52;637:5;614:20;;;;;;;;;;;:28;;-1:-1:-1;;614:28:52;;;477:170::o;244:167::-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;:18::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;198:1410:28:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;198:1410:28;;;-1:-1:-1;;198:1410:28:o", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"../../rates/IRates.sol\";\nimport \"../../crowdsale/W12Fund.sol\";\nimport \"../../token/IWToken.sol\";\n\n\ncontract W12FundStub is W12Fund {\n constructor (\n uint version,\n address crowdsaleAddress,\n address swapAddress,\n address wTokenAddress,\n address _serviceWallet,\n uint _trancheFeePercent,\n IRates _rates\n )\n W12Fund(version, _trancheFeePercent, _rates) public\n {\n crowdsale = IW12Crowdsale(crowdsaleAddress);\n swap = swapAddress;\n wToken = IWToken(wTokenAddress);\n trancheFeePercent = _trancheFeePercent;\n serviceWallet = _serviceWallet;\n }\n\n// function _setTotalFunded(uint amount) external {\n// totalFunded = amount;\n// }\n//\n// function _setTotalRefunded(uint amount) external {\n// totalRefunded = amount;\n// }\n\n function() payable external {}\n\n function _outFunds(bytes32 _symbol, uint _amount) external {\n if (_symbol == METHOD_ETH) {\n require(address(this).balance >= _amount);\n msg.sender.transfer(_amount);\n } else if(_symbol != METHOD_USD) {\n require(rates.isToken(_symbol));\n require(IERC20(rates.getTokenAddress(_symbol)).balanceOf(address(this)) >= _amount);\n require(IERC20(rates.getTokenAddress(_symbol)).transfer(msg.sender, _amount));\n }\n }\n\n modifier onlyCrowdsale {\n _;\n }\n\n modifier onlyAdmin {\n _;\n }\n\n modifier onlyProjectOwner {\n _;\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundStub.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundStub.sol", "exportedSymbols": { "W12FundStub": [ - 6966 + 9134 ] }, - "id": 6967, + "id": 9135, "nodeType": "SourceUnit", "nodes": [ { - "id": 6830, + "id": 8992, "literals": [ "solidity", "^", @@ -679,49 +813,49 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:20" + "src": "0:24:28" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 6831, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 8993, "nodeType": "ImportDirective", - "scope": 6967, - "sourceUnit": 10212, - "src": "26:63:20", + "scope": 9135, + "sourceUnit": 13084, + "src": "26:64:28", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "file": "../../rates/IRates.sol", - "id": 6832, + "id": 8994, "nodeType": "ImportDirective", - "scope": 6967, - "sourceUnit": 7280, - "src": "90:32:20", + "scope": 9135, + "sourceUnit": 10015, + "src": "91:32:28", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", "file": "../../crowdsale/W12Fund.sol", - "id": 6833, + "id": 8995, "nodeType": "ImportDirective", - "scope": 6967, - "sourceUnit": 4536, - "src": "123:37:20", + "scope": 9135, + "sourceUnit": 4057, + "src": "124:37:28", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", "file": "../../token/IWToken.sol", - "id": 6834, + "id": 8996, "nodeType": "ImportDirective", - "scope": 6967, - "sourceUnit": 7895, - "src": "161:33:20", + "scope": 9135, + "sourceUnit": 10486, + "src": "162:33:28", "symbolAliases": [], "unitAlias": "" }, @@ -731,67 +865,75 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6835, + "id": 8997, "name": "W12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4535, - "src": "221:7:20", + "referencedDeclaration": 4056, + "src": "222:7:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", + "typeIdentifier": "t_contract$_W12Fund_$4056", "typeString": "contract W12Fund" } }, - "id": 6836, + "id": 8998, "nodeType": "InheritanceSpecifier", - "src": "221:7:20" + "src": "222:7:28" } ], "contractDependencies": [ - 1261, - 4535, - 9516, - 9777, - 10134 + 1352, + 1375, + 1421, + 1619, + 1803, + 4056, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6966, + "id": 9134, "linearizedBaseContracts": [ - 6966, - 4535, - 9777, - 10134, - 1261, - 9516 + 9134, + 4056, + 13258, + 12453, + 11833, + 1619, + 1352, + 1803, + 1421, + 1375 ], "name": "W12FundStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 6882, + "id": 9044, "nodeType": "Block", - "src": "522:217:20", + "src": "523:217:28", "statements": [ { "expression": { "argumentTypes": null, - "id": 6862, + "id": 9024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6858, + "id": 9020, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "532:9:20", + "referencedDeclaration": 3352, + "src": "533:9:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, @@ -802,12 +944,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6860, + "id": 9022, "name": "crowdsaleAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6840, - "src": "558:16:20", + "referencedDeclaration": 9002, + "src": "559:16:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -821,18 +963,18 @@ "typeString": "address" } ], - "id": 6859, + "id": 9021, "name": "IW12Crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, - "src": "544:13:20", + "referencedDeclaration": 1760, + "src": "545:13:28", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IW12Crowdsale_$1224_$", + "typeIdentifier": "t_type$_t_contract$_IW12Crowdsale_$1760_$", "typeString": "type(contract IW12Crowdsale)" } }, - "id": 6861, + "id": 9023, "isConstant": false, "isLValue": false, "isPure": false, @@ -840,38 +982,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "544:31:20", + "src": "545:31:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, - "src": "532:43:20", + "src": "533:43:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, - "id": 6863, + "id": 9025, "nodeType": "ExpressionStatement", - "src": "532:43:20" + "src": "533:43:28" }, { "expression": { "argumentTypes": null, - "id": 6866, + "id": 9028, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6864, + "id": 9026, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3327, - "src": "585:4:20", + "referencedDeclaration": 3358, + "src": "586:4:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -881,45 +1023,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6865, + "id": 9027, "name": "swapAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6842, - "src": "592:11:20", + "referencedDeclaration": 9004, + "src": "593:11:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "585:18:20", + "src": "586:18:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6867, + "id": 9029, "nodeType": "ExpressionStatement", - "src": "585:18:20" + "src": "586:18:28" }, { "expression": { "argumentTypes": null, - "id": 6872, + "id": 9034, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6868, + "id": 9030, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3323, - "src": "613:6:20", + "referencedDeclaration": 3354, + "src": "614:6:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, @@ -930,12 +1072,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6870, + "id": 9032, "name": "wTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6844, - "src": "630:13:20", + "referencedDeclaration": 9006, + "src": "631:13:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -949,18 +1091,18 @@ "typeString": "address" } ], - "id": 6869, + "id": 9031, "name": "IWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7894, - "src": "622:7:20", + "referencedDeclaration": 10485, + "src": "623:7:28", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWToken_$7894_$", + "typeIdentifier": "t_type$_t_contract$_IWToken_$10485_$", "typeString": "type(contract IWToken)" } }, - "id": 6871, + "id": 9033, "isConstant": false, "isLValue": false, "isPure": false, @@ -968,38 +1110,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "622:22:20", + "src": "623:22:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "src": "613:31:20", + "src": "614:31:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "id": 6873, + "id": 9035, "nodeType": "ExpressionStatement", - "src": "613:31:20" + "src": "614:31:28" }, { "expression": { "argumentTypes": null, - "id": 6876, + "id": 9038, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6874, + "id": 9036, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3331, - "src": "654:17:20", + "referencedDeclaration": 3362, + "src": "655:17:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1009,43 +1151,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6875, + "id": 9037, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6848, - "src": "674:18:20", + "referencedDeclaration": 9010, + "src": "675:18:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "654:38:20", + "src": "655:38:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6877, + "id": 9039, "nodeType": "ExpressionStatement", - "src": "654:38:20" + "src": "655:38:28" }, { "expression": { "argumentTypes": null, - "id": 6880, + "id": 9042, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6878, + "id": 9040, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3329, - "src": "702:13:20", + "referencedDeclaration": 3360, + "src": "703:13:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1055,31 +1197,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6879, + "id": 9041, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6846, - "src": "718:14:20", + "referencedDeclaration": 9008, + "src": "719:14:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "702:30:20", + "src": "703:30:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6881, + "id": 9043, "nodeType": "ExpressionStatement", - "src": "702:30:20" + "src": "703:30:28" } ] }, "documentation": null, - "id": 6883, + "id": 9045, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1088,12 +1230,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6853, + "id": 9015, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6838, - "src": "474:7:20", + "referencedDeclaration": 9000, + "src": "475:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1101,12 +1243,12 @@ }, { "argumentTypes": null, - "id": 6854, + "id": 9016, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6848, - "src": "483:18:20", + "referencedDeclaration": 9010, + "src": "484:18:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1114,49 +1256,49 @@ }, { "argumentTypes": null, - "id": 6855, + "id": 9017, "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6850, - "src": "503:6:20", + "referencedDeclaration": 9012, + "src": "504:6:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } } ], - "id": 6856, + "id": 9018, "modifierName": { "argumentTypes": null, - "id": 6852, + "id": 9014, "name": "W12Fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4535, - "src": "466:7:20", + "referencedDeclaration": 4056, + "src": "467:7:28", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_W12Fund_$4535_$", + "typeIdentifier": "t_type$_t_contract$_W12Fund_$4056_$", "typeString": "type(contract W12Fund)" } }, "nodeType": "ModifierInvocation", - "src": "466:44:20" + "src": "467:44:28" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6851, + "id": 9013, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6838, + "id": 9000, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "257:12:20", + "scope": 9045, + "src": "258:12:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1164,10 +1306,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6837, + "id": 8999, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "257:4:20", + "src": "258:4:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1178,11 +1320,11 @@ }, { "constant": false, - "id": 6840, + "id": 9002, "name": "crowdsaleAddress", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "279:24:20", + "scope": 9045, + "src": "280:24:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1190,10 +1332,10 @@ "typeString": "address" }, "typeName": { - "id": 6839, + "id": 9001, "name": "address", "nodeType": "ElementaryTypeName", - "src": "279:7:20", + "src": "280:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1204,11 +1346,11 @@ }, { "constant": false, - "id": 6842, + "id": 9004, "name": "swapAddress", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "313:19:20", + "scope": 9045, + "src": "314:19:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1216,10 +1358,10 @@ "typeString": "address" }, "typeName": { - "id": 6841, + "id": 9003, "name": "address", "nodeType": "ElementaryTypeName", - "src": "313:7:20", + "src": "314:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1230,11 +1372,11 @@ }, { "constant": false, - "id": 6844, + "id": 9006, "name": "wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "342:21:20", + "scope": 9045, + "src": "343:21:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1242,10 +1384,10 @@ "typeString": "address" }, "typeName": { - "id": 6843, + "id": 9005, "name": "address", "nodeType": "ElementaryTypeName", - "src": "342:7:20", + "src": "343:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1256,11 +1398,11 @@ }, { "constant": false, - "id": 6846, + "id": 9008, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "373:22:20", + "scope": 9045, + "src": "374:22:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1268,10 +1410,10 @@ "typeString": "address" }, "typeName": { - "id": 6845, + "id": 9007, "name": "address", "nodeType": "ElementaryTypeName", - "src": "373:7:20", + "src": "374:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1282,11 +1424,11 @@ }, { "constant": false, - "id": 6848, + "id": 9010, "name": "_trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "405:23:20", + "scope": 9045, + "src": "406:23:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1294,10 +1436,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6847, + "id": 9009, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "405:4:20", + "src": "406:4:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1308,26 +1450,26 @@ }, { "constant": false, - "id": 6850, + "id": 9012, "name": "_rates", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "438:13:20", + "scope": 9045, + "src": "439:13:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 6849, + "id": 9011, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "438:6:20", + "referencedDeclaration": 10014, + "src": "439:6:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -1335,30 +1477,30 @@ "visibility": "internal" } ], - "src": "247:210:20" + "src": "248:210:28" }, "payable": false, "returnParameters": { - "id": 6857, + "id": 9019, "nodeType": "ParameterList", "parameters": [], - "src": "522:0:20" + "src": "523:0:28" }, - "scope": 6966, - "src": "235:504:20", + "scope": 9134, + "src": "236:504:28", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6886, + "id": 9048, "nodeType": "Block", - "src": "971:2:20", + "src": "972:2:28", "statements": [] }, "documentation": null, - "id": 6887, + "id": 9049, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1366,29 +1508,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6884, + "id": 9046, "nodeType": "ParameterList", "parameters": [], - "src": "951:2:20" + "src": "952:2:28" }, "payable": true, "returnParameters": { - "id": 6885, + "id": 9047, "nodeType": "ParameterList", "parameters": [], - "src": "971:0:20" + "src": "972:0:28" }, - "scope": 6966, - "src": "943:30:20", + "scope": 9134, + "src": "944:30:28", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6958, + "id": 9120, "nodeType": "Block", - "src": "1038:425:20", + "src": "1039:427:28", "statements": [ { "condition": { @@ -1397,19 +1539,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 6896, + "id": 9058, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6894, + "id": 9056, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6889, - "src": "1052:7:20", + "referencedDeclaration": 9051, + "src": "1053:7:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1419,18 +1561,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6895, + "id": 9057, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "1063:10:20", + "referencedDeclaration": 3345, + "src": "1064:10:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "1052:21:20", + "src": "1053:21:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1443,19 +1585,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 6917, + "id": 9079, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6915, + "id": 9077, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6889, - "src": "1192:7:20", + "referencedDeclaration": 9051, + "src": "1193:7:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1465,31 +1607,31 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 6916, + "id": 9078, "name": "METHOD_USD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "1203:10:20", + "referencedDeclaration": 3350, + "src": "1204:10:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "1192:21:20", + "src": "1193:21:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6956, + "id": 9118, "nodeType": "IfStatement", - "src": "1189:268:20", + "src": "1190:270:28", "trueBody": { - "id": 6955, + "id": 9117, "nodeType": "Block", - "src": "1215:242:20", + "src": "1216:244:28", "statements": [ { "expression": { @@ -1500,12 +1642,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6921, + "id": 9083, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6889, - "src": "1251:7:20", + "referencedDeclaration": 9051, + "src": "1252:7:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1521,32 +1663,32 @@ ], "expression": { "argumentTypes": null, - "id": 6919, + "id": 9081, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "1237:5:20", + "referencedDeclaration": 3356, + "src": "1238:5:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 6920, + "id": 9082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isToken", "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "1237:13:20", + "referencedDeclaration": 9999, + "src": "1238:13:28", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 6922, + "id": 9084, "isConstant": false, "isLValue": false, "isPure": false, @@ -1554,7 +1696,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1237:22:20", + "src": "1238:22:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1568,21 +1710,21 @@ "typeString": "bool" } ], - "id": 6918, + "id": 9080, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1229:7:20", + "referencedDeclaration": 13444, + "src": "1230:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6923, + "id": 9085, "isConstant": false, "isLValue": false, "isPure": false, @@ -1590,15 +1732,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1229:31:20", + "src": "1230:31:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6924, + "id": 9086, "nodeType": "ExpressionStatement", - "src": "1229:31:20" + "src": "1230:31:28" }, { "expression": { @@ -1610,7 +1752,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6938, + "id": 9100, "isConstant": false, "isLValue": false, "isPure": false, @@ -1623,14 +1765,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6934, + "id": 9096, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10579, - "src": "1338:4:20", + "referencedDeclaration": 13544, + "src": "1340:4:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12FundStub_$6966", + "typeIdentifier": "t_contract$_W12FundStub_$9134", "typeString": "contract W12FundStub" } } @@ -1638,24 +1780,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_W12FundStub_$6966", + "typeIdentifier": "t_contract$_W12FundStub_$9134", "typeString": "contract W12FundStub" } ], - "id": 6933, + "id": 9095, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1330:7:20", + "src": "1332:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6935, + "id": 9097, "isConstant": false, "isLValue": false, "isPure": false, @@ -1663,7 +1805,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1330:13:20", + "src": "1332:13:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1685,12 +1827,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6929, + "id": 9091, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6889, - "src": "1310:7:20", + "referencedDeclaration": 9051, + "src": "1312:7:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1706,32 +1848,32 @@ ], "expression": { "argumentTypes": null, - "id": 6927, + "id": 9089, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "1288:5:20", + "referencedDeclaration": 3356, + "src": "1290:5:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 6928, + "id": 9090, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getTokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "1288:21:20", + "referencedDeclaration": 9992, + "src": "1290:21:28", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) view external returns (address)" } }, - "id": 6930, + "id": 9092, "isConstant": false, "isLValue": false, "isPure": false, @@ -1739,7 +1881,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1288:30:20", + "src": "1290:30:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1753,18 +1895,18 @@ "typeString": "address" } ], - "id": 6926, - "name": "ERC20", + "id": 9088, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "1282:5:20", + "referencedDeclaration": 13083, + "src": "1283:6:28", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 6931, + "id": 9093, "isConstant": false, "isLValue": false, "isPure": false, @@ -1772,27 +1914,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1282:37:20", + "src": "1283:38:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 6932, + "id": 9094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "1282:47:20", + "referencedDeclaration": 13028, + "src": "1283:48:28", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 6936, + "id": 9098, "isConstant": false, "isLValue": false, "isPure": false, @@ -1800,7 +1942,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1282:62:20", + "src": "1283:63:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1810,18 +1952,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 6937, + "id": 9099, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6891, - "src": "1348:7:20", + "referencedDeclaration": 9053, + "src": "1350:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1282:73:20", + "src": "1283:74:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1835,21 +1977,21 @@ "typeString": "bool" } ], - "id": 6925, + "id": 9087, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1274:7:20", + "referencedDeclaration": 13444, + "src": "1275:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6939, + "id": 9101, "isConstant": false, "isLValue": false, "isPure": false, @@ -1857,15 +1999,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1274:82:20", + "src": "1275:83:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6940, + "id": 9102, "nodeType": "ExpressionStatement", - "src": "1274:82:20" + "src": "1275:83:28" }, { "expression": { @@ -1878,18 +2020,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6949, + "id": 9111, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1425:3:20", + "referencedDeclaration": 13441, + "src": "1428:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6950, + "id": 9112, "isConstant": false, "isLValue": false, "isPure": false, @@ -1897,7 +2039,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1425:10:20", + "src": "1428:10:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1905,12 +2047,12 @@ }, { "argumentTypes": null, - "id": 6951, + "id": 9113, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6891, - "src": "1437:7:20", + "referencedDeclaration": 9053, + "src": "1440:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1936,12 +2078,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6945, + "id": 9107, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6889, - "src": "1406:7:20", + "referencedDeclaration": 9051, + "src": "1409:7:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1957,32 +2099,32 @@ ], "expression": { "argumentTypes": null, - "id": 6943, + "id": 9105, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "1384:5:20", + "referencedDeclaration": 3356, + "src": "1387:5:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 6944, + "id": 9106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getTokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "1384:21:20", + "referencedDeclaration": 9992, + "src": "1387:21:28", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) view external returns (address)" } }, - "id": 6946, + "id": 9108, "isConstant": false, "isLValue": false, "isPure": false, @@ -1990,7 +2132,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1384:30:20", + "src": "1387:30:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2004,18 +2146,18 @@ "typeString": "address" } ], - "id": 6942, - "name": "ERC20", + "id": 9104, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "1378:5:20", + "referencedDeclaration": 13083, + "src": "1380:6:28", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 6947, + "id": 9109, "isConstant": false, "isLValue": false, "isPure": false, @@ -2023,27 +2165,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1378:37:20", + "src": "1380:38:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 6948, + "id": 9110, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "1378:46:20", + "referencedDeclaration": 13046, + "src": "1380:47:28", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 6952, + "id": 9114, "isConstant": false, "isLValue": false, "isPure": false, @@ -2051,7 +2193,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1378:67:20", + "src": "1380:68:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2065,21 +2207,21 @@ "typeString": "bool" } ], - "id": 6941, + "id": 9103, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1370:7:20", + "referencedDeclaration": 13444, + "src": "1372:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6953, + "id": 9115, "isConstant": false, "isLValue": false, "isPure": false, @@ -2087,26 +2229,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1370:76:20", + "src": "1372:77:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6954, + "id": 9116, "nodeType": "ExpressionStatement", - "src": "1370:76:20" + "src": "1372:77:28" } ] } }, - "id": 6957, + "id": 9119, "nodeType": "IfStatement", - "src": "1048:409:20", + "src": "1049:411:28", "trueBody": { - "id": 6914, + "id": 9076, "nodeType": "Block", - "src": "1075:108:20", + "src": "1076:108:28", "statements": [ { "expression": { @@ -2118,7 +2260,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6903, + "id": 9065, "isConstant": false, "isLValue": false, "isPure": false, @@ -2130,14 +2272,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6899, + "id": 9061, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10579, - "src": "1105:4:20", + "referencedDeclaration": 13544, + "src": "1106:4:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12FundStub_$6966", + "typeIdentifier": "t_contract$_W12FundStub_$9134", "typeString": "contract W12FundStub" } } @@ -2145,24 +2287,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_W12FundStub_$6966", + "typeIdentifier": "t_contract$_W12FundStub_$9134", "typeString": "contract W12FundStub" } ], - "id": 6898, + "id": 9060, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1097:7:20", + "src": "1098:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6900, + "id": 9062, "isConstant": false, "isLValue": false, "isPure": false, @@ -2170,13 +2312,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1097:13:20", + "src": "1098:13:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6901, + "id": 9063, "isConstant": false, "isLValue": false, "isPure": false, @@ -2184,7 +2326,7 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1097:21:20", + "src": "1098:21:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2194,18 +2336,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 6902, + "id": 9064, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6891, - "src": "1122:7:20", + "referencedDeclaration": 9053, + "src": "1123:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1097:32:20", + "src": "1098:32:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2219,21 +2361,21 @@ "typeString": "bool" } ], - "id": 6897, + "id": 9059, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1089:7:20", + "referencedDeclaration": 13444, + "src": "1090:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6904, + "id": 9066, "isConstant": false, "isLValue": false, "isPure": false, @@ -2241,15 +2383,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1089:41:20", + "src": "1090:41:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6905, + "id": 9067, "nodeType": "ExpressionStatement", - "src": "1089:41:20" + "src": "1090:41:28" }, { "expression": { @@ -2257,12 +2399,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6911, + "id": 9073, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6891, - "src": "1164:7:20", + "referencedDeclaration": 9053, + "src": "1165:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2280,18 +2422,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6906, + "id": 9068, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1144:3:20", + "referencedDeclaration": 13441, + "src": "1145:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6909, + "id": 9071, "isConstant": false, "isLValue": false, "isPure": false, @@ -2299,13 +2441,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1144:10:20", + "src": "1145:10:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6910, + "id": 9072, "isConstant": false, "isLValue": false, "isPure": false, @@ -2313,13 +2455,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1144:19:20", + "src": "1145:19:28", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 6912, + "id": 9074, "isConstant": false, "isLValue": false, "isPure": false, @@ -2327,15 +2469,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1144:28:20", + "src": "1145:28:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6913, + "id": 9075, "nodeType": "ExpressionStatement", - "src": "1144:28:20" + "src": "1145:28:28" } ] } @@ -2343,7 +2485,7 @@ ] }, "documentation": null, - "id": 6959, + "id": 9121, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2351,16 +2493,16 @@ "name": "_outFunds", "nodeType": "FunctionDefinition", "parameters": { - "id": 6892, + "id": 9054, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6889, + "id": 9051, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 6959, - "src": "998:15:20", + "scope": 9121, + "src": "999:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2368,10 +2510,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 6888, + "id": 9050, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "998:7:20", + "src": "999:7:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2382,11 +2524,11 @@ }, { "constant": false, - "id": 6891, + "id": 9053, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 6959, - "src": "1015:12:20", + "scope": 9121, + "src": "1016:12:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2394,10 +2536,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6890, + "id": 9052, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1015:4:20", + "src": "1016:4:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2407,93 +2549,118 @@ "visibility": "internal" } ], - "src": "997:31:20" + "src": "998:31:28" }, "payable": false, "returnParameters": { - "id": 6893, + "id": 9055, "nodeType": "ParameterList", "parameters": [], - "src": "1038:0:20" + "src": "1039:0:28" }, - "scope": 6966, - "src": "979:484:20", + "scope": 9134, + "src": "980:486:28", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6964, + "id": 9124, "nodeType": "Block", - "src": "1527:18:20", + "src": "1495:18:28", "statements": [ { - "id": 6963, + "id": 9123, "nodeType": "PlaceholderStatement", - "src": "1537:1:20" + "src": "1505:1:28" } ] }, "documentation": null, - "id": 6965, - "name": "onlyFrom", + "id": 9125, + "name": "onlyCrowdsale", "nodeType": "ModifierDefinition", "parameters": { - "id": 6962, + "id": 9122, "nodeType": "ParameterList", - "parameters": [ + "parameters": [], + "src": "1495:0:28" + }, + "src": "1472:41:28", + "visibility": "internal" + }, + { + "body": { + "id": 9128, + "nodeType": "Block", + "src": "1538:18:28", + "statements": [ { - "constant": false, - "id": 6961, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 6965, - "src": "1511:14:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6960, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1511:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" + "id": 9127, + "nodeType": "PlaceholderStatement", + "src": "1548:1:28" } - ], - "src": "1510:16:20" + ] + }, + "documentation": null, + "id": 9129, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 9126, + "nodeType": "ParameterList", + "parameters": [], + "src": "1538:0:28" + }, + "src": "1519:37:28", + "visibility": "internal" + }, + { + "body": { + "id": 9132, + "nodeType": "Block", + "src": "1588:18:28", + "statements": [ + { + "id": 9131, + "nodeType": "PlaceholderStatement", + "src": "1598:1:28" + } + ] + }, + "documentation": null, + "id": 9133, + "name": "onlyProjectOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 9130, + "nodeType": "ParameterList", + "parameters": [], + "src": "1588:0:28" }, - "src": "1493:52:20", + "src": "1562:44:28", "visibility": "internal" } ], - "scope": 6967, - "src": "197:1350:20" + "scope": 9135, + "src": "198:1410:28" } ], - "src": "0:1548:20" + "src": "0:1609:28" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundStub.sol", "exportedSymbols": { "W12FundStub": [ - 6966 + 9134 ] }, - "id": 6967, + "id": 9135, "nodeType": "SourceUnit", "nodes": [ { - "id": 6830, + "id": 8992, "literals": [ "solidity", "^", @@ -2501,49 +2668,49 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:20" + "src": "0:24:28" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 6831, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 8993, "nodeType": "ImportDirective", - "scope": 6967, - "sourceUnit": 10212, - "src": "26:63:20", + "scope": 9135, + "sourceUnit": 13084, + "src": "26:64:28", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", "file": "../../rates/IRates.sol", - "id": 6832, + "id": 8994, "nodeType": "ImportDirective", - "scope": 6967, - "sourceUnit": 7280, - "src": "90:32:20", + "scope": 9135, + "sourceUnit": 10015, + "src": "91:32:28", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", "file": "../../crowdsale/W12Fund.sol", - "id": 6833, + "id": 8995, "nodeType": "ImportDirective", - "scope": 6967, - "sourceUnit": 4536, - "src": "123:37:20", + "scope": 9135, + "sourceUnit": 4057, + "src": "124:37:28", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", "file": "../../token/IWToken.sol", - "id": 6834, + "id": 8996, "nodeType": "ImportDirective", - "scope": 6967, - "sourceUnit": 7895, - "src": "161:33:20", + "scope": 9135, + "sourceUnit": 10486, + "src": "162:33:28", "symbolAliases": [], "unitAlias": "" }, @@ -2553,67 +2720,75 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6835, + "id": 8997, "name": "W12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4535, - "src": "221:7:20", + "referencedDeclaration": 4056, + "src": "222:7:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$4535", + "typeIdentifier": "t_contract$_W12Fund_$4056", "typeString": "contract W12Fund" } }, - "id": 6836, + "id": 8998, "nodeType": "InheritanceSpecifier", - "src": "221:7:20" + "src": "222:7:28" } ], "contractDependencies": [ - 1261, - 4535, - 9516, - 9777, - 10134 + 1352, + 1375, + 1421, + 1619, + 1803, + 4056, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6966, + "id": 9134, "linearizedBaseContracts": [ - 6966, - 4535, - 9777, - 10134, - 1261, - 9516 + 9134, + 4056, + 13258, + 12453, + 11833, + 1619, + 1352, + 1803, + 1421, + 1375 ], "name": "W12FundStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 6882, + "id": 9044, "nodeType": "Block", - "src": "522:217:20", + "src": "523:217:28", "statements": [ { "expression": { "argumentTypes": null, - "id": 6862, + "id": 9024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6858, + "id": 9020, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3321, - "src": "532:9:20", + "referencedDeclaration": 3352, + "src": "533:9:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, @@ -2624,12 +2799,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6860, + "id": 9022, "name": "crowdsaleAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6840, - "src": "558:16:20", + "referencedDeclaration": 9002, + "src": "559:16:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2643,18 +2818,18 @@ "typeString": "address" } ], - "id": 6859, + "id": 9021, "name": "IW12Crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, - "src": "544:13:20", + "referencedDeclaration": 1760, + "src": "545:13:28", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IW12Crowdsale_$1224_$", + "typeIdentifier": "t_type$_t_contract$_IW12Crowdsale_$1760_$", "typeString": "type(contract IW12Crowdsale)" } }, - "id": 6861, + "id": 9023, "isConstant": false, "isLValue": false, "isPure": false, @@ -2662,38 +2837,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "544:31:20", + "src": "545:31:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, - "src": "532:43:20", + "src": "533:43:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", "typeString": "contract IW12Crowdsale" } }, - "id": 6863, + "id": 9025, "nodeType": "ExpressionStatement", - "src": "532:43:20" + "src": "533:43:28" }, { "expression": { "argumentTypes": null, - "id": 6866, + "id": 9028, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6864, + "id": 9026, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3327, - "src": "585:4:20", + "referencedDeclaration": 3358, + "src": "586:4:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2703,45 +2878,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6865, + "id": 9027, "name": "swapAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6842, - "src": "592:11:20", + "referencedDeclaration": 9004, + "src": "593:11:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "585:18:20", + "src": "586:18:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6867, + "id": 9029, "nodeType": "ExpressionStatement", - "src": "585:18:20" + "src": "586:18:28" }, { "expression": { "argumentTypes": null, - "id": 6872, + "id": 9034, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6868, + "id": 9030, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3323, - "src": "613:6:20", + "referencedDeclaration": 3354, + "src": "614:6:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, @@ -2752,12 +2927,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6870, + "id": 9032, "name": "wTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6844, - "src": "630:13:20", + "referencedDeclaration": 9006, + "src": "631:13:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2771,18 +2946,18 @@ "typeString": "address" } ], - "id": 6869, + "id": 9031, "name": "IWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7894, - "src": "622:7:20", + "referencedDeclaration": 10485, + "src": "623:7:28", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWToken_$7894_$", + "typeIdentifier": "t_type$_t_contract$_IWToken_$10485_$", "typeString": "type(contract IWToken)" } }, - "id": 6871, + "id": 9033, "isConstant": false, "isLValue": false, "isPure": false, @@ -2790,38 +2965,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "622:22:20", + "src": "623:22:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "src": "613:31:20", + "src": "614:31:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "id": 6873, + "id": 9035, "nodeType": "ExpressionStatement", - "src": "613:31:20" + "src": "614:31:28" }, { "expression": { "argumentTypes": null, - "id": 6876, + "id": 9038, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6874, + "id": 9036, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3331, - "src": "654:17:20", + "referencedDeclaration": 3362, + "src": "655:17:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2831,43 +3006,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6875, + "id": 9037, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6848, - "src": "674:18:20", + "referencedDeclaration": 9010, + "src": "675:18:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "654:38:20", + "src": "655:38:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6877, + "id": 9039, "nodeType": "ExpressionStatement", - "src": "654:38:20" + "src": "655:38:28" }, { "expression": { "argumentTypes": null, - "id": 6880, + "id": 9042, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6878, + "id": 9040, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3329, - "src": "702:13:20", + "referencedDeclaration": 3360, + "src": "703:13:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2877,31 +3052,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6879, + "id": 9041, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6846, - "src": "718:14:20", + "referencedDeclaration": 9008, + "src": "719:14:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "702:30:20", + "src": "703:30:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6881, + "id": 9043, "nodeType": "ExpressionStatement", - "src": "702:30:20" + "src": "703:30:28" } ] }, "documentation": null, - "id": 6883, + "id": 9045, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2910,12 +3085,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6853, + "id": 9015, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6838, - "src": "474:7:20", + "referencedDeclaration": 9000, + "src": "475:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2923,12 +3098,12 @@ }, { "argumentTypes": null, - "id": 6854, + "id": 9016, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6848, - "src": "483:18:20", + "referencedDeclaration": 9010, + "src": "484:18:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2936,49 +3111,49 @@ }, { "argumentTypes": null, - "id": 6855, + "id": 9017, "name": "_rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6850, - "src": "503:6:20", + "referencedDeclaration": 9012, + "src": "504:6:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } } ], - "id": 6856, + "id": 9018, "modifierName": { "argumentTypes": null, - "id": 6852, + "id": 9014, "name": "W12Fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4535, - "src": "466:7:20", + "referencedDeclaration": 4056, + "src": "467:7:28", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_W12Fund_$4535_$", + "typeIdentifier": "t_type$_t_contract$_W12Fund_$4056_$", "typeString": "type(contract W12Fund)" } }, "nodeType": "ModifierInvocation", - "src": "466:44:20" + "src": "467:44:28" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6851, + "id": 9013, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6838, + "id": 9000, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "257:12:20", + "scope": 9045, + "src": "258:12:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2986,10 +3161,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6837, + "id": 8999, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "257:4:20", + "src": "258:4:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3000,11 +3175,11 @@ }, { "constant": false, - "id": 6840, + "id": 9002, "name": "crowdsaleAddress", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "279:24:20", + "scope": 9045, + "src": "280:24:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3012,10 +3187,10 @@ "typeString": "address" }, "typeName": { - "id": 6839, + "id": 9001, "name": "address", "nodeType": "ElementaryTypeName", - "src": "279:7:20", + "src": "280:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3026,11 +3201,11 @@ }, { "constant": false, - "id": 6842, + "id": 9004, "name": "swapAddress", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "313:19:20", + "scope": 9045, + "src": "314:19:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3038,10 +3213,10 @@ "typeString": "address" }, "typeName": { - "id": 6841, + "id": 9003, "name": "address", "nodeType": "ElementaryTypeName", - "src": "313:7:20", + "src": "314:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3052,11 +3227,11 @@ }, { "constant": false, - "id": 6844, + "id": 9006, "name": "wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "342:21:20", + "scope": 9045, + "src": "343:21:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3064,10 +3239,10 @@ "typeString": "address" }, "typeName": { - "id": 6843, + "id": 9005, "name": "address", "nodeType": "ElementaryTypeName", - "src": "342:7:20", + "src": "343:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3078,11 +3253,11 @@ }, { "constant": false, - "id": 6846, + "id": 9008, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "373:22:20", + "scope": 9045, + "src": "374:22:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3090,10 +3265,10 @@ "typeString": "address" }, "typeName": { - "id": 6845, + "id": 9007, "name": "address", "nodeType": "ElementaryTypeName", - "src": "373:7:20", + "src": "374:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3104,11 +3279,11 @@ }, { "constant": false, - "id": 6848, + "id": 9010, "name": "_trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "405:23:20", + "scope": 9045, + "src": "406:23:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3116,10 +3291,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6847, + "id": 9009, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "405:4:20", + "src": "406:4:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3130,26 +3305,26 @@ }, { "constant": false, - "id": 6850, + "id": 9012, "name": "_rates", "nodeType": "VariableDeclaration", - "scope": 6883, - "src": "438:13:20", + "scope": 9045, + "src": "439:13:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 6849, + "id": 9011, "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "438:6:20", + "referencedDeclaration": 10014, + "src": "439:6:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, @@ -3157,30 +3332,30 @@ "visibility": "internal" } ], - "src": "247:210:20" + "src": "248:210:28" }, "payable": false, "returnParameters": { - "id": 6857, + "id": 9019, "nodeType": "ParameterList", "parameters": [], - "src": "522:0:20" + "src": "523:0:28" }, - "scope": 6966, - "src": "235:504:20", + "scope": 9134, + "src": "236:504:28", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6886, + "id": 9048, "nodeType": "Block", - "src": "971:2:20", + "src": "972:2:28", "statements": [] }, "documentation": null, - "id": 6887, + "id": 9049, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3188,29 +3363,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6884, + "id": 9046, "nodeType": "ParameterList", "parameters": [], - "src": "951:2:20" + "src": "952:2:28" }, "payable": true, "returnParameters": { - "id": 6885, + "id": 9047, "nodeType": "ParameterList", "parameters": [], - "src": "971:0:20" + "src": "972:0:28" }, - "scope": 6966, - "src": "943:30:20", + "scope": 9134, + "src": "944:30:28", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6958, + "id": 9120, "nodeType": "Block", - "src": "1038:425:20", + "src": "1039:427:28", "statements": [ { "condition": { @@ -3219,19 +3394,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 6896, + "id": 9058, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6894, + "id": 9056, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6889, - "src": "1052:7:20", + "referencedDeclaration": 9051, + "src": "1053:7:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3241,18 +3416,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6895, + "id": 9057, "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "1063:10:20", + "referencedDeclaration": 3345, + "src": "1064:10:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "1052:21:20", + "src": "1053:21:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3265,19 +3440,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 6917, + "id": 9079, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6915, + "id": 9077, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6889, - "src": "1192:7:20", + "referencedDeclaration": 9051, + "src": "1193:7:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3287,31 +3462,31 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 6916, + "id": 9078, "name": "METHOD_USD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "1203:10:20", + "referencedDeclaration": 3350, + "src": "1204:10:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "1192:21:20", + "src": "1193:21:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6956, + "id": 9118, "nodeType": "IfStatement", - "src": "1189:268:20", + "src": "1190:270:28", "trueBody": { - "id": 6955, + "id": 9117, "nodeType": "Block", - "src": "1215:242:20", + "src": "1216:244:28", "statements": [ { "expression": { @@ -3322,12 +3497,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6921, + "id": 9083, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6889, - "src": "1251:7:20", + "referencedDeclaration": 9051, + "src": "1252:7:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3343,32 +3518,32 @@ ], "expression": { "argumentTypes": null, - "id": 6919, + "id": 9081, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "1237:5:20", + "referencedDeclaration": 3356, + "src": "1238:5:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 6920, + "id": 9082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isToken", "nodeType": "MemberAccess", - "referencedDeclaration": 7256, - "src": "1237:13:20", + "referencedDeclaration": 9999, + "src": "1238:13:28", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 6922, + "id": 9084, "isConstant": false, "isLValue": false, "isPure": false, @@ -3376,7 +3551,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1237:22:20", + "src": "1238:22:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3390,21 +3565,21 @@ "typeString": "bool" } ], - "id": 6918, + "id": 9080, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1229:7:20", + "referencedDeclaration": 13444, + "src": "1230:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6923, + "id": 9085, "isConstant": false, "isLValue": false, "isPure": false, @@ -3412,15 +3587,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1229:31:20", + "src": "1230:31:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6924, + "id": 9086, "nodeType": "ExpressionStatement", - "src": "1229:31:20" + "src": "1230:31:28" }, { "expression": { @@ -3432,7 +3607,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6938, + "id": 9100, "isConstant": false, "isLValue": false, "isPure": false, @@ -3445,14 +3620,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6934, + "id": 9096, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10579, - "src": "1338:4:20", + "referencedDeclaration": 13544, + "src": "1340:4:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12FundStub_$6966", + "typeIdentifier": "t_contract$_W12FundStub_$9134", "typeString": "contract W12FundStub" } } @@ -3460,24 +3635,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_W12FundStub_$6966", + "typeIdentifier": "t_contract$_W12FundStub_$9134", "typeString": "contract W12FundStub" } ], - "id": 6933, + "id": 9095, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1330:7:20", + "src": "1332:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6935, + "id": 9097, "isConstant": false, "isLValue": false, "isPure": false, @@ -3485,7 +3660,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1330:13:20", + "src": "1332:13:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3507,12 +3682,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6929, + "id": 9091, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6889, - "src": "1310:7:20", + "referencedDeclaration": 9051, + "src": "1312:7:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3528,32 +3703,32 @@ ], "expression": { "argumentTypes": null, - "id": 6927, + "id": 9089, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "1288:5:20", + "referencedDeclaration": 3356, + "src": "1290:5:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 6928, + "id": 9090, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getTokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "1288:21:20", + "referencedDeclaration": 9992, + "src": "1290:21:28", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) view external returns (address)" } }, - "id": 6930, + "id": 9092, "isConstant": false, "isLValue": false, "isPure": false, @@ -3561,7 +3736,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1288:30:20", + "src": "1290:30:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3575,18 +3750,18 @@ "typeString": "address" } ], - "id": 6926, - "name": "ERC20", + "id": 9088, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "1282:5:20", + "referencedDeclaration": 13083, + "src": "1283:6:28", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 6931, + "id": 9093, "isConstant": false, "isLValue": false, "isPure": false, @@ -3594,27 +3769,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1282:37:20", + "src": "1283:38:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 6932, + "id": 9094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "1282:47:20", + "referencedDeclaration": 13028, + "src": "1283:48:28", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 6936, + "id": 9098, "isConstant": false, "isLValue": false, "isPure": false, @@ -3622,7 +3797,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1282:62:20", + "src": "1283:63:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3632,18 +3807,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 6937, + "id": 9099, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6891, - "src": "1348:7:20", + "referencedDeclaration": 9053, + "src": "1350:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1282:73:20", + "src": "1283:74:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3657,21 +3832,21 @@ "typeString": "bool" } ], - "id": 6925, + "id": 9087, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1274:7:20", + "referencedDeclaration": 13444, + "src": "1275:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6939, + "id": 9101, "isConstant": false, "isLValue": false, "isPure": false, @@ -3679,15 +3854,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1274:82:20", + "src": "1275:83:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6940, + "id": 9102, "nodeType": "ExpressionStatement", - "src": "1274:82:20" + "src": "1275:83:28" }, { "expression": { @@ -3700,18 +3875,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6949, + "id": 9111, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1425:3:20", + "referencedDeclaration": 13441, + "src": "1428:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6950, + "id": 9112, "isConstant": false, "isLValue": false, "isPure": false, @@ -3719,7 +3894,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1425:10:20", + "src": "1428:10:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3727,12 +3902,12 @@ }, { "argumentTypes": null, - "id": 6951, + "id": 9113, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6891, - "src": "1437:7:20", + "referencedDeclaration": 9053, + "src": "1440:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3758,12 +3933,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6945, + "id": 9107, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6889, - "src": "1406:7:20", + "referencedDeclaration": 9051, + "src": "1409:7:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3779,32 +3954,32 @@ ], "expression": { "argumentTypes": null, - "id": 6943, + "id": 9105, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3325, - "src": "1384:5:20", + "referencedDeclaration": 3356, + "src": "1387:5:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_IRates_$7279", + "typeIdentifier": "t_contract$_IRates_$10014", "typeString": "contract IRates" } }, - "id": 6944, + "id": 9106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getTokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 7249, - "src": "1384:21:20", + "referencedDeclaration": 9992, + "src": "1387:21:28", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) view external returns (address)" } }, - "id": 6946, + "id": 9108, "isConstant": false, "isLValue": false, "isPure": false, @@ -3812,7 +3987,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1384:30:20", + "src": "1387:30:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3826,18 +4001,18 @@ "typeString": "address" } ], - "id": 6942, - "name": "ERC20", + "id": 9104, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "1378:5:20", + "referencedDeclaration": 13083, + "src": "1380:6:28", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 6947, + "id": 9109, "isConstant": false, "isLValue": false, "isPure": false, @@ -3845,27 +4020,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1378:37:20", + "src": "1380:38:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 6948, + "id": 9110, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 10234, - "src": "1378:46:20", + "referencedDeclaration": 13046, + "src": "1380:47:28", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 6952, + "id": 9114, "isConstant": false, "isLValue": false, "isPure": false, @@ -3873,7 +4048,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1378:67:20", + "src": "1380:68:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3887,21 +4062,21 @@ "typeString": "bool" } ], - "id": 6941, + "id": 9103, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1370:7:20", + "referencedDeclaration": 13444, + "src": "1372:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6953, + "id": 9115, "isConstant": false, "isLValue": false, "isPure": false, @@ -3909,26 +4084,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1370:76:20", + "src": "1372:77:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6954, + "id": 9116, "nodeType": "ExpressionStatement", - "src": "1370:76:20" + "src": "1372:77:28" } ] } }, - "id": 6957, + "id": 9119, "nodeType": "IfStatement", - "src": "1048:409:20", + "src": "1049:411:28", "trueBody": { - "id": 6914, + "id": 9076, "nodeType": "Block", - "src": "1075:108:20", + "src": "1076:108:28", "statements": [ { "expression": { @@ -3940,7 +4115,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6903, + "id": 9065, "isConstant": false, "isLValue": false, "isPure": false, @@ -3952,14 +4127,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6899, + "id": 9061, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10579, - "src": "1105:4:20", + "referencedDeclaration": 13544, + "src": "1106:4:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12FundStub_$6966", + "typeIdentifier": "t_contract$_W12FundStub_$9134", "typeString": "contract W12FundStub" } } @@ -3967,24 +4142,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_W12FundStub_$6966", + "typeIdentifier": "t_contract$_W12FundStub_$9134", "typeString": "contract W12FundStub" } ], - "id": 6898, + "id": 9060, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1097:7:20", + "src": "1098:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6900, + "id": 9062, "isConstant": false, "isLValue": false, "isPure": false, @@ -3992,13 +4167,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1097:13:20", + "src": "1098:13:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6901, + "id": 9063, "isConstant": false, "isLValue": false, "isPure": false, @@ -4006,7 +4181,7 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1097:21:20", + "src": "1098:21:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4016,18 +4191,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 6902, + "id": 9064, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6891, - "src": "1122:7:20", + "referencedDeclaration": 9053, + "src": "1123:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1097:32:20", + "src": "1098:32:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4041,21 +4216,21 @@ "typeString": "bool" } ], - "id": 6897, + "id": 9059, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1089:7:20", + "referencedDeclaration": 13444, + "src": "1090:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6904, + "id": 9066, "isConstant": false, "isLValue": false, "isPure": false, @@ -4063,15 +4238,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1089:41:20", + "src": "1090:41:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6905, + "id": 9067, "nodeType": "ExpressionStatement", - "src": "1089:41:20" + "src": "1090:41:28" }, { "expression": { @@ -4079,12 +4254,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6911, + "id": 9073, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6891, - "src": "1164:7:20", + "referencedDeclaration": 9053, + "src": "1165:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4102,18 +4277,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6906, + "id": 9068, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1144:3:20", + "referencedDeclaration": 13441, + "src": "1145:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6909, + "id": 9071, "isConstant": false, "isLValue": false, "isPure": false, @@ -4121,13 +4296,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1144:10:20", + "src": "1145:10:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6910, + "id": 9072, "isConstant": false, "isLValue": false, "isPure": false, @@ -4135,13 +4310,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1144:19:20", + "src": "1145:19:28", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 6912, + "id": 9074, "isConstant": false, "isLValue": false, "isPure": false, @@ -4149,15 +4324,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1144:28:20", + "src": "1145:28:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6913, + "id": 9075, "nodeType": "ExpressionStatement", - "src": "1144:28:20" + "src": "1145:28:28" } ] } @@ -4165,7 +4340,7 @@ ] }, "documentation": null, - "id": 6959, + "id": 9121, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4173,16 +4348,16 @@ "name": "_outFunds", "nodeType": "FunctionDefinition", "parameters": { - "id": 6892, + "id": 9054, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6889, + "id": 9051, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 6959, - "src": "998:15:20", + "scope": 9121, + "src": "999:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4190,10 +4365,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 6888, + "id": 9050, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "998:7:20", + "src": "999:7:28", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4204,11 +4379,11 @@ }, { "constant": false, - "id": 6891, + "id": 9053, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 6959, - "src": "1015:12:20", + "scope": 9121, + "src": "1016:12:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4216,10 +4391,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6890, + "id": 9052, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1015:4:20", + "src": "1016:4:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4229,86 +4404,193 @@ "visibility": "internal" } ], - "src": "997:31:20" + "src": "998:31:28" }, "payable": false, "returnParameters": { - "id": 6893, + "id": 9055, "nodeType": "ParameterList", "parameters": [], - "src": "1038:0:20" + "src": "1039:0:28" }, - "scope": 6966, - "src": "979:484:20", + "scope": 9134, + "src": "980:486:28", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 6964, + "id": 9124, "nodeType": "Block", - "src": "1527:18:20", + "src": "1495:18:28", "statements": [ { - "id": 6963, + "id": 9123, "nodeType": "PlaceholderStatement", - "src": "1537:1:20" + "src": "1505:1:28" } ] }, "documentation": null, - "id": 6965, - "name": "onlyFrom", + "id": 9125, + "name": "onlyCrowdsale", "nodeType": "ModifierDefinition", "parameters": { - "id": 6962, + "id": 9122, "nodeType": "ParameterList", - "parameters": [ + "parameters": [], + "src": "1495:0:28" + }, + "src": "1472:41:28", + "visibility": "internal" + }, + { + "body": { + "id": 9128, + "nodeType": "Block", + "src": "1538:18:28", + "statements": [ { - "constant": false, - "id": 6961, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 6965, - "src": "1511:14:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6960, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1511:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" + "id": 9127, + "nodeType": "PlaceholderStatement", + "src": "1548:1:28" } - ], - "src": "1510:16:20" + ] }, - "src": "1493:52:20", + "documentation": null, + "id": 9129, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 9126, + "nodeType": "ParameterList", + "parameters": [], + "src": "1538:0:28" + }, + "src": "1519:37:28", + "visibility": "internal" + }, + { + "body": { + "id": 9132, + "nodeType": "Block", + "src": "1588:18:28", + "statements": [ + { + "id": 9131, + "nodeType": "PlaceholderStatement", + "src": "1598:1:28" + } + ] + }, + "documentation": null, + "id": 9133, + "name": "onlyProjectOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 9130, + "nodeType": "ParameterList", + "parameters": [], + "src": "1588:0:28" + }, + "src": "1562:44:28", "visibility": "internal" } ], - "scope": 6967, - "src": "197:1350:20" + "scope": 9135, + "src": "198:1410:28" } ], - "src": "0:1548:20" + "src": "0:1609:28" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, - "networks": {}, + "networks": { + "4": { + "events": { + "0xe2d0f4d539cb385db666a31aa9b27fd786afc933dc82ca8518d045424d6fa882": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "cost", + "type": "uint256" + } + ], + "name": "FundsReceived", + "type": "event" + }, + "0xd434f0d1dd08e14b2acdd7a506c6e8b6edaf1a5825d23ca9b5e51a9ad883f71c": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "AssetRefunded", + "type": "event" + }, + "0x17e68c82fdc39ec76fff0be24ead989575d8eec009a729fa4bd738bc1f6a2dbb": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "TrancheTransferred", + "type": "event" + } + }, + "links": { + "Percent": "0x04596c9a67ad5870686616d58c2a8198f8b94b34", + "FundAccount": "0x27bd1f295f0fa80072dfb5214fb12b88518e7041", + "Utils": "0x9666c128e3ab46e2e2480fa50e5294c54dad5621", + "Fund": "0x4a4c642901cad1f377af52374cc46ee880b15ad3" + } + } + }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:55:06.477Z" + "updatedAt": "2018-12-06T13:18:18.793Z" } \ No newline at end of file diff --git a/build/contracts/W12Lister.json b/build/contracts/W12Lister.json index ea9472a5..e2fd3b03 100644 --- a/build/contracts/W12Lister.json +++ b/build/contracts/W12Lister.json @@ -2,95 +2,28 @@ "contractName": "W12Lister", "abi": [ { - "constant": true, + "constant": false, "inputs": [ { - "name": "_operator", + "name": "recipient", "type": "address" - }, - { - "name": "_role", - "type": "string" } ], - "name": "checkRole", + "name": "transferPrimary", "outputs": [], "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "approvedTokens", - "outputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "decimals", - "type": "uint8" - }, - { - "name": "feePercent", - "type": "uint256" - }, - { - "name": "ethFeePercent", - "type": "uint256" - }, - { - "name": "WTokenSaleFeePercent", - "type": "uint256" - }, - { - "name": "trancheFeePercent", - "type": "uint256" - }, - { - "name": "crowdsaleAddress", - "type": "address" - }, - { - "name": "tokensForSaleAmount", - "type": "uint256" - }, - { - "name": "wTokensIssuedAmount", - "type": "uint256" - }, - { - "name": "tokenAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { - "name": "_operator", + "name": "account", "type": "address" - }, - { - "name": "_role", - "type": "string" } ], - "name": "hasRole", + "name": "isAdmin", "outputs": [ { "name": "", @@ -132,7 +65,7 @@ { "constant": false, "inputs": [], - "name": "renounceOwnership", + "name": "renounceAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -141,7 +74,7 @@ { "constant": true, "inputs": [], - "name": "owner", + "name": "factory", "outputs": [ { "name": "", @@ -155,21 +88,7 @@ { "constant": true, "inputs": [], - "name": "approvedTokensLength", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "factory", + "name": "primary", "outputs": [ { "name": "", @@ -180,29 +99,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - } - ], - "name": "approvedTokensIndex", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": true, "inputs": [], @@ -217,34 +113,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [], - "name": "ROLE_ADMIN", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -280,6 +148,28 @@ "indexed": true, "name": "tokenOwner", "type": "address" + } + ], + "name": "OwnerWhitelisted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "token", + "type": "address" + }, + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "owners", + "type": "address[]" }, { "indexed": false, @@ -292,7 +182,7 @@ "type": "string" } ], - "name": "OwnerWhitelisted", + "name": "TokenWhitelisted", "type": "event" }, { @@ -300,12 +190,17 @@ "inputs": [ { "indexed": true, - "name": "originalTokenAddress", + "name": "originalToken", "type": "address" }, { "indexed": true, - "name": "tokenOwner", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsale", "type": "address" }, { @@ -315,7 +210,7 @@ }, { "indexed": false, - "name": "placedTokenAddress", + "name": "placedToken", "type": "address" } ], @@ -327,12 +222,17 @@ "inputs": [ { "indexed": true, - "name": "tokenAddress", + "name": "token", "type": "address" }, { "indexed": true, - "name": "tokenOwner", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsale", "type": "address" }, { @@ -349,12 +249,17 @@ "inputs": [ { "indexed": true, - "name": "tokenAddress", + "name": "token", "type": "address" }, { "indexed": true, - "name": "tokenOwner", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsale", "type": "address" }, { @@ -370,29 +275,12 @@ "anonymous": false, "inputs": [ { - "indexed": true, - "name": "previousOwner", - "type": "address" - } - ], - "name": "OwnershipRenounced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", + "indexed": false, + "name": "recipient", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "PrimaryTransferred", "type": "event" }, { @@ -400,16 +288,11 @@ "inputs": [ { "indexed": true, - "name": "operator", + "name": "account", "type": "address" - }, - { - "indexed": false, - "name": "role", - "type": "string" } ], - "name": "RoleAdded", + "name": "AdminAdded", "type": "event" }, { @@ -417,23 +300,18 @@ "inputs": [ { "indexed": true, - "name": "operator", + "name": "account", "type": "address" - }, - { - "indexed": false, - "name": "role", - "type": "string" } ], - "name": "RoleRemoved", + "name": "AdminRemoved", "type": "event" }, { "constant": false, "inputs": [ { - "name": "_operator", + "name": "_account", "type": "address" } ], @@ -447,7 +325,7 @@ "constant": false, "inputs": [ { - "name": "_operator", + "name": "_account", "type": "address" } ], @@ -461,11 +339,7 @@ "constant": false, "inputs": [ { - "name": "tokenOwner", - "type": "address" - }, - { - "name": "tokenAddress", + "name": "token", "type": "address" }, { @@ -480,6 +354,10 @@ "name": "decimals", "type": "uint8" }, + { + "name": "owners", + "type": "address[]" + }, { "name": "feePercent", "type": "uint256" @@ -507,7 +385,11 @@ "constant": false, "inputs": [ { - "name": "tokenAddress", + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", "type": "address" }, { @@ -525,7 +407,7 @@ "constant": false, "inputs": [ { - "name": "tokenAddress", + "name": "token", "type": "address" }, { @@ -547,7 +429,11 @@ "constant": false, "inputs": [ { - "name": "tokenAddress", + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", "type": "address" }, { @@ -565,19 +451,15 @@ "constant": true, "inputs": [ { - "name": "tokenAddress", - "type": "address" - }, - { - "name": "ownerAddress", + "name": "token", "type": "address" } ], - "name": "getTokenCrowdsale", + "name": "getTokenOwners", "outputs": [ { "name": "", - "type": "address" + "type": "address[]" } ], "payable": false, @@ -590,9 +472,13 @@ { "name": "token", "type": "address" + }, + { + "name": "crowdsale", + "type": "address" } ], - "name": "getTokenOwners", + "name": "getCrowdsaleOwners", "outputs": [ { "name": "", @@ -617,14 +503,197 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "getToken", + "outputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + }, + { + "name": "owners", + "type": "address[]" + }, + { + "name": "commissions", + "type": "uint256[4]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], - "name": "serviceWallet", + "name": "getTokens", "outputs": [ { "name": "", - "type": "address" + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "isTokenWhitelisted", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "owner", + "type": "address" + } + ], + "name": "hasTokenOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "getCrowdsales", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + } + ], + "name": "hasCrowdsaleWithAddress", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + } + ], + "name": "hasNotInitialisedCrowdsale", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + } + ], + "name": "getCrowdsale", + "outputs": [ + { + "name": "commissions", + "type": "uint256[4]" + }, + { + "name": "amounts", + "type": "uint256[2]" + }, + { + "name": "owners", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "serviceWallet", + "outputs": [ + { + "name": "", + "type": "address" } ], "payable": false, @@ -632,20 +701,20 @@ "type": "function" } ], - "bytecode": "0x600160035560c0604052600560808190527f61646d696e00000000000000000000000000000000000000000000000000000060a090815262000045916004919062000312565b503480156200005357600080fd5b50604051608080620042688339810160409081528151602083015191830151606090930151600082905560028054600160a060020a03191633179055909290600160a060020a0382161515620000a857600080fd5b600160a060020a0381161515620000be57600080fd5b60058054600160a060020a03808416600160a060020a03199283161790925560078054868416908316179055600680549285169290911691909117905560098054906200010f906001830162000397565b506004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152620001bd93339391929091830182828015620001a35780601f106200017757610100808354040283529160200191620001a3565b820191906000526020600020905b8154815290600101906020018083116200018557829003601f168201915b5050505050620001c7640100000000026401000000009004565b50505050620004c7565b62000243826001836040518082805190602001908083835b60208310620002005780518252601f199092019160209182019101620001df565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050640100000000620002ed8102620026991704565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360005b83811015620002ae57818101518382015260200162000294565b50505050905090810190601f168015620002dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200035557805160ff191683800117855562000385565b8280016001018555821562000385579182015b828111156200038557825182559160200191906001019062000368565b5062000393929150620003cb565b5090565b815481835581811115620003c657600c0281600c028360005260206000209182019101620003c69190620003eb565b505050565b620003e891905b80821115620003935760008155600101620003d2565b90565b620003e891905b80821115620003935760006200040982826200047c565b620004196001830160006200047c565b5060028101805460ff19169055600060048201819055600582018190556006820181905560078201819055600882018054600160a060020a031990811690915560098301829055600a830191909155600b820180549091169055600c01620003f2565b50805460018160011615610100020316600290046000825580601f10620004a45750620004c4565b601f016020900490600052602060002090810190620004c49190620003cb565b50565b613d9180620004d76000396000f300608060405260043610620001315763ffffffff60e060020a60003504166309363c998114620001365780630988ca8c14620001625780631785f53c14620001cc5780631dafede014620001f0578063217fe6c6146200035857806334cf82bf14620003d65780633f3466a7146200042d5780634b1acf3914620004735780634d12fca4146200048b57806354fd4d5014620004a35780635641f3c314620004cd57806368dce93214620004e557806370480275146200050c578063715018a61462000530578063849072b914620005485780638da5cb5b14620005be5780639cf96e2e14620005d6578063a41ffd381462000605578063c45a0155146200062c578063cca89d731462000644578063d2f4a50a146200066e578063d391014b1462000686578063f2fde38b1462000716575b600080fd5b3480156200014357600080fd5b5062000160600160a060020a03600435166024356044356200073a565b005b3480156200016f57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855262000160958335600160a060020a031695369560449491939091019190819084018382808284375094975062000b789650505050505050565b348015620001d957600080fd5b5062000160600160a060020a036004351662000bea565b348015620001fd57600080fd5b506200020b60043562000ca3565b6040518080602001806020018c60ff1660ff1681526020018b81526020018a815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184600160a060020a0316600160a060020a0316815260200183810383528e818151815260200191508051906020019080838360005b83811015620002ae57818101518382015260200162000294565b50505050905090810190601f168015620002dc5780820380516001836020036101000a031916815260200191505b5083810382528d5181528d516020918201918f019080838360005b8381101562000311578181015183820152602001620002f7565b50505050905090810190601f1680156200033f5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b3480156200036557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552620003c2958335600160a060020a031695369560449491939091019190819084018382808284375094975062000e459650505050505050565b604080519115158252519081900360200190f35b348015620003e357600080fd5b5062000160600160a060020a0360048035821691602480359091169160443580830192908201359160643591820191013560ff6084351660a43560c43560e4356101043562000ebe565b3480156200043a57600080fd5b5062000457600160a060020a036004358116906024351662001442565b60408051600160a060020a039092168252519081900360200190f35b3480156200048057600080fd5b506200045762001464565b3480156200049857600080fd5b506200045762001474565b348015620004b057600080fd5b50620004bb62001483565b60408051918252519081900360200190f35b348015620004da57600080fd5b506200045762001489565b348015620004f257600080fd5b5062000160600160a060020a036004351660243562001523565b3480156200051957600080fd5b5062000160600160a060020a036004351662001af0565b3480156200053d57600080fd5b506200016062001ba6565b3480156200055557600080fd5b506200056c600160a060020a036004351662001c15565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620005aa57818101518382015260200162000590565b505050509050019250505060405180910390f35b348015620005cb57600080fd5b506200045762001c8d565b348015620005e357600080fd5b50620005ee62001c9c565b6040805161ffff9092168252519081900360200190f35b3480156200061257600080fd5b5062000160600160a060020a036004351660243562001ca6565b3480156200063957600080fd5b506200045762001f94565b3480156200065157600080fd5b50620005ee600160a060020a036004358116906024351662001fa3565b3480156200067b57600080fd5b506200045762001fc4565b3480156200069357600080fd5b506200069e62001fd3565b6040805160208082528351818301528351919283929083019185019080838360005b83811015620006da578181015183820152602001620006c0565b50505050905090810190601f168015620007085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200072357600080fd5b5062000160600160a060020a036004351662002065565b60008060016003541415156200074f57600080fd5b600260035560006200076062001489565b600160a060020a031614156200077557600080fd5b62000781853362002088565b336000908152600391909101602052604090205460ff161515600114620007a757600080fd5b620007c984620007b8873362002088565b600a01549063ffffffff620020da16565b620007d5863362002088565b600901541015620007e557600080fd5b6000620007f3863362002088565b60080154600160a060020a0316146200080b57600080fd5b6005546040805160e260020a630547cdcd028152600160a060020a0388811660048301529151919092169163151f37349160248083019260209291908290030181600087803b1580156200085e57600080fd5b505af115801562000873573d6000803e3d6000fd5b505050506040513d60208110156200088a57600080fd5b5051600654909250600160a060020a031663aa1322f7868486620008ad62001489565b620008b98b3362002088565b60050154620008c98c3362002088565b60060154620008d98d3362002088565b600701546005546040805160e060020a63ffffffff8c16028152600160a060020a03998a166004820152978916602489015260448801969096529387166064870152608486019290925260a485015260c48401529290921660e48201523361010482015290516101248083019260209291908290030181600087803b1580156200096257600080fd5b505af115801562000977573d6000803e3d6000fd5b505050506040513d60208110156200098e57600080fd5b50519050806200099f863362002088565b600801805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316179055604080517fd88b8676000000000000000000000000000000000000000000000000000000008152838316600482015290519184169163d88b86769160248082019260009290919082900301818387803b15801562000a2657600080fd5b505af115801562000a3b573d6000803e3d6000fd5b50505050600062000a4d863362002088565b60060154111562000b2057600554600160a060020a031663e1f21c67868362000a9c62000a7b833362002088565b6006015462000a8b8b3362002088565b600901549063ffffffff620020e816565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801562000af157600080fd5b505af115801562000b06573d6000803e3d6000fd5b505050506040513d602081101562000b1d57600080fd5b50505b62000b2c858562001ca6565b6040805185815290513391600160a060020a038816917f824239e216016c403265447935e88cc521189d5e9a52754e5c2a16f7436281dc9181900360200190a350506001600355505050565b62000be6826001836040518082805190602001908083835b6020831062000bb15780518252601f19909201916020918201910162000b90565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505062002117565b5050565b600254600160a060020a0316331462000c0257600080fd5b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815262000ca09385939192909183018282801562000c955780601f1062000c695761010080835404028352916020019162000c95565b820191906000526020600020905b81548152906001019060200180831162000c7757829003601f168201915b50505050506200212f565b50565b600980548290811062000cb257fe5b6000918252602091829020600c919091020180546040805160026001841615610100026000190190931692909204601f81018590048502830185019091528082529193509183919083018282801562000d4f5780601f1062000d235761010080835404028352916020019162000d4f565b820191906000526020600020905b81548152906001019060200180831162000d3157829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000df15780601f1062000dc55761010080835404028352916020019162000df1565b820191906000526020600020905b81548152906001019060200180831162000dd357829003601f168201915b50505060028401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b0154999a60ff9097169995985093965091949093600160a060020a039283169392168b565b600062000eb5836001846040518082805190602001908083835b6020831062000e805780518252601f19909201916020918201910162000e5f565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505062002247565b90505b92915050565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526000939092909183018282801562000f4e5780601f1062000f225761010080835404028352916020019162000f4e565b820191906000526020600020905b81548152906001019060200180831162000f3057829003601f168201915b505050505062000f5f338262000b78565b600160a060020a038d16151562000f7557600080fd5b600160a060020a038c16151562000f8b57600080fd5b62000f968662002266565b801562000fad5750606462000fab8762002290565b105b151562000fb957600080fd5b62000fc48562002266565b801562000fdb5750606462000fd98662002290565b105b151562000fe757600080fd5b62000ff28462002266565b80156200100957506064620010078562002290565b105b15156200101557600080fd5b620010208362002266565b80156200103757506064620010358462002290565b105b15156200104357600080fd5b8b600160a060020a0316620010598d8f62002088565b600b0154600160a060020a031614156200107257600080fd5b6200107e8c8e62002088565b600160a060020a038e166000908152600391909101602052604090205460ff1615620010a957600080fd5b600980549050915081600860008e600160a060020a0316600160a060020a0316815260200190815260200160002060008f600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548161ffff021916908361ffff160217905550600980548091906001016200112a9190620026d2565b600b60006101000a81548161ffff021916908361ffff160217905550600a60008d600160a060020a0316600160a060020a031681526020019081526020016000208d90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160098361ffff16815481101515620011cb57fe5b90600052602060002090600c020160030160008f600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff0219169083151502179055508a8a60098461ffff168154811015156200122c57fe5b600091825260209091206200124893600c909202019162002706565b50888860098461ffff168154811015156200125f57fe5b90600052602060002090600c020160010191906200127f92919062002706565b508660098361ffff168154811015156200129557fe5b90600052602060002090600c020160020160006101000a81548160ff021916908360ff1602179055508560098361ffff16815481101515620012d357fe5b90600052602060002090600c0201600401819055508460098361ffff16815481101515620012fd57fe5b90600052602060002090600c0201600501819055508360098361ffff168154811015156200132757fe5b90600052602060002090600c0201600601819055508260098361ffff168154811015156200135157fe5b90600052602060002090600c0201600701819055508b60098361ffff168154811015156200137b57fe5b90600052602060002090600c0201600b0160006101000a815481600160a060020a030219169083600160a060020a031602179055508c600160a060020a03168c600160a060020a03167fd3bb7a0fd3c972c824718e5d4fe7501feb58ebd797223783efbfd1d3085d49438d8d8d8d60405180806020018060200183810383528787828181526020019250808284379091018481038352858152602001905085858082843760405192018290039850909650505050505050a350505050505050505050505050565b600062001450838362002088565b60080154600160a060020a03169392505050565b600554600160a060020a03165b90565b600554600160a060020a031681565b60005481565b600754604080517fe3ff76e4000000000000000000000000000000000000000000000000000000008152600160048201529051600092600160a060020a03169163e3ff76e491602480830192602092919082900301818787803b158015620014f057600080fd5b505af115801562001505573d6000803e3d6000fd5b505050506040513d60208110156200151c57600080fd5b5051905090565b600080600080600060016003541415156200153d57600080fd5b600260035560006200154e62001489565b600160a060020a031614156200156357600080fd5b600086116200157157600080fd5b600160a060020a03871615156200158757600080fd5b86600160a060020a03166200159d883362002088565b600b0154600160a060020a031614620015b557600080fd5b620015c1873362002088565b336000908152600391909101602052604090205460ff161515620015e457600080fd5b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518896508791600160a060020a0388169163dd62ed3e916044808201926020929091908290030181600087803b1580156200165257600080fd5b505af115801562001667573d6000803e3d6000fd5b505050506040513d60208110156200167e57600080fd5b505110156200168c57600080fd5b62001698873362002088565b93508360020160009054906101000a900460ff1660ff1685600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620016ee57600080fd5b505af115801562001703573d6000803e3d6000fd5b505050506040513d60208110156200171a57600080fd5b505160ff16146200172a57600080fd5b60008460040154116200173f57600062001757565b60048401546200175790879063ffffffff620020e816565b92506200176b868463ffffffff620022c816565b60055490925062001788908690600160a060020a031684620022db565b6200179e856200179762001489565b85620022db565b6009840154620017b5908363ffffffff620020da16565b60098501556005546040805160e260020a630547cdcd028152600160a060020a038a8116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b1580156200180f57600080fd5b505af115801562001824573d6000803e3d6000fd5b505050506040513d60208110156200183b57600080fd5b5051600160a060020a0316141562001a195760028401548490600182019060ff16620018666200278b565b60ff82166040820152606080825284546002600019610100600184161502019091160490820181905281906020820190608083019087908015620018ee5780601f10620018c257610100808354040283529160200191620018ee565b820191906000526020600020905b815481529060010190602001808311620018d057829003601f168201915b5050838103825285546002600019610100600184161502019091160480825260209091019086908015620019665780601f106200193a5761010080835404028352916020019162001966565b820191906000526020600020905b8154815290600101906020018083116200194857829003601f168201915b505095505050505050604051809103906000f0801580156200198c573d6000803e3d6000fd5b50600554604080517fa0736912000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301528085166024830152915193945091169163a07369129160448082019260009290919082900301818387803b158015620019ff57600080fd5b505af115801562001a14573d6000803e3d6000fd5b505050505b6005546040805160e260020a630547cdcd028152600160a060020a038a811660048301819052925133947f2b11dc5f6b2036a3d03d04c1e89724a8650507582665455ed7154b544f3e3c4f9388939091169163151f3734916024808201926020929091908290030181600087803b15801562001a9457600080fd5b505af115801562001aa9573d6000803e3d6000fd5b505050506040513d602081101562001ac057600080fd5b505160408051928352600160a060020a0390911660208301528051918290030190a3505060016003555050505050565b600254600160a060020a0316331462001b0857600080fd5b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815262000ca09385939192909183018282801562001b9b5780601f1062001b6f5761010080835404028352916020019162001b9b565b820191906000526020600020905b81548152906001019060200180831162001b7d57829003601f168201915b5050505050620024bf565b600254600160a060020a0316331462001bbe57600080fd5b600254604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a0381166000908152600a602090815260409182902080548351818402810184019094528084526060939283018282801562001c8157602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001c62575b50505050509050919050565b600254600160a060020a031681565b600b5461ffff1681565b60008080831162001cb657600080fd5b600160a060020a038416151562001ccc57600080fd5b6005546040805160e260020a630547cdcd028152600160a060020a03878116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b15801562001d2157600080fd5b505af115801562001d36573d6000803e3d6000fd5b505050506040513d602081101562001d4d57600080fd5b5051600160a060020a0316141562001d6457600080fd5b600062001d72853362002088565b60080154600160a060020a0316141562001d8b57600080fd5b62001d97843362002088565b336000908152600391909101602052604090205460ff16151560011462001dbd57600080fd5b62001dce83620007b8863362002088565b62001dda853362002088565b60090154101562001dea57600080fd5b6005546040805160e260020a630547cdcd028152600160a060020a0387811660048301529151919092169163151f37349160248083019260209291908290030181600087803b15801562001e3d57600080fd5b505af115801562001e52573d6000803e3d6000fd5b505050506040513d602081101562001e6957600080fd5b5051915062001e79843362002088565b60080154600160a060020a0316905062001e9983620007b8863362002088565b62001ea5853362002088565b600a0155604080517fd0047acf000000000000000000000000000000000000000000000000000000008152600160a060020a0383811660048301526024820186905260006044830181905292519085169263d0047acf92606480820193602093909283900390910190829087803b15801562001f2057600080fd5b505af115801562001f35573d6000803e3d6000fd5b505050506040513d602081101562001f4c57600080fd5b50506040805184815290513391600160a060020a038716917f9a2331701430ef95fa157fc5598820b278d8225e8a51263887abb0e1e2b06d979181900360200190a350505050565b600654600160a060020a031681565b600860209081526000928352604080842090915290825290205461ffff1681565b600754600160a060020a031681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156200205d5780601f1062002031576101008083540402835291602001916200205d565b820191906000526020600020905b8154815290600101906020018083116200203f57829003601f168201915b505050505081565b600254600160a060020a031633146200207d57600080fd5b62000ca08162002597565b600160a060020a03808316600090815260086020908152604080832093851683529290529081205460098054909161ffff16908110620020c457fe5b90600052602060002090600c0201905092915050565b8181018281101562000eb857fe5b600062000eb5620020f862002616565b6200210a858563ffffffff6200262a16565b9063ffffffff6200265716565b62002123828262002247565b151562000be657600080fd5b6200219d826001836040518082805190602001908083835b60208310620021685780518252601f19909201916020918201910162002147565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220929150506200266d565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b8381101562002208578181015183820152602001620021ee565b50505050905090810190601f168015620022365780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a03166000908152602091909152604090205460ff1690565b6000620022726200268f565b821015801562000eb857506200228762002616565b82111592915050565b60006200229d8262002266565b1515620022a957600080fd5b62000eb8620022b762002694565b8390600a0a63ffffffff6200265716565b600082821115620022d557fe5b50900390565b6000620023798285600160a060020a03166370a08231866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156200233e57600080fd5b505af115801562002353573d6000803e3d6000fd5b505050506040513d60208110156200236a57600080fd5b50519063ffffffff620020da16565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151929350908616916323b872dd916064808201926020929091908290030181600087803b158015620023ef57600080fd5b505af115801562002404573d6000803e3d6000fd5b505050506040513d60208110156200241b57600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915183928716916370a082319160248083019260209291908290030181600087803b1580156200248357600080fd5b505af115801562002498573d6000803e3d6000fd5b505050506040513d6020811015620024af57600080fd5b505114620024b957fe5b50505050565b6200252d826001836040518082805190602001908083835b60208310620024f85780518252601f199092019160209182019101620024d7565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505062002699565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360008381101562002208578181015183820152602001620021ee565b600160a060020a0381161515620025ad57600080fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600062002622620026be565b600a0a905090565b60008215156200263d5750600062000eb8565b508181028183828115156200264e57fe5b041462000eb857fe5b600081838115156200266557fe5b049392505050565b600160a060020a0316600090815260209190915260409020805460ff19169055565b600090565b600290565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000620026ca62002694565b600201905090565b8154818355818111156200270157600c0281600c0283600052602060002091820191016200270191906200279c565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620027495782800160ff1982351617855562002779565b8280016001018555821562002779579182015b82811115620027795782358255916020019190600101906200275c565b50620027879291506200283a565b5090565b6040516114c680620028a083390190565b6200147191905b8082111562002787576000620027ba828262002857565b620027ca60018301600062002857565b5060028101805460ff1916905560006004820181905560058201819055600682018190556007820181905560088201805473ffffffffffffffffffffffffffffffffffffffff1990811690915560098301829055600a830191909155600b820180549091169055600c01620027a3565b6200147191905b8082111562002787576000815560010162002841565b50805460018160011615610100020316600290046000825580601f106200287f575062000ca0565b601f01602090049060005260206000209081019062000ca091906200283a560060806040523480156200001157600080fd5b50604051620014c6380380620014c68339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000ba565b5081516200006e906001906020850190620000ba565b506002805460ff90921660ff1992831617905560058054600160a060020a031916339081179091556000908152600b6020526040902080549091166001179055506200015f9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000fd57805160ff19168380011785556200012d565b828001600101855582156200012d579182015b828111156200012d57825182559160200191906001019062000110565b506200013b9291506200013f565b5090565b6200015c91905b808211156200013b576000815560010162000146565b90565b611357806200016f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108fc565b34801561035e57600080fd5b50610367610992565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109a1565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109fb565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610aa7565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b7a565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bb2565b34801561044357600080fd5b5061020e600160a060020a0360043516610cf8565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610dfd565b34801561048857600080fd5b506102ae600160a060020a0360043516610e96565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610ed1565b3480156104d057600080fd5b506102ae600160a060020a0360043516610efc565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085490565b60006105ea84610f1c565b600160a060020a03831615156105ff57600080fd5b61060884610cf8565b82111561061457600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526007602052604090205461066d908363ffffffff61108b16565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106a2908363ffffffff61109d16565b600160a060020a0380851660009081526007602090815260408083209490945591871681526006825282812033825290915220546106e6908363ffffffff61108b16565b600160a060020a038086166000818152600660209081526040808320338452825291829020949094558051868152905192871693919260008051602061130c833981519152929181900390910190a35060019392505050565b60076020526000908152604090205481565b60025460ff1681565b61076433826110b0565b50565b600960209081526000928352604080842090915290825290205481565b336000908152600660209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600660209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff61108b16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526007602052604090205490565b600554600160a060020a031633146108a557600080fd5b600554604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038216600090815260066020908152604080832033845290915290205481111561092c57600080fd5b600160a060020a0382166000908152600660209081526040808320338452909152902054610960908263ffffffff61108b16565b600160a060020a038316600090815260066020908152604080832033845290915290205561098e82826110b0565b5050565b600554600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b336000818152600b602052604081205490919060ff161515610a1c57600080fd5b610a268585610aa7565b50428363ffffffff161115610a4857610a486000868563ffffffff1687611198565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ab233610f1c565b600160a060020a0383161515610ac757600080fd5b610ad033610cf8565b821115610adc57600080fd5b33600090815260076020526040902054610afc908363ffffffff61108b16565b3360009081526007602052604080822092909255600160a060020a03851681522054610b2e908363ffffffff61109d16565b600160a060020a03841660008181526007602090815260409182902093909355805185815290519192339260008051602061130c8339815191529281900390910190a350600192915050565b600554600160a060020a03163314610b9157600080fd5b600160a060020a03166000908152600b60205260409020805460ff19169055565b336000818152600b602052604081205490919060ff161515610bd357600080fd5b600854610be6818663ffffffff61109d16565b11610bf057600080fd5b428363ffffffff161115610c1157610c116000868563ffffffff1687611198565b600160a060020a038516600090815260076020526040902054610c3a908563ffffffff61109d16565b600160a060020a038616600090815260076020526040902055600854610c66908563ffffffff61109d16565b600855604080518581529051600160a060020a0387169160009160008051602061130c8339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260076020908152604080832054600983528184208480529092528220549091901515610d3257610df7565b5060005b600160a060020a0383166000908152600a6020526040902054811015610df757600160a060020a0383166000908152600a60205260409020805442919083908110610d7d57fe5b9060005260206000200154101515610def57600160a060020a0383166000908152600960209081526040808320600a90925282208054610dec93919085908110610dc357fe5b90600052602060002001548152602001908152602001600020548361108b90919063ffffffff16565b91505b600101610d36565b50919050565b336000908152600660209081526040808320600160a060020a0386168452909152812054610e31908363ffffffff61109d16565b336000818152600660209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600554600160a060020a03163314610ead57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600554600160a060020a03163314610f1357600080fd5b6107648161128d565b600160a060020a03811660009081526009602090815260408083208380529091528120541515610f4b5761098e565b5060005b600160a060020a0382166000908152600a602052604090205481101561098e57600160a060020a0382166000908152600a60205260409020805442919083908110610f9657fe5b9060005260206000200154101561108357600160a060020a0382166000908152600960209081526040808320600a9092528220805461102193919085908110610fdb57fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526009845282822082805290935220549063ffffffff61108b16565b600160a060020a038316600081815260096020908152604080832083805280835281842095909555928252600a905290812080549192918391908590811061106557fe5b90600052602060002001548152602001908152602001600020819055505b600101610f4f565b60008282111561109757fe5b50900390565b818101828110156110aa57fe5b92915050565b6110b982610f1c565b6110c282610cf8565b8111156110ce57600080fd5b600160a060020a0382166000908152600760205260409020546110f7908263ffffffff61108b16565b600160a060020a038316600090815260076020526040902055600854611123908263ffffffff61108b16565b600855604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061130c8339815191529181900360200190a35050565b600160a060020a03831660009081526009602090815260408083208380529091529020546111cc908263ffffffff61109d16565b600160a060020a0384166000908152600960209081526040808320838052909152808220929092558381522054151561122b57600160a060020a0383166000908152600a60209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260096020908152604080832085845290915290205461125f908263ffffffff61109d16565b600160a060020a03909316600090815260096020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112a257600080fd5b600554604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582001f3b8ffebfc578122646c111958154798ff2fde3bc58f72b8cbe911bdfe9e600029a165627a7a72305820fe9ce4c853a58467c6f436d11a3358cb56f3d7bbb8f7257eb6f8755a62b819d10029", - "deployedBytecode": "0x608060405260043610620001315763ffffffff60e060020a60003504166309363c998114620001365780630988ca8c14620001625780631785f53c14620001cc5780631dafede014620001f0578063217fe6c6146200035857806334cf82bf14620003d65780633f3466a7146200042d5780634b1acf3914620004735780634d12fca4146200048b57806354fd4d5014620004a35780635641f3c314620004cd57806368dce93214620004e557806370480275146200050c578063715018a61462000530578063849072b914620005485780638da5cb5b14620005be5780639cf96e2e14620005d6578063a41ffd381462000605578063c45a0155146200062c578063cca89d731462000644578063d2f4a50a146200066e578063d391014b1462000686578063f2fde38b1462000716575b600080fd5b3480156200014357600080fd5b5062000160600160a060020a03600435166024356044356200073a565b005b3480156200016f57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855262000160958335600160a060020a031695369560449491939091019190819084018382808284375094975062000b789650505050505050565b348015620001d957600080fd5b5062000160600160a060020a036004351662000bea565b348015620001fd57600080fd5b506200020b60043562000ca3565b6040518080602001806020018c60ff1660ff1681526020018b81526020018a815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184600160a060020a0316600160a060020a0316815260200183810383528e818151815260200191508051906020019080838360005b83811015620002ae57818101518382015260200162000294565b50505050905090810190601f168015620002dc5780820380516001836020036101000a031916815260200191505b5083810382528d5181528d516020918201918f019080838360005b8381101562000311578181015183820152602001620002f7565b50505050905090810190601f1680156200033f5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b3480156200036557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552620003c2958335600160a060020a031695369560449491939091019190819084018382808284375094975062000e459650505050505050565b604080519115158252519081900360200190f35b348015620003e357600080fd5b5062000160600160a060020a0360048035821691602480359091169160443580830192908201359160643591820191013560ff6084351660a43560c43560e4356101043562000ebe565b3480156200043a57600080fd5b5062000457600160a060020a036004358116906024351662001442565b60408051600160a060020a039092168252519081900360200190f35b3480156200048057600080fd5b506200045762001464565b3480156200049857600080fd5b506200045762001474565b348015620004b057600080fd5b50620004bb62001483565b60408051918252519081900360200190f35b348015620004da57600080fd5b506200045762001489565b348015620004f257600080fd5b5062000160600160a060020a036004351660243562001523565b3480156200051957600080fd5b5062000160600160a060020a036004351662001af0565b3480156200053d57600080fd5b506200016062001ba6565b3480156200055557600080fd5b506200056c600160a060020a036004351662001c15565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620005aa57818101518382015260200162000590565b505050509050019250505060405180910390f35b348015620005cb57600080fd5b506200045762001c8d565b348015620005e357600080fd5b50620005ee62001c9c565b6040805161ffff9092168252519081900360200190f35b3480156200061257600080fd5b5062000160600160a060020a036004351660243562001ca6565b3480156200063957600080fd5b506200045762001f94565b3480156200065157600080fd5b50620005ee600160a060020a036004358116906024351662001fa3565b3480156200067b57600080fd5b506200045762001fc4565b3480156200069357600080fd5b506200069e62001fd3565b6040805160208082528351818301528351919283929083019185019080838360005b83811015620006da578181015183820152602001620006c0565b50505050905090810190601f168015620007085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200072357600080fd5b5062000160600160a060020a036004351662002065565b60008060016003541415156200074f57600080fd5b600260035560006200076062001489565b600160a060020a031614156200077557600080fd5b62000781853362002088565b336000908152600391909101602052604090205460ff161515600114620007a757600080fd5b620007c984620007b8873362002088565b600a01549063ffffffff620020da16565b620007d5863362002088565b600901541015620007e557600080fd5b6000620007f3863362002088565b60080154600160a060020a0316146200080b57600080fd5b6005546040805160e260020a630547cdcd028152600160a060020a0388811660048301529151919092169163151f37349160248083019260209291908290030181600087803b1580156200085e57600080fd5b505af115801562000873573d6000803e3d6000fd5b505050506040513d60208110156200088a57600080fd5b5051600654909250600160a060020a031663aa1322f7868486620008ad62001489565b620008b98b3362002088565b60050154620008c98c3362002088565b60060154620008d98d3362002088565b600701546005546040805160e060020a63ffffffff8c16028152600160a060020a03998a166004820152978916602489015260448801969096529387166064870152608486019290925260a485015260c48401529290921660e48201523361010482015290516101248083019260209291908290030181600087803b1580156200096257600080fd5b505af115801562000977573d6000803e3d6000fd5b505050506040513d60208110156200098e57600080fd5b50519050806200099f863362002088565b600801805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316179055604080517fd88b8676000000000000000000000000000000000000000000000000000000008152838316600482015290519184169163d88b86769160248082019260009290919082900301818387803b15801562000a2657600080fd5b505af115801562000a3b573d6000803e3d6000fd5b50505050600062000a4d863362002088565b60060154111562000b2057600554600160a060020a031663e1f21c67868362000a9c62000a7b833362002088565b6006015462000a8b8b3362002088565b600901549063ffffffff620020e816565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801562000af157600080fd5b505af115801562000b06573d6000803e3d6000fd5b505050506040513d602081101562000b1d57600080fd5b50505b62000b2c858562001ca6565b6040805185815290513391600160a060020a038816917f824239e216016c403265447935e88cc521189d5e9a52754e5c2a16f7436281dc9181900360200190a350506001600355505050565b62000be6826001836040518082805190602001908083835b6020831062000bb15780518252601f19909201916020918201910162000b90565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505062002117565b5050565b600254600160a060020a0316331462000c0257600080fd5b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815262000ca09385939192909183018282801562000c955780601f1062000c695761010080835404028352916020019162000c95565b820191906000526020600020905b81548152906001019060200180831162000c7757829003601f168201915b50505050506200212f565b50565b600980548290811062000cb257fe5b6000918252602091829020600c919091020180546040805160026001841615610100026000190190931692909204601f81018590048502830185019091528082529193509183919083018282801562000d4f5780601f1062000d235761010080835404028352916020019162000d4f565b820191906000526020600020905b81548152906001019060200180831162000d3157829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000df15780601f1062000dc55761010080835404028352916020019162000df1565b820191906000526020600020905b81548152906001019060200180831162000dd357829003601f168201915b50505060028401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b0154999a60ff9097169995985093965091949093600160a060020a039283169392168b565b600062000eb5836001846040518082805190602001908083835b6020831062000e805780518252601f19909201916020918201910162000e5f565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505062002247565b90505b92915050565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526000939092909183018282801562000f4e5780601f1062000f225761010080835404028352916020019162000f4e565b820191906000526020600020905b81548152906001019060200180831162000f3057829003601f168201915b505050505062000f5f338262000b78565b600160a060020a038d16151562000f7557600080fd5b600160a060020a038c16151562000f8b57600080fd5b62000f968662002266565b801562000fad5750606462000fab8762002290565b105b151562000fb957600080fd5b62000fc48562002266565b801562000fdb5750606462000fd98662002290565b105b151562000fe757600080fd5b62000ff28462002266565b80156200100957506064620010078562002290565b105b15156200101557600080fd5b620010208362002266565b80156200103757506064620010358462002290565b105b15156200104357600080fd5b8b600160a060020a0316620010598d8f62002088565b600b0154600160a060020a031614156200107257600080fd5b6200107e8c8e62002088565b600160a060020a038e166000908152600391909101602052604090205460ff1615620010a957600080fd5b600980549050915081600860008e600160a060020a0316600160a060020a0316815260200190815260200160002060008f600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548161ffff021916908361ffff160217905550600980548091906001016200112a9190620026d2565b600b60006101000a81548161ffff021916908361ffff160217905550600a60008d600160a060020a0316600160a060020a031681526020019081526020016000208d90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160098361ffff16815481101515620011cb57fe5b90600052602060002090600c020160030160008f600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff0219169083151502179055508a8a60098461ffff168154811015156200122c57fe5b600091825260209091206200124893600c909202019162002706565b50888860098461ffff168154811015156200125f57fe5b90600052602060002090600c020160010191906200127f92919062002706565b508660098361ffff168154811015156200129557fe5b90600052602060002090600c020160020160006101000a81548160ff021916908360ff1602179055508560098361ffff16815481101515620012d357fe5b90600052602060002090600c0201600401819055508460098361ffff16815481101515620012fd57fe5b90600052602060002090600c0201600501819055508360098361ffff168154811015156200132757fe5b90600052602060002090600c0201600601819055508260098361ffff168154811015156200135157fe5b90600052602060002090600c0201600701819055508b60098361ffff168154811015156200137b57fe5b90600052602060002090600c0201600b0160006101000a815481600160a060020a030219169083600160a060020a031602179055508c600160a060020a03168c600160a060020a03167fd3bb7a0fd3c972c824718e5d4fe7501feb58ebd797223783efbfd1d3085d49438d8d8d8d60405180806020018060200183810383528787828181526020019250808284379091018481038352858152602001905085858082843760405192018290039850909650505050505050a350505050505050505050505050565b600062001450838362002088565b60080154600160a060020a03169392505050565b600554600160a060020a03165b90565b600554600160a060020a031681565b60005481565b600754604080517fe3ff76e4000000000000000000000000000000000000000000000000000000008152600160048201529051600092600160a060020a03169163e3ff76e491602480830192602092919082900301818787803b158015620014f057600080fd5b505af115801562001505573d6000803e3d6000fd5b505050506040513d60208110156200151c57600080fd5b5051905090565b600080600080600060016003541415156200153d57600080fd5b600260035560006200154e62001489565b600160a060020a031614156200156357600080fd5b600086116200157157600080fd5b600160a060020a03871615156200158757600080fd5b86600160a060020a03166200159d883362002088565b600b0154600160a060020a031614620015b557600080fd5b620015c1873362002088565b336000908152600391909101602052604090205460ff161515620015e457600080fd5b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518896508791600160a060020a0388169163dd62ed3e916044808201926020929091908290030181600087803b1580156200165257600080fd5b505af115801562001667573d6000803e3d6000fd5b505050506040513d60208110156200167e57600080fd5b505110156200168c57600080fd5b62001698873362002088565b93508360020160009054906101000a900460ff1660ff1685600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620016ee57600080fd5b505af115801562001703573d6000803e3d6000fd5b505050506040513d60208110156200171a57600080fd5b505160ff16146200172a57600080fd5b60008460040154116200173f57600062001757565b60048401546200175790879063ffffffff620020e816565b92506200176b868463ffffffff620022c816565b60055490925062001788908690600160a060020a031684620022db565b6200179e856200179762001489565b85620022db565b6009840154620017b5908363ffffffff620020da16565b60098501556005546040805160e260020a630547cdcd028152600160a060020a038a8116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b1580156200180f57600080fd5b505af115801562001824573d6000803e3d6000fd5b505050506040513d60208110156200183b57600080fd5b5051600160a060020a0316141562001a195760028401548490600182019060ff16620018666200278b565b60ff82166040820152606080825284546002600019610100600184161502019091160490820181905281906020820190608083019087908015620018ee5780601f10620018c257610100808354040283529160200191620018ee565b820191906000526020600020905b815481529060010190602001808311620018d057829003601f168201915b5050838103825285546002600019610100600184161502019091160480825260209091019086908015620019665780601f106200193a5761010080835404028352916020019162001966565b820191906000526020600020905b8154815290600101906020018083116200194857829003601f168201915b505095505050505050604051809103906000f0801580156200198c573d6000803e3d6000fd5b50600554604080517fa0736912000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301528085166024830152915193945091169163a07369129160448082019260009290919082900301818387803b158015620019ff57600080fd5b505af115801562001a14573d6000803e3d6000fd5b505050505b6005546040805160e260020a630547cdcd028152600160a060020a038a811660048301819052925133947f2b11dc5f6b2036a3d03d04c1e89724a8650507582665455ed7154b544f3e3c4f9388939091169163151f3734916024808201926020929091908290030181600087803b15801562001a9457600080fd5b505af115801562001aa9573d6000803e3d6000fd5b505050506040513d602081101562001ac057600080fd5b505160408051928352600160a060020a0390911660208301528051918290030190a3505060016003555050505050565b600254600160a060020a0316331462001b0857600080fd5b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815262000ca09385939192909183018282801562001b9b5780601f1062001b6f5761010080835404028352916020019162001b9b565b820191906000526020600020905b81548152906001019060200180831162001b7d57829003601f168201915b5050505050620024bf565b600254600160a060020a0316331462001bbe57600080fd5b600254604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a0381166000908152600a602090815260409182902080548351818402810184019094528084526060939283018282801562001c8157602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001c62575b50505050509050919050565b600254600160a060020a031681565b600b5461ffff1681565b60008080831162001cb657600080fd5b600160a060020a038416151562001ccc57600080fd5b6005546040805160e260020a630547cdcd028152600160a060020a03878116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b15801562001d2157600080fd5b505af115801562001d36573d6000803e3d6000fd5b505050506040513d602081101562001d4d57600080fd5b5051600160a060020a0316141562001d6457600080fd5b600062001d72853362002088565b60080154600160a060020a0316141562001d8b57600080fd5b62001d97843362002088565b336000908152600391909101602052604090205460ff16151560011462001dbd57600080fd5b62001dce83620007b8863362002088565b62001dda853362002088565b60090154101562001dea57600080fd5b6005546040805160e260020a630547cdcd028152600160a060020a0387811660048301529151919092169163151f37349160248083019260209291908290030181600087803b15801562001e3d57600080fd5b505af115801562001e52573d6000803e3d6000fd5b505050506040513d602081101562001e6957600080fd5b5051915062001e79843362002088565b60080154600160a060020a0316905062001e9983620007b8863362002088565b62001ea5853362002088565b600a0155604080517fd0047acf000000000000000000000000000000000000000000000000000000008152600160a060020a0383811660048301526024820186905260006044830181905292519085169263d0047acf92606480820193602093909283900390910190829087803b15801562001f2057600080fd5b505af115801562001f35573d6000803e3d6000fd5b505050506040513d602081101562001f4c57600080fd5b50506040805184815290513391600160a060020a038716917f9a2331701430ef95fa157fc5598820b278d8225e8a51263887abb0e1e2b06d979181900360200190a350505050565b600654600160a060020a031681565b600860209081526000928352604080842090915290825290205461ffff1681565b600754600160a060020a031681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156200205d5780601f1062002031576101008083540402835291602001916200205d565b820191906000526020600020905b8154815290600101906020018083116200203f57829003601f168201915b505050505081565b600254600160a060020a031633146200207d57600080fd5b62000ca08162002597565b600160a060020a03808316600090815260086020908152604080832093851683529290529081205460098054909161ffff16908110620020c457fe5b90600052602060002090600c0201905092915050565b8181018281101562000eb857fe5b600062000eb5620020f862002616565b6200210a858563ffffffff6200262a16565b9063ffffffff6200265716565b62002123828262002247565b151562000be657600080fd5b6200219d826001836040518082805190602001908083835b60208310620021685780518252601f19909201916020918201910162002147565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220929150506200266d565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b8381101562002208578181015183820152602001620021ee565b50505050905090810190601f168015620022365780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a03166000908152602091909152604090205460ff1690565b6000620022726200268f565b821015801562000eb857506200228762002616565b82111592915050565b60006200229d8262002266565b1515620022a957600080fd5b62000eb8620022b762002694565b8390600a0a63ffffffff6200265716565b600082821115620022d557fe5b50900390565b6000620023798285600160a060020a03166370a08231866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156200233e57600080fd5b505af115801562002353573d6000803e3d6000fd5b505050506040513d60208110156200236a57600080fd5b50519063ffffffff620020da16565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151929350908616916323b872dd916064808201926020929091908290030181600087803b158015620023ef57600080fd5b505af115801562002404573d6000803e3d6000fd5b505050506040513d60208110156200241b57600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915183928716916370a082319160248083019260209291908290030181600087803b1580156200248357600080fd5b505af115801562002498573d6000803e3d6000fd5b505050506040513d6020811015620024af57600080fd5b505114620024b957fe5b50505050565b6200252d826001836040518082805190602001908083835b60208310620024f85780518252601f199092019160209182019101620024d7565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505062002699565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360008381101562002208578181015183820152602001620021ee565b600160a060020a0381161515620025ad57600080fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600062002622620026be565b600a0a905090565b60008215156200263d5750600062000eb8565b508181028183828115156200264e57fe5b041462000eb857fe5b600081838115156200266557fe5b049392505050565b600160a060020a0316600090815260209190915260409020805460ff19169055565b600090565b600290565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000620026ca62002694565b600201905090565b8154818355818111156200270157600c0281600c0283600052602060002091820191016200270191906200279c565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620027495782800160ff1982351617855562002779565b8280016001018555821562002779579182015b82811115620027795782358255916020019190600101906200275c565b50620027879291506200283a565b5090565b6040516114c680620028a083390190565b6200147191905b8082111562002787576000620027ba828262002857565b620027ca60018301600062002857565b5060028101805460ff1916905560006004820181905560058201819055600682018190556007820181905560088201805473ffffffffffffffffffffffffffffffffffffffff1990811690915560098301829055600a830191909155600b820180549091169055600c01620027a3565b6200147191905b8082111562002787576000815560010162002841565b50805460018160011615610100020316600290046000825580601f106200287f575062000ca0565b601f01602090049060005260206000209081019062000ca091906200283a560060806040523480156200001157600080fd5b50604051620014c6380380620014c68339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000ba565b5081516200006e906001906020850190620000ba565b506002805460ff90921660ff1992831617905560058054600160a060020a031916339081179091556000908152600b6020526040902080549091166001179055506200015f9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000fd57805160ff19168380011785556200012d565b828001600101855582156200012d579182015b828111156200012d57825182559160200191906001019062000110565b506200013b9291506200013f565b5090565b6200015c91905b808211156200013b576000815560010162000146565b90565b611357806200016f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108fc565b34801561035e57600080fd5b50610367610992565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109a1565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109fb565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610aa7565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b7a565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bb2565b34801561044357600080fd5b5061020e600160a060020a0360043516610cf8565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610dfd565b34801561048857600080fd5b506102ae600160a060020a0360043516610e96565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610ed1565b3480156104d057600080fd5b506102ae600160a060020a0360043516610efc565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085490565b60006105ea84610f1c565b600160a060020a03831615156105ff57600080fd5b61060884610cf8565b82111561061457600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526007602052604090205461066d908363ffffffff61108b16565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106a2908363ffffffff61109d16565b600160a060020a0380851660009081526007602090815260408083209490945591871681526006825282812033825290915220546106e6908363ffffffff61108b16565b600160a060020a038086166000818152600660209081526040808320338452825291829020949094558051868152905192871693919260008051602061130c833981519152929181900390910190a35060019392505050565b60076020526000908152604090205481565b60025460ff1681565b61076433826110b0565b50565b600960209081526000928352604080842090915290825290205481565b336000908152600660209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600660209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff61108b16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526007602052604090205490565b600554600160a060020a031633146108a557600080fd5b600554604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038216600090815260066020908152604080832033845290915290205481111561092c57600080fd5b600160a060020a0382166000908152600660209081526040808320338452909152902054610960908263ffffffff61108b16565b600160a060020a038316600090815260066020908152604080832033845290915290205561098e82826110b0565b5050565b600554600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b336000818152600b602052604081205490919060ff161515610a1c57600080fd5b610a268585610aa7565b50428363ffffffff161115610a4857610a486000868563ffffffff1687611198565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ab233610f1c565b600160a060020a0383161515610ac757600080fd5b610ad033610cf8565b821115610adc57600080fd5b33600090815260076020526040902054610afc908363ffffffff61108b16565b3360009081526007602052604080822092909255600160a060020a03851681522054610b2e908363ffffffff61109d16565b600160a060020a03841660008181526007602090815260409182902093909355805185815290519192339260008051602061130c8339815191529281900390910190a350600192915050565b600554600160a060020a03163314610b9157600080fd5b600160a060020a03166000908152600b60205260409020805460ff19169055565b336000818152600b602052604081205490919060ff161515610bd357600080fd5b600854610be6818663ffffffff61109d16565b11610bf057600080fd5b428363ffffffff161115610c1157610c116000868563ffffffff1687611198565b600160a060020a038516600090815260076020526040902054610c3a908563ffffffff61109d16565b600160a060020a038616600090815260076020526040902055600854610c66908563ffffffff61109d16565b600855604080518581529051600160a060020a0387169160009160008051602061130c8339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260076020908152604080832054600983528184208480529092528220549091901515610d3257610df7565b5060005b600160a060020a0383166000908152600a6020526040902054811015610df757600160a060020a0383166000908152600a60205260409020805442919083908110610d7d57fe5b9060005260206000200154101515610def57600160a060020a0383166000908152600960209081526040808320600a90925282208054610dec93919085908110610dc357fe5b90600052602060002001548152602001908152602001600020548361108b90919063ffffffff16565b91505b600101610d36565b50919050565b336000908152600660209081526040808320600160a060020a0386168452909152812054610e31908363ffffffff61109d16565b336000818152600660209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600554600160a060020a03163314610ead57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600554600160a060020a03163314610f1357600080fd5b6107648161128d565b600160a060020a03811660009081526009602090815260408083208380529091528120541515610f4b5761098e565b5060005b600160a060020a0382166000908152600a602052604090205481101561098e57600160a060020a0382166000908152600a60205260409020805442919083908110610f9657fe5b9060005260206000200154101561108357600160a060020a0382166000908152600960209081526040808320600a9092528220805461102193919085908110610fdb57fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526009845282822082805290935220549063ffffffff61108b16565b600160a060020a038316600081815260096020908152604080832083805280835281842095909555928252600a905290812080549192918391908590811061106557fe5b90600052602060002001548152602001908152602001600020819055505b600101610f4f565b60008282111561109757fe5b50900390565b818101828110156110aa57fe5b92915050565b6110b982610f1c565b6110c282610cf8565b8111156110ce57600080fd5b600160a060020a0382166000908152600760205260409020546110f7908263ffffffff61108b16565b600160a060020a038316600090815260076020526040902055600854611123908263ffffffff61108b16565b600855604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061130c8339815191529181900360200190a35050565b600160a060020a03831660009081526009602090815260408083208380529091529020546111cc908263ffffffff61109d16565b600160a060020a0384166000908152600960209081526040808320838052909152808220929092558381522054151561122b57600160a060020a0383166000908152600a60209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260096020908152604080832085845290915290205461125f908263ffffffff61109d16565b600160a060020a03909316600090815260096020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112a257600080fd5b600554604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582001f3b8ffebfc578122646c111958154798ff2fde3bc58f72b8cbe911bdfe9e600029a165627a7a72305820fe9ce4c853a58467c6f436d11a3358cb56f3d7bbb8f7257eb6f8755a62b819d10029", - "sourceMap": "487:1:41:-;657:51;;748:34:1;576:9582;748:34;;576:9582;748:34;;;;;;;;;;;;;;:::i;:::-;;2112:468;8:9:-1;5:2;;;30:1;27;20:12;5:2;2112:468:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:7:37;:18;;;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;2112:468:1;;;-1:-1:-1;;;;;2300:22:1;;;;2292:31;;;;;;-1:-1:-1;;;;;2341:24:1;;;;2333:33;;;;;;2377:9;:22;;-1:-1:-1;;;;;2377:22:1;;;-1:-1:-1;;;;;;2377:22:1;;;;;;;2409:7;:18;;;;;;;;;;;2437:7;:18;;;;;;;;;;;;;;;2465:14;:23;;;;;2377:22;2465:23;;;:::i;:::-;-1:-1:-1;2562:10:1;2542:31;;;;;;;;;;;;;-1:-1:-1;;2542:31:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;2550:10;;2542:31;;2562:10;;2542:31;;2562:10;2542:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;;;:31;;;:::i;:::-;2112:468;;;;576:9582;;1347:141:42;1418:27;1435:9;1418:5;1424;1418:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1418:12:42;;;;;-1:-1:-1;1418:12:42;;;;;;;;;;;;-1:-1:-1;;1418:16:42;;;;;;:27;:::i;:::-;1466:9;-1:-1:-1;;;;;1456:27:42;;1477:5;1456:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1456:27:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1347:141;;:::o;321:100:43:-;-1:-1:-1;;;;;390:19:43;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:43;412:4;390:26;;;321:100::o;576:9582:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;576:9582:1;;;-1:-1:-1;576:9582:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;576:9582:1;;;;;-1:-1:-1;;576:9582:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;576:9582:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;", - "deployedSourceMap": "576:9582:1:-;;;;;;;;;-1:-1:-1;;;576:9582:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6657:1684;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6657:1684:1;-1:-1:-1;;;;;6657:1684:1;;;;;;;;;;;837:114:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;837:114:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;837:114:42;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;837:114:42;;-1:-1:-1;837:114:42;;-1:-1:-1;;;;;;;837:114:42;2693:107:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2693:107:1;-1:-1:-1;;;;;2693:107:1;;;;;1065:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1065:35:1;-1:-1:-1;;;;;1065:35:1;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1065:35:1;-1:-1:-1;;;;;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1065:35:1;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1091:136:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1091:136:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1091:136:42;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1091:136:42;;-1:-1:-1;1091:136:42;;-1:-1:-1;;;;;;;1091:136:42;;;;;;;;;;;;;;;;;;;2806:1775:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2806:1775:1;-1:-1:-1;;;;;2806:1775:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9405:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9405:188:1;-1:-1:-1;;;;;9405:188:1;;;;;;;;;;;;;;-1:-1:-1;;;;;9405:188:1;;;;;;;;;;;;;;9725:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9725:97:1;;;;789:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;789:32:1;;;;53:19:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:37;;;;;;;;;;;;;;;;;;;;10042:114:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10042:114:1;;;;4735:1418;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4735:1418:1;-1:-1:-1;;;;;4735:1418:1;;;;;;;2586:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2586:101:1;-1:-1:-1;;;;;2586:101:1;;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;9599:120:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9599:120:1;-1:-1:-1;;;;;9599:120:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9599:120:1;;;;;;;;;;;;;;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;1201:34:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1201:34:1;;;;;;;;;;;;;;;;;;;;;;;8347:1052;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8347:1052:1;-1:-1:-1;;;;;8347:1052:1;;;;;;;827:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:35:1;;;;984:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;984:75:1;-1:-1:-1;;;;;984:75:1;;;;;;;;;;868:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;868:23:1;;;;748:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;748:34:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;748:34:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;-1:-1:-1;;;;;1274:103:45;;;;;6657:1684:1;7169:13;7236:23;487:1:41;1128:14;;:39;1120:48;;;;;;;;584:1;1174:14;:40;6801:1:1;6774:15;:13;:15::i;:::-;-1:-1:-1;;;;;6774:29:1;;;6766:38;;;;;;6822:42;6839:12;6853:10;6822:16;:42::i;:::-;6880:10;6822:69;;;;:57;;;;;:69;;;;;;;;:77;;:69;:77;6814:86;;;;;;6984:81;7051:13;6984:42;7001:12;7015:10;6984:16;:42::i;:::-;:62;;;;:81;:66;:81;:::i;:::-;6918:42;6935:12;6949:10;6918:16;:42::i;:::-;:62;;;:147;;6910:156;;;;;;7155:1;7084:42;7101:12;7115:10;7084:16;:42::i;:::-;:59;;;-1:-1:-1;;;;;7084:59:1;:73;7076:82;;;;;;7185:9;;:40;;;-1:-1:-1;;;;;7185:40:1;;-1:-1:-1;;;;;7185:40:1;;;;;;;;;:9;;;;;:26;;:40;;;;;;;;;;;;;;:9;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;7185:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7185:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7185:40:1;7262:7;;7185:40;;-1:-1:-1;;;;;;7262:7:1;:23;7307:12;7185:40;7363:5;7382:15;:13;:15::i;:::-;7411:42;7428:12;7442:10;7411:16;:42::i;:::-;:56;;;7481:42;7498:12;7512:10;7481:16;:42::i;:::-;:63;;;7558:42;7575:12;7589:10;7558:16;:42::i;:::-;:60;;;7640:9;;7262:422;;;-1:-1:-1;;;7262:422:1;;;;;;-1:-1:-1;;;;;7262:422:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7640:9;;;;7262:422;;;;7664:10;7262:422;;;;;;;;;;;;;;;;;;;;7640:9;7262:422;;;;5:2:-1;;;;30:1;27;20:12;5:2;7262:422:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7262:422:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7262:422:1;;-1:-1:-1;7262:422:1;7695:42;7712:12;7726:10;7695:16;:42::i;:::-;:59;;:71;;-1:-1:-1;;7695:71:1;-1:-1:-1;;;;;7695:71:1;;;;;;7776:35;;;;;;;;;;;;;;;:24;;;;;;:35;;;;;-1:-1:-1;;7776:35:1;;;;;;;;-1:-1:-1;7776:24:1;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;7776:35:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7776:35:1;;;;7892:1;7826:42;7843:12;7857:10;7826:16;:42::i;:::-;:63;;;:67;7822:376;;;7909:9;;-1:-1:-1;;;;;7909:9:1;:17;7950:12;7989:9;8017:156;8109:42;7950:12;8140:10;8109:16;:42::i;:::-;:63;;;8017:42;8034:12;8048:10;8017:16;:42::i;:::-;:62;;;;:156;:91;:156;:::i;:::-;7909:278;;;-1:-1:-1;;;7909:278:1;;;;;;-1:-1:-1;;;;;7909:278:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7909:278:1;;;;5:2:-1;;;;30:1;27;20:12;5:2;7909:278:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7909:278:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7822:376:1;8208:49;8229:12;8243:13;8208:20;:49::i;:::-;8273:61;;;;;;;;8308:10;;-1:-1:-1;;;;;8273:61:1;;;;;;;;;;;;-1:-1:-1;;487:1:41;1227:14;:38;-1:-1:-1;;;6657:1684:1:o;837:114:42:-;917:29;936:9;917:5;923;917:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;917:12:42;;;;;-1:-1:-1;917:12:42;;;;;;;;;;;;-1:-1:-1;;917:18:42;:29::i;:::-;837:114;;:::o;2693:107:1:-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;2782:10:1;2760:33;;;;;;;;;;;;;-1:-1:-1;;2760:33:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;2771:9;;2760:33;;2782:10;;2760:33;;2782:10;2760:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:10;:33::i;:::-;2693:107;:::o;1065:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1065:35:1;;-1:-1:-1;1065:35:1;;;;-1:-1:-1;;;;;1065:35:1;;;;;;;:::o;1091:136:42:-;1174:4;1195:27;1212:9;1195:5;1201;1195:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1195:12:42;;;;;-1:-1:-1;1195:12:42;;;;;;;;;;;;-1:-1:-1;;1195:16:42;:27::i;:::-;1188:34;;1091:136;;;;;:::o;2806:1775:1:-;3108:10;1911:80:42;;;;;;;;-1:-1:-1;;1911:80:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:12:1;;1911:80:42;;3108:10:1;;1911:80:42;;3108:10:1;1911:80:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1951:28;1961:10;1973:5;1951:9;:28::i;:::-;-1:-1:-1;;;;;3143:24:1;;;;3135:33;;;;;;-1:-1:-1;;;;;3186:26:1;;;;3178:35;;;;;;3231:22;:10;:20;:22::i;:::-;:56;;;;;3284:3;3257:24;:10;:22;:24::i;:::-;:30;3231:56;3223:65;;;;;;;;3306:25;:13;:23;:25::i;:::-;:62;;;;;3365:3;3335:27;:13;:25;:27::i;:::-;:33;3306:62;3298:71;;;;;;;;3387:32;:20;:30;:32::i;:::-;:76;;;;;3460:3;3423:34;:20;:32;:34::i;:::-;:40;3387:76;3379:85;;;;;;;;3482:29;:17;:27;:29::i;:::-;:70;;;;;3549:3;3515:31;:17;:29;:31::i;:::-;:37;3482:70;3474:79;;;;;;;;3630:12;-1:-1:-1;;;;;3571:71:1;:42;3588:12;3602:10;3571:16;:42::i;:::-;:55;;;-1:-1:-1;;;;;3571:55:1;:71;;3563:80;;;;;;3662:42;3679:12;3693:10;3662:16;:42::i;:::-;-1:-1:-1;;;;;3662:69:1;;;;;;:57;;;;;:69;;;;;;;;3661:70;3653:79;;;;;;3765:14;:21;;;;3743:44;;3846:5;3798:19;:33;3818:12;-1:-1:-1;;;;;3798:33:1;-1:-1:-1;;;;;3798:33:1;;;;;;;;;;;;:45;3832:10;-1:-1:-1;;;;;3798:45:1;-1:-1:-1;;;;;3798:45:1;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;3892:14;:23;;;;;;;;;;;:::i;:::-;3862:20;;:54;;;;;;;;;;;;;;;;;;3927:18;:32;3946:12;-1:-1:-1;;;;;3927:32:1;-1:-1:-1;;;;;3927:32:1;;;;;;;;;;;;3965:10;3927:49;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3927:49:1;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3927:49:1;;;;;-1:-1:-1;;;;;3927:49:1;;;;;;;4038:4;3987:14;4002:5;3987:21;;;;;;;;;;;;;;;;;;;;;;:36;;:48;4024:10;-1:-1:-1;;;;;3987:48:1;-1:-1:-1;;;;;3987:48:1;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;4081:4;;4052:14;4067:5;4052:21;;;;;;;;;;;;;;;;;;;;:33;;:21;;;;;;:33;:::i;:::-;;4126:6;;4095:14;4110:5;4095:21;;;;;;;;;;;;;;;;;;;;;;:28;;:37;;;;;;;:::i;:::-;;4175:8;4142:14;4157:5;4142:21;;;;;;;;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;;;;;;;;4228:10;4193:14;4208:5;4193:21;;;;;;;;;;;;;;;;;;;;;;:32;;:45;;;;4286:13;4248:14;4263:5;4248:21;;;;;;;;;;;;;;;;;;;;;;:35;;:51;;;;4354:20;4309:14;4324:5;4309:21;;;;;;;;;;;;;;;;;;;;;;:42;;:65;;;;4426:17;4384:14;4399:5;4384:21;;;;;;;;;;;;;;;;;;;;;;:39;;:59;;;;4490:12;4453:14;4468:5;4453:21;;;;;;;;;;;;;;;;;;;;;;:34;;;:49;;;;;-1:-1:-1;;;;;4453:49:1;;;;;-1:-1:-1;;;;;4453:49:1;;;;;;4549:10;-1:-1:-1;;;;;4518:56:1;4535:12;-1:-1:-1;;;;;4518:56:1;;4561:4;;4567:6;;4518:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4518:56:1;;;;;;;;;;;;;;-1:-1:-1;4518:56:1;;-1:-1:-1;;;;;;;4518:56:1;2806:1775;;;;;;;;;;;;;:::o;9405:188::-;9499:7;9525:44;9542:12;9556;9525:16;:44::i;:::-;:61;;;-1:-1:-1;;;;;9525:61:1;;9405:188;-1:-1:-1;;;9405:188:1:o;9725:97::-;9806:9;;-1:-1:-1;;;;;9806:9:1;9725:97;;:::o;789:32::-;;;-1:-1:-1;;;;;789:32:1;;:::o;53:19:37:-;;;;:::o;10042:114:1:-;10113:7;;:36;;;;;;:7;:36;;;;;;10087:7;;-1:-1:-1;;;;;10113:7:1;;:17;;:36;;;;;;;;;;;;;;10087:7;10113;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;10113:36:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10113:36:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10113:36:1;;-1:-1:-1;10042:114:1;:::o;4735:1418::-;5123:19;5255:31;5402:8;5518:21;5866:13;487:1:41;1128:14;;:39;1120:48;;;;;;;;584:1;1174:14;:40;4857:1:1;4830:15;:13;:15::i;:::-;-1:-1:-1;;;;;4830:29:1;;;4822:38;;;;;;4887:1;4878:10;;4870:19;;;;;;-1:-1:-1;;;;;4907:26:1;;;;4899:35;;;;;;5011:12;-1:-1:-1;;;;;4952:71:1;:42;4969:12;4983:10;4952:16;:42::i;:::-;:55;;;-1:-1:-1;;;;;4952:55:1;:71;4944:80;;;;;;5042:42;5059:12;5073:10;5042:16;:42::i;:::-;5100:10;5042:69;;;;:57;;;;;:69;;;;;;;;5034:78;;;;;;;;5191:42;;;;;;5207:10;5191:42;;;;5227:4;5191:42;;;;;;5159:12;;-1:-1:-1;5237:6:1;;-1:-1:-1;;;;;5191:15:1;;;;;:42;;;;;;;;;;;;;;;-1:-1:-1;5191:15:1;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;5191:42:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5191:42:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5191:42:1;:52;;5183:61;;;;;;5289:42;5306:12;5320:10;5289:16;:42::i;:::-;5255:76;;5370:11;:20;;;;;;;;;;;;5350:40;;:5;-1:-1:-1;;;;;5350:14:1;;:16;;;;;-1:-1:-1;;;5350:16:1;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5350:16:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5350:16:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5350:16:1;:40;;;5342:49;;;;;;5438:1;5413:11;:22;;;:26;:95;;5507:1;5413:95;;;5469:22;;;;5454:38;;:6;;:38;:14;:38;:::i;:::-;5402:106;-1:-1:-1;5542:15:1;:6;5402:106;5542:15;:10;:15;:::i;:::-;5596:9;;5518:39;;-1:-1:-1;5568:56:1;;5589:5;;-1:-1:-1;;;;;5596:9:1;5518:39;5568:20;:56::i;:::-;5634:49;5655:5;5662:15;:13;:15::i;:::-;5679:3;5634:20;:49::i;:::-;5728:31;;;;:53;;5764:16;5728:53;:35;:53;:::i;:::-;5694:31;;;:87;5796:9;;:40;;;-1:-1:-1;;;;;5796:40:1;;-1:-1:-1;;;;;5796:40:1;;;;;;;;;5848:1;;5796:9;;;;:26;;:40;;;;;;;;;;;;;;;5848:1;5796:9;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5796:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5796:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5796:40:1;-1:-1:-1;;;;;5796:54:1;;5792:242;;;5931:20;;;;5893:11;;5911:18;;;;5931:20;;5882:70;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;5882:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5882:70:1;;;;;;;;-1:-1:-1;;5882:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;5967:9:1;;:56;;;;;;-1:-1:-1;;;;;5967:56:1;;;;;;;;;;;;;;;;5866:86;;-1:-1:-1;5967:9:1;;;:27;;:56;;;;;:9;;:56;;;;;;;;:9;;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;5967:56:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5967:56:1;;;;5792:242;6105:9;;:40;;;-1:-1:-1;;;;;6105:40:1;;-1:-1:-1;;;;;6049:97:1;;;6105:40;;;;;;;;6075:10;;6049:97;;6087:16;;6105:9;;;;:26;;:40;;;;;;;;;;;;;;;-1:-1:-1;6105:9:1;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;6105:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6105:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6105:40:1;6049:97;;;;;;-1:-1:-1;;;;;6049:97:1;;;6105:40;6049:97;;;;;;;;;;;;-1:-1:-1;;487:1:41;1227:14;:38;-1:-1:-1;;;;;4735:1418:1:o;2586:101::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;2669:10:1;2650:30;;;;;;;;;;;;;-1:-1:-1;;2650:30:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;2658:9;;2650:30;;2669:10;;2650:30;;2669:10;2650:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;:30::i;1001:111:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;9599:120:1:-;-1:-1:-1;;;;;9687:25:1;;;;;;:18;:25;;;;;;;;;9680:32;;;;;;;;;;;;;;;;;9659:9;;9680:32;;;9687:25;9680:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9680:32:1;;;;;;;;;;;;;;;;;;;;;;;9599:120;;;:::o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;1201:34:1:-;;;;;;:::o;8347:1052::-;8945:12;;8444:17;;;8436:26;;;;;;-1:-1:-1;;;;;8480:26:1;;;;8472:35;;;;;;8525:9;;:40;;;-1:-1:-1;;;;;8525:40:1;;-1:-1:-1;;;;;8525:40:1;;;;;;;;;8577:1;;8525:9;;;;:26;;:40;;;;;;;;;;;;;;;8577:1;8525:9;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8525:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8525:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8525:40:1;-1:-1:-1;;;;;8525:54:1;;;8517:63;;;;;;8669:1;8598:42;8615:12;8629:10;8598:16;:42::i;:::-;:59;;;-1:-1:-1;;;;;8598:59:1;:73;;8590:82;;;;;;8690:42;8707:12;8721:10;8690:16;:42::i;:::-;8748:10;8690:69;;;;:57;;;;;:69;;;;;;;;:77;;:69;:77;8682:86;;;;;;8852:81;8919:13;8852:42;8869:12;8883:10;8852:16;:42::i;:81::-;8786:42;8803:12;8817:10;8786:16;:42::i;:::-;:62;;;:147;;8778:156;;;;;;8960:9;;:40;;;-1:-1:-1;;;;;8960:40:1;;-1:-1:-1;;;;;8960:40:1;;;;;;;;;:9;;;;;:26;;:40;;;;;;;;;;;;;;:9;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8960:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8960:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8960:40:1;;-1:-1:-1;9036:42:1;9053:12;9067:10;9036:16;:42::i;:::-;:59;;;-1:-1:-1;;;;;9036:59:1;;-1:-1:-1;9171:94:1;9251:13;9171:42;9188:12;9202:10;9171:16;:42::i;:94::-;9106:42;9123:12;9137:10;9106:16;:42::i;:::-;:62;;:159;9276:39;;;;;;-1:-1:-1;;;;;9276:39:1;;;;;;;;;;;;;9313:1;9276:39;;;;;;;;:10;;;;;;:39;;;;;;;;;;;;;;;;;;:10;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;9276:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9276:39:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;9331:61:1;;;;;;;;9366:10;;-1:-1:-1;;;;;9331:61:1;;;;;;;;9276:39;9331:61;;;8347:1052;;;;:::o;827:35::-;;;-1:-1:-1;;;;;827:35:1;;:::o;984:75::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;868:23::-;;;-1:-1:-1;;;;;868:23:1;;:::o;748:34::-;;;;;;;;;;;;;;;-1:-1:-1;;748:34:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1274:103:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;9828:208:1:-;-1:-1:-1;;;;;9981:33:1;;;9921:26;9981:33;;;:19;:33;;;;;;;;:47;;;;;;;;;;;;9966:14;:63;;:14;;9981:47;;;9966:63;;;;;;;;;;;;;;;;9959:70;;9828:208;;;;:::o;1238:128:44:-;1319:7;;;1339;;;;1332:15;;;428:109:13;486:4;509:21;524:5;:3;:5::i;:::-;509:10;:2;516;509:10;:6;:10;:::i;:::-;:14;:21;:14;:21;:::i;666:111:43:-;754:17;758:5;765;754:3;:17::i;:::-;746:26;;;;;;;1613:149:42;1687:30;1707:9;1687:5;1693;1687:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1687:12:42;;;;;-1:-1:-1;1687:12:42;;;;;;;;;;;;-1:-1:-1;;1687:19:42;:30::i;:::-;1740:9;-1:-1:-1;;;;;1728:29:42;;1751:5;1728:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1728:29:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1613:149;;:::o;855:128:43:-;-1:-1:-1;;;;;959:19:43;938:4;959:19;;;;;;;;;;;;;;;855:128::o;672:107:13:-;723:4;752:5;:3;:5::i;:::-;746:2;:11;;:26;;;;;767:5;:3;:5::i;:::-;761:2;:11;;739:33;672:107;-1:-1:-1;;672:107:13:o;924:139::-;977:4;1001:13;1011:2;1001:9;:13::i;:::-;993:22;;;;;;;;1033:23;1046:9;:7;:9::i;:::-;1033:2;;1040;:15;1033:23;:6;:23;:::i;1060:116:44:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:44;;;1060:116::o;6234:417:1:-;6422:20;6445:30;6469:5;6445;-1:-1:-1;;;;;6445:15:1;;6461:2;6445:19;;;;;-1:-1:-1;;;6445:19:1;;;;;;;-1:-1:-1;;;;;6445:19:1;-1:-1:-1;;;;;6445:19:1;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6445:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6445:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6445:19:1;;:30;:23;:30;:::i;:::-;6486:41;;;;;;6505:10;6486:41;;;;-1:-1:-1;;;;;6486:41:1;;;;;;;;;;;;;;;6422:53;;-1:-1:-1;6486:18:1;;;;;;:41;;;;;;;;;;;;;;;-1:-1:-1;6486:18:1;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;6486:41:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6486:41:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6605:19:1;;;;;;-1:-1:-1;;;;;6605:19:1;;;;;;;;;6628:15;;6605;;;;;:19;;;;;6486:41;;6605:19;;;;;;;-1:-1:-1;6605:15:1;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;6605:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6605:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6605:19:1;:38;6598:46;;;;6234:417;;;;:::o;1347:141:42:-;1418:27;1435:9;1418:5;1424;1418:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1418:12:42;;;;;-1:-1:-1;1418:12:42;;;;;;;;;;;;-1:-1:-1;;1418:16:42;:27::i;:::-;1466:9;-1:-1:-1;;;;;1456:27:42;;1477:5;1456:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1512:171:45;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o;357:65:13:-;393:4;414:5;:3;:5::i;:::-;408:2;:11;401:18;;357:65;:::o;203:380:44:-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:44;506:8;;485:36;-1:-1:-1;531:7:44;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;665:283;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;486:104:43:-;-1:-1:-1;;;;;558:19:43;580:5;558:19;;;;;;;;;;;:27;;-1:-1:-1;;558:27:43;;;486:104::o;297:55:13:-;333:4;297:55;:::o;161:59::-;216:1;161:59;:::o;321:100:43:-;-1:-1:-1;;;;;390:19:43;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:43;412:4;390:26;;;321:100::o;225:67:13:-;261:4;280:9;:7;:9::i;:::-;276:1;:13;269:20;;225:67;:::o;576:9582:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;576:9582:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;576:9582:1;;;-1:-1:-1;576:9582:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;576:9582:1;;;;;-1:-1:-1;;576:9582:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;576:9582:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/ReentrancyGuard.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/access/rbac/RBAC.sol\";\nimport \"./crowdsale/factories/IW12CrowdsaleFactory.sol\";\nimport \"./wallets/IWallets.sol\";\nimport \"./libs/Percent.sol\";\nimport \"./token/WToken.sol\";\nimport \"./token/exchanger/ITokenExchanger.sol\";\nimport \"./versioning/Versionable.sol\";\n\n\ncontract W12Lister is Versionable, RBAC, Ownable, ReentrancyGuard {\n using SafeMath for uint;\n using Percent for uint;\n\n uint8 constant SERVICE_WALLET_ID = 1;\n string public ROLE_ADMIN = \"admin\";\n\n ITokenExchanger public exchanger;\n IW12CrowdsaleFactory public factory;\n IWallets public wallets;\n // get token index in approvedTokens list by token address and token owner address\n mapping (address => mapping (address => uint16)) public approvedTokensIndex;\n ListedToken[] public approvedTokens;\n // return owners by token address\n mapping ( address => address[] ) approvedOwnersList;\n uint16 public approvedTokensLength;\n\n event OwnerWhitelisted(address indexed tokenAddress, address indexed tokenOwner, string name, string symbol);\n event TokenPlaced(address indexed originalTokenAddress, address indexed tokenOwner, uint tokenAmount, address placedTokenAddress);\n event CrowdsaleInitialized(address indexed tokenAddress, address indexed tokenOwner, uint amountForSale);\n event CrowdsaleTokenMinted(address indexed tokenAddress, address indexed tokenOwner, uint amount);\n\n struct ListedToken {\n string name;\n string symbol;\n uint8 decimals;\n mapping(address => bool) approvedOwners;\n uint feePercent;\n uint ethFeePercent;\n uint WTokenSaleFeePercent;\n uint trancheFeePercent;\n IW12Crowdsale crowdsaleAddress;\n uint tokensForSaleAmount;\n uint wTokensIssuedAmount;\n address tokenAddress;\n }\n\n constructor(\n uint version,\n IWallets _wallets,\n IW12CrowdsaleFactory _factory,\n ITokenExchanger _exchanger\n ) Versionable(version) public {\n require(_factory != address(0));\n require(_exchanger != address(0));\n\n exchanger = _exchanger;\n wallets = _wallets;\n factory = _factory;\n approvedTokens.length++; // zero-index element should never be used\n\n addRole(msg.sender, ROLE_ADMIN);\n }\n\n function addAdmin(address _operator) public onlyOwner {\n addRole(_operator, ROLE_ADMIN);\n }\n\n function removeAdmin(address _operator) public onlyOwner {\n removeRole(_operator, ROLE_ADMIN);\n }\n\n function whitelistToken(\n address tokenOwner,\n address tokenAddress,\n string name,\n string symbol,\n uint8 decimals,\n uint feePercent,\n uint ethFeePercent,\n uint WTokenSaleFeePercent,\n uint trancheFeePercent\n )\n external onlyRole(ROLE_ADMIN)\n {\n\n require(tokenOwner != address(0));\n require(tokenAddress != address(0));\n require(feePercent.isPercent() && feePercent.fromPercent() < 100);\n require(ethFeePercent.isPercent() && ethFeePercent.fromPercent() < 100);\n require(WTokenSaleFeePercent.isPercent() && WTokenSaleFeePercent.fromPercent() < 100);\n require(trancheFeePercent.isPercent() && trancheFeePercent.fromPercent() < 100);\n require(getApprovedToken(tokenAddress, tokenOwner).tokenAddress != tokenAddress);\n require(!getApprovedToken(tokenAddress, tokenOwner).approvedOwners[tokenOwner]);\n\n uint16 index = uint16(approvedTokens.length);\n\n approvedTokensIndex[tokenAddress][tokenOwner] = index;\n\n approvedTokensLength = uint16(approvedTokens.length++);\n\n approvedOwnersList[tokenAddress].push(tokenOwner);\n\n approvedTokens[index].approvedOwners[tokenOwner] = true;\n approvedTokens[index].name = name;\n approvedTokens[index].symbol = symbol;\n approvedTokens[index].decimals = decimals;\n approvedTokens[index].feePercent = feePercent;\n approvedTokens[index].ethFeePercent = ethFeePercent;\n approvedTokens[index].WTokenSaleFeePercent = WTokenSaleFeePercent;\n approvedTokens[index].trancheFeePercent = trancheFeePercent;\n approvedTokens[index].tokenAddress = tokenAddress;\n\n emit OwnerWhitelisted(tokenAddress, tokenOwner, name, symbol);\n }\n\n /**\n * @notice Place token for sale\n * @param tokenAddress Token that will be placed\n * @param amount Token amount to place\n */\n function placeToken(address tokenAddress, uint amount) external nonReentrant {\n require(serviceWallet() != address(0));\n require(amount > 0);\n require(tokenAddress != address(0));\n require(getApprovedToken(tokenAddress, msg.sender).tokenAddress == tokenAddress);\n require(getApprovedToken(tokenAddress, msg.sender).approvedOwners[msg.sender]);\n\n DetailedERC20 token = DetailedERC20(tokenAddress);\n\n require(token.allowance(msg.sender, address(this)) >= amount);\n\n ListedToken storage listedToken = getApprovedToken(tokenAddress, msg.sender);\n\n require(token.decimals() == listedToken.decimals);\n\n uint fee = listedToken.feePercent > 0\n ? amount.percent(listedToken.feePercent)\n : 0;\n uint amountWithoutFee = amount.sub(fee);\n\n _secureTokenTransfer(token, exchanger, amountWithoutFee);\n _secureTokenTransfer(token, serviceWallet(), fee);\n\n listedToken.tokensForSaleAmount = listedToken.tokensForSaleAmount.add(amountWithoutFee);\n\n if (exchanger.getWTokenByToken(tokenAddress) == address(0)) {\n WToken wToken = new WToken(listedToken.name, listedToken.symbol, listedToken.decimals);\n\n exchanger.addTokenToListing(ERC20(tokenAddress), wToken);\n }\n\n emit TokenPlaced(tokenAddress, msg.sender, amountWithoutFee, exchanger.getWTokenByToken(tokenAddress));\n }\n\n /**\n * @dev Securely transfer token from sender to account\n */\n function _secureTokenTransfer(ERC20 token, address to, uint value) internal {\n // check for overflow before. we are not sure that the placed token has implemented safe math\n uint expectedBalance = token.balanceOf(to).add(value);\n\n token.transferFrom(msg.sender, to, value);\n\n // check balance to be sure it was filled correctly\n assert(token.balanceOf(to) == expectedBalance);\n }\n\n function initCrowdsale(address tokenAddress, uint amountForSale, uint price) external nonReentrant {\n require(serviceWallet() != address(0));\n require(getApprovedToken(tokenAddress, msg.sender).approvedOwners[msg.sender] == true);\n require(getApprovedToken(tokenAddress, msg.sender).tokensForSaleAmount >= getApprovedToken(tokenAddress, msg.sender).wTokensIssuedAmount.add(amountForSale));\n require(getApprovedToken(tokenAddress, msg.sender).crowdsaleAddress == address(0));\n\n WToken wtoken = exchanger.getWTokenByToken(tokenAddress);\n\n IW12Crowdsale crowdsale = factory.createCrowdsale(\n address(tokenAddress),\n address(wtoken),\n price,\n serviceWallet(),\n getApprovedToken(tokenAddress, msg.sender).ethFeePercent,\n getApprovedToken(tokenAddress, msg.sender).WTokenSaleFeePercent,\n getApprovedToken(tokenAddress, msg.sender).trancheFeePercent,\n address(exchanger),\n msg.sender\n );\n\n getApprovedToken(tokenAddress, msg.sender).crowdsaleAddress = crowdsale;\n wtoken.addTrustedAccount(crowdsale);\n\n if (getApprovedToken(tokenAddress, msg.sender).WTokenSaleFeePercent > 0) {\n exchanger.approve(\n ERC20(tokenAddress),\n address(crowdsale),\n getApprovedToken(tokenAddress, msg.sender).tokensForSaleAmount\n .percent(getApprovedToken(tokenAddress, msg.sender).WTokenSaleFeePercent)\n );\n }\n\n addTokensToCrowdsale(tokenAddress, amountForSale);\n\n emit CrowdsaleInitialized(tokenAddress, msg.sender, amountForSale);\n }\n\n function addTokensToCrowdsale(address tokenAddress, uint amountForSale) public {\n require(amountForSale > 0);\n require(tokenAddress != address(0));\n require(exchanger.getWTokenByToken(tokenAddress) != address(0));\n require(getApprovedToken(tokenAddress, msg.sender).crowdsaleAddress != address(0));\n require(getApprovedToken(tokenAddress, msg.sender).approvedOwners[msg.sender] == true);\n require(getApprovedToken(tokenAddress, msg.sender).tokensForSaleAmount >= getApprovedToken(tokenAddress, msg.sender).wTokensIssuedAmount.add(amountForSale));\n\n WToken token = exchanger.getWTokenByToken(tokenAddress);\n IW12Crowdsale crowdsale = getApprovedToken(tokenAddress, msg.sender).crowdsaleAddress;\n\n getApprovedToken(tokenAddress, msg.sender).wTokensIssuedAmount = getApprovedToken(tokenAddress, msg.sender)\n .wTokensIssuedAmount.add(amountForSale);\n\n token.mint(crowdsale, amountForSale, 0);\n\n emit CrowdsaleTokenMinted(tokenAddress, msg.sender, amountForSale);\n }\n\n function getTokenCrowdsale(address tokenAddress, address ownerAddress) view external returns (address) {\n return getApprovedToken(tokenAddress, ownerAddress).crowdsaleAddress;\n }\n\n function getTokenOwners(address token) public view returns (address[]) {\n return approvedOwnersList[token];\n }\n\n function getExchanger() view external returns (ITokenExchanger) {\n return exchanger;\n }\n\n function getApprovedToken(address tokenAddress, address ownerAddress) internal view returns (ListedToken storage result) {\n return approvedTokens[approvedTokensIndex[tokenAddress][ownerAddress]];\n }\n\n function serviceWallet() public view returns(address) {\n return wallets.getWallet(SERVICE_WALLET_ID);\n }\n}\n", + "bytecode": "0x60806040523480156200001157600080fd5b50604051608080620051d18339810160409081528151602083015191830151606090930151909290836200004e336401000000006200012b810204565b60015560028054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a16001600355600160a060020a0383161515620000bd57600080fd5b600160a060020a0382161515620000d357600080fd5b600160a060020a0381161515620000e957600080fd5b60048054600160a060020a0319908116600160a060020a0393841617909155600680548216948316949094179093556005805490931691161790555062000210565b620001466000826401000000006200341b6200017d82021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b600160a060020a03811615156200019357600080fd5b620001a88282640100000000620001d8810204565b15620001b357600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001f057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b614fb180620002206000396000f300608060405260043610620001555763ffffffff60e060020a60003504166309363c9981146200015a5780631785f53c14620001865780631cd82e6014620001aa57806320f59dc7146200022057806321689c1a14620002585780632348238c146200028557806324d7806c14620002a9578063460f0b6b14620002cd5780634b1acf3914620002f75780634d12fca4146200032b57806354fd4d5014620003435780635641f3c3146200036d57806359770438146200038557806370480275146200050b57806375dd8cfc146200052f578063849072b9146200055c57806386ad639814620005805780638bad0c0a1462000659578063a800199e1462000671578063aa6ca80814620006cd578063b5af090f14620006e5578063c45a01551462000709578063c6dbdf611462000721578063c96a68c11462000739578063d2f4a50a1462000763578063e45725d8146200077b575b600080fd5b3480156200016757600080fd5b5062000184600160a060020a0360043516602435604435620007a5565b005b3480156200019357600080fd5b5062000184600160a060020a036004351662000e5b565b348015620001b757600080fd5b50620001ce600160a060020a036004351662000e81565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200020c578181015183820152602001620001f2565b505050509050019250505060405180910390f35b3480156200022d57600080fd5b5062000244600160a060020a036004351662000f49565b604080519115158252519081900360200190f35b3480156200026557600080fd5b5062000184600160a060020a036004358116906024351660443562000f64565b3480156200029257600080fd5b5062000184600160a060020a036004351662001256565b348015620002b657600080fd5b5062000244600160a060020a0360043516620012de565b348015620002da57600080fd5b50620001ce600160a060020a0360043581169060243516620012f2565b3480156200030457600080fd5b506200030f6200136e565b60408051600160a060020a039092168252519081900360200190f35b3480156200033857600080fd5b506200030f6200137e565b3480156200035057600080fd5b506200035b6200138d565b60408051918252519081900360200190f35b3480156200037a57600080fd5b506200030f62001393565b3480156200039257600080fd5b50620003a9600160a060020a03600435166200142d565b6040518080602001806020018660ff1660ff1681526020018060200185600460200280838360005b83811015620003eb578181015183820152602001620003d1565b50505050905001848103845289818151815260200191508051906020019080838360005b83811015620004295781810151838201526020016200040f565b50505050905090810190601f168015620004575780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b838110156200048c57818101518382015260200162000472565b50505050905090810190601f168015620004ba5780820380516001836020036101000a031916815260200191505b508481038252865181528651602091820191808901910280838360005b83811015620004f1578181015183820152602001620004d7565b505050509050019850505050505050505060405180910390f35b3480156200051857600080fd5b5062000184600160a060020a0360043516620016a2565b3480156200053c57600080fd5b5062000184600160a060020a0360043581169060243516604435620016c5565b3480156200056957600080fd5b50620001ce600160a060020a036004351662001d38565b3480156200058d57600080fd5b50620005aa600160a060020a036004358116906024351662001db2565b6040518084608080838360005b83811015620005d1578181015183820152602001620005b7565b5050505090500183600260200280838360005b83811015620005fe578181015183820152602001620005e4565b5050505090500180602001828103825283818151815260200191508051906020019060200280838360005b838110156200064357818101518382015260200162000629565b5050505090500194505050505060405180910390f35b3480156200066657600080fd5b506200018462001ee7565b3480156200067e57600080fd5b506200018460048035600160a060020a0316906024803580820192908101359160443580820192908101359160643560ff169160843591820191013560a43560c43560e4356101043562001ef4565b348015620006da57600080fd5b50620001ce62002074565b348015620006f257600080fd5b5062000244600160a060020a03600435166200212a565b3480156200071657600080fd5b506200030f6200213f565b3480156200072e57600080fd5b506200030f6200214e565b3480156200074657600080fd5b5062000244600160a060020a03600435811690602435166200215d565b3480156200077057600080fd5b506200030f6200217a565b3480156200078857600080fd5b5062000244600160a060020a036004358116906024351662002189565b60038054600101908190556000908190819081620007c262001393565b600160a060020a03161415620007d757600080fd5b620007ea60078863ffffffff6200219f16565b1515620007f657600080fd5b6200080a6007883363ffffffff620021cf16565b15156200081657600080fd5b6200082960078863ffffffff6200220616565b15156200083557600080fd5b6200085e866200084d60078a63ffffffff6200224e16565b600601549063ffffffff6200225e16565b6200087160078963ffffffff6200224e16565b6005015410156200088157600080fd5b6200089460078863ffffffff6200227116565b6004805460088301546040805160e260020a630547cdcd028152600160a060020a039283169481019490945251939750169163151f3734916024808201926020929091908290030181600087803b158015620008ef57600080fd5b505af115801562000904573d6000803e3d6000fd5b505050506040513d60208110156200091b57600080fd5b50516005546008860154919450600160a060020a039081169163868b16d9911685886200094762001393565b89600501548a600601548b60070154600460009054906101000a9004600160a060020a03168d6003016040518a63ffffffff1660e060020a028152600401808a600160a060020a0316600160a060020a0316815260200189600160a060020a0316600160a060020a0316815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818154815260200191508054801562000a4b57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000a2c575b50509a5050505050505050505050602060405180830381600087803b15801562000a7457600080fd5b505af115801562000a89573d6000803e3d6000fd5b505050506040513d602081101562000aa057600080fd5b5051604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051919350600160a060020a0384169163704802759160248082019260009290919082900301818387803b15801562000b0757600080fd5b505af115801562000b1c573d6000803e3d6000fd5b5050505081600160a060020a0316638edd6eb66040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801562000b5f57600080fd5b505af115801562000b74573d6000803e3d6000fd5b505050506040513d602081101562000b8b57600080fd5b5051604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163704802759160248082019260009290919082900301818387803b15801562000bf057600080fd5b505af115801562000c05573d6000803e3d6000fd5b5050505082600160a060020a03166370480275836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801562000c6557600080fd5b505af115801562000c7a573d6000803e3d6000fd5b5062000c959250600791508990508463ffffffff620022a416565b60008460060154111562000de9576004546008850154600160a060020a039182169163e1f21c6791168462000cd360078c8363ffffffff6200245816565b6005015473__Percent_______________________________6342318e3d90918a600601546040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b15801562000d3757600080fd5b505af415801562000d4c573d6000803e3d6000fd5b505050506040513d602081101562000d6357600080fd5b50516040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801562000dba57600080fd5b505af115801562000dcf573d6000803e3d6000fd5b505050506040513d602081101562000de657600080fd5b50505b62000df687838862000f64565b600884015460408051600160a060020a038581168252602082018a905282513394909116927fc9cecf9fabde631d7582b55fdaf2a8800e68f0063771104348deff501b7c2827928290030190a3600354811462000e5257600080fd5b50505050505050565b600254600160a060020a0316331462000e7357600080fd5b62000e7e81620024c8565b50565b606080600062000e9960078563ffffffff6200251216565b5160405190808252806020026020018201604052801562000ec4578160200160208202803883390190505b509150600090505b62000edf60078563ffffffff6200251216565b5181101562000f425762000efb60078563ffffffff6200251216565b80518290811062000f0857fe5b6020908102909101015151825183908390811062000f2257fe5b600160a060020a0390921660209283029091019091015260010162000ecc565b5092915050565b600062000f5e60078363ffffffff6200220616565b92915050565b600080821162000f7357600080fd5b62000f8660078563ffffffff6200219f16565b151562000f9257600080fd5b62000fa66007853363ffffffff620021cf16565b151562000fb257600080fd5b62000fc66007858563ffffffff6200264d16565b151562000fd257600080fd5b600480546040805160e260020a630547cdcd028152600160a060020a038881169482019490945290516000939092169163151f37349160248082019260209290919082900301818787803b1580156200102a57600080fd5b505af11580156200103f573d6000803e3d6000fd5b505050506040513d60208110156200105657600080fd5b5051600160a060020a031614156200106d57600080fd5b62001086826200084d6007878763ffffffff6200245816565b6200109a6007868663ffffffff6200245816565b600501541015620010aa57600080fd5b600480546040805160e260020a630547cdcd028152600160a060020a03888116948201949094529051929091169163151f3734916024808201926020929091908290030181600087803b1580156200110157600080fd5b505af115801562001116573d6000803e3d6000fd5b505050506040513d60208110156200112d57600080fd5b505190506200114a826200084d6007878763ffffffff6200245816565b6200115e6007868663ffffffff6200245816565b60060155604080517fd0047acf000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301526024820185905260006044830181905292519084169263d0047acf92606480820193602093909283900390910190829087803b158015620011d957600080fd5b505af1158015620011ee573d6000803e3d6000fd5b505050506040513d60208110156200120557600080fd5b505060408051600160a060020a0385811682526020820185905282513393918816927fd663b1d1c366a683f19929e0e0f10df9ee4ba14bb42fb2f37e63605b0828da2a92908290030190a350505050565b600254600160a060020a031633146200126e57600080fd5b600160a060020a03811615156200128457600080fd5b60028054600160a060020a031916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600062000f5e818363ffffffff6200269816565b6060620013086007848463ffffffff6200245816565b6007018054806020026020016040519081016040528092919081815260200182805480156200136157602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001342575b5050505050905092915050565b600454600160a060020a03165b90565b600454600160a060020a031681565b60015481565b600654604080517fe3ff76e4000000000000000000000000000000000000000000000000000000008152600160048201529051600092600160a060020a03169163e3ff76e491602480830192602092919082900301818787803b158015620013fa57600080fd5b505af11580156200140f573d6000803e3d6000fd5b505050506040513d60208110156200142657600080fd5b5051905090565b606080600060606200143e6200371e565b6200145160078763ffffffff6200219f16565b15156200145d57600080fd5b6200147060078763ffffffff6200227116565b805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620014f85780601f10620014cc57610100808354040283529160200191620014f8565b820191906000526020600020905b815481529060010190602001808311620014da57829003601f168201915b50505050509450620015158660076200227190919063ffffffff16565b60019081018054604080516020600295841615610100026000190190931694909404601f810183900483028501830190915280845290830182828015620015a05780601f106200157457610100808354040283529160200191620015a0565b820191906000526020600020905b8154815290600101906020018083116200158257829003601f168201915b50505050509350620015bd8660076200227190919063ffffffff16565b6002015460ff169250620015d960078763ffffffff6200227116565b6003018054806020026020016040519081016040528092919081815260200182805480156200163257602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001613575b505050505091506200164f8660076200227190919063ffffffff16565b6004015481526200166260078762002271565b6005015460208201526200167860078762002271565b6006015460408201526200168e60078762002271565b600701546060820152939592945090929091565b600254600160a060020a03163314620016ba57600080fd5b62000e7e81620026d0565b6003805460010190819055600090819081908190819081620016e662001393565b600160a060020a03161415620016fb57600080fd5b600087116200170957600080fd5b6200171c60078a63ffffffff6200219f16565b15156200172857600080fd5b6200173c60078a3363ffffffff620021cf16565b15156200174857600080fd5b6200175c60078a8a63ffffffff6200264d16565b15156200176857600080fd5b6200177b60078a63ffffffff6200227116565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519197508a96508891600160a060020a0388169163dd62ed3e9160448083019260209291908290030181600087803b158015620017eb57600080fd5b505af115801562001800573d6000803e3d6000fd5b505050506040513d60208110156200181757600080fd5b505110156200182557600080fd5b8560020160009054906101000a900460ff1660ff1685600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200187957600080fd5b505af11580156200188e573d6000803e3d6000fd5b505050506040513d6020811015620018a557600080fd5b505160ff1614620018b557600080fd5b6000866004015411620018ca5760006200195a565b8673__Percent_______________________________6342318e3d909188600401546040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b1580156200192b57600080fd5b505af415801562001940573d6000803e3d6000fd5b505050506040513d60208110156200195757600080fd5b50515b93506200196e878563ffffffff6200271a16565b6004549093506200198b908690600160a060020a03168562002732565b620019a1856200199a62001393565b8662002732565b620019cb83620019ba60078c8c63ffffffff6200245816565b600501549063ffffffff6200225e16565b620019df60078b8b63ffffffff6200245816565b60050155600480546040805160e260020a630547cdcd028152600160a060020a038d81169482019490945290516000939092169163151f37349160248082019260209290919082900301818787803b15801562001a3b57600080fd5b505af115801562001a50573d6000803e3d6000fd5b505050506040513d602081101562001a6757600080fd5b5051600160a060020a0316141562001c485760028601548690600182019060ff1662001a926200373d565b60ff8216604082015260608082528454600260001961010060018416150201909116049082018190528190602082019060808301908790801562001b1a5780601f1062001aee5761010080835404028352916020019162001b1a565b820191906000526020600020905b81548152906001019060200180831162001afc57829003601f168201915b505083810382528554600260001961010060018416150201909116048082526020909101908690801562001b925780601f1062001b665761010080835404028352916020019162001b92565b820191906000526020600020905b81548152906001019060200180831162001b7457829003601f168201915b505095505050505050604051809103906000f08015801562001bb8573d6000803e3d6000fd5b5060048054604080517fa0736912000000000000000000000000000000000000000000000000000000008152600160a060020a038e8116948201949094528385166024820152905193955091169163a07369129160448082019260009290919082900301818387803b15801562001c2e57600080fd5b505af115801562001c43573d6000803e3d6000fd5b505050505b600480546040805160e260020a630547cdcd028152600160a060020a038d811694820185905291513394937f168493f0b2b7abab85259c2b490c5d5dff8fcde395381ac5084f554f7e9e2951938e938a93919092169163151f37349160248083019260209291908290030181600087803b15801562001cc657600080fd5b505af115801562001cdb573d6000803e3d6000fd5b505050506040513d602081101562001cf257600080fd5b505160408051600160a060020a039485168152602081019390935292168183015290519081900360600190a3600354811462001d2d57600080fd5b505050505050505050565b606062001d4d60078363ffffffff6200227116565b60030180548060200260200160405190810160405280929190818152602001828054801562001da657602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001d87575b50505050509050919050565b62001dbc6200371e565b62001dc66200374e565b606062001ddc6007868663ffffffff6200264d16565b151562001de857600080fd5b62001dfc6007868663ffffffff6200245816565b60010154835262001e106007868662002458565b60020154602084015262001e276007868662002458565b60030154604084015262001e3e6007868662002458565b60040154606084015262001e556007868662002458565b60050154825262001e696007868662002458565b60060154602083015262001e806007868662002458565b60070180548060200260200160405190810160405280929190818152602001828054801562001ed957602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001eba575b505050505090509250925092565b62001ef233620024c8565b565b62001eff33620012de565b151562001f0b57600080fd5b62001fc08c8c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508a8a8a80806020026020016040519081016040528093929190818152602001838360200280828437506007999897969594508e93508d92508c91508b905063ffffffff6200291616565b5033600160a060020a03168c600160a060020a03167f02b6ecbf927eba8b506d1ceacc9ca4887d0f3978e6e1b6b3c423ceefc021b31a88888f8f8f8f6040518080602001806020018060200184810384528a8a82818152602001925060200280828437909101858103845288815260200190508888808284379091018581038352868152602001905086868082843760405192018290039b50909950505050505050505050a3505050505050505050505050565b6060806000620020856007620030fc565b51604051908082528060200260200182016040528015620020b0578160200160208202803883390190505b509150600090505b620020c46007620030fc565b518110156200212457620020d96007620030fc565b805182908110620020e657fe5b90602001906020020151610100015182828151811015156200210457fe5b600160a060020a03909216602092830290910190910152600101620020b8565b50919050565b600062000f5e60078363ffffffff6200219f16565b600554600160a060020a031681565b600254600160a060020a031690565b6000620021736007848463ffffffff6200264d16565b9392505050565b600654600160a060020a031681565b6000620021736007848463ffffffff620021cf16565b600160a060020a031660009081526001820160209081526040808320938252808320548352929052205460ff1690565b6000620021dd848462002271565b600160a060020a0383166000908152600991909101602052604090205460ff1690509392505050565b60006200221483836200219f565b15156200222057600080fd5b50600160a060020a031660009081526003919091016020908152604080832083805290915290205460ff1690565b6000620021738383600062002458565b6000828201838110156200217357600080fd5b6000826005016200228384846200334b565b815481106200228e57fe5b90600052602060002090600a0201905092915050565b600160a060020a0381161515620022ba57600080fd5b620022c6838362002206565b1515620022d257600080fd5b620022df8383836200264d565b15620022ea57600080fd5b80620022f784846200224e565b8054600160a060020a031916600160a060020a039290921691909117905562002321838362002271565b600401546200233184846200224e565b6001015562002341838362002271565b600501546200235184846200224e565b6002015562002361838362002271565b600601546200237184846200224e565b6003015562002381838362002271565b600701546200239184846200224e565b60040155620023a1838362002271565b600301620023b084846200224e565b600701908054620023c392919062003769565b50600160a060020a03808316600090815260038501602090815260408083209385168352929052908120805460ff1916600117905562002407908490849062003382565b600160a060020a039283166000818152600486016020908152604080832095909616825284815285822093909355908152600390940181528284208480528152828420805460ff1916905552812055565b6000620024678484846200264d565b15156200247357600080fd5b600160a060020a038084166000908152600286016020908152604080832060048901835281842094871684529390915290205481548110620024b157fe5b906000526020600020906008020190509392505050565b620024db60008263ffffffff620033cb16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b60606200252083836200219f565b15156200252c57600080fd5b600160a060020a0382166000908152600284016020908152604080832080548251818502810185019093528083529193909284015b82821015620026415760008481526020908190206040805161010081018252600886029092018054600160a060020a031683526001810154838501526002810154838301526003810154606084015260048101546080840152600581015460a0840152600681015460c08401526007810180548351818702810187019094528084529394919360e0860193928301828280156200262857602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162002609575b5050505050815250508152602001906001019062002561565b50505050905092915050565b60006200265b84846200219f565b15156200266757600080fd5b50600160a060020a039182166000908152600393909301602090815260408085209290931684525290205460ff1690565b6000600160a060020a0382161515620026b057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b620026e360008263ffffffff6200341b16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b600080838311156200272b57600080fd5b5050900390565b6000620027d08285600160a060020a03166370a08231866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156200279557600080fd5b505af1158015620027aa573d6000803e3d6000fd5b505050506040513d6020811015620027c157600080fd5b50519063ffffffff6200225e16565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151929350908616916323b872dd916064808201926020929091908290030181600087803b1580156200284657600080fd5b505af11580156200285b573d6000803e3d6000fd5b505050506040513d60208110156200287257600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915183928716916370a082319160248083019260209291908290030181600087803b158015620028da57600080fd5b505af1158015620028ef573d6000803e3d6000fd5b505050506040513d60208110156200290657600080fd5b5051146200291057fe5b50505050565b600080600160a060020a038b1615156200292f57600080fd5b86516000106200293e57600080fd5b8573__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b1580156200299357600080fd5b505af4158015620029a8573d6000803e3d6000fd5b505050506040513d6020811015620029bf57600080fd5b5051801562002a50575060648673__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002a2057600080fd5b505af415801562002a35573d6000803e3d6000fd5b505050506040513d602081101562002a4c57600080fd5b5051105b151562002a5c57600080fd5b8473__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002ab157600080fd5b505af415801562002ac6573d6000803e3d6000fd5b505050506040513d602081101562002add57600080fd5b5051801562002b6e575060648573__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002b3e57600080fd5b505af415801562002b53573d6000803e3d6000fd5b505050506040513d602081101562002b6a57600080fd5b5051105b151562002b7a57600080fd5b8373__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002bcf57600080fd5b505af415801562002be4573d6000803e3d6000fd5b505050506040513d602081101562002bfb57600080fd5b5051801562002c8c575060648473__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002c5c57600080fd5b505af415801562002c71573d6000803e3d6000fd5b505050506040513d602081101562002c8857600080fd5b5051105b151562002c9857600080fd5b8273__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002ced57600080fd5b505af415801562002d02573d6000803e3d6000fd5b505050506040513d602081101562002d1957600080fd5b5051801562002daa575060648373__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002d7a57600080fd5b505af415801562002d8f573d6000803e3d6000fd5b505050506040513d602081101562002da657600080fd5b5051105b151562002db657600080fd5b62002dc28c8c6200219f565b151562002fb5578b600501805490508c60000160008d600160a060020a0316600160a060020a031681526020019081526020016000208190555060018c60010160008d600160a060020a0316600160a060020a0316815260200190815260200160002060008e60050180549050815260200190815260200160002060006101000a81548160ff0219169083151502179055508b600501610120604051908101604052808c81526020018b81526020018a60ff168152602001600060405190808252806020026020018201604052801562002ea6578160200160208202803883390190505b50815260208082018a9052604082018990526060820188905260808201879052600160a060020a038f1660a09092019190915282546001810180855560009485529382902083518051600a9093029091019262002f0992849290910190620037be565b50602082810151805162002f249260018501920190620037be565b50604082015160028201805460ff191660ff9092169190911790556060820151805162002f5c9160038401916020909101906200383f565b506080820151600482015560a0820151600582015560c0820151600682015560e082015160078201556101009091015160089091018054600160a060020a031916600160a060020a039092169190911790555062003077565b62002fcb62002fc58d8d62002271565b6200346d565b8962002fd88d8d62002271565b815162002fe99260200190620037be565b508862002ff78d8d62002271565b60010190805190602001906200300f929190620037be565b50876200301d8d8d62002271565b600201805460ff191660ff92909216919091179055856200303f8d8d62002271565b6004015584620030508d8d62002271565b6005015583620030618d8d62002271565b6006015582620030728d8d62002271565b600701555b5060005b8651811015620030b357620030aa8c8c89848151811015156200309a57fe5b90602001906020020151620034fc565b6001016200307b565b620030bf8c8c62002206565b1515620030d257620030d28c8c620035ce565b600160a060020a038b16600090815260208d905260409020549150509a9950505050505050505050565b606081600501805480602002602001604051908101604052809291908181526020016000905b828210156200334057600084815260209081902060408051600a8602909201805460026001821615610100026000190190911604601f81018590049094028301610140908101909252610120830184815292939092849290918491840182828015620031d25780601f10620031a657610100808354040283529160200191620031d2565b820191906000526020600020905b815481529060010190602001808311620031b457829003601f168201915b50505050508152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620032785780601f106200324c5761010080835404028352916020019162003278565b820191906000526020600020905b8154815290600101906020018083116200325a57829003601f168201915b5050509183525050600282015460ff166020808301919091526003830180546040805182850281018501825282815294019392830182828015620032e657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311620032c7575b50505091835250506004820154602080830191909152600583015460408301526006830154606083015260078301546080830152600890920154600160a060020a031660a090910152908252600192909201910162003122565b505050509050919050565b60006200335983836200219f565b15156200336557600080fd5b50600160a060020a03166000908152602091909152604090205490565b6000620033918484846200264d565b15156200339d57600080fd5b50600160a060020a039182166000908152600493909301602090815260408085209290931684525290205490565b600160a060020a0381161515620033e157600080fd5b620033ed828262002698565b1515620033f957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03811615156200343157600080fd5b6200343d828262002698565b156200344857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6003810154600090811015620034f8575060005b6003820154811015620034e55760008260090160008460030184815481101515620034a857fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff191691151591909117905560010162003481565b6000620034f6600384018262003897565b505b5050565b600160a060020a03811615156200351257600080fd5b6200351f838383620021cf565b156200352a57600080fd5b62003536838362002271565b60030180546001808201835560009283526020909220018054600160a060020a031916600160a060020a03841617905562003572848462002271565b600160a060020a0383811660008181526009939093016020526040808420805460ff1916951515959095179094559251908516917ffa5891b558f0fb64bcbdc5f17fa7bbee3a47f97f4c8f523556d0494941a1e18b91a3505050565b6000620035dc838362002206565b15620035e757600080fd5b50600160a060020a0381166000818152600284016020818152604080842080546003890184528286208680528452828620805460ff191660011790558686526004890184528286208680528452828620819055958552928252805161010081018252848152808301859052808201859052606081018590526080810185905260a0810185905260c081018590528151858152928301909152919260e08301919050905281546001808201808555600094855260209485902084516008909402018054600160a060020a031916600160a060020a03909416939093178355838501519183019190915560408301516002830155606083015160038301556080830151600483015560a0830151600583015560c0830151600683015560e08301518051919462000e52926007850192909101906200383f565b6080604051908101604052806004906020820280388339509192915050565b604051611683806200390383390190565b60408051808201825290600290829080388339509192915050565b828054828255906000526020600020908101928215620037ac5760005260206000209182015b82811115620037ac5782548255916001019190600101906200378f565b50620037ba929150620038be565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200380157805160ff191683800117855562003831565b8280016001018555821562003831579182015b828111156200383157825182559160200191906001019062003814565b50620037ba929150620038e5565b828054828255906000526020600020908101928215620037ac579160200282015b82811115620037ac5782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019062003860565b815481835581811115620034f657600083815260209020620034f6918101908301620038e5565b6200137b91905b80821115620037ba578054600160a060020a0319168155600101620038c5565b6200137b91905b80821115620037ba5760008155600101620038ec560060806040523480156200001157600080fd5b50604051620016833803806200168383398101604090815281516020830151918301519083019291909101908282826200005433640100000000620000f1810204565b825162000069906001906020860190620001d6565b5081516200007f906002906020850190620001d6565b506003805460ff90921660ff19909216919091179055505060078054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a15050506200027b565b6200010c600082640100000000620012ec6200014382021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b600160a060020a03811615156200015957600080fd5b6200016e82826401000000006200019e810204565b156200017957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001b657600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021957805160ff191683800117855562000249565b8280016001018555821562000249579182015b82811115620002495782518255916020019190600101906200022c565b50620002579291506200025b565b5090565b6200027891905b8082111562000257576000815560010162000262565b90565b6113f8806200028b6000396000f3006080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d75780631785f53c1461020f57806318160ddd146102325780632348238c1461025957806323b872dd1461027a57806324d7806c146102a4578063313ce567146102c557806339509351146102f057806342966c68146103145780634afbf5ee1461032c5780636618846314610350578063704802751461037457806370a082311461039557806379cc6790146103b65780638bad0c0a146103da57806395d89b41146103ef5780639d2e477714610404578063a457c2d714610431578063a9059cbb14610455578063c6dbdf6114610479578063d0047acf146104aa578063d294cb0f146104d7578063d73dd623146104f8578063dd62ed3e1461051c575b600080fd5b34801561015957600080fd5b50610162610543565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019c578181015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e357600080fd5b506101fb600160a060020a03600435166024356105d8565b604080519115158252519081900360200190f35b34801561021b57600080fd5b50610230600160a060020a0360043516610656565b005b34801561023e57600080fd5b50610247610679565b60408051918252519081900360200190f35b34801561026557600080fd5b50610230600160a060020a036004351661067f565b34801561028657600080fd5b506101fb600160a060020a0360043581169060243516604435610712565b3480156102b057600080fd5b506101fb600160a060020a036004351661075a565b3480156102d157600080fd5b506102da610772565b6040805160ff9092168252519081900360200190f35b3480156102fc57600080fd5b506101fb600160a060020a036004351660243561077b565b34801561032057600080fd5b5061023060043561082b565b34801561033857600080fd5b50610247600160a060020a0360043516602435610835565b34801561035c57600080fd5b506101fb600160a060020a036004351660243561085d565b34801561038057600080fd5b50610230600160a060020a0360043516610870565b3480156103a157600080fd5b50610247600160a060020a0360043516610890565b3480156103c257600080fd5b50610230600160a060020a03600435166024356108ab565b3480156103e657600080fd5b506102306108b9565b3480156103fb57600080fd5b506101626108c4565b34801561041057600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610922565b34801561043d57600080fd5b506101fb600160a060020a036004351660243561096d565b34801561046157600080fd5b506101fb600160a060020a03600435166024356109b8565b34801561048557600080fd5b5061048e6109f7565b60408051600160a060020a039092168252519081900360200190f35b3480156104b657600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610a06565b3480156104e357600080fd5b50610247600160a060020a0360043516610a47565b34801561050457600080fd5b506101fb600160a060020a0360043516602435610b50565b34801561052857600080fd5b50610247600160a060020a0360043581169060243516610b5c565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b820191906000526020600020905b8154815290600101906020018083116105b157829003601f168201915b5050505050905090565b6000600160a060020a03831615156105ef57600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600754600160a060020a0316331461066d57600080fd5b61067681610b87565b50565b60065490565b600754600160a060020a0316331461069657600080fd5b600160a060020a03811615156106ab57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600061071d84610bcf565b600160a060020a038316151561073257600080fd5b61073b84610a47565b82111561074757600080fd5b610752848484610d55565b949350505050565b600061076c818363ffffffff610de816565b92915050565b60035460ff1690565b6000600160a060020a038316151561079257600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff610e1f16565b336000818152600560209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6106763382610e31565b600160a060020a03919091166000908152600860209081526040808320938352929052205490565b6000610869838361096d565b9392505050565b600754600160a060020a0316331461088757600080fd5b61067681610e59565b600160a060020a031660009081526004602052604090205490565b6108b58282610ea1565b5050565b6108c233610b87565b565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b600061092d3361075a565b151561093857600080fd5b61094284846109b8565b50428263ffffffff1611156109635761096333858463ffffffff1686610ec9565b5060019392505050565b6000600160a060020a038316151561098457600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff61100316565b60006109c333610bcf565b600160a060020a03831615156109d857600080fd5b6109e133610a47565b8211156109ed57600080fd5b610869838361101a565b600754600160a060020a031690565b6000610a113361075a565b1515610a1c57600080fd5b610a268484611030565b428263ffffffff161115610963576109636000858463ffffffff1686610ec9565b600080610a5383610890565b600160a060020a03841660009081526008602090815260408083208380529091529020549092501515610a8557610b4a565b5060005b600160a060020a038316600090815260096020526040902054811015610b4a57600160a060020a0383166000908152600960205260409020805442919083908110610ad057fe5b9060005260206000200154101515610b4257600160a060020a0383166000908152600860209081526040808320600990925282208054610b3f93919085908110610b1657fe5b90600052602060002001548152602001908152602001600020548361100390919063ffffffff16565b91505b600101610a89565b50919050565b6000610869838361077b565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610b9860008263ffffffff6110dc16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515610be657600080fd5b600160a060020a03821660009081526008602090815260408083208380529091529020541515610c15576108b5565b5060005b600160a060020a0382166000908152600960205260409020548110156108b557600160a060020a0382166000908152600960205260409020805442919083908110610c6057fe5b90600052602060002001541015610d4d57600160a060020a0382166000908152600860209081526040808320600990925282208054610ceb93919085908110610ca557fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526008845282822082805290935220549063ffffffff61100316565b600160a060020a03831660008181526008602090815260408083208380528083528184209590955592825260099052908120805491929183919085908110610d2f57fe5b90600052602060002001548152602001908152602001600020819055505b600101610c19565b600160a060020a0383166000908152600560209081526040808320338452909152812054821115610d8557600080fd5b600160a060020a0384166000908152600560209081526040808320338452909152902054610db9908363ffffffff61100316565b600160a060020a0385166000908152600560209081526040808320338452909152902055610963848484611128565b6000600160a060020a0382161515610dff57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b60008282018381101561086957600080fd5b610e3a82610bcf565b610e4382610a47565b811115610e4f57600080fd5b6108b5828261121c565b610e6a60008263ffffffff6112ec16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b610eaa82610bcf565b610eb382610a47565b811115610ebf57600080fd5b6108b5828261133a565b600160a060020a0383166000908152600860209081526040808320838052909152902054610efd908263ffffffff610e1f16565b600160a060020a03841660009081526008602090815260408083208380529091528082209290925583815220541515610f5c57600160a060020a0383166000908152600960209081526040822080546001810182559083529120018290555b600160a060020a0383166000908152600860209081526040808320858452909152902054610f90908263ffffffff610e1f16565b600160a060020a0380851660008181526008602090815260408083208884528252918290209490945580519288168352928201528082018390526060810184905290517f4dd99b63a45b55ac0b6999b9307251132e130b3e3f06c04c92b946c0f9e0dc279181900360800190a150505050565b6000808383111561101357600080fd5b5050900390565b6000611027338484611128565b50600192915050565b600160a060020a038216151561104557600080fd5b600654611058908263ffffffff610e1f16565b600655600160a060020a038216600090815260046020526040902054611084908263ffffffff610e1f16565b600160a060020a03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a03811615156110f157600080fd5b6110fb8282610de8565b151561110657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03831660009081526004602052604090205481111561114d57600080fd5b600160a060020a038216151561116257600080fd5b600160a060020a03831660009081526004602052604090205461118b908263ffffffff61100316565b600160a060020a0380851660009081526004602052604080822093909355908416815220546111c0908263ffffffff610e1f16565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a038216151561123157600080fd5b600160a060020a03821660009081526004602052604090205481111561125657600080fd5b600654611269908263ffffffff61100316565b600655600160a060020a038216600090815260046020526040902054611295908263ffffffff61100316565b600160a060020a0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a038116151561130157600080fd5b61130b8282610de8565b1561131557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038216600090815260056020908152604080832033845290915290205481111561136a57600080fd5b600160a060020a038216600090815260056020908152604080832033845290915290205461139e908263ffffffff61100316565b600160a060020a03831660009081526005602090815260408083203384529091529020556108b58282610e315600a165627a7a72305820062db0e6b0457b0016fe92cec01a2f813c664af8fd4f12281ebacf073384bab80029a165627a7a72305820262be86e0da6780e73b6746d661bbb07621435ca52c789af3e9a181014829b410029", + "deployedBytecode": "0x608060405260043610620001555763ffffffff60e060020a60003504166309363c9981146200015a5780631785f53c14620001865780631cd82e6014620001aa57806320f59dc7146200022057806321689c1a14620002585780632348238c146200028557806324d7806c14620002a9578063460f0b6b14620002cd5780634b1acf3914620002f75780634d12fca4146200032b57806354fd4d5014620003435780635641f3c3146200036d57806359770438146200038557806370480275146200050b57806375dd8cfc146200052f578063849072b9146200055c57806386ad639814620005805780638bad0c0a1462000659578063a800199e1462000671578063aa6ca80814620006cd578063b5af090f14620006e5578063c45a01551462000709578063c6dbdf611462000721578063c96a68c11462000739578063d2f4a50a1462000763578063e45725d8146200077b575b600080fd5b3480156200016757600080fd5b5062000184600160a060020a0360043516602435604435620007a5565b005b3480156200019357600080fd5b5062000184600160a060020a036004351662000e5b565b348015620001b757600080fd5b50620001ce600160a060020a036004351662000e81565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200020c578181015183820152602001620001f2565b505050509050019250505060405180910390f35b3480156200022d57600080fd5b5062000244600160a060020a036004351662000f49565b604080519115158252519081900360200190f35b3480156200026557600080fd5b5062000184600160a060020a036004358116906024351660443562000f64565b3480156200029257600080fd5b5062000184600160a060020a036004351662001256565b348015620002b657600080fd5b5062000244600160a060020a0360043516620012de565b348015620002da57600080fd5b50620001ce600160a060020a0360043581169060243516620012f2565b3480156200030457600080fd5b506200030f6200136e565b60408051600160a060020a039092168252519081900360200190f35b3480156200033857600080fd5b506200030f6200137e565b3480156200035057600080fd5b506200035b6200138d565b60408051918252519081900360200190f35b3480156200037a57600080fd5b506200030f62001393565b3480156200039257600080fd5b50620003a9600160a060020a03600435166200142d565b6040518080602001806020018660ff1660ff1681526020018060200185600460200280838360005b83811015620003eb578181015183820152602001620003d1565b50505050905001848103845289818151815260200191508051906020019080838360005b83811015620004295781810151838201526020016200040f565b50505050905090810190601f168015620004575780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b838110156200048c57818101518382015260200162000472565b50505050905090810190601f168015620004ba5780820380516001836020036101000a031916815260200191505b508481038252865181528651602091820191808901910280838360005b83811015620004f1578181015183820152602001620004d7565b505050509050019850505050505050505060405180910390f35b3480156200051857600080fd5b5062000184600160a060020a0360043516620016a2565b3480156200053c57600080fd5b5062000184600160a060020a0360043581169060243516604435620016c5565b3480156200056957600080fd5b50620001ce600160a060020a036004351662001d38565b3480156200058d57600080fd5b50620005aa600160a060020a036004358116906024351662001db2565b6040518084608080838360005b83811015620005d1578181015183820152602001620005b7565b5050505090500183600260200280838360005b83811015620005fe578181015183820152602001620005e4565b5050505090500180602001828103825283818151815260200191508051906020019060200280838360005b838110156200064357818101518382015260200162000629565b5050505090500194505050505060405180910390f35b3480156200066657600080fd5b506200018462001ee7565b3480156200067e57600080fd5b506200018460048035600160a060020a0316906024803580820192908101359160443580820192908101359160643560ff169160843591820191013560a43560c43560e4356101043562001ef4565b348015620006da57600080fd5b50620001ce62002074565b348015620006f257600080fd5b5062000244600160a060020a03600435166200212a565b3480156200071657600080fd5b506200030f6200213f565b3480156200072e57600080fd5b506200030f6200214e565b3480156200074657600080fd5b5062000244600160a060020a03600435811690602435166200215d565b3480156200077057600080fd5b506200030f6200217a565b3480156200078857600080fd5b5062000244600160a060020a036004358116906024351662002189565b60038054600101908190556000908190819081620007c262001393565b600160a060020a03161415620007d757600080fd5b620007ea60078863ffffffff6200219f16565b1515620007f657600080fd5b6200080a6007883363ffffffff620021cf16565b15156200081657600080fd5b6200082960078863ffffffff6200220616565b15156200083557600080fd5b6200085e866200084d60078a63ffffffff6200224e16565b600601549063ffffffff6200225e16565b6200087160078963ffffffff6200224e16565b6005015410156200088157600080fd5b6200089460078863ffffffff6200227116565b6004805460088301546040805160e260020a630547cdcd028152600160a060020a039283169481019490945251939750169163151f3734916024808201926020929091908290030181600087803b158015620008ef57600080fd5b505af115801562000904573d6000803e3d6000fd5b505050506040513d60208110156200091b57600080fd5b50516005546008860154919450600160a060020a039081169163868b16d9911685886200094762001393565b89600501548a600601548b60070154600460009054906101000a9004600160a060020a03168d6003016040518a63ffffffff1660e060020a028152600401808a600160a060020a0316600160a060020a0316815260200189600160a060020a0316600160a060020a0316815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818154815260200191508054801562000a4b57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000a2c575b50509a5050505050505050505050602060405180830381600087803b15801562000a7457600080fd5b505af115801562000a89573d6000803e3d6000fd5b505050506040513d602081101562000aa057600080fd5b5051604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051919350600160a060020a0384169163704802759160248082019260009290919082900301818387803b15801562000b0757600080fd5b505af115801562000b1c573d6000803e3d6000fd5b5050505081600160a060020a0316638edd6eb66040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801562000b5f57600080fd5b505af115801562000b74573d6000803e3d6000fd5b505050506040513d602081101562000b8b57600080fd5b5051604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163704802759160248082019260009290919082900301818387803b15801562000bf057600080fd5b505af115801562000c05573d6000803e3d6000fd5b5050505082600160a060020a03166370480275836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801562000c6557600080fd5b505af115801562000c7a573d6000803e3d6000fd5b5062000c959250600791508990508463ffffffff620022a416565b60008460060154111562000de9576004546008850154600160a060020a039182169163e1f21c6791168462000cd360078c8363ffffffff6200245816565b6005015473__Percent_______________________________6342318e3d90918a600601546040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b15801562000d3757600080fd5b505af415801562000d4c573d6000803e3d6000fd5b505050506040513d602081101562000d6357600080fd5b50516040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801562000dba57600080fd5b505af115801562000dcf573d6000803e3d6000fd5b505050506040513d602081101562000de657600080fd5b50505b62000df687838862000f64565b600884015460408051600160a060020a038581168252602082018a905282513394909116927fc9cecf9fabde631d7582b55fdaf2a8800e68f0063771104348deff501b7c2827928290030190a3600354811462000e5257600080fd5b50505050505050565b600254600160a060020a0316331462000e7357600080fd5b62000e7e81620024c8565b50565b606080600062000e9960078563ffffffff6200251216565b5160405190808252806020026020018201604052801562000ec4578160200160208202803883390190505b509150600090505b62000edf60078563ffffffff6200251216565b5181101562000f425762000efb60078563ffffffff6200251216565b80518290811062000f0857fe5b6020908102909101015151825183908390811062000f2257fe5b600160a060020a0390921660209283029091019091015260010162000ecc565b5092915050565b600062000f5e60078363ffffffff6200220616565b92915050565b600080821162000f7357600080fd5b62000f8660078563ffffffff6200219f16565b151562000f9257600080fd5b62000fa66007853363ffffffff620021cf16565b151562000fb257600080fd5b62000fc66007858563ffffffff6200264d16565b151562000fd257600080fd5b600480546040805160e260020a630547cdcd028152600160a060020a038881169482019490945290516000939092169163151f37349160248082019260209290919082900301818787803b1580156200102a57600080fd5b505af11580156200103f573d6000803e3d6000fd5b505050506040513d60208110156200105657600080fd5b5051600160a060020a031614156200106d57600080fd5b62001086826200084d6007878763ffffffff6200245816565b6200109a6007868663ffffffff6200245816565b600501541015620010aa57600080fd5b600480546040805160e260020a630547cdcd028152600160a060020a03888116948201949094529051929091169163151f3734916024808201926020929091908290030181600087803b1580156200110157600080fd5b505af115801562001116573d6000803e3d6000fd5b505050506040513d60208110156200112d57600080fd5b505190506200114a826200084d6007878763ffffffff6200245816565b6200115e6007868663ffffffff6200245816565b60060155604080517fd0047acf000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301526024820185905260006044830181905292519084169263d0047acf92606480820193602093909283900390910190829087803b158015620011d957600080fd5b505af1158015620011ee573d6000803e3d6000fd5b505050506040513d60208110156200120557600080fd5b505060408051600160a060020a0385811682526020820185905282513393918816927fd663b1d1c366a683f19929e0e0f10df9ee4ba14bb42fb2f37e63605b0828da2a92908290030190a350505050565b600254600160a060020a031633146200126e57600080fd5b600160a060020a03811615156200128457600080fd5b60028054600160a060020a031916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600062000f5e818363ffffffff6200269816565b6060620013086007848463ffffffff6200245816565b6007018054806020026020016040519081016040528092919081815260200182805480156200136157602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001342575b5050505050905092915050565b600454600160a060020a03165b90565b600454600160a060020a031681565b60015481565b600654604080517fe3ff76e4000000000000000000000000000000000000000000000000000000008152600160048201529051600092600160a060020a03169163e3ff76e491602480830192602092919082900301818787803b158015620013fa57600080fd5b505af11580156200140f573d6000803e3d6000fd5b505050506040513d60208110156200142657600080fd5b5051905090565b606080600060606200143e6200371e565b6200145160078763ffffffff6200219f16565b15156200145d57600080fd5b6200147060078763ffffffff6200227116565b805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620014f85780601f10620014cc57610100808354040283529160200191620014f8565b820191906000526020600020905b815481529060010190602001808311620014da57829003601f168201915b50505050509450620015158660076200227190919063ffffffff16565b60019081018054604080516020600295841615610100026000190190931694909404601f810183900483028501830190915280845290830182828015620015a05780601f106200157457610100808354040283529160200191620015a0565b820191906000526020600020905b8154815290600101906020018083116200158257829003601f168201915b50505050509350620015bd8660076200227190919063ffffffff16565b6002015460ff169250620015d960078763ffffffff6200227116565b6003018054806020026020016040519081016040528092919081815260200182805480156200163257602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001613575b505050505091506200164f8660076200227190919063ffffffff16565b6004015481526200166260078762002271565b6005015460208201526200167860078762002271565b6006015460408201526200168e60078762002271565b600701546060820152939592945090929091565b600254600160a060020a03163314620016ba57600080fd5b62000e7e81620026d0565b6003805460010190819055600090819081908190819081620016e662001393565b600160a060020a03161415620016fb57600080fd5b600087116200170957600080fd5b6200171c60078a63ffffffff6200219f16565b15156200172857600080fd5b6200173c60078a3363ffffffff620021cf16565b15156200174857600080fd5b6200175c60078a8a63ffffffff6200264d16565b15156200176857600080fd5b6200177b60078a63ffffffff6200227116565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519197508a96508891600160a060020a0388169163dd62ed3e9160448083019260209291908290030181600087803b158015620017eb57600080fd5b505af115801562001800573d6000803e3d6000fd5b505050506040513d60208110156200181757600080fd5b505110156200182557600080fd5b8560020160009054906101000a900460ff1660ff1685600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200187957600080fd5b505af11580156200188e573d6000803e3d6000fd5b505050506040513d6020811015620018a557600080fd5b505160ff1614620018b557600080fd5b6000866004015411620018ca5760006200195a565b8673__Percent_______________________________6342318e3d909188600401546040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b1580156200192b57600080fd5b505af415801562001940573d6000803e3d6000fd5b505050506040513d60208110156200195757600080fd5b50515b93506200196e878563ffffffff6200271a16565b6004549093506200198b908690600160a060020a03168562002732565b620019a1856200199a62001393565b8662002732565b620019cb83620019ba60078c8c63ffffffff6200245816565b600501549063ffffffff6200225e16565b620019df60078b8b63ffffffff6200245816565b60050155600480546040805160e260020a630547cdcd028152600160a060020a038d81169482019490945290516000939092169163151f37349160248082019260209290919082900301818787803b15801562001a3b57600080fd5b505af115801562001a50573d6000803e3d6000fd5b505050506040513d602081101562001a6757600080fd5b5051600160a060020a0316141562001c485760028601548690600182019060ff1662001a926200373d565b60ff8216604082015260608082528454600260001961010060018416150201909116049082018190528190602082019060808301908790801562001b1a5780601f1062001aee5761010080835404028352916020019162001b1a565b820191906000526020600020905b81548152906001019060200180831162001afc57829003601f168201915b505083810382528554600260001961010060018416150201909116048082526020909101908690801562001b925780601f1062001b665761010080835404028352916020019162001b92565b820191906000526020600020905b81548152906001019060200180831162001b7457829003601f168201915b505095505050505050604051809103906000f08015801562001bb8573d6000803e3d6000fd5b5060048054604080517fa0736912000000000000000000000000000000000000000000000000000000008152600160a060020a038e8116948201949094528385166024820152905193955091169163a07369129160448082019260009290919082900301818387803b15801562001c2e57600080fd5b505af115801562001c43573d6000803e3d6000fd5b505050505b600480546040805160e260020a630547cdcd028152600160a060020a038d811694820185905291513394937f168493f0b2b7abab85259c2b490c5d5dff8fcde395381ac5084f554f7e9e2951938e938a93919092169163151f37349160248083019260209291908290030181600087803b15801562001cc657600080fd5b505af115801562001cdb573d6000803e3d6000fd5b505050506040513d602081101562001cf257600080fd5b505160408051600160a060020a039485168152602081019390935292168183015290519081900360600190a3600354811462001d2d57600080fd5b505050505050505050565b606062001d4d60078363ffffffff6200227116565b60030180548060200260200160405190810160405280929190818152602001828054801562001da657602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001d87575b50505050509050919050565b62001dbc6200371e565b62001dc66200374e565b606062001ddc6007868663ffffffff6200264d16565b151562001de857600080fd5b62001dfc6007868663ffffffff6200245816565b60010154835262001e106007868662002458565b60020154602084015262001e276007868662002458565b60030154604084015262001e3e6007868662002458565b60040154606084015262001e556007868662002458565b60050154825262001e696007868662002458565b60060154602083015262001e806007868662002458565b60070180548060200260200160405190810160405280929190818152602001828054801562001ed957602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001eba575b505050505090509250925092565b62001ef233620024c8565b565b62001eff33620012de565b151562001f0b57600080fd5b62001fc08c8c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508a8a8a80806020026020016040519081016040528093929190818152602001838360200280828437506007999897969594508e93508d92508c91508b905063ffffffff6200291616565b5033600160a060020a03168c600160a060020a03167f02b6ecbf927eba8b506d1ceacc9ca4887d0f3978e6e1b6b3c423ceefc021b31a88888f8f8f8f6040518080602001806020018060200184810384528a8a82818152602001925060200280828437909101858103845288815260200190508888808284379091018581038352868152602001905086868082843760405192018290039b50909950505050505050505050a3505050505050505050505050565b6060806000620020856007620030fc565b51604051908082528060200260200182016040528015620020b0578160200160208202803883390190505b509150600090505b620020c46007620030fc565b518110156200212457620020d96007620030fc565b805182908110620020e657fe5b90602001906020020151610100015182828151811015156200210457fe5b600160a060020a03909216602092830290910190910152600101620020b8565b50919050565b600062000f5e60078363ffffffff6200219f16565b600554600160a060020a031681565b600254600160a060020a031690565b6000620021736007848463ffffffff6200264d16565b9392505050565b600654600160a060020a031681565b6000620021736007848463ffffffff620021cf16565b600160a060020a031660009081526001820160209081526040808320938252808320548352929052205460ff1690565b6000620021dd848462002271565b600160a060020a0383166000908152600991909101602052604090205460ff1690509392505050565b60006200221483836200219f565b15156200222057600080fd5b50600160a060020a031660009081526003919091016020908152604080832083805290915290205460ff1690565b6000620021738383600062002458565b6000828201838110156200217357600080fd5b6000826005016200228384846200334b565b815481106200228e57fe5b90600052602060002090600a0201905092915050565b600160a060020a0381161515620022ba57600080fd5b620022c6838362002206565b1515620022d257600080fd5b620022df8383836200264d565b15620022ea57600080fd5b80620022f784846200224e565b8054600160a060020a031916600160a060020a039290921691909117905562002321838362002271565b600401546200233184846200224e565b6001015562002341838362002271565b600501546200235184846200224e565b6002015562002361838362002271565b600601546200237184846200224e565b6003015562002381838362002271565b600701546200239184846200224e565b60040155620023a1838362002271565b600301620023b084846200224e565b600701908054620023c392919062003769565b50600160a060020a03808316600090815260038501602090815260408083209385168352929052908120805460ff1916600117905562002407908490849062003382565b600160a060020a039283166000818152600486016020908152604080832095909616825284815285822093909355908152600390940181528284208480528152828420805460ff1916905552812055565b6000620024678484846200264d565b15156200247357600080fd5b600160a060020a038084166000908152600286016020908152604080832060048901835281842094871684529390915290205481548110620024b157fe5b906000526020600020906008020190509392505050565b620024db60008263ffffffff620033cb16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b60606200252083836200219f565b15156200252c57600080fd5b600160a060020a0382166000908152600284016020908152604080832080548251818502810185019093528083529193909284015b82821015620026415760008481526020908190206040805161010081018252600886029092018054600160a060020a031683526001810154838501526002810154838301526003810154606084015260048101546080840152600581015460a0840152600681015460c08401526007810180548351818702810187019094528084529394919360e0860193928301828280156200262857602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162002609575b5050505050815250508152602001906001019062002561565b50505050905092915050565b60006200265b84846200219f565b15156200266757600080fd5b50600160a060020a039182166000908152600393909301602090815260408085209290931684525290205460ff1690565b6000600160a060020a0382161515620026b057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b620026e360008263ffffffff6200341b16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b600080838311156200272b57600080fd5b5050900390565b6000620027d08285600160a060020a03166370a08231866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156200279557600080fd5b505af1158015620027aa573d6000803e3d6000fd5b505050506040513d6020811015620027c157600080fd5b50519063ffffffff6200225e16565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151929350908616916323b872dd916064808201926020929091908290030181600087803b1580156200284657600080fd5b505af11580156200285b573d6000803e3d6000fd5b505050506040513d60208110156200287257600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915183928716916370a082319160248083019260209291908290030181600087803b158015620028da57600080fd5b505af1158015620028ef573d6000803e3d6000fd5b505050506040513d60208110156200290657600080fd5b5051146200291057fe5b50505050565b600080600160a060020a038b1615156200292f57600080fd5b86516000106200293e57600080fd5b8573__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b1580156200299357600080fd5b505af4158015620029a8573d6000803e3d6000fd5b505050506040513d6020811015620029bf57600080fd5b5051801562002a50575060648673__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002a2057600080fd5b505af415801562002a35573d6000803e3d6000fd5b505050506040513d602081101562002a4c57600080fd5b5051105b151562002a5c57600080fd5b8473__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002ab157600080fd5b505af415801562002ac6573d6000803e3d6000fd5b505050506040513d602081101562002add57600080fd5b5051801562002b6e575060648573__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002b3e57600080fd5b505af415801562002b53573d6000803e3d6000fd5b505050506040513d602081101562002b6a57600080fd5b5051105b151562002b7a57600080fd5b8373__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002bcf57600080fd5b505af415801562002be4573d6000803e3d6000fd5b505050506040513d602081101562002bfb57600080fd5b5051801562002c8c575060648473__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002c5c57600080fd5b505af415801562002c71573d6000803e3d6000fd5b505050506040513d602081101562002c8857600080fd5b5051105b151562002c9857600080fd5b8273__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002ced57600080fd5b505af415801562002d02573d6000803e3d6000fd5b505050506040513d602081101562002d1957600080fd5b5051801562002daa575060648373__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002d7a57600080fd5b505af415801562002d8f573d6000803e3d6000fd5b505050506040513d602081101562002da657600080fd5b5051105b151562002db657600080fd5b62002dc28c8c6200219f565b151562002fb5578b600501805490508c60000160008d600160a060020a0316600160a060020a031681526020019081526020016000208190555060018c60010160008d600160a060020a0316600160a060020a0316815260200190815260200160002060008e60050180549050815260200190815260200160002060006101000a81548160ff0219169083151502179055508b600501610120604051908101604052808c81526020018b81526020018a60ff168152602001600060405190808252806020026020018201604052801562002ea6578160200160208202803883390190505b50815260208082018a9052604082018990526060820188905260808201879052600160a060020a038f1660a09092019190915282546001810180855560009485529382902083518051600a9093029091019262002f0992849290910190620037be565b50602082810151805162002f249260018501920190620037be565b50604082015160028201805460ff191660ff9092169190911790556060820151805162002f5c9160038401916020909101906200383f565b506080820151600482015560a0820151600582015560c0820151600682015560e082015160078201556101009091015160089091018054600160a060020a031916600160a060020a039092169190911790555062003077565b62002fcb62002fc58d8d62002271565b6200346d565b8962002fd88d8d62002271565b815162002fe99260200190620037be565b508862002ff78d8d62002271565b60010190805190602001906200300f929190620037be565b50876200301d8d8d62002271565b600201805460ff191660ff92909216919091179055856200303f8d8d62002271565b6004015584620030508d8d62002271565b6005015583620030618d8d62002271565b6006015582620030728d8d62002271565b600701555b5060005b8651811015620030b357620030aa8c8c89848151811015156200309a57fe5b90602001906020020151620034fc565b6001016200307b565b620030bf8c8c62002206565b1515620030d257620030d28c8c620035ce565b600160a060020a038b16600090815260208d905260409020549150509a9950505050505050505050565b606081600501805480602002602001604051908101604052809291908181526020016000905b828210156200334057600084815260209081902060408051600a8602909201805460026001821615610100026000190190911604601f81018590049094028301610140908101909252610120830184815292939092849290918491840182828015620031d25780601f10620031a657610100808354040283529160200191620031d2565b820191906000526020600020905b815481529060010190602001808311620031b457829003601f168201915b50505050508152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620032785780601f106200324c5761010080835404028352916020019162003278565b820191906000526020600020905b8154815290600101906020018083116200325a57829003601f168201915b5050509183525050600282015460ff166020808301919091526003830180546040805182850281018501825282815294019392830182828015620032e657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311620032c7575b50505091835250506004820154602080830191909152600583015460408301526006830154606083015260078301546080830152600890920154600160a060020a031660a090910152908252600192909201910162003122565b505050509050919050565b60006200335983836200219f565b15156200336557600080fd5b50600160a060020a03166000908152602091909152604090205490565b6000620033918484846200264d565b15156200339d57600080fd5b50600160a060020a039182166000908152600493909301602090815260408085209290931684525290205490565b600160a060020a0381161515620033e157600080fd5b620033ed828262002698565b1515620033f957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03811615156200343157600080fd5b6200343d828262002698565b156200344857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6003810154600090811015620034f8575060005b6003820154811015620034e55760008260090160008460030184815481101515620034a857fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff191691151591909117905560010162003481565b6000620034f6600384018262003897565b505b5050565b600160a060020a03811615156200351257600080fd5b6200351f838383620021cf565b156200352a57600080fd5b62003536838362002271565b60030180546001808201835560009283526020909220018054600160a060020a031916600160a060020a03841617905562003572848462002271565b600160a060020a0383811660008181526009939093016020526040808420805460ff1916951515959095179094559251908516917ffa5891b558f0fb64bcbdc5f17fa7bbee3a47f97f4c8f523556d0494941a1e18b91a3505050565b6000620035dc838362002206565b15620035e757600080fd5b50600160a060020a0381166000818152600284016020818152604080842080546003890184528286208680528452828620805460ff191660011790558686526004890184528286208680528452828620819055958552928252805161010081018252848152808301859052808201859052606081018590526080810185905260a0810185905260c081018590528151858152928301909152919260e08301919050905281546001808201808555600094855260209485902084516008909402018054600160a060020a031916600160a060020a03909416939093178355838501519183019190915560408301516002830155606083015160038301556080830151600483015560a0830151600583015560c0830151600683015560e08301518051919462000e52926007850192909101906200383f565b6080604051908101604052806004906020820280388339509192915050565b604051611683806200390383390190565b60408051808201825290600290829080388339509192915050565b828054828255906000526020600020908101928215620037ac5760005260206000209182015b82811115620037ac5782548255916001019190600101906200378f565b50620037ba929150620038be565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200380157805160ff191683800117855562003831565b8280016001018555821562003831579182015b828111156200383157825182559160200191906001019062003814565b50620037ba929150620038e5565b828054828255906000526020600020908101928215620037ac579160200282015b82811115620037ac5782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019062003860565b815481835581811115620034f657600083815260209020620034f6918101908301620038e5565b6200137b91905b80821115620037ba578054600160a060020a0319168155600101620038c5565b6200137b91905b80821115620037ba5760008155600101620038ec560060806040523480156200001157600080fd5b50604051620016833803806200168383398101604090815281516020830151918301519083019291909101908282826200005433640100000000620000f1810204565b825162000069906001906020860190620001d6565b5081516200007f906002906020850190620001d6565b506003805460ff90921660ff19909216919091179055505060078054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a15050506200027b565b6200010c600082640100000000620012ec6200014382021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b600160a060020a03811615156200015957600080fd5b6200016e82826401000000006200019e810204565b156200017957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001b657600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021957805160ff191683800117855562000249565b8280016001018555821562000249579182015b82811115620002495782518255916020019190600101906200022c565b50620002579291506200025b565b5090565b6200027891905b8082111562000257576000815560010162000262565b90565b6113f8806200028b6000396000f3006080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d75780631785f53c1461020f57806318160ddd146102325780632348238c1461025957806323b872dd1461027a57806324d7806c146102a4578063313ce567146102c557806339509351146102f057806342966c68146103145780634afbf5ee1461032c5780636618846314610350578063704802751461037457806370a082311461039557806379cc6790146103b65780638bad0c0a146103da57806395d89b41146103ef5780639d2e477714610404578063a457c2d714610431578063a9059cbb14610455578063c6dbdf6114610479578063d0047acf146104aa578063d294cb0f146104d7578063d73dd623146104f8578063dd62ed3e1461051c575b600080fd5b34801561015957600080fd5b50610162610543565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019c578181015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e357600080fd5b506101fb600160a060020a03600435166024356105d8565b604080519115158252519081900360200190f35b34801561021b57600080fd5b50610230600160a060020a0360043516610656565b005b34801561023e57600080fd5b50610247610679565b60408051918252519081900360200190f35b34801561026557600080fd5b50610230600160a060020a036004351661067f565b34801561028657600080fd5b506101fb600160a060020a0360043581169060243516604435610712565b3480156102b057600080fd5b506101fb600160a060020a036004351661075a565b3480156102d157600080fd5b506102da610772565b6040805160ff9092168252519081900360200190f35b3480156102fc57600080fd5b506101fb600160a060020a036004351660243561077b565b34801561032057600080fd5b5061023060043561082b565b34801561033857600080fd5b50610247600160a060020a0360043516602435610835565b34801561035c57600080fd5b506101fb600160a060020a036004351660243561085d565b34801561038057600080fd5b50610230600160a060020a0360043516610870565b3480156103a157600080fd5b50610247600160a060020a0360043516610890565b3480156103c257600080fd5b50610230600160a060020a03600435166024356108ab565b3480156103e657600080fd5b506102306108b9565b3480156103fb57600080fd5b506101626108c4565b34801561041057600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610922565b34801561043d57600080fd5b506101fb600160a060020a036004351660243561096d565b34801561046157600080fd5b506101fb600160a060020a03600435166024356109b8565b34801561048557600080fd5b5061048e6109f7565b60408051600160a060020a039092168252519081900360200190f35b3480156104b657600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610a06565b3480156104e357600080fd5b50610247600160a060020a0360043516610a47565b34801561050457600080fd5b506101fb600160a060020a0360043516602435610b50565b34801561052857600080fd5b50610247600160a060020a0360043581169060243516610b5c565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b820191906000526020600020905b8154815290600101906020018083116105b157829003601f168201915b5050505050905090565b6000600160a060020a03831615156105ef57600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600754600160a060020a0316331461066d57600080fd5b61067681610b87565b50565b60065490565b600754600160a060020a0316331461069657600080fd5b600160a060020a03811615156106ab57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600061071d84610bcf565b600160a060020a038316151561073257600080fd5b61073b84610a47565b82111561074757600080fd5b610752848484610d55565b949350505050565b600061076c818363ffffffff610de816565b92915050565b60035460ff1690565b6000600160a060020a038316151561079257600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff610e1f16565b336000818152600560209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6106763382610e31565b600160a060020a03919091166000908152600860209081526040808320938352929052205490565b6000610869838361096d565b9392505050565b600754600160a060020a0316331461088757600080fd5b61067681610e59565b600160a060020a031660009081526004602052604090205490565b6108b58282610ea1565b5050565b6108c233610b87565b565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b600061092d3361075a565b151561093857600080fd5b61094284846109b8565b50428263ffffffff1611156109635761096333858463ffffffff1686610ec9565b5060019392505050565b6000600160a060020a038316151561098457600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff61100316565b60006109c333610bcf565b600160a060020a03831615156109d857600080fd5b6109e133610a47565b8211156109ed57600080fd5b610869838361101a565b600754600160a060020a031690565b6000610a113361075a565b1515610a1c57600080fd5b610a268484611030565b428263ffffffff161115610963576109636000858463ffffffff1686610ec9565b600080610a5383610890565b600160a060020a03841660009081526008602090815260408083208380529091529020549092501515610a8557610b4a565b5060005b600160a060020a038316600090815260096020526040902054811015610b4a57600160a060020a0383166000908152600960205260409020805442919083908110610ad057fe5b9060005260206000200154101515610b4257600160a060020a0383166000908152600860209081526040808320600990925282208054610b3f93919085908110610b1657fe5b90600052602060002001548152602001908152602001600020548361100390919063ffffffff16565b91505b600101610a89565b50919050565b6000610869838361077b565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610b9860008263ffffffff6110dc16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515610be657600080fd5b600160a060020a03821660009081526008602090815260408083208380529091529020541515610c15576108b5565b5060005b600160a060020a0382166000908152600960205260409020548110156108b557600160a060020a0382166000908152600960205260409020805442919083908110610c6057fe5b90600052602060002001541015610d4d57600160a060020a0382166000908152600860209081526040808320600990925282208054610ceb93919085908110610ca557fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526008845282822082805290935220549063ffffffff61100316565b600160a060020a03831660008181526008602090815260408083208380528083528184209590955592825260099052908120805491929183919085908110610d2f57fe5b90600052602060002001548152602001908152602001600020819055505b600101610c19565b600160a060020a0383166000908152600560209081526040808320338452909152812054821115610d8557600080fd5b600160a060020a0384166000908152600560209081526040808320338452909152902054610db9908363ffffffff61100316565b600160a060020a0385166000908152600560209081526040808320338452909152902055610963848484611128565b6000600160a060020a0382161515610dff57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b60008282018381101561086957600080fd5b610e3a82610bcf565b610e4382610a47565b811115610e4f57600080fd5b6108b5828261121c565b610e6a60008263ffffffff6112ec16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b610eaa82610bcf565b610eb382610a47565b811115610ebf57600080fd5b6108b5828261133a565b600160a060020a0383166000908152600860209081526040808320838052909152902054610efd908263ffffffff610e1f16565b600160a060020a03841660009081526008602090815260408083208380529091528082209290925583815220541515610f5c57600160a060020a0383166000908152600960209081526040822080546001810182559083529120018290555b600160a060020a0383166000908152600860209081526040808320858452909152902054610f90908263ffffffff610e1f16565b600160a060020a0380851660008181526008602090815260408083208884528252918290209490945580519288168352928201528082018390526060810184905290517f4dd99b63a45b55ac0b6999b9307251132e130b3e3f06c04c92b946c0f9e0dc279181900360800190a150505050565b6000808383111561101357600080fd5b5050900390565b6000611027338484611128565b50600192915050565b600160a060020a038216151561104557600080fd5b600654611058908263ffffffff610e1f16565b600655600160a060020a038216600090815260046020526040902054611084908263ffffffff610e1f16565b600160a060020a03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a03811615156110f157600080fd5b6110fb8282610de8565b151561110657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03831660009081526004602052604090205481111561114d57600080fd5b600160a060020a038216151561116257600080fd5b600160a060020a03831660009081526004602052604090205461118b908263ffffffff61100316565b600160a060020a0380851660009081526004602052604080822093909355908416815220546111c0908263ffffffff610e1f16565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a038216151561123157600080fd5b600160a060020a03821660009081526004602052604090205481111561125657600080fd5b600654611269908263ffffffff61100316565b600655600160a060020a038216600090815260046020526040902054611295908263ffffffff61100316565b600160a060020a0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a038116151561130157600080fd5b61130b8282610de8565b1561131557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038216600090815260056020908152604080832033845290915290205481111561136a57600080fd5b600160a060020a038216600090815260056020908152604080832033845290915290205461139e908263ffffffff61100316565b600160a060020a03831660009081526005602090815260408083203384529091529020556108b58282610e315600a165627a7a72305820062db0e6b0457b0016fe92cec01a2f813c664af8fd4f12281ebacf073384bab80029a165627a7a72305820262be86e0da6780e73b6746d661bbb07621435ca52c789af3e9a181014829b410029", + "sourceMap": "737:10604:1:-;;;1701:391;8:9:-1;5:2;;;30:1;27;20:12;5:2;1701:391:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;306:21:3;316:10;306:9;;;;:21;:::i;:::-;123:7:48;:18;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;417:28;;;-1:-1:-1;;;;;436:8:55;;;;417:28;;;;;;;;;;;;559:1:62;543:13;:17;-1:-1:-1;;;;;1889:22:1;;;;1881:31;;;;;;-1:-1:-1;;;;;1930:22:1;;;;1922:31;;;;;;-1:-1:-1;;;;;1971:24:1;;;;1963:33;;;;;;2007:9;:22;;-1:-1:-1;;;;;;2007:22:1;;;-1:-1:-1;;;;;2007:22:1;;;;;;;2039:7;:18;;;;;;;;;;;;;;2067:7;:18;;;;;;;;;;-1:-1:-1;737:10604:1;;612:115:3;667:19;:6;678:7;667:10;;;;;;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;737:10604:1:-;;;;;;;", + "deployedSourceMap": "737:10604:1:-;;;;;;;;;-1:-1:-1;;;737:10604:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5171:1784;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5171:1784:1;-1:-1:-1;;;;;5171:1784:1;;;;;;;;;;;2195:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2195:97:1;-1:-1:-1;;;;;2195:97:1;;;;;9687:346;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9687:346:1;-1:-1:-1;;;;;9687:346:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9687:346:1;;;;;;;;;;;;;;;;;10216:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10216:145:1;-1:-1:-1;;;;;10216:145:1;;;;;;;;;;;;;;;;;;;;;;;6961:1015;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6961:1015:1;-1:-1:-1;;;;;6961:1015:1;;;;;;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;-1:-1:-1;;;;;855:171:55;;;;;423:104:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;423:104:3;-1:-1:-1;;;;;423:104:3;;;;;8117:176:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8117:176:1;-1:-1:-1;;;;;8117:176:1;;;;;;;;;;8299:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8299:97:1;;;;;;;;-1:-1:-1;;;;;8299:97:1;;;;;;;;;;;;;;980:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;980:32:1;;;;53:19:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:48;;;;;;;;;;;;;;;;;;;;11225:114:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11225:114:1;;;;8402:689;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8402:689:1;-1:-1:-1;;;;;8402:689:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8402:689:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8402:689:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8402:689:1;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8402:689:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8402:689:1;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8402:689:1;;;;;;;;;;;;;;;;;;;;;;;2098:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2098:91:1;-1:-1:-1;;;;;2098:91:1;;;;;3109:1557;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3109:1557:1;-1:-1:-1;;;;;3109:1557:1;;;;;;;;;;;;7982:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7982:129:1;-1:-1:-1;;;;;7982:129:1;;;;;10367:852;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10367:852:1;-1:-1:-1;;;;;10367:852:1;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10367:852:1;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10367:852:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10367:852:1;;;;;;;;;;;;;;;;;;;533:73:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;533:73:3;;;;2298:634:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2298:634:1;;;;-1:-1:-1;;;;;2298:634:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9097:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9097:298:1;;;;9401:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9401:131:1;-1:-1:-1;;;;;9401:131:1;;;;;1018:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1018:35:1;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;10039:171:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10039:171:1;-1:-1:-1;;;;;10039:171:1;;;;;;;;;;1059:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1059:23:1;;;;9538:143;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9538:143:1;-1:-1:-1;;;;;9538:143:1;;;;;;;;;;5171:1784;954:13:62;:18;;971:1;954:18;;;;;5705:49:1;;;;;;;5281:15;:13;:15::i;:::-;-1:-1:-1;;;;;5281:29:1;;;5273:38;;;;;;5329:35;:9;5358:5;5329:35;:28;:35;:::i;:::-;5321:44;;;;;;;;5383:42;:9;5407:5;5414:10;5383:42;:23;:42;:::i;:::-;5375:51;;;;;;;;5444:43;:9;5481:5;5444:43;:36;:43;:::i;:::-;5436:52;;;;;;;;5602:82;5670:13;5602:43;:9;5639:5;5602:43;:36;:43;:::i;:::-;:63;;;;:82;:67;:82;:::i;:::-;5519:43;:9;5556:5;5519:43;:36;:43;:::i;:::-;:63;;;:165;;5498:196;;;;;;5757:25;:9;5776:5;5757:25;:18;:25;:::i;:::-;5809:9;;;5836:17;;;;5809:45;;;-1:-1:-1;;;;;5809:45:1;;-1:-1:-1;;;;;5836:17:1;;;5809:45;;;;;;;;5705:77;;-1:-1:-1;5809:9:1;;:26;;:45;;;;;;;;;;;;;;;:9;;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;5809:45:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5809:45:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5809:45:1;5891:7;;5928:17;;;;5809:45;;-1:-1:-1;;;;;;5891:7:1;;;;:23;;5928:17;5809:45;5988:5;6007:15;:13;:15::i;:::-;6036:11;:25;;;6075:11;:32;;;6121:11;:29;;;6172:9;;;;;;;;;-1:-1:-1;;;;;6172:9:1;6196:11;:18;;5891:333;;;;;-1:-1:-1;;;5891:333:1;;;;;;;-1:-1:-1;;;;;5891:333:1;-1:-1:-1;;;;;5891:333:1;;;;;;-1:-1:-1;;;;;5891:333:1;-1:-1:-1;;;;;5891:333:1;;;;;;;;;;;-1:-1:-1;;;;;5891:333:1;-1:-1:-1;;;;;5891:333:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5891:333:1;-1:-1:-1;;;;;5891:333:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5891:333:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5891:333:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5891:333:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5891:333:1;6235:30;;;;;;6254:10;6235:30;;;;;;5891:333;;-1:-1:-1;;;;;;6235:18:1;;;;;:30;;;;;-1:-1:-1;;6235:30:1;;;;;;;;-1:-1:-1;6235:18:1;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;6235:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6235:30:1;;;;6275:9;-1:-1:-1;;;;;6275:17:1;;:19;;;;;-1:-1:-1;;;6275:19:1;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6275:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6275:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6275:19:1;:40;;;;;;6304:10;6275:40;;;;;;-1:-1:-1;;;;;6275:28:1;;;;;;:40;;;;;-1:-1:-1;;6275:40:1;;;;;;;;-1:-1:-1;6275:28:1;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;6275:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6275:40:1;;;;6325:6;-1:-1:-1;;;;;6325:15:1;;6349:9;6325:35;;;;;-1:-1:-1;;;6325:35:1;;;;;;;-1:-1:-1;;;;;6325:35:1;-1:-1:-1;;;;;6325:35:1;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6325:35:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;6371:56:1;;-1:-1:-1;6371:9:1;;-1:-1:-1;6401:5:1;;-1:-1:-1;6416:9:1;6371:56;:29;:56;:::i;:::-;6477:1;6442:11;:32;;;:36;6438:336;;;6494:9;;6536:17;;;;-1:-1:-1;;;;;6494:9:1;;;;:17;;6536;6580:9;6608:58;:9;6640:5;6580:9;6608:58;:31;:58;:::i;:::-;:78;;;:107;;;;6716:11;:32;;;6608:141;;;;;-1:-1:-1;;;6608:141:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6608:141:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6608:141:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6608:141:1;6494:269;;;-1:-1:-1;;;6494:269:1;;;;;;-1:-1:-1;;;;;6494:269:1;;;;;;;;;;;;;;;;;;;;;;;;;;6608:141;;6494:269;;;;;;;-1:-1:-1;6494:269:1;;;;5:2:-1;;;;30:1;27;20:12;5:2;6494:269:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6494:269:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6438:336:1;6784:62;6805:5;6820:9;6832:13;6784:20;:62::i;:::-;6883:17;;;;6862:86;;;-1:-1:-1;;;;;6862:86:1;;;;;;;;;;;;;6902:10;;6883:17;;;;6862:86;;;;;;;;1051:13:62;;1035:29;;1027:38;;;;;;5171:1784:1;;;;;;;:::o;2195:97::-;586:8:55;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;2263:22:1;2276:8;2263:12;:22::i;:::-;2195:97;:::o;9687:346::-;9748:9;;9863:6;9809:30;:9;9833:5;9809:30;:23;:30;:::i;:::-;:37;9795:52;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9795:52:1;;9769:78;;9872:1;9863:10;;9858:145;9879:30;:9;9903:5;9879:30;:23;:30;:::i;:::-;:37;9875:1;:41;9858:145;;;9949:30;:9;9973:5;9949:30;:23;:30;:::i;:::-;:33;;9980:1;;9949:33;;;;;;;;;;;;;;;:43;9937:9;;:6;;9944:1;;9937:9;;;;;;-1:-1:-1;;;;;9937:55:1;;;:9;;;;;;;;;;:55;9918:3;;9858:145;;;-1:-1:-1;10020:6:1;9687:346;-1:-1:-1;;9687:346:1:o;10216:145::-;10288:4;10311:43;:9;10348:5;10311:43;:36;:43;:::i;:::-;10304:50;10216:145;-1:-1:-1;;10216:145:1:o;6961:1015::-;7577:14;7070:17;;;7062:26;;;;;;7106:35;:9;7135:5;7106:35;:28;:35;:::i;:::-;7098:44;;;;;;;;7160:42;:9;7184:5;7191:10;7160:42;:23;:42;:::i;:::-;7152:51;;;;;;;;7221;:9;7255:5;7262:9;7221:51;:33;:51;:::i;:::-;7213:60;;;;;;;;7299:9;;;:33;;;-1:-1:-1;;;;;7299:33:1;;-1:-1:-1;;;;;7299:33:1;;;;;;;;;;;;-1:-1:-1;;7299:9:1;;;;:26;;:33;;;;;;;;;;;;;;;-1:-1:-1;7299:9:1;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;7299:33:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7299:33:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7299:33:1;-1:-1:-1;;;;;7291:56:1;;;7283:65;;;;;;7468:88;7542:13;7468:49;:9;7500:5;7507:9;7468:49;:31;:49;:::i;:88::-;7379:49;:9;7411:5;7418:9;7379:49;:31;:49;:::i;:::-;:69;;;:177;;7358:208;;;;;;7594:9;;;:33;;;-1:-1:-1;;;;;7594:33:1;;-1:-1:-1;;;;;7594:33:1;;;;;;;;;;;;:9;;;;;:26;;:33;;;;;;;;;;;;;;;:9;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;7594:33:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7594:33:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7594:33:1;;-1:-1:-1;7710:118:1;7814:13;7710:62;:9;7755:5;7762:9;7710:62;:44;:62;:::i;:118::-;7638:49;:9;7670:5;7677:9;7638:49;:31;:49;:::i;:::-;:69;;:190;7839:40;;;;;;-1:-1:-1;;;;;7839:40:1;;;;;;;;;;;;;7877:1;7839:40;;;;;;;;:11;;;;;;:40;;;;;;;;;;;;;;;;;;:11;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;7839:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7839:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7895:74:1;;;-1:-1:-1;;;;;7895:74:1;;;;;7839:40;7895:74;;;;;;;7923:10;;7895:74;;;;;;;;;;;;;6961:1015;;;;:::o;855:171:55:-;586:8;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;;;;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;423:104:3:-;478:4;501:19;478:4;512:7;501:19;:10;:19;:::i;8117:176:1:-;8202:9;8230:49;:9;8262:5;8269:9;8230:49;:31;:49;:::i;:::-;:56;;8223:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8223:63:1;;;;;;;;;;;;;;;;;;;;;;;8117:176;;;;:::o;8299:97::-;8380:9;;-1:-1:-1;;;;;8380:9:1;8299:97;;:::o;980:32::-;;;-1:-1:-1;;;;;980:32:1;;:::o;53:19:48:-;;;;:::o;11225:114:1:-;11296:7;;:36;;;;;;:7;:36;;;;;;11270:7;;-1:-1:-1;;;;;11296:7:1;;:17;;:36;;;;;;;;;;;;;;11270:7;11296;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;11296:36:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11296:36:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11296:36:1;;-1:-1:-1;11225:114:1;:::o;8402:689::-;8466:11;8479:13;8494:14;8510:16;8528:19;;:::i;:::-;8571:35;:9;8600:5;8571:35;:28;:35;:::i;:::-;8563:44;;;;;;;;8625:25;:9;8644:5;8625:25;:18;:25;:::i;:::-;8618:37;;;;;;;;;;;;;-1:-1:-1;;8618:37:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:25;8693:5;8674:9;:18;;:25;;;;:::i;:::-;:32;;;;8665:41;;;;;;;;;;;;;-1:-1:-1;;8665:41:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:32;8665:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8727:25;8746:5;8727:9;:18;;:25;;;;:::i;:::-;:34;;;;;;-1:-1:-1;8780:25:1;:9;8799:5;8780:25;:18;:25;:::i;:::-;:32;;8771:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8771:41:1;;;;;;;;;;;;;;;;;;;;;;;8839:25;8858:5;8839:9;:18;;:25;;;;:::i;:::-;:36;;;8822:53;;8902:25;:9;8921:5;8902:18;:25::i;:::-;:39;;;8885:14;;;:56;8968:25;:9;8987:5;8968:18;:25::i;:::-;:46;;;8951:14;;;:63;9041:25;:9;9060:5;9041:18;:25::i;:::-;:43;;;9024:14;;;:60;8402:689;;;;-1:-1:-1;8402:689:1;;;;:::o;2098:91::-;586:8:55;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;2163:19:1;2173:8;2163:9;:19::i;3109:1557::-;954:13:62;:18;;971:1;954:18;;;;;3471:49:1;;;;;;;;;;;3216:15;:13;:15::i;:::-;-1:-1:-1;;;;;3216:29:1;;;3208:38;;;;;;3273:1;3264:10;;3256:19;;;;;;3293:35;:9;3322:5;3293:35;:28;:35;:::i;:::-;3285:44;;;;;;;;3347:42;:9;3371:5;3378:10;3347:42;:23;:42;:::i;:::-;3339:51;;;;;;;;3408;:9;3442:5;3449:9;3408:51;:33;:51;:::i;:::-;3400:60;;;;;;;;3523:25;:9;3542:5;3523:25;:18;:25;:::i;:::-;3628:50;;;;;;3652:10;3628:50;;;;3672:4;3628:50;;;;;;3471:77;;-1:-1:-1;3603:5:1;;-1:-1:-1;3682:6:1;;-1:-1:-1;;;;;3628:23:1;;;;;:50;;;;;;;;;;;;;;-1:-1:-1;3628:23:1;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;3628:50:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3628:50:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3628:50:1;:60;;3620:69;;;;;;3735:11;:20;;;;;;;;;;;;3707:48;;:13;-1:-1:-1;;;;;3707:22:1;;:24;;;;;-1:-1:-1;;;3707:24:1;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3707:24:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3707:24:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3707:24:1;:48;;;3699:57;;;;;;3803:1;3778:11;:22;;;:26;:95;;3872:1;3778:95;;;3819:6;:14;;;;3834:11;:22;;;3819:38;;;;;-1:-1:-1;;;3819:38:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3819:38:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3819:38:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3819:38:1;3778:95;3767:106;-1:-1:-1;3907:15:1;:6;3767:106;3907:15;:10;:15;:::i;:::-;3977:9;;3883:39;;-1:-1:-1;3933:72:1;;3961:13;;-1:-1:-1;;;;;3977:9:1;3883:39;3933:20;:72::i;:::-;4015:65;4043:13;4059:15;:13;:15::i;:::-;4076:3;4015:20;:65::i;:::-;4163:121;4267:16;4163:62;:9;4208:5;4215:9;4163:62;:44;:62;:::i;:::-;:99;;;;:121;:103;:121;:::i;:::-;4091:49;:9;4123:5;4130:9;4091:49;:31;:49;:::i;:::-;:69;;:193;4307:9;;;:33;;;-1:-1:-1;;;;;4307:33:1;;-1:-1:-1;;;;;4307:33:1;;;;;;;;;;;;-1:-1:-1;;4307:9:1;;;;:26;;:33;;;;;;;;;;;;;;;-1:-1:-1;4307:9:1;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;4307:33:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4307:33:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4307:33:1;-1:-1:-1;;;;;4299:56:1;;4295:246;;;4437:20;;;;4399:11;;4417:18;;;;4437:20;;4388:70;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;4388:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4388:70:1;;;;;;;;-1:-1:-1;;4388:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;4473:9:1;;;:57;;;;;;-1:-1:-1;;;;;4473:57:1;;;;;;;;;;;;;;;;;;;4371:87;;-1:-1:-1;4473:9:1;;;:27;;:57;;;;;:9;;:57;;;;;;;;:9;;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;4473:57:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4473:57:1;;;;4295:246;4624:9;;;:33;;;-1:-1:-1;;;;;4624:33:1;;-1:-1:-1;;;;;4556:103:1;;;4624:33;;;;;;;;4575:10;;4556:103;;;4587:9;;4598:16;;4624:9;;;;;:26;;:33;;;;;;;;;;;;;;-1:-1:-1;4624:9:1;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;4624:33:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4624:33:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4624:33:1;4556:103;;;-1:-1:-1;;;;;4556:103:1;;;;;4624:33;4556:103;;;;;;;;;;;;;;;;;;;;;;1051:13:62;;1035:29;;1027:38;;;;;;3109:1557:1;;;;;;;;;:::o;7982:129::-;8044:9;8072:25;:9;8091:5;8072:25;:18;:25;:::i;:::-;:32;;8065:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8065:39:1;;;;;;;;;;;;;;;;;;;;;;;7982:129;;;:::o;10367:852::-;10454:19;;:::i;:::-;10475:15;;:::i;:::-;10492:16;10532:51;:9;10566:5;10573:9;10532:51;:33;:51;:::i;:::-;10524:60;;;;;;;;10612:49;:9;10644:5;10651:9;10612:49;:31;:49;:::i;:::-;:60;;;10595:77;;10699:49;:9;10731:5;10738:9;10699:31;:49::i;:::-;:63;;;10682:14;;;:80;10789:49;:9;10821:5;10828:9;10789:31;:49::i;:::-;:70;;;10772:14;;;:87;10886:49;:9;10918:5;10925:9;10886:31;:49::i;:::-;:67;;;10869:14;;;:84;10976:49;:9;11008:5;11015:9;10976:31;:49::i;:::-;:69;;;10963:82;;11068:49;:9;11100:5;11107:9;11068:31;:49::i;:::-;:69;;;11055:10;;;:82;11156:49;:9;11188:5;11195:9;11156:31;:49::i;:::-;:56;;11147:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11147:65:1;;;;;;;;;;;;;;;;;;;;;;;10367:852;;;;;:::o;533:73:3:-;575:24;588:10;575:12;:24::i;:::-;533:73::o;2298:634:1:-;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;2606:246:1;2641:5;2660:4;;2606:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2678:6;;2606:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2698:8;2720:6;;2606:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2606:9:1;;:246;;;;;-1:-1:-1;2740:10:1;;-1:-1:-1;2764:13:1;;-1:-1:-1;2791:20:1;;-1:-1:-1;2825:17:1;;-1:-1:-1;2606:246:1;:21;:246;:::i;:::-;;2892:10;-1:-1:-1;;;;;2868:57:1;2885:5;-1:-1:-1;;;;;2868:57:1;;2904:6;;2912:4;;2918:6;;2868:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2868:57:1;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2868:57:1;;;;;;;;;;;;;;-1:-1:-1;2868:57:1;;-1:-1:-1;;;;;;;;;;2868:57:1;2298:634;;;;;;;;;;;;:::o;9097:298::-;9141:9;9162:23;9247:6;9202:21;:9;:19;:21::i;:::-;:28;9188:43;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9188:43:1;;9162:69;;9256:1;9247:10;;9242:123;9263:21;:9;:19;:21::i;:::-;:28;9259:1;:32;9242:123;;;9324:21;:9;:19;:21::i;:::-;:24;;9346:1;;9324:24;;;;;;;;;;;;;;:30;;;9312:6;9319:1;9312:9;;;;;;;;;;-1:-1:-1;;;;;9312:42:1;;;:9;;;;;;;;;;:42;9293:3;;9242:123;;;-1:-1:-1;9382:6:1;9097:298;-1:-1:-1;9097:298:1:o;9401:131::-;9467:4;9490:35;:9;9519:5;9490:35;:28;:35;:::i;1018:::-;;;-1:-1:-1;;;;;1018:35:1;;:::o;664:75:55:-;726:8;;-1:-1:-1;;;;;726:8:55;664:75;:::o;10039:171:1:-;10129:4;10152:51;:9;10186:5;10193:9;10152:51;:33;:51;:::i;:::-;10145:58;10039:171;-1:-1:-1;;;10039:171:1:o;1059:23::-;;;-1:-1:-1;;;;;1059:23:1;;:::o;9538:143::-;9614:4;9637:37;:9;9661:5;9668;9637:37;:23;:37;:::i;1868:176:23:-;-1:-1:-1;;;;;1986:26:23;1963:4;1986:26;;;:19;;;:26;;;;;;;;2013:23;;;;;;;1986:51;;;;;;;;;;1868:176::o;2252:178::-;2357:4;2380:26;2389:9;2400:5;2380:8;:26::i;:::-;-1:-1:-1;;;;;2380:43:23;;;;;;:36;;;;;:43;;;;;;;;;-1:-1:-1;2252:178:23;;;;;:::o;2910:236::-;3013:4;3037:36;3056:9;3067:5;3037:18;:36::i;:::-;3029:45;;;;;;;;-1:-1:-1;;;;;;3092:35:23;;;;;:28;;;;;:35;;;;;;;;:47;;;;;;;;;;;;2910:236::o;3152:209::-;3263:9;3303:51;3325:9;3336:5;3351:1;3303:21;:51::i;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;3975:192:23;4068:16;4115:9;:15;;4131:28;4142:9;4153:5;4131:10;:28::i;:::-;4115:45;;;;;;;;;;;;;;;;;;4108:52;;3975:192;;;;:::o;7956:1218::-;-1:-1:-1;;;;;8075:23:23;;;;8067:32;;;;;;8117:44;8144:9;8155:5;8117:26;:44::i;:::-;8109:53;;;;;;;;8181:52;8205:9;8216:5;8223:9;8181:23;:52::i;:::-;8180:53;8172:62;;;;;;8302:9;8245:44;8272:9;8283:5;8245:26;:44::i;:::-;:66;;-1:-1:-1;;;;;;8245:66:23;-1:-1:-1;;;;;8245:66:23;;;;;;;;;;8379:26;8388:9;8399:5;8379:8;:26::i;:::-;:37;;;8321:44;8348:9;8359:5;8321:26;:44::i;:::-;:55;;:95;8487:26;8496:9;8507:5;8487:8;:26::i;:::-;:40;;;8426:44;8453:9;8464:5;8426:26;:44::i;:::-;:58;;:101;8605:26;8614:9;8625:5;8605:8;:26::i;:::-;:47;;;8537:44;8564:9;8575:5;8537:26;:44::i;:::-;:65;;:115;8727:26;8736:9;8747:5;8727:8;:26::i;:::-;:44;;;8662;8689:9;8700:5;8662:26;:44::i;:::-;:62;;:109;8835:26;8844:9;8855:5;8835:8;:26::i;:::-;:33;;8781:44;8808:9;8819:5;8781:26;:44::i;:::-;:51;;:87;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;8879:35:23;;;;;;;:28;;;:35;;;;;;;;:46;;;;;;;;;;;:53;;-1:-1:-1;;8879:53:23;8928:4;8879:53;;;8988:56;;8879:9;;8908:5;;8988:26;:56::i;:::-;-1:-1:-1;;;;;8942:32:23;;;;;;;:25;;;:32;;;;;;;;:43;;;;;;;;;;;;:102;;;;9054:35;;;:28;;;;:35;;;;;:47;;;;;;;;:55;;-1:-1:-1;;9054:55:23;;;9119:44;;;:48;7956:1218::o;3367:317::-;3492:9;3533:52;3557:9;3568:5;3575:9;3533:23;:52::i;:::-;3525:61;;;;;;;;-1:-1:-1;;;;;3604:28:23;;;;;;;:21;;;:28;;;;;;;;3633:25;;;:32;;;;;:43;;;;;;;;;;;;3604:73;;;;;;;;;;;;;;;;;;3597:80;;3367:317;;;;;:::o;733:123:3:-;791:22;:6;805:7;791:22;:13;:22;:::i;:::-;828:21;;-1:-1:-1;;;;;828:21:3;;;;;;;;733:123;:::o;2436:211:23:-;2526:11;2557:36;2576:9;2587:5;2557:18;:36::i;:::-;2549:45;;;;;;;;-1:-1:-1;;;;;2612:28:23;;;;;;:21;;;:28;;;;;;;;2605:35;;;;;;;;;;;;;;;;;;;2612:28;;2605:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2605:35:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2605:35:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2436:211;;;;:::o;2653:251::-;2772:4;2796:36;2815:9;2826:5;2796:18;:36::i;:::-;2788:45;;;;;;;;-1:-1:-1;;;;;;2851:35:23;;;;;;;:28;;;;;:35;;;;;;;;:46;;;;;;;;;;;;;2653:251::o;725:166:52:-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;612:115:3:-;667:19;:6;678:7;667:19;:10;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;1078:131:54:-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;4747:418:1:-;4936:20;4959:30;4983:5;4959;-1:-1:-1;;;;;4959:15:1;;4975:2;4959:19;;;;;-1:-1:-1;;;4959:19:1;;;;;;;-1:-1:-1;;;;;4959:19:1;-1:-1:-1;;;;;4959:19:1;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4959:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4959:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4959:19:1;;:30;:23;:30;:::i;:::-;5000:41;;;;;;5019:10;5000:41;;;;-1:-1:-1;;;;;5000:41:1;;;;;;;;;;;;;;;4936:53;;-1:-1:-1;5000:18:1;;;;;;:41;;;;;;;;;;;;;;;-1:-1:-1;5000:18:1;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;5000:41:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5000:41:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;5119:19:1;;;;;;-1:-1:-1;;;;;5119:19:1;;;;;;;;;5142:15;;5119;;;;;:19;;;;;5000:41;;5119:19;;;;;;;-1:-1:-1;5119:15:1;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;5119:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5119:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5119:19:1;:38;5112:46;;;;4747:418;;;;:::o;5642:2307:23:-;5973:4;;-1:-1:-1;;;;;6001:19:23;;;;5993:28;;;;;;6039:18;;6060:1;-1:-1:-1;6031:31:23;;;;;;6080:10;:20;;;;:22;;;;;-1:-1:-1;;;6080:22:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6080:22:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6080:22:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6080:22:23;:56;;;;;6133:3;6106:10;:22;;;;:24;;;;;-1:-1:-1;;;6106:24:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6106:24:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6106:24:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6106:24:23;:30;6080:56;6072:65;;;;;;;;6155:13;:23;;;;:25;;;;;-1:-1:-1;;;6155:25:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6155:25:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6155:25:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6155:25:23;:62;;;;;6214:3;6184:13;:25;;;;:27;;;;;-1:-1:-1;;;6184:27:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6184:27:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6184:27:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6184:27:23;:33;6155:62;6147:71;;;;;;;;6236:20;:30;;;;:32;;;;;-1:-1:-1;;;6236:32:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6236:32:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6236:32:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6236:32:23;:76;;;;;6309:3;6272:20;:32;;;;:34;;;;;-1:-1:-1;;;6272:34:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6272:34:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6272:34:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6272:34:23;:40;6236:76;6228:85;;;;;;;;6331:17;:27;;;;:29;;;;;-1:-1:-1;;;6331:29:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6331:29:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6331:29:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6331:29:23;:70;;;;;6398:3;6364:17;:29;;;;:31;;;;;-1:-1:-1;;;6364:31:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6364:31:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6364:31:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6364:31:23;:37;6331:70;6323:79;;;;;;;;6418:36;6437:9;6448:5;6418:18;:36::i;:::-;6417:37;6413:1229;;;6496:9;:15;;:22;;;;6470:9;:16;;:23;6487:5;-1:-1:-1;;;;;6470:23:23;-1:-1:-1;;;;;6470:23:23;;;;;;;;;;;;:48;;;;6585:4;6532:9;:19;;:26;6552:5;-1:-1:-1;;;;;6532:26:23;-1:-1:-1;;;;;6532:26:23;;;;;;;;;;;;:50;6559:9;:15;;:22;;;;6532:50;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;6603:9;:15;;6641:440;;;;;;;;;6686:4;6641:440;;;;6720:6;6641:440;;;;6758:8;6641:440;;;;;;6810:1;6796:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;6796:16:23;-1:-1:-1;6641:440:23;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6641:440:23;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;;-1:-1;6603:492:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6603:492:23;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6603:492:23;;;;;;;;;-1:-1:-1;;6603:492:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6603:492:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6603:492:23;-1:-1:-1;;;;;6603:492:23;;;;;;;;;-1:-1:-1;6413:1229:23;;;7126:41;7140:26;7149:9;7160:5;7140:8;:26::i;:::-;7126:13;:41::i;:::-;7215:4;7181:26;7190:9;7201:5;7181:8;:26::i;:::-;:38;;;;;;;;:::i;:::-;;7269:6;7233:26;7242:9;7253:5;7233:8;:26::i;:::-;:33;;:42;;;;;;;;;;;;:::i;:::-;;7327:8;7289:26;7298:9;7309:5;7289:8;:26::i;:::-;:35;;:46;;-1:-1:-1;;7289:46:23;;;;;;;;;;;;7389:10;7349:26;7358:9;7369:5;7349:8;:26::i;:::-;:37;;:50;7456:13;7413:26;7422:9;7433:5;7413:8;:26::i;:::-;:40;;:56;7533:20;7483:26;7492:9;7503:5;7483:8;:26::i;:::-;:47;;:70;7614:17;7567:26;7576:9;7587:5;7567:8;:26::i;:::-;:44;;:64;6413:1229;-1:-1:-1;7666:1:23;7652:119;7673:11;:18;7669:1;:22;7652:119;;;7712:48;7727:9;7738:5;7745:11;7757:1;7745:14;;;;;;;;;;;;;;;;;;7712;:48::i;:::-;7693:3;;7652:119;;;7786:44;7813:9;7824:5;7786:26;:44::i;:::-;7785:45;7781:121;;;7846:45;7874:9;7885:5;7846:27;:45::i;:::-;-1:-1:-1;;;;;7919:23:23;;:16;:23;;;;;;;;;;;;-1:-1:-1;5642:2307:23;;;;;;;;;;;;;:::o;1732:130::-;1803:18;1840:9;:15;;1833:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1833:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1833:22:23;;;-1:-1:-1;;1833:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1833:22:23;;;;;;;;;;;;;;;;-1:-1:-1;;;1833:22:23;;;-1:-1:-1;;1833:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1833:22:23;;;;;;;;;;;;;;;;;;;;;;;;;1732:130;;;:::o;2050:196::-;2137:4;2161:36;2180:9;2191:5;2161:18;:36::i;:::-;2153:45;;;;;;;;-1:-1:-1;;;;;;2216:23:23;:16;:23;;;;;;;;;;;;;2050:196::o;3690:279::-;3820:4;3848:52;3872:9;3883:5;3890:9;3848:23;:52::i;:::-;3840:61;;;;;;;;-1:-1:-1;;;;;;3919:32:23;;;;;;;:25;;;;;:32;;;;;;;;:43;;;;;;;;;;;3690:279::o;477:170:52:-;-1:-1:-1;;;;;552:21:52;;;;544:30;;;;;;588:18;592:4;598:7;588:3;:18::i;:::-;580:27;;;;;;;;-1:-1:-1;;;;;614:20:52;637:5;614:20;;;;;;;;;;;:28;;-1:-1:-1;;614:28:52;;;477:170::o;244:167::-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;:18::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;4173:295:23:-;4251:13;;;:20;4296:6;;4251:24;-1:-1:-1;4247:215:23;;;-1:-1:-1;4305:1:23;4291:123;4312:13;;;:20;4308:24;;4291:123;;;4394:5;4357:6;:16;;:34;4374:6;:13;;4388:1;4374:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4374:16:23;4357:34;;;;;;;;;;;;:42;;-1:-1:-1;;4357:42:23;;;;;;;;;;-1:-1:-1;4334:3:23;4291:123;;;4450:1;4427:24;:13;;;4450:1;4427:24;:::i;:::-;;4247:215;4173:295;;:::o;5248:388::-;-1:-1:-1;;;;;5357:19:23;;;;5349:28;;;;;;5428:38;5442:9;5453:5;5460;5428:13;:38::i;:::-;5427:39;5419:48;;;;;;5478:26;5487:9;5498:5;5478:8;:26::i;:::-;:33;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;5478:45:23;;;;;;;;;;-1:-1:-1;;;;;;5478:45:23;-1:-1:-1;;;;;5478:45:23;;;;;5533:26;5542:9;5553:5;5533:8;:26::i;:::-;-1:-1:-1;;;;;5533:43:23;;;;;;;:36;;;;;:43;;;;;;:50;;-1:-1:-1;;5533:50:23;;;;;;;;;;;5599:30;;;;;;;;;5248:388;;;:::o;4474:768::-;4638:19;4582:44;4609:9;4620:5;4582:26;:44::i;:::-;4581:45;4573:54;;;;;;-1:-1:-1;;;;;;4660:28:23;;;;;;:21;;;:28;;;;;;;;:35;;4705:28;;;:35;;;;;:47;;;;;;;;:54;;-1:-1:-1;;4705:54:23;4755:4;4705:54;;;4769:32;;;:25;;;:32;;;;;:44;;;;;;;;:61;;;4840:28;;;;;;4887:338;;4705:54;4887:338;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5194:16;;;;;;;;;;;4660:28;;4887:338;;;;5194:16;-1:-1:-1;4887:338:23;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;4840:395:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4840:395:23;-1:-1:-1;;;;;4840:395:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:18:-1;;4840:395:23;;;;;;;;;;;:::i;737:10604:1:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;737:10604:1;;;-1:-1:-1;;737:10604:1:o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;105:10:-1;737:10604:1;88:34:-1;-1:-1;737:10604:1;;;-1:-1:-1;;737:10604:1:o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:10604:1;;;-1:-1:-1;737:10604:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:10604:1;;;-1:-1:-1;737:10604:1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;737:10604:1;-1:-1:-1;;;;;737:10604:1;;;;;;;;;;;-1:-1:-1;737:10604:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;737:10604:1;;;;;;;;;;;;;;;;;;;;;;;;", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Secondary.sol\";\nimport \"openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"./crowdsale/factories/IW12CrowdsaleFactory.sol\";\nimport \"./wallets/IWallets.sol\";\nimport \"./access/roles/IAdminRole.sol\";\nimport \"./token/IWToken.sol\";\nimport \"./libs/Percent.sol\";\nimport \"./token/WToken.sol\";\nimport \"./token/exchanger/ITokenExchanger.sol\";\nimport \"./versioning/Versionable.sol\";\nimport \"./access/roles/AdminRole.sol\";\nimport \"./libs/TokenListing.sol\";\n\n\ncontract W12Lister is IAdminRole, AdminRole, Versionable, Secondary, ReentrancyGuard {\n using SafeMath for uint;\n using Percent for uint;\n using TokenListing for TokenListing.Whitelist;\n\n uint8 constant SERVICE_WALLET_ID = 1;\n\n ITokenExchanger public exchanger;\n IW12CrowdsaleFactory public factory;\n IWallets public wallets;\n\n TokenListing.Whitelist whitelist;\n\n event OwnerWhitelisted(address indexed tokenAddress, address indexed tokenOwner);\n event TokenWhitelisted(address indexed token, address indexed sender, address[] owners, string name, string symbol);\n event TokenPlaced(address indexed originalToken, address indexed sender, address crowdsale, uint tokenAmount, address placedToken);\n event CrowdsaleInitialized(address indexed token, address indexed sender, address crowdsale, uint amountForSale);\n event CrowdsaleTokenMinted(address indexed token, address indexed sender, address crowdsale, uint amount);\n\n constructor(\n uint version,\n IWallets _wallets,\n IW12CrowdsaleFactory _factory,\n ITokenExchanger _exchanger\n ) Versionable(version) public {\n require(_wallets != address(0));\n require(_factory != address(0));\n require(_exchanger != address(0));\n\n exchanger = _exchanger;\n wallets = _wallets;\n factory = _factory;\n }\n\n function addAdmin(address _account) public onlyPrimary {\n _addAdmin(_account);\n }\n\n function removeAdmin(address _account) public onlyPrimary {\n _removeAdmin(_account);\n }\n\n function whitelistToken(\n address token,\n string name,\n string symbol,\n uint8 decimals,\n address[] owners,\n uint feePercent,\n uint ethFeePercent,\n uint WTokenSaleFeePercent,\n uint trancheFeePercent\n )\n external onlyAdmin\n {\n whitelist.addOrUpdate(\n token,\n name,\n symbol,\n decimals,\n owners,\n feePercent,\n ethFeePercent,\n WTokenSaleFeePercent,\n trancheFeePercent\n );\n\n emit TokenWhitelisted(token, msg.sender, owners, name, symbol);\n }\n\n /**\n * @notice Place token for sale\n * @param token Token address\n * @param crowdsale Crowdsale address\n * @param amount Token amount to place\n */\n function placeToken(address token, address crowdsale, uint amount) external nonReentrant {\n require(serviceWallet() != address(0));\n require(amount > 0);\n require(whitelist.isTokenWhitelisted(token));\n require(whitelist.hasTokenOwner(token, msg.sender));\n require(whitelist.hasCrowdsaleWithAddress(token, crowdsale));\n\n TokenListing.WhitelistedToken storage listedToken = whitelist.getToken(token);\n\n ERC20Detailed tokenInstance = ERC20Detailed(token);\n\n require(tokenInstance.allowance(msg.sender, address(this)) >= amount);\n require(tokenInstance.decimals() == listedToken.decimals);\n\n uint fee = listedToken.feePercent > 0\n ? amount.percent(listedToken.feePercent)\n : 0;\n uint amountWithoutFee = amount.sub(fee);\n\n _secureTokenTransfer(IERC20(tokenInstance), exchanger, amountWithoutFee);\n _secureTokenTransfer(IERC20(tokenInstance), serviceWallet(), fee);\n\n whitelist.getCrowdsaleByAddress(token, crowdsale).tokensForSaleAmount = whitelist\n .getCrowdsaleByAddress(token, crowdsale)\n .tokensForSaleAmount.add(amountWithoutFee);\n\n if (address(exchanger.getWTokenByToken(token)) == address(0)) {\n IWToken wToken = new WToken(listedToken.name, listedToken.symbol, listedToken.decimals);\n\n exchanger.addTokenToListing(ERC20Detailed(token), wToken);\n }\n\n emit TokenPlaced(token, msg.sender, crowdsale, amountWithoutFee, address(exchanger.getWTokenByToken(token)));\n }\n\n /**\n * @dev Securely transfer token from sender to account\n */\n function _secureTokenTransfer(IERC20 token, address to, uint value) internal {\n // check for overflow before. we are not sure that the placed token has implemented safe math\n uint expectedBalance = token.balanceOf(to).add(value);\n\n token.transferFrom(msg.sender, to, value);\n\n // check balance to be sure it was filled correctly\n assert(token.balanceOf(to) == expectedBalance);\n }\n\n function initCrowdsale(address token, uint amountForSale, uint price) external nonReentrant {\n require(serviceWallet() != address(0));\n require(whitelist.isTokenWhitelisted(token));\n require(whitelist.hasTokenOwner(token, msg.sender));\n require(whitelist.hasNotInitialisedCrowdsale(token));\n require(\n whitelist.getNotInitialisedCrowdsale(token).tokensForSaleAmount\n >= whitelist.getNotInitialisedCrowdsale(token).wTokensIssuedAmount.add(amountForSale)\n );\n\n TokenListing.WhitelistedToken storage listedToken = whitelist.getToken(token);\n IWToken wtoken = exchanger.getWTokenByToken(listedToken.token);\n\n IW12Crowdsale crowdsale = factory.createCrowdsale(\n listedToken.token,\n address(wtoken),\n price,\n serviceWallet(),\n listedToken.ethFeePercent,\n listedToken.WTokenSaleFeePercent,\n listedToken.trancheFeePercent,\n address(exchanger),\n listedToken.owners\n );\n\n crowdsale.addAdmin(msg.sender);\n crowdsale.getFund().addAdmin(msg.sender);\n wtoken.addAdmin(address(crowdsale));\n\n whitelist.initializeCrowdsale(token, address(crowdsale));\n\n if (listedToken.WTokenSaleFeePercent > 0) {\n exchanger.approve(\n IERC20(listedToken.token),\n address(crowdsale),\n whitelist.getCrowdsaleByAddress(token, address(crowdsale)).tokensForSaleAmount\n .percent(listedToken.WTokenSaleFeePercent)\n );\n }\n\n addTokensToCrowdsale(token, address(crowdsale), amountForSale);\n\n emit CrowdsaleInitialized(listedToken.token, msg.sender, address(crowdsale), amountForSale);\n }\n\n function addTokensToCrowdsale(address token, address crowdsale, uint amountForSale) public {\n require(amountForSale > 0);\n require(whitelist.isTokenWhitelisted(token));\n require(whitelist.hasTokenOwner(token, msg.sender));\n require(whitelist.hasCrowdsaleWithAddress(token, crowdsale));\n require(address(exchanger.getWTokenByToken(token)) != address(0));\n require(\n whitelist.getCrowdsaleByAddress(token, crowdsale).tokensForSaleAmount\n >= whitelist.getCrowdsaleByAddress(token, crowdsale).wTokensIssuedAmount.add(amountForSale)\n );\n\n IWToken wtoken = exchanger.getWTokenByToken(token);\n\n whitelist.getCrowdsaleByAddress(token, crowdsale).wTokensIssuedAmount = whitelist\n .getCrowdsaleByAddress(token, crowdsale)\n .wTokensIssuedAmount.add(amountForSale);\n\n wtoken.mint(crowdsale, amountForSale, 0);\n\n emit CrowdsaleTokenMinted(token, msg.sender, address(crowdsale), amountForSale);\n }\n\n function getTokenOwners(address token) external view returns (address[]) {\n return whitelist.getToken(token).owners;\n }\n\n function getCrowdsaleOwners(address token, address crowdsale) external view returns (address[]) {\n return whitelist.getCrowdsaleByAddress(token, crowdsale).owners;\n }\n\n function getExchanger() view external returns (ITokenExchanger) {\n return exchanger;\n }\n\n function getToken(address token)\n external view returns (string name, string symbol, uint8 decimals, address[] owners, uint[4] commissions)\n {\n require(whitelist.isTokenWhitelisted(token));\n\n name = whitelist.getToken(token).name;\n symbol = whitelist.getToken(token).symbol;\n decimals = whitelist.getToken(token).decimals;\n owners = whitelist.getToken(token).owners;\n commissions[0] = whitelist.getToken(token).feePercent;\n commissions[1] = whitelist.getToken(token).ethFeePercent;\n commissions[2] = whitelist.getToken(token).WTokenSaleFeePercent;\n commissions[3] = whitelist.getToken(token).trancheFeePercent;\n }\n\n function getTokens() external view returns (address[]) {\n address[] memory result = new address[](whitelist.getTokens().length);\n\n for (uint i = 0; i < whitelist.getTokens().length; i++) {\n result[i] = whitelist.getTokens()[i].token;\n }\n\n return result;\n }\n\n function isTokenWhitelisted(address token) external view returns (bool) {\n return whitelist.isTokenWhitelisted(token);\n }\n\n function hasTokenOwner(address token, address owner) external view returns (bool) {\n return whitelist.hasTokenOwner(token, owner);\n }\n\n function getCrowdsales(address token) external view returns (address[]) {\n address[] memory result = new address[](whitelist.getCrowdsales(token).length);\n\n for (uint i = 0; i < whitelist.getCrowdsales(token).length; i++) {\n result[i] = whitelist.getCrowdsales(token)[i].crowdsale;\n }\n\n return result;\n }\n\n function hasCrowdsaleWithAddress(address token, address crowdsale) external view returns (bool) {\n return whitelist.hasCrowdsaleWithAddress(token, crowdsale);\n }\n\n function hasNotInitialisedCrowdsale(address token) public view returns (bool) {\n return whitelist.hasNotInitialisedCrowdsale(token);\n }\n\n function getCrowdsale(address token, address crowdsale)\n external view returns (uint[4] commissions, uint[2] amounts, address[] owners)\n {\n require(whitelist.hasCrowdsaleWithAddress(token, crowdsale));\n\n commissions[0] = whitelist.getCrowdsaleByAddress(token, crowdsale).feePercent;\n commissions[1] = whitelist.getCrowdsaleByAddress(token, crowdsale).ethFeePercent;\n commissions[2] = whitelist.getCrowdsaleByAddress(token, crowdsale).WTokenSaleFeePercent;\n commissions[3] = whitelist.getCrowdsaleByAddress(token, crowdsale).trancheFeePercent;\n amounts[0] = whitelist.getCrowdsaleByAddress(token, crowdsale).tokensForSaleAmount;\n amounts[1] = whitelist.getCrowdsaleByAddress(token, crowdsale).wTokensIssuedAmount;\n owners = whitelist.getCrowdsaleByAddress(token, crowdsale).owners;\n }\n\n function serviceWallet() public view returns(address) {\n return wallets.getWallet(SERVICE_WALLET_ID);\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/W12Lister.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/W12Lister.sol", "exportedSymbols": { "W12Lister": [ - 1058 + 1226 ] }, - "id": 1059, + "id": 1227, "nodeType": "SourceUnit", "nodes": [ { @@ -664,53 +733,53 @@ "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 67, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 10049, + "scope": 1227, + "sourceUnit": 12389, "src": "26:59:1", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", "id": 68, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 10135, - "src": "86:63:1", + "scope": 1227, + "sourceUnit": 12454, + "src": "86:65:1", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", + "absolutePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "file": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", "id": 69, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 9778, - "src": "150:61:1", + "scope": 1227, + "sourceUnit": 13259, + "src": "152:67:1", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", "id": 70, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 10212, - "src": "212:63:1", + "scope": 1227, + "sourceUnit": 12987, + "src": "220:71:1", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/access/rbac/RBAC.sol", - "file": "openzeppelin-solidity/contracts/access/rbac/RBAC.sol", + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "id": 71, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 9885, - "src": "276:62:1", + "scope": 1227, + "sourceUnit": 13084, + "src": "292:64:1", "symbolAliases": [], "unitAlias": "" }, @@ -719,9 +788,9 @@ "file": "./crowdsale/factories/IW12CrowdsaleFactory.sol", "id": 72, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 4563, - "src": "339:56:1", + "scope": 1227, + "sourceUnit": 4085, + "src": "357:56:1", "symbolAliases": [], "unitAlias": "" }, @@ -730,53 +799,97 @@ "file": "./wallets/IWallets.sol", "id": 73, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 9686, - "src": "396:32:1", + "scope": 1227, + "sourceUnit": 12002, + "src": "414:32:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "file": "./access/roles/IAdminRole.sol", + "id": 74, + "nodeType": "ImportDirective", + "scope": 1227, + "sourceUnit": 1376, + "src": "447:39:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "./token/IWToken.sol", + "id": 75, + "nodeType": "ImportDirective", + "scope": 1227, + "sourceUnit": 10486, + "src": "487:29:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "file": "./libs/Percent.sol", - "id": 74, + "id": 76, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 5215, - "src": "429:28:1", + "scope": 1227, + "sourceUnit": 6432, + "src": "517:28:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "./token/WToken.sol", - "id": 75, + "id": 77, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 8751, - "src": "458:28:1", + "scope": 1227, + "sourceUnit": 11049, + "src": "546:28:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "file": "./token/exchanger/ITokenExchanger.sol", - "id": 76, + "id": 78, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 9195, - "src": "487:47:1", + "scope": 1227, + "sourceUnit": 11491, + "src": "575:47:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "./versioning/Versionable.sol", - "id": 77, + "id": 79, + "nodeType": "ImportDirective", + "scope": 1227, + "sourceUnit": 11834, + "src": "623:38:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/AdminRole.sol", + "file": "./access/roles/AdminRole.sol", + "id": 80, + "nodeType": "ImportDirective", + "scope": 1227, + "sourceUnit": 1353, + "src": "662:38:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/TokenListing.sol", + "file": "./libs/TokenListing.sol", + "id": 81, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 9517, - "src": "535:38:1", + "scope": 1227, + "sourceUnit": 8173, + "src": "701:33:1", "symbolAliases": [], "unitAlias": "" }, @@ -786,117 +899,137 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 78, - "name": "Versionable", + "id": 82, + "name": "IAdminRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "598:11:1", + "referencedDeclaration": 1375, + "src": "759:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", - "typeString": "contract Versionable" + "typeIdentifier": "t_contract$_IAdminRole_$1375", + "typeString": "contract IAdminRole" } }, - "id": 79, + "id": 83, "nodeType": "InheritanceSpecifier", - "src": "598:11:1" + "src": "759:10:1" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 80, - "name": "RBAC", + "id": 84, + "name": "AdminRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9884, - "src": "611:4:1", + "referencedDeclaration": 1352, + "src": "771:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_RBAC_$9884", - "typeString": "contract RBAC" + "typeIdentifier": "t_contract$_AdminRole_$1352", + "typeString": "contract AdminRole" } }, - "id": 81, + "id": 85, "nodeType": "InheritanceSpecifier", - "src": "611:4:1" + "src": "771:9:1" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 82, - "name": "Ownable", + "id": 86, + "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "617:7:1", + "referencedDeclaration": 11833, + "src": "782:11:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Versionable_$11833", + "typeString": "contract Versionable" } }, - "id": 83, + "id": 87, "nodeType": "InheritanceSpecifier", - "src": "617:7:1" + "src": "782:11:1" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 84, + "id": 88, + "name": "Secondary", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12453, + "src": "795:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" + } + }, + "id": 89, + "nodeType": "InheritanceSpecifier", + "src": "795:9:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 90, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9777, - "src": "626:15:1", + "referencedDeclaration": 13258, + "src": "806:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9777", + "typeIdentifier": "t_contract$_ReentrancyGuard_$13258", "typeString": "contract ReentrancyGuard" } }, - "id": 85, + "id": 91, "nodeType": "InheritanceSpecifier", - "src": "626:15:1" + "src": "806:15:1" } ], "contractDependencies": [ - 8750, - 9516, - 9777, - 9884, - 10134 + 1352, + 1375, + 11048, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1058, + "id": 1226, "linearizedBaseContracts": [ - 1058, - 9777, - 10134, - 9884, - 9516 + 1226, + 13258, + 12453, + 11833, + 1352, + 1375 ], "name": "W12Lister", "nodeType": "ContractDefinition", "nodes": [ { - "id": 88, + "id": 94, "libraryName": { "contractScope": null, - "id": 86, + "id": 92, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "654:8:1", + "referencedDeclaration": 12388, + "src": "834:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "648:24:1", + "src": "828:24:1", "typeName": { - "id": 87, + "id": 93, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "667:4:1", + "src": "847:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -904,39 +1037,68 @@ } }, { - "id": 91, + "id": 97, "libraryName": { "contractScope": null, - "id": 89, + "id": 95, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5214, - "src": "683:7:1", + "referencedDeclaration": 6431, + "src": "863:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$5214", + "typeIdentifier": "t_contract$_Percent_$6431", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "677:23:1", + "src": "857:23:1", "typeName": { - "id": 90, + "id": 96, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "695:4:1", + "src": "875:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, + { + "id": 100, + "libraryName": { + "contractScope": null, + "id": 98, + "name": "TokenListing", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 8172, + "src": "891:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenListing_$8172", + "typeString": "library TokenListing" + } + }, + "nodeType": "UsingForDirective", + "src": "885:46:1", + "typeName": { + "contractScope": null, + "id": 99, + "name": "TokenListing.Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "908:22:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + } + }, { "constant": true, - "id": 94, + "id": 103, "name": "SERVICE_WALLET_ID", "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "706:36:1", + "scope": 1226, + "src": "937:36:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -944,10 +1106,10 @@ "typeString": "uint8" }, "typeName": { - "id": 92, + "id": 101, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "706:5:1", + "src": "937:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -956,14 +1118,14 @@ "value": { "argumentTypes": null, "hexValue": "31", - "id": 93, + "id": 102, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "741:1:1", + "src": "972:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -975,69 +1137,26 @@ }, { "constant": false, - "id": 97, - "name": "ROLE_ADMIN", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "748:34:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 95, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "748:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "61646d696e", - "id": 96, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "775:7:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d8", - "typeString": "literal_string \"admin\"" - }, - "value": "admin" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 99, + "id": 105, "name": "exchanger", "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "789:32:1", + "scope": 1226, + "src": "980:32:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" }, "typeName": { "contractScope": null, - "id": 98, + "id": 104, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9194, - "src": "789:15:1", + "referencedDeclaration": 11490, + "src": "980:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } }, @@ -1046,26 +1165,26 @@ }, { "constant": false, - "id": 101, + "id": 107, "name": "factory", "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "827:35:1", + "scope": 1226, + "src": "1018:35:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" }, "typeName": { "contractScope": null, - "id": 100, + "id": 106, "name": "IW12CrowdsaleFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4562, - "src": "827:20:1", + "referencedDeclaration": 4084, + "src": "1018:20:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, @@ -1074,26 +1193,26 @@ }, { "constant": false, - "id": 103, + "id": 109, "name": "wallets", "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "868:23:1", + "scope": 1226, + "src": "1059:23:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" }, "typeName": { "contractScope": null, - "id": 102, + "id": 108, "name": "IWallets", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9685, - "src": "868:8:1", + "referencedDeclaration": 12001, + "src": "1059:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" } }, @@ -1102,205 +1221,119 @@ }, { "constant": false, - "id": 109, - "name": "approvedTokensIndex", + "id": 111, + "name": "whitelist", "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "984:75:1", + "scope": 1226, + "src": "1089:32:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint16_$_$", - "typeString": "mapping(address => mapping(address => uint16))" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist" }, "typeName": { - "id": 108, - "keyType": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "993:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "984:48:1", + "contractScope": null, + "id": 110, + "name": "TokenListing.Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "1089:22:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint16_$_$", - "typeString": "mapping(address => mapping(address => uint16))" - }, - "valueType": { - "id": 107, - "keyType": { - "id": 105, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1013:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1004:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$", - "typeString": "mapping(address => uint16)" - }, - "valueType": { - "id": 106, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1024:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 112, - "name": "approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "1065:35:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 110, - "name": "ListedToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 182, - "src": "1065:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken" - } - }, - "id": 111, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1065:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage_ptr", - "typeString": "struct W12Lister.ListedToken[]" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" } }, "value": null, - "visibility": "public" + "visibility": "internal" }, { - "constant": false, + "anonymous": false, + "documentation": null, "id": 117, - "name": "approvedOwnersList", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "1144:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[])" - }, - "typeName": { + "name": "OwnerWhitelisted", + "nodeType": "EventDefinition", + "parameters": { "id": 116, - "keyType": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1154:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1144:32:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[])" - }, - "valueType": { - "baseType": { - "id": 114, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1165:7:1", + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 113, + "indexed": true, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 117, + "src": "1151:28:1", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - } + }, + "typeName": { + "id": 112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1151:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, - "id": 115, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1165:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + { + "constant": false, + "id": 115, + "indexed": true, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 117, + "src": "1181:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1181:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "name": "approvedTokensLength", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "1201:34:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 118, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1201:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } + ], + "src": "1150:58:1" }, - "value": null, - "visibility": "public" + "src": "1128:81:1" }, { "anonymous": false, "documentation": null, - "id": 129, - "name": "OwnerWhitelisted", + "id": 130, + "name": "TokenWhitelisted", "nodeType": "EventDefinition", "parameters": { - "id": 128, + "id": 129, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 121, + "id": 119, "indexed": true, - "name": "tokenAddress", + "name": "token", "nodeType": "VariableDeclaration", - "scope": 129, - "src": "1265:28:1", + "scope": 130, + "src": "1237:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1308,10 +1341,10 @@ "typeString": "address" }, "typeName": { - "id": 120, + "id": 118, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1265:7:1", + "src": "1237:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1322,12 +1355,12 @@ }, { "constant": false, - "id": 123, + "id": 121, "indexed": true, - "name": "tokenOwner", + "name": "sender", "nodeType": "VariableDeclaration", - "scope": 129, - "src": "1295:26:1", + "scope": 130, + "src": "1260:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1335,10 +1368,10 @@ "typeString": "address" }, "typeName": { - "id": 122, + "id": 120, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1295:7:1", + "src": "1260:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1349,12 +1382,49 @@ }, { "constant": false, - "id": 125, + "id": 124, + "indexed": false, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 130, + "src": "1284:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 122, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 123, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1284:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 126, "indexed": false, "name": "name", "nodeType": "VariableDeclaration", - "scope": 129, - "src": "1323:11:1", + "scope": 130, + "src": "1302:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1362,10 +1432,10 @@ "typeString": "string" }, "typeName": { - "id": 124, + "id": 125, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1323:6:1", + "src": "1302:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1376,12 +1446,12 @@ }, { "constant": false, - "id": 127, + "id": 128, "indexed": false, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 129, - "src": "1336:13:1", + "scope": 130, + "src": "1315:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1389,10 +1459,10 @@ "typeString": "string" }, "typeName": { - "id": 126, + "id": 127, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1336:6:1", + "src": "1315:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1402,28 +1472,28 @@ "visibility": "internal" } ], - "src": "1264:86:1" + "src": "1236:93:1" }, - "src": "1242:109:1" + "src": "1214:116:1" }, { "anonymous": false, "documentation": null, - "id": 139, + "id": 142, "name": "TokenPlaced", "nodeType": "EventDefinition", "parameters": { - "id": 138, + "id": 141, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 131, + "id": 132, "indexed": true, - "name": "originalTokenAddress", + "name": "originalToken", "nodeType": "VariableDeclaration", - "scope": 139, - "src": "1374:36:1", + "scope": 142, + "src": "1353:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1431,10 +1501,10 @@ "typeString": "address" }, "typeName": { - "id": 130, + "id": 131, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1374:7:1", + "src": "1353:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1445,12 +1515,39 @@ }, { "constant": false, - "id": 133, + "id": 134, "indexed": true, - "name": "tokenOwner", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 142, + "src": "1384:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 133, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 136, + "indexed": false, + "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 139, - "src": "1412:26:1", + "scope": 142, + "src": "1408:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1458,10 +1555,10 @@ "typeString": "address" }, "typeName": { - "id": 132, + "id": 135, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1412:7:1", + "src": "1408:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1472,12 +1569,12 @@ }, { "constant": false, - "id": 135, + "id": 138, "indexed": false, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 139, - "src": "1440:16:1", + "scope": 142, + "src": "1427:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1485,10 +1582,10 @@ "typeString": "uint256" }, "typeName": { - "id": 134, + "id": 137, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1440:4:1", + "src": "1427:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1499,12 +1596,12 @@ }, { "constant": false, - "id": 137, + "id": 140, "indexed": false, - "name": "placedTokenAddress", + "name": "placedToken", "nodeType": "VariableDeclaration", - "scope": 139, - "src": "1458:26:1", + "scope": 142, + "src": "1445:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1512,10 +1609,10 @@ "typeString": "address" }, "typeName": { - "id": 136, + "id": 139, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1458:7:1", + "src": "1445:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1525,28 +1622,28 @@ "visibility": "internal" } ], - "src": "1373:112:1" + "src": "1352:113:1" }, - "src": "1356:130:1" + "src": "1335:131:1" }, { "anonymous": false, "documentation": null, - "id": 147, + "id": 152, "name": "CrowdsaleInitialized", "nodeType": "EventDefinition", "parameters": { - "id": 146, + "id": 151, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 141, + "id": 144, "indexed": true, - "name": "tokenAddress", + "name": "token", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1518:28:1", + "scope": 152, + "src": "1498:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1554,10 +1651,10 @@ "typeString": "address" }, "typeName": { - "id": 140, + "id": 143, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1518:7:1", + "src": "1498:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1568,12 +1665,39 @@ }, { "constant": false, - "id": 143, + "id": 146, "indexed": true, - "name": "tokenOwner", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "1521:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 145, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1521:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 148, + "indexed": false, + "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1548:26:1", + "scope": 152, + "src": "1545:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1581,10 +1705,10 @@ "typeString": "address" }, "typeName": { - "id": 142, + "id": 147, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1548:7:1", + "src": "1545:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1595,12 +1719,12 @@ }, { "constant": false, - "id": 145, + "id": 150, "indexed": false, "name": "amountForSale", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1576:18:1", + "scope": 152, + "src": "1564:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1608,10 +1732,10 @@ "typeString": "uint256" }, "typeName": { - "id": 144, + "id": 149, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1576:4:1", + "src": "1564:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1621,28 +1745,28 @@ "visibility": "internal" } ], - "src": "1517:78:1" + "src": "1497:86:1" }, - "src": "1491:105:1" + "src": "1471:113:1" }, { "anonymous": false, "documentation": null, - "id": 155, + "id": 162, "name": "CrowdsaleTokenMinted", "nodeType": "EventDefinition", "parameters": { - "id": 154, + "id": 161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 149, + "id": 154, "indexed": true, - "name": "tokenAddress", + "name": "token", "nodeType": "VariableDeclaration", - "scope": 155, - "src": "1628:28:1", + "scope": 162, + "src": "1616:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1650,10 +1774,10 @@ "typeString": "address" }, "typeName": { - "id": 148, + "id": 153, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1628:7:1", + "src": "1616:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1664,12 +1788,12 @@ }, { "constant": false, - "id": 151, + "id": 156, "indexed": true, - "name": "tokenOwner", + "name": "sender", "nodeType": "VariableDeclaration", - "scope": 155, - "src": "1658:26:1", + "scope": 162, + "src": "1639:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1677,10 +1801,10 @@ "typeString": "address" }, "typeName": { - "id": 150, + "id": 155, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1658:7:1", + "src": "1639:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1691,12 +1815,39 @@ }, { "constant": false, - "id": 153, + "id": 158, + "indexed": false, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 162, + "src": "1663:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 157, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1663:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 160, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 155, - "src": "1686:11:1", + "scope": 162, + "src": "1682:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1704,10 +1855,10 @@ "typeString": "uint256" }, "typeName": { - "id": 152, + "id": 159, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1686:4:1", + "src": "1682:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1717,359 +1868,15 @@ "visibility": "internal" } ], - "src": "1627:71:1" + "src": "1615:79:1" }, - "src": "1601:98:1" - }, - { - "canonicalName": "W12Lister.ListedToken", - "id": 182, - "members": [ - { - "constant": false, - "id": 157, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1734:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 156, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1734:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 159, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1755:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 158, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1755:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 161, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1778:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 160, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1778:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 165, - "name": "approvedOwners", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1802:39:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 164, - "keyType": { - "id": 162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1810:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1802:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 163, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1821:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 167, - "name": "feePercent", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1851:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1851:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "ethFeePercent", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1876:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1876:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 171, - "name": "WTokenSaleFeePercent", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1904:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 170, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1904:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 173, - "name": "trancheFeePercent", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1939:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 172, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1939:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 175, - "name": "crowdsaleAddress", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1971:30:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - }, - "typeName": { - "contractScope": null, - "id": 174, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "1971:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 177, - "name": "tokensForSaleAmount", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "2011:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 176, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2011:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 179, - "name": "wTokensIssuedAmount", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "2045:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 178, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2045:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 181, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "2079:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 180, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2079:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "ListedToken", - "nodeType": "StructDefinition", - "scope": 1058, - "src": "1705:401:1", - "visibility": "public" + "src": "1589:106:1" }, { "body": { - "id": 235, + "id": 212, "nodeType": "Block", - "src": "2282:298:1", + "src": "1871:221:1", "statements": [ { "expression": { @@ -2081,21 +1888,153 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 201, + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 177, + "name": "_wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 166, + "src": "1889:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$12001", + "typeString": "contract IWallets" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1909:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1901:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1901:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1889:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 176, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1881:31:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 183, + "nodeType": "ExpressionStatement", + "src": "1881:31:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 189, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 197, + "id": 185, "name": "_factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "2300:8:1", + "referencedDeclaration": 168, + "src": "1930:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, @@ -2107,14 +2046,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 199, + "id": 187, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2320:1:1", + "src": "1950:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2130,20 +2069,20 @@ "typeString": "int_const 0" } ], - "id": 198, + "id": 186, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2312:7:1", + "src": "1942:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 200, + "id": 188, "isConstant": false, "isLValue": false, "isPure": true, @@ -2151,13 +2090,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2312:10:1", + "src": "1942:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2300:22:1", + "src": "1930:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2171,21 +2110,21 @@ "typeString": "bool" } ], - "id": 196, + "id": 184, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2292:7:1", + "referencedDeclaration": 13444, + "src": "1922:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 202, + "id": 190, "isConstant": false, "isLValue": false, "isPure": false, @@ -2193,15 +2132,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2292:31:1", + "src": "1922:31:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 203, + "id": 191, "nodeType": "ExpressionStatement", - "src": "2292:31:1" + "src": "1922:31:1" }, { "expression": { @@ -2213,21 +2152,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 209, + "id": 197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 205, + "id": 193, "name": "_exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 190, - "src": "2341:10:1", + "referencedDeclaration": 170, + "src": "1971:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } }, @@ -2239,14 +2178,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 207, + "id": 195, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2363:1:1", + "src": "1993:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2262,20 +2201,20 @@ "typeString": "int_const 0" } ], - "id": 206, + "id": 194, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2355:7:1", + "src": "1985:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 208, + "id": 196, "isConstant": false, "isLValue": false, "isPure": true, @@ -2283,13 +2222,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2355:10:1", + "src": "1985:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2341:24:1", + "src": "1971:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2303,21 +2242,21 @@ "typeString": "bool" } ], - "id": 204, + "id": 192, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2333:7:1", + "referencedDeclaration": 13444, + "src": "1963:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 210, + "id": 198, "isConstant": false, "isLValue": false, "isPure": false, @@ -2325,34 +2264,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2333:33:1", + "src": "1963:33:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 211, + "id": 199, "nodeType": "ExpressionStatement", - "src": "2333:33:1" + "src": "1963:33:1" }, { "expression": { "argumentTypes": null, - "id": 214, + "id": 202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 212, + "id": 200, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "2377:9:1", + "referencedDeclaration": 105, + "src": "2007:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } }, @@ -2360,45 +2299,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 213, + "id": 201, "name": "_exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 190, - "src": "2389:10:1", + "referencedDeclaration": 170, + "src": "2019:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } }, - "src": "2377:22:1", + "src": "2007:22:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } }, - "id": 215, + "id": 203, "nodeType": "ExpressionStatement", - "src": "2377:22:1" + "src": "2007:22:1" }, { "expression": { "argumentTypes": null, - "id": 218, + "id": 206, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 216, + "id": 204, "name": "wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2409:7:1", + "referencedDeclaration": 109, + "src": "2039:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" } }, @@ -2406,45 +2345,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 217, + "id": 205, "name": "_wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "2419:8:1", + "referencedDeclaration": 166, + "src": "2049:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" } }, - "src": "2409:18:1", + "src": "2039:18:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" } }, - "id": 219, + "id": 207, "nodeType": "ExpressionStatement", - "src": "2409:18:1" + "src": "2039:18:1" }, { "expression": { "argumentTypes": null, - "id": 222, + "id": 210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 220, + "id": 208, "name": "factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "2437:7:1", + "referencedDeclaration": 107, + "src": "2067:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, @@ -2452,219 +2391,82 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 221, + "id": 209, "name": "_factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "2447:8:1", + "referencedDeclaration": 168, + "src": "2077:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, - "src": "2437:18:1", + "src": "2067:18:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, - "id": 223, + "id": 211, "nodeType": "ExpressionStatement", - "src": "2437:18:1" - }, - { - "expression": { + "src": "2067:18:1" + } + ] + }, + "documentation": null, + "id": 213, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { "argumentTypes": null, - "id": 227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2465:23:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 224, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2465:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" - } - }, - "id": 226, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2465:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "id": 173, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 164, + "src": "1855:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 228, - "nodeType": "ExpressionStatement", - "src": "2465:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 230, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "2550:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2550:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 232, - "name": "ROLE_ADMIN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "2562:10:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 229, - "name": "addRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9851, - "src": "2542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,string memory)" - } - }, - "id": 233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2542:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 234, - "nodeType": "ExpressionStatement", - "src": "2542:31:1" - } - ] - }, - "documentation": null, - "id": 236, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 193, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "2266:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 194, - "modifierName": { - "argumentTypes": null, - "id": 192, - "name": "Versionable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "2254:11:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", - "typeString": "type(contract Versionable)" - } + } + ], + "id": 174, + "modifierName": { + "argumentTypes": null, + "id": 172, + "name": "Versionable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11833, + "src": "1843:11:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", + "typeString": "type(contract Versionable)" + } }, "nodeType": "ModifierInvocation", - "src": "2254:20:1" + "src": "1843:20:1" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 191, + "id": 171, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 184, + "id": 164, "name": "version", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "2133:12:1", + "scope": 213, + "src": "1722:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2672,10 +2474,10 @@ "typeString": "uint256" }, "typeName": { - "id": 183, + "id": 163, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2133:4:1", + "src": "1722:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2686,26 +2488,26 @@ }, { "constant": false, - "id": 186, + "id": 166, "name": "_wallets", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "2155:17:1", + "scope": 213, + "src": "1744:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" }, "typeName": { "contractScope": null, - "id": 185, + "id": 165, "name": "IWallets", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9685, - "src": "2155:8:1", + "referencedDeclaration": 12001, + "src": "1744:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" } }, @@ -2714,26 +2516,26 @@ }, { "constant": false, - "id": 188, + "id": 168, "name": "_factory", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "2182:29:1", + "scope": 213, + "src": "1771:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" }, "typeName": { "contractScope": null, - "id": 187, + "id": 167, "name": "IW12CrowdsaleFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4562, - "src": "2182:20:1", + "referencedDeclaration": 4084, + "src": "1771:20:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, @@ -2742,26 +2544,26 @@ }, { "constant": false, - "id": 190, + "id": 170, "name": "_exchanger", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "2221:26:1", + "scope": 213, + "src": "1810:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" }, "typeName": { "contractScope": null, - "id": 189, + "id": 169, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9194, - "src": "2221:15:1", + "referencedDeclaration": 11490, + "src": "1810:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } }, @@ -2769,26 +2571,26 @@ "visibility": "internal" } ], - "src": "2123:130:1" + "src": "1712:130:1" }, "payable": false, "returnParameters": { - "id": 195, + "id": 175, "nodeType": "ParameterList", "parameters": [], - "src": "2282:0:1" + "src": "1871:0:1" }, - "scope": 1058, - "src": "2112:468:1", + "scope": 1226, + "src": "1701:391:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 248, + "id": 224, "nodeType": "Block", - "src": "2640:47:1", + "src": "2153:36:1", "statements": [ { "expression": { @@ -2796,29 +2598,16 @@ "arguments": [ { "argumentTypes": null, - "id": 244, - "name": "_operator", + "id": 221, + "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 238, - "src": "2658:9:1", + "referencedDeclaration": 215, + "src": "2173:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 245, - "name": "ROLE_ADMIN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "2669:10:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } } ], "expression": { @@ -2826,24 +2615,20 @@ { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" } ], - "id": 243, - "name": "addRole", + "id": 220, + "name": "_addAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9851, - "src": "2650:7:1", + "referencedDeclaration": 1335, + "src": "2163:9:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,string memory)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 246, + "id": 222, "isConstant": false, "isLValue": false, "isPure": false, @@ -2851,57 +2636,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2650:30:1", + "src": "2163:19:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 247, + "id": 223, "nodeType": "ExpressionStatement", - "src": "2650:30:1" + "src": "2163:19:1" } ] }, "documentation": null, - "id": 249, + "id": 225, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 241, + "id": 218, "modifierName": { "argumentTypes": null, - "id": 240, - "name": "onlyOwner", + "id": 217, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "2630:9:1", + "referencedDeclaration": 12420, + "src": "2141:11:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2630:9:1" + "src": "2141:11:1" } ], "name": "addAdmin", "nodeType": "FunctionDefinition", "parameters": { - "id": 239, + "id": 216, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 238, - "name": "_operator", + "id": 215, + "name": "_account", "nodeType": "VariableDeclaration", - "scope": 249, - "src": "2604:17:1", + "scope": 225, + "src": "2116:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2909,10 +2694,10 @@ "typeString": "address" }, "typeName": { - "id": 237, + "id": 214, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2604:7:1", + "src": "2116:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2922,26 +2707,26 @@ "visibility": "internal" } ], - "src": "2603:19:1" + "src": "2115:18:1" }, "payable": false, "returnParameters": { - "id": 242, + "id": 219, "nodeType": "ParameterList", "parameters": [], - "src": "2640:0:1" + "src": "2153:0:1" }, - "scope": 1058, - "src": "2586:101:1", + "scope": 1226, + "src": "2098:91:1", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 1366, "visibility": "public" }, { "body": { - "id": 261, + "id": 236, "nodeType": "Block", - "src": "2750:50:1", + "src": "2253:39:1", "statements": [ { "expression": { @@ -2949,29 +2734,16 @@ "arguments": [ { "argumentTypes": null, - "id": 257, - "name": "_operator", + "id": 233, + "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "2771:9:1", + "referencedDeclaration": 227, + "src": "2276:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 258, - "name": "ROLE_ADMIN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "2782:10:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } } ], "expression": { @@ -2979,24 +2751,20 @@ { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" } ], - "id": 256, - "name": "removeRole", + "id": 232, + "name": "_removeAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9871, - "src": "2760:10:1", + "referencedDeclaration": 1351, + "src": "2263:12:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,string memory)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 259, + "id": 234, "isConstant": false, "isLValue": false, "isPure": false, @@ -3004,57 +2772,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2760:33:1", + "src": "2263:22:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 260, + "id": 235, "nodeType": "ExpressionStatement", - "src": "2760:33:1" + "src": "2263:22:1" } ] }, "documentation": null, - "id": 262, + "id": 237, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 254, + "id": 230, "modifierName": { "argumentTypes": null, - "id": 253, - "name": "onlyOwner", + "id": 229, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "2740:9:1", + "referencedDeclaration": 12420, + "src": "2241:11:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2740:9:1" + "src": "2241:11:1" } ], "name": "removeAdmin", "nodeType": "FunctionDefinition", "parameters": { - "id": 252, + "id": 228, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 251, - "name": "_operator", + "id": 227, + "name": "_account", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "2714:17:1", + "scope": 237, + "src": "2216:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3062,10 +2830,10 @@ "typeString": "address" }, "typeName": { - "id": 250, + "id": 226, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2714:7:1", + "src": "2216:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3075,26 +2843,26 @@ "visibility": "internal" } ], - "src": "2713:19:1" + "src": "2215:18:1" }, "payable": false, "returnParameters": { - "id": 255, + "id": 231, "nodeType": "ParameterList", "parameters": [], - "src": "2750:0:1" + "src": "2253:0:1" }, - "scope": 1058, - "src": "2693:107:1", + "scope": 1226, + "src": "2195:97:1", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 1374, "visibility": "public" }, { "body": { - "id": 473, + "id": 284, "nodeType": "Block", - "src": "3124:1457:1", + "src": "2596:336:1", "statements": [ { "expression": { @@ -3102,247 +2870,189 @@ "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 264, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "2641:5:1", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "id": 291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 287, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "3143:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3165:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 288, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3157:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3143:24:1", + } + }, + { + "argumentTypes": null, + "id": 265, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "2660:4:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + }, + { + "argumentTypes": null, + "id": 266, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 243, + "src": "2678:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } - ], - "id": 286, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3135:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3135:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 293, - "nodeType": "ExpressionStatement", - "src": "3135:33:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + }, { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 295, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "3186:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3210:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3202:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 298, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3202:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3186:26:1", + "id": 267, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 245, + "src": "2698:8:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 268, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "2720:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 269, + "name": "feePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 250, + "src": "2740:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 270, + "name": "ethFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 252, + "src": "2764:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 271, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2791:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 272, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2825:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 294, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3178:7:1", + "expression": { + "argumentTypes": null, + "id": 261, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "2606:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 263, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "addOrUpdate", + "nodeType": "MemberAccess", + "referencedDeclaration": 8019, + "src": "2606:21:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,string memory,string memory,uint8,address[] memory,uint256,uint256,uint256,uint256) returns (uint256)" } }, - "id": 300, + "id": 273, "isConstant": false, "isLValue": false, "isPure": false, @@ -3350,383 +3060,137 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3178:35:1", + "src": "2606:246:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 301, + "id": 274, "nodeType": "ExpressionStatement", - "src": "3178:35:1" + "src": "2606:246:1" }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "id": 276, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "2885:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 277, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "2892:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } }, - "id": 311, + "id": 278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 303, - "name": "feePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 274, - "src": "3231:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "3231:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3231:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 306, - "name": "feePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 274, - "src": "3257:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "3257:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3257:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "313030", - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3284:3:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "src": "3257:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3231:56:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2892:10:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + }, + { + "argumentTypes": null, + "id": 279, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "2904:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" } - ], - "id": 302, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3223:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3223:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 313, - "nodeType": "ExpressionStatement", - "src": "3223:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + }, { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 315, - "name": "ethFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "3306:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "3306:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3306:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 318, - "name": "ethFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "3335:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "3335:25:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3335:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "313030", - "id": 321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3365:3:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "src": "3335:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3306:62:1", + "id": 280, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "2912:4:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 281, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 243, + "src": "2918:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } ], - "id": 314, - "name": "require", + "id": 275, + "name": "TokenWhitelisted", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3298:7:1", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2868:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,address,address[] memory,string memory,string memory)" } }, - "id": 324, + "id": 282, "isConstant": false, "isLValue": false, "isPure": false, @@ -3734,64 +3198,348 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3298:71:1", + "src": "2868:57:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 325, - "nodeType": "ExpressionStatement", - "src": "3298:71:1" + "id": 283, + "nodeType": "EmitStatement", + "src": "2863:62:1" + } + ] + }, + "documentation": null, + "id": 285, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 259, + "modifierName": { + "argumentTypes": null, + "id": 258, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2582:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "2582:9:1" + } + ], + "name": "whitelistToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 257, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 327, - "name": "WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 278, - "src": "3387:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "3387:30:1", + "constant": false, + "id": 239, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2331:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2331:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 241, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2354:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 240, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2354:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 243, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2375:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 242, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2375:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 245, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2398:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 244, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 248, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2422:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 246, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2422:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 247, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2422:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 250, + "name": "feePercent", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2448:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 249, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2448:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 252, + "name": "ethFeePercent", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2473:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 251, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2473:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 254, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2501:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 253, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2501:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 256, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2536:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 255, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2536:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2321:243:1" + }, + "payable": false, + "returnParameters": { + "id": 260, + "nodeType": "ParameterList", + "parameters": [], + "src": "2596:0:1" + }, + "scope": 1226, + "src": "2298:634:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 475, + "nodeType": "Block", + "src": "3198:1468:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 297, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "3216:13:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" } }, - "id": 329, + "id": 298, "isConstant": false, "isLValue": false, "isPure": false, @@ -3799,98 +3547,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3387:32:1", + "src": "3216:15:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": "&&", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 330, - "name": "WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 278, - "src": "3423:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 331, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 300, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "fromPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "3423:32:1", + "nodeType": "Literal", + "src": "3243:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3423:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "313030", - "id": 333, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 299, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "3460:3:1", - "subdenomination": null, + "nodeType": "ElementaryTypeNameExpression", + "src": "3235:7:1", "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" }, - "value": "100" + "typeName": "address" }, - "src": "3423:40:1", + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3235:10:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "3387:76:1", + "src": "3216:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3904,21 +3625,21 @@ "typeString": "bool" } ], - "id": 326, + "id": 296, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3379:7:1", + "referencedDeclaration": 13444, + "src": "3208:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 336, + "id": 303, "isConstant": false, "isLValue": false, "isPure": false, @@ -3926,15 +3647,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3379:85:1", + "src": "3208:38:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 337, + "id": 304, "nodeType": "ExpressionStatement", - "src": "3379:85:1" + "src": "3208:38:1" }, { "expression": { @@ -3943,146 +3664,48 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 347, + "id": 308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 339, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "3482:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "3482:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3482:29:1", + "id": 306, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 291, + "src": "3264:6:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "&&", + "operator": ">", "rightExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 346, + "hexValue": "30", + "id": 307, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 342, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "3515:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "3515:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3515:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "313030", - "id": 345, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3549:3:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "src": "3515:37:1", + "nodeType": "Literal", + "src": "3273:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "3482:70:1", + "src": "3264:10:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4096,21 +3719,21 @@ "typeString": "bool" } ], - "id": 338, + "id": 305, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3474:7:1", + "referencedDeclaration": 13444, + "src": "3256:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 348, + "id": 309, "isConstant": false, "isLValue": false, "isPure": false, @@ -4118,15 +3741,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3474:79:1", + "src": "3256:19:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 349, + "id": 310, "nodeType": "ExpressionStatement", - "src": "3474:79:1" + "src": "3256:19:1" }, { "expression": { @@ -4134,119 +3757,70 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 314, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "3322:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 352, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "3588:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 353, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "3602:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 351, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "3571:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3571:42:1", + "id": 312, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "3293:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 355, + "id": 313, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "tokenAddress", + "memberName": "isTokenWhitelisted", "nodeType": "MemberAccess", - "referencedDeclaration": 181, - "src": "3571:55:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 356, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "3630:12:1", + "referencedDeclaration": 7395, + "src": "3293:28:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" } }, - "src": "3571:71:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3293:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], "expression": { "argumentTypes": [ { @@ -4254,21 +3828,21 @@ "typeString": "bool" } ], - "id": 350, + "id": 311, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3563:7:1", + "referencedDeclaration": 13444, + "src": "3285:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 358, + "id": 316, "isConstant": false, "isLValue": false, "isPure": false, @@ -4276,15 +3850,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3563:80:1", + "src": "3285:44:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 359, + "id": 317, "nodeType": "ExpressionStatement", - "src": "3563:80:1" + "src": "3285:44:1" }, { "expression": { @@ -4292,124 +3866,223 @@ "arguments": [ { "argumentTypes": null, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3661:70:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { + "argumentTypes": null, + "id": 321, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "3371:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 362, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "3679:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 363, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "3693:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 361, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "3662:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3662:42:1", + "id": 322, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3378:3:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 365, + "id": 323, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "approvedOwners", + "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 165, - "src": "3662:57:1", + "referencedDeclaration": null, + "src": "3378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 319, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "3347:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 320, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7437, + "src": "3347:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3347:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 318, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3339:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3339:51:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 326, + "nodeType": "ExpressionStatement", + "src": "3339:51:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 330, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "3442:5:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 367, - "indexExpression": { + { "argumentTypes": null, - "id": 366, - "name": "tokenOwner", + "id": 331, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "3720:10:1", + "referencedDeclaration": 289, + "src": "3449:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 328, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "3408:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } }, + "id": 329, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3662:69:1", + "memberName": "hasCrowdsaleWithAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7486, + "src": "3408:33:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" } }, + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3408:51:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4423,21 +4096,21 @@ "typeString": "bool" } ], - "id": 360, + "id": 327, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3653:7:1", + "referencedDeclaration": 13444, + "src": "3400:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 369, + "id": 333, "isConstant": false, "isLValue": false, "isPure": false, @@ -4445,415 +4118,401 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3653:79:1", + "src": "3400:60:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 370, + "id": 334, "nodeType": "ExpressionStatement", - "src": "3653:79:1" + "src": "3400:60:1" }, { "assignments": [ - 372 + 338 ], "declarations": [ { "constant": false, - "id": 372, - "name": "index", + "id": 338, + "name": "listedToken", "nodeType": "VariableDeclaration", - "scope": 474, - "src": "3743:12:1", + "scope": 476, + "src": "3471:49:1", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" }, "typeName": { - "id": 371, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3743:6:1", + "contractScope": null, + "id": 337, + "name": "TokenListing.WhitelistedToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7308, + "src": "3471:29:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" } }, "value": null, "visibility": "internal" } ], - "id": 377, + "id": 343, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 374, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "3765:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" - } - }, - "id": 375, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3765:21:1", + "id": 341, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "3542:5:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 373, + "expression": { + "argumentTypes": null, + "id": 339, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "3523:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 340, "isConstant": false, - "isLValue": false, - "isPure": true, + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3758:6:1", + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "3523:18:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": "uint16" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } }, - "id": 376, + "id": 342, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3758:29:1", + "src": "3523:25:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, "nodeType": "VariableDeclarationStatement", - "src": "3743:44:1" + "src": "3471:77:1" }, { - "expression": { - "argumentTypes": null, - "id": 384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "approvedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "3798:19:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint16_$_$", - "typeString": "mapping(address => mapping(address => uint16))" - } - }, - "id": 381, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "3818:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3798:33:1", + "assignments": [ + 345 + ], + "declarations": [ + { + "constant": false, + "id": 345, + "name": "tokenInstance", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "3559:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + }, + "typeName": { + "contractScope": null, + "id": 344, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12986, + "src": "3559:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$", - "typeString": "mapping(address => uint16)" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "id": 382, - "indexExpression": { + "value": null, + "visibility": "internal" + } + ], + "id": 349, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 380, - "name": "tokenOwner", + "id": 347, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "3832:10:1", + "referencedDeclaration": 287, + "src": "3603:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3798:45:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 383, - "name": "index", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 346, + "name": "ERC20Detailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "3846:5:1", + "referencedDeclaration": 12986, + "src": "3589:13:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" } }, - "src": "3798:53:1", + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3589:20:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "id": 385, - "nodeType": "ExpressionStatement", - "src": "3798:53:1" + "nodeType": "VariableDeclarationStatement", + "src": "3559:50:1" }, { "expression": { "argumentTypes": null, - "id": 392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 386, - "name": "approvedTokensLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "3862:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3892:23:1", - "subExpression": { - "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 353, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3652:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3652:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 356, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13506, + "src": "3672:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Lister_$1226", + "typeString": "contract W12Lister" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Lister_$1226", + "typeString": "contract W12Lister" + } + ], + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3664:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3664:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "id": 388, - "name": "approvedTokens", + "id": 351, + "name": "tokenInstance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "3892:14:1", + "referencedDeclaration": 345, + "src": "3628:13:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "id": 389, + "id": 352, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberName": "length", + "lValueRequested": false, + "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3892:21:1", + "referencedDeclaration": 13037, + "src": "3628:23:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" } }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3628:50:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ - { + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 359, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 291, + "src": "3682:6:1", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 387, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3885:6:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" }, - "typeName": "uint16" - }, - "id": 391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3885:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "3862:54:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 393, - "nodeType": "ExpressionStatement", - "src": "3862:54:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 398, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "3965:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "src": "3628:60:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 394, - "name": "approvedOwnersList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "3927:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[] storage ref)" - } - }, - "id": 396, - "indexExpression": { - "argumentTypes": null, - "id": 395, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "3946:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3927:32:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3927:37:1", + "id": 350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3620:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 399, + "id": 361, "isConstant": false, "isLValue": false, "isPure": false, @@ -4861,586 +4520,739 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3927:49:1", + "src": "3620:69:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 400, + "id": 362, "nodeType": "ExpressionStatement", - "src": "3927:49:1" + "src": "3620:69:1" }, { "expression": { "argumentTypes": null, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "expression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 401, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "3987:14:1", + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 364, + "name": "tokenInstance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "3707:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + }, + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 12985, + "src": "3707:22:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" } }, - "id": 403, - "indexExpression": { + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3707:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 402, - "name": "index", + "id": 367, + "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4002:5:1", + "referencedDeclaration": 338, + "src": "3735:11:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, + "id": 368, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3987:21:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 7290, + "src": "3735:20:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "id": 404, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvedOwners", - "nodeType": "MemberAccess", - "referencedDeclaration": 165, - "src": "3987:36:1", + "src": "3707:48:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 406, - "indexExpression": { - "argumentTypes": null, - "id": 405, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "4024:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3987:48:1", + ], + "id": 363, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3699:7:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4038:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3987:55:1", + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3699:57:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 409, + "id": 371, "nodeType": "ExpressionStatement", - "src": "3987:55:1" + "src": "3699:57:1" }, { - "expression": { + "assignments": [ + 373 + ], + "declarations": [ + { + "constant": false, + "id": 373, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "3767:8:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 372, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3767:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 385, + "initialValue": { "argumentTypes": null, - "id": 415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "condition": { "argumentTypes": null, - "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 410, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4052:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" - } - }, - "id": 412, - "indexExpression": { + "expression": { "argumentTypes": null, - "id": 411, - "name": "index", + "id": 374, + "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4067:5:1", + "referencedDeclaration": 338, + "src": "3778:11:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, + "id": 375, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4052:21:1", + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7295, + "src": "3778:22:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" - } + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "id": 413, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 157, - "src": "4052:26:1", + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3803:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3778:26:1", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "falseExpression": { "argumentTypes": null, - "id": 414, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "4081:4:1", + "hexValue": "30", + "id": 383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3872:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "4052:33:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 416, - "nodeType": "ExpressionStatement", - "src": "4052:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 422, + "id": 384, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "nodeType": "Conditional", + "src": "3778:95:1", + "trueExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 417, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4095:14:1", + "expression": { + "argumentTypes": null, + "id": 380, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "3834:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 381, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7295, + "src": "3834:22:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 419, - "indexExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, - "id": 418, - "name": "index", + "id": 378, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4110:5:1", + "referencedDeclaration": 291, + "src": "3819:6:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "id": 379, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4095:21:1", + "memberName": "percent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6350, + "src": "3819:14:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 420, + "id": 382, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 159, - "src": "4095:28:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 421, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "4126:6:1", + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3819:38:1", "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "4095:37:1", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 423, - "nodeType": "ExpressionStatement", - "src": "4095:37:1" + "nodeType": "VariableDeclarationStatement", + "src": "3767:106:1" }, { - "expression": { + "assignments": [ + 387 + ], + "declarations": [ + { + "constant": false, + "id": 387, + "name": "amountWithoutFee", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "3883:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 386, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3883:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 392, + "initialValue": { "argumentTypes": null, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 390, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "3918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 424, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4142:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" - } - }, - "id": 426, - "indexExpression": { - "argumentTypes": null, - "id": 425, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4157:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4142:21:1", + "id": 388, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 291, + "src": "3907:6:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 427, + "id": 389, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberName": "decimals", + "lValueRequested": false, + "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 161, - "src": "4142:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 428, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 272, - "src": "4175:8:1", + "referencedDeclaration": 12343, + "src": "3907:10:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "src": "4142:41:1", + "id": 391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3907:15:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "4142:41:1" + "nodeType": "VariableDeclarationStatement", + "src": "3883:39:1" }, { "expression": { "argumentTypes": null, - "id": 436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 431, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4193:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "arguments": [ + { + "argumentTypes": null, + "id": 395, + "name": "tokenInstance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "3961:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } } - }, - "id": 433, - "indexExpression": { - "argumentTypes": null, - "id": 432, - "name": "index", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + ], + "id": 394, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4208:5:1", + "referencedDeclaration": 13083, + "src": "3954:6:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, + "id": 396, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4193:21:1", + "names": [], + "nodeType": "FunctionCall", + "src": "3954:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 434, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "feePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 167, - "src": "4193:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "argumentTypes": null, + "id": 397, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "3977:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + { + "argumentTypes": null, + "id": 398, + "name": "amountWithoutFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "3988:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 435, - "name": "feePercent", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 393, + "name": "_secureTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 274, - "src": "4228:10:1", + "referencedDeclaration": 514, + "src": "3933:20:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$13083_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20,address,uint256)" } }, - "src": "4193:45:1", + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3933:72:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 437, + "id": 400, "nodeType": "ExpressionStatement", - "src": "4193:45:1" + "src": "3933:72:1" }, { "expression": { "argumentTypes": null, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 438, - "name": "approvedTokens", + "arguments": [ + { + "argumentTypes": null, + "id": 403, + "name": "tokenInstance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4043:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + ], + "id": 402, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4248:14:1", + "referencedDeclaration": 13083, + "src": "4036:6:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 440, - "indexExpression": { - "argumentTypes": null, - "id": 439, - "name": "index", + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4036:21:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 405, + "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4263:5:1", + "referencedDeclaration": 1225, + "src": "4059:13:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" } }, + "id": 406, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4248:21:1", + "names": [], + "nodeType": "FunctionCall", + "src": "4059:15:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 441, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "ethFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 169, - "src": "4248:35:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "argumentTypes": null, + "id": 407, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "4076:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 442, - "name": "ethFeePercent", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 401, + "name": "_secureTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "4286:13:1", + "referencedDeclaration": 514, + "src": "4015:20:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$13083_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20,address,uint256)" } }, - "src": "4248:51:1", + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4015:65:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 444, + "id": 409, "nodeType": "ExpressionStatement", - "src": "4248:51:1" + "src": "4015:65:1" }, { "expression": { "argumentTypes": null, - "id": 450, + "id": 426, "isConstant": false, "isLValue": false, "isPure": false, @@ -5449,53 +5261,95 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 445, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4309:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "arguments": [ + { + "argumentTypes": null, + "id": 413, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "4123:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 414, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4130:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "id": 447, - "indexExpression": { - "argumentTypes": null, - "id": 446, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4324:5:1", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 410, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "4091:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 412, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "4091:31:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" } }, + "id": 415, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4309:21:1", + "names": [], + "nodeType": "FunctionCall", + "src": "4091:49:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } }, - "id": 448, + "id": 416, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberName": "WTokenSaleFeePercent", + "memberName": "tokensForSaleAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 171, - "src": "4309:42:1", + "referencedDeclaration": 7320, + "src": "4091:69:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5505,1046 +5359,746 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 449, - "name": "WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 278, - "src": "4354:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4309:65:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 451, - "nodeType": "ExpressionStatement", - "src": "4309:65:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 452, - "name": "approvedTokens", + "id": 424, + "name": "amountWithoutFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4384:14:1", + "referencedDeclaration": 387, + "src": "4267:16:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 454, - "indexExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, - "id": 453, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4399:5:1", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 419, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "4208:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 420, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4215:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 417, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "4163:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 418, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "4163:44:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4163:62:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 422, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokensForSaleAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7320, + "src": "4163:99:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "id": 423, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4384:21:1", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "4163:103:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 455, + "id": 425, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberName": "trancheFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 173, - "src": "4384:39:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 456, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "4426:17:1", + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4163:121:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4384:59:1", + "src": "4091:193:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 458, + "id": 427, "nodeType": "ExpressionStatement", - "src": "4384:59:1" + "src": "4091:193:1" }, { - "expression": { + "condition": { "argumentTypes": null, - "id": 464, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 459, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4453:14:1", + "arguments": [ + { + "argumentTypes": null, + "id": 431, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "4334:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 429, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "4307:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWTokenByToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11517, + "src": "4307:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function (address) view external returns (contract IWToken)" + } + }, + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4307:33:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } - }, - "id": 461, - "indexExpression": { - "argumentTypes": null, - "id": 460, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4468:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } - }, + ], + "id": 428, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4453:21:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "4299:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 462, + "id": 433, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberName": "tokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 181, - "src": "4453:34:1", + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4299:42:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "id": 463, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "4490:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4453:49:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 465, - "nodeType": "ExpressionStatement", - "src": "4453:49:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 467, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "4535:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 468, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "4549:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 469, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "4561:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 470, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "4567:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, + "arguments": [ { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" + "argumentTypes": null, + "hexValue": "30", + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4353:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], - "id": 466, - "name": "OwnerWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "4518:16:1", + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4345:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4345:10:1", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4518:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 472, - "nodeType": "EmitStatement", - "src": "4513:61:1" - } - ] - }, - "documentation": null, - "id": 474, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 283, - "name": "ROLE_ADMIN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "3108:10:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "id": 284, - "modifierName": { - "argumentTypes": null, - "id": 282, - "name": "onlyRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9883, - "src": "3099:8:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3099:20:1" - } - ], - "name": "whitelistToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 264, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2839:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 263, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 266, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2867:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 265, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2867:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 268, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2897:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 267, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2897:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 270, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 269, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 272, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2941:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 271, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2941:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 274, - "name": "feePercent", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2965:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 273, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2965:4:1", + "src": "4299:56:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 276, - "name": "ethFeePercent", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2990:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 275, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2990:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 278, - "name": "WTokenSaleFeePercent", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "3018:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 277, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3018:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 280, - "name": "trancheFeePercent", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "3053:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3053:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2829:252:1" - }, - "payable": false, - "returnParameters": { - "id": 285, - "nodeType": "ParameterList", - "parameters": [], - "src": "3124:0:1" - }, - "scope": 1058, - "src": "2806:1775:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 651, - "nodeType": "Block", - "src": "4812:1341:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + "falseBody": null, + "id": 460, + "nodeType": "IfStatement", + "src": "4295:246:1", + "trueBody": { + "id": 459, + "nodeType": "Block", + "src": "4357:184:1", + "statements": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 484, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4830:13:1", + "assignments": [ + 439 + ], + "declarations": [ + { + "constant": false, + "id": 439, + "name": "wToken", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "4371:14:1", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4830:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 438, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "4371:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "internal" } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + ], + "id": 449, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 487, + "expression": { + "argumentTypes": null, + "id": 442, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4399:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 443, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "4857:1:1", - "subdenomination": null, + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 7286, + "src": "4399:16:1", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 444, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4417:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } }, - "value": "0" + "id": 445, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 7288, + "src": "4417:18:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 446, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 447, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 7290, + "src": "4437:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" } ], - "id": 486, + "id": 441, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4849:7:1", + "nodeType": "NewExpression", + "src": "4388:10:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$11048_$", + "typeString": "function (string memory,string memory,uint8) returns (contract WToken)" }, - "typeName": "address" + "typeName": { + "contractScope": null, + "id": 440, + "name": "WToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11048, + "src": "4392:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_WToken_$11048", + "typeString": "contract WToken" + } + } }, - "id": 488, + "id": 448, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4849:10:1", + "src": "4388:70:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_WToken_$11048", + "typeString": "contract WToken" } }, - "src": "4830:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 483, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "4822:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4822:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 491, - "nodeType": "ExpressionStatement", - "src": "4822:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 493, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "4878:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4887:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4878:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 492, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "4870:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4870:19:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 497, - "nodeType": "ExpressionStatement", - "src": "4870:19:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "nodeType": "VariableDeclarationStatement", + "src": "4371:87:1" + }, { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 499, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "4907:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 501, + "arguments": [ + { + "argumentTypes": null, + "id": 454, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "4515:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 453, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "4501:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "id": 455, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "4931:1:1", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "4501:20:1", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + }, + { + "argumentTypes": null, + "id": 456, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 439, + "src": "4523:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + }, + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } ], - "id": 500, + "expression": { + "argumentTypes": null, + "id": 450, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "4473:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "id": 452, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4923:7:1", + "memberName": "addTokenToListing", + "nodeType": "MemberAccess", + "referencedDeclaration": 11501, + "src": "4473:27:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20Detailed_$12986_$_t_contract$_IWToken_$10485_$returns$__$", + "typeString": "function (contract ERC20Detailed,contract IWToken) external" + } }, - "id": 502, + "id": 457, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4923:10:1", + "src": "4473:57:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "src": "4907:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "4899:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "id": 458, + "nodeType": "ExpressionStatement", + "src": "4473:57:1" } - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4899:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 505, - "nodeType": "ExpressionStatement", - "src": "4899:35:1" + ] + } }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 462, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "4568:5:1", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + } + }, + { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "expression": { + "id": 463, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "4575:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4575:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 465, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4587:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 466, + "name": "amountWithoutFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "4598:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 508, - "name": "tokenAddress", + "id": 470, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "4969:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 509, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "4983:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4983:10:1", + "referencedDeclaration": 287, + "src": "4651:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6553,27 +6107,39 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_address", "typeString": "address" } ], - "id": 507, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "4952:16:1", + "expression": { + "argumentTypes": null, + "id": 468, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "4624:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWTokenByToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11517, + "src": "4624:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function (address) view external returns (contract IWToken)" } }, - "id": 511, + "id": 471, "isConstant": false, "isLValue": false, "isPure": false, @@ -6581,70 +6147,83 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4952:42:1", + "src": "4624:33:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } - }, - "id": 512, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 467, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "memberName": "tokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 181, - "src": "4952:55:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 513, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5011:12:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "4616:7:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "src": "4952:71:1", + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4616:42:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 506, - "name": "require", + "id": 461, + "name": "TokenPlaced", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "4944:7:1", + "overloadedDeclarations": [], + "referencedDeclaration": 142, + "src": "4556:11:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,address,address,uint256,address)" } }, - "id": 515, + "id": 473, "isConstant": false, "isLValue": false, "isPure": false, @@ -6652,287 +6231,302 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4944:80:1", + "src": "4556:103:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 516, - "nodeType": "ExpressionStatement", - "src": "4944:80:1" + "id": 474, + "nodeType": "EmitStatement", + "src": "4551:108:1" + } + ] + }, + "documentation": "@notice Place token for sale\n@param token Token address\n@param crowdsale Crowdsale address\n@param amount Token amount to place", + "id": 476, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 294, + "modifierName": { + "argumentTypes": null, + "id": 293, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13257, + "src": "3185:12:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "3185:12:1" + } + ], + "name": "placeToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 292, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 519, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5059:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 520, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5073:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5073:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 518, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "5042:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5042:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 523, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvedOwners", - "nodeType": "MemberAccess", - "referencedDeclaration": 165, - "src": "5042:57:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 526, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 524, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5042:69:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 517, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5034:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5034:78:1", + "constant": false, + "id": 287, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "3129:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 286, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3129:7:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 528, - "nodeType": "ExpressionStatement", - "src": "5034:78:1" + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 289, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "3144:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3144:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 291, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "3163:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 290, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3163:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3128:47:1" + }, + "payable": false, + "returnParameters": { + "id": 295, + "nodeType": "ParameterList", + "parameters": [], + "src": "3198:0:1" + }, + "scope": 1226, + "src": "3109:1557:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 513, + "nodeType": "Block", + "src": "4824:341:1", + "statements": [ { "assignments": [ - 530 + 486 ], "declarations": [ { "constant": false, - "id": 530, - "name": "token", + "id": 486, + "name": "expectedBalance", "nodeType": "VariableDeclaration", - "scope": 652, - "src": "5123:19:1", + "scope": 514, + "src": "4936:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "contractScope": null, - "id": 529, - "name": "DetailedERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10168, - "src": "5123:13:1", + "id": 485, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4936:4:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "id": 534, + "id": 494, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 532, - "name": "tokenAddress", + "id": 492, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5159:12:1", + "referencedDeclaration": 482, + "src": "4983:5:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 531, - "name": "DetailedERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10168, - "src": "5145:13:1", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 489, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "4975:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 487, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "4959:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "4959:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4959:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "4959:23:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$10168_$", - "typeString": "type(contract DetailedERC20)" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 533, + "id": 493, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5145:27:1", + "src": "4959:30:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5123:49:1" + "src": "4936:53:1" }, { "expression": { @@ -6940,258 +6534,41 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "expression": { + "argumentTypes": null, + "id": 498, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "5019:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } }, - "id": 545, + "id": 499, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 538, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5207:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5207:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 541, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10541, - "src": "5227:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Lister_$1058", - "typeString": "contract W12Lister" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Lister_$1058", - "typeString": "contract W12Lister" - } - ], - "id": 540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5219:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5219:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 536, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "5191:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 10182, - "src": "5191:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5191:42:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 544, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "5237:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5191:52:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 535, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5183:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5183:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 547, - "nodeType": "ExpressionStatement", - "src": "5183:61:1" - }, - { - "assignments": [ - 549 - ], - "declarations": [ - { - "constant": false, - "id": 549, - "name": "listedToken", - "nodeType": "VariableDeclaration", - "scope": 652, - "src": "5255:31:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken" - }, - "typeName": { - "contractScope": null, - "id": 548, - "name": "ListedToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 182, - "src": "5255:11:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5019:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 555, - "initialValue": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "id": 551, - "name": "tokenAddress", + "id": 500, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5306:12:1", + "referencedDeclaration": 480, + "src": "5031:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7199,31 +6576,15 @@ }, { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 552, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5320:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5320:10:1", + "id": 501, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "5035:5:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], @@ -7236,20 +6597,40 @@ { "typeIdentifier": "t_address", "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 550, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "5289:16:1", + "expression": { + "argumentTypes": null, + "id": 495, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "5000:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 13066, + "src": "5000:18:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 554, + "id": 502, "isConstant": false, "isLValue": false, "isPure": false, @@ -7257,14 +6638,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5289:42:1", + "src": "5000:41:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5255:76:1" + "id": 503, + "nodeType": "ExpressionStatement", + "src": "5000:41:1" }, { "expression": { @@ -7273,47 +6655,66 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 562, + "id": 510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "arguments": [], + "arguments": [ + { + "argumentTypes": null, + "id": 507, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "5135:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "argumentTypes": [], + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "id": 557, + "id": 505, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "5350:5:1", + "referencedDeclaration": 478, + "src": "5119:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 558, + "id": 506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "decimals", + "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 10145, - "src": "5350:14:1", + "referencedDeclaration": 13028, + "src": "5119:15:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" } }, - "id": 559, + "id": 508, "isConstant": false, "isLValue": false, "isPure": false, @@ -7321,44 +6722,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5350:16:1", + "src": "5119:19:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 560, - "name": "listedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5370:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 561, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 161, - "src": "5370:20:1", + "id": 509, + "name": "expectedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 486, + "src": "5142:15:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "5350:40:1", + "src": "5119:38:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7372,21 +6757,18 @@ "typeString": "bool" } ], - "id": 556, - "name": "require", + "id": 504, + "name": "assert", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5342:7:1", + "overloadedDeclarations": [], + "referencedDeclaration": 13430, + "src": "5112:6:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 563, + "id": 511, "isConstant": false, "isLValue": false, "isPure": false, @@ -7394,316 +6776,264 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5342:49:1", + "src": "5112:46:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 564, + "id": 512, "nodeType": "ExpressionStatement", - "src": "5342:49:1" + "src": "5112:46:1" + } + ] + }, + "documentation": "@dev Securely transfer token from sender to account", + "id": 514, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_secureTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 478, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "4777:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 477, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13083, + "src": "4777:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" }, { - "assignments": [ - 566 - ], - "declarations": [ - { - "constant": false, - "id": 566, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 652, - "src": "5402:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 565, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5402:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "constant": false, + "id": 480, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "4791:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4791:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "id": 578, - "initialValue": { + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 482, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "4803:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 481, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4776:38:1" + }, + "payable": false, + "returnParameters": { + "id": 484, + "nodeType": "ParameterList", + "parameters": [], + "src": "4824:0:1" + }, + "scope": 1226, + "src": "4747:418:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 698, + "nodeType": "Block", + "src": "5263:1692:1", + "statements": [ + { + "expression": { "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "arguments": [ + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 567, - "name": "listedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5413:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 568, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "feePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 167, - "src": "5413:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 569, + "id": 531, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "5438:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5413:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5507:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5413:95:1", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { + "leftExpression": { "argumentTypes": null, + "arguments": [], "expression": { - "argumentTypes": null, - "id": 573, - "name": "listedToken", + "argumentTypes": [], + "id": 526, + "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5469:11:1", + "referencedDeclaration": 1225, + "src": "5281:13:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" } }, - "id": 574, + "id": 527, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "feePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 167, - "src": "5469:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 571, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "5454:6:1", + "names": [], + "nodeType": "FunctionCall", + "src": "5281:15:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "percent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5133, - "src": "5454:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5454:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5402:106:1" - }, - { - "assignments": [ - 580 - ], - "declarations": [ - { - "constant": false, - "id": 580, - "name": "amountWithoutFee", - "nodeType": "VariableDeclaration", - "scope": 652, - "src": "5518:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 579, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5518:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 585, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 583, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "5553:3:1", + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5308:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5300:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5300:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5281:29:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 581, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "5542:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "5542:10:1", + "id": 525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5273:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 584, + "id": 532, "isConstant": false, "isLValue": false, "isPure": false, @@ -7711,14 +7041,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5542:15:1", + "src": "5273:38:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5518:39:1" + "id": 533, + "nodeType": "ExpressionStatement", + "src": "5273:38:1" }, { "expression": { @@ -7726,71 +7057,92 @@ "arguments": [ { "argumentTypes": null, - "id": 587, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "5589:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - } - }, - { - "argumentTypes": null, - "id": 588, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "5596:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - { - "argumentTypes": null, - "id": 589, - "name": "amountWithoutFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "5607:16:1", + "arguments": [ + { + "argumentTypes": null, + "id": 537, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "5358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 535, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "5329:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 536, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isTokenWhitelisted", + "nodeType": "MemberAccess", + "referencedDeclaration": 7395, + "src": "5329:28:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5329:35:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - }, - { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "id": 586, - "name": "_secureTokenTransfer", + "id": 534, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "5568:20:1", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5321:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$10211_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract ERC20,address,uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 590, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, @@ -7798,15 +7150,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5568:56:1", + "src": "5321:44:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 591, + "id": 540, "nodeType": "ExpressionStatement", - "src": "5568:56:1" + "src": "5321:44:1" }, { "expression": { @@ -7814,34 +7166,89 @@ "arguments": [ { "argumentTypes": null, - "id": 593, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "5655:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 594, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "5662:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" + "arguments": [ + { + "argumentTypes": null, + "id": 544, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "5407:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 545, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "5414:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5414:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 542, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "5383:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7437, + "src": "5383:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" } }, - "id": 595, + "id": 547, "isConstant": false, "isLValue": false, "isPure": false, @@ -7849,53 +7256,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5662:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 596, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "5679:3:1", + "src": "5383:42:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "id": 592, - "name": "_secureTokenTransfer", + "id": 541, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "5634:20:1", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5375:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$10211_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract ERC20,address,uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 597, + "id": 548, "isConstant": false, "isLValue": false, "isPure": false, @@ -7903,584 +7292,343 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5634:49:1", + "src": "5375:51:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 598, + "id": 549, "nodeType": "ExpressionStatement", - "src": "5634:49:1" + "src": "5375:51:1" }, { "expression": { "argumentTypes": null, - "id": 607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "id": 599, - "name": "listedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5694:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 601, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "tokensForSaleAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 177, - "src": "5694:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 605, - "name": "amountWithoutFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "5764:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ + "arguments": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": null, + "id": 553, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "5481:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { - "argumentTypes": null, + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "id": 602, - "name": "listedToken", + "id": 551, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5728:11:1", + "referencedDeclaration": 111, + "src": "5444:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 603, + "id": 552, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "tokensForSaleAmount", + "memberName": "hasNotInitialisedCrowdsale", "nodeType": "MemberAccess", - "referencedDeclaration": 177, - "src": "5728:31:1", + "referencedDeclaration": 7512, + "src": "5444:36:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" } }, - "id": 604, + "id": 554, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "5728:35:1", + "names": [], + "nodeType": "FunctionCall", + "src": "5444:43:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5728:53:1", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 550, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5436:7:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "src": "5694:87:1", + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5436:52:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 608, + "id": 556, "nodeType": "ExpressionStatement", - "src": "5694:87:1" + "src": "5436:52:1" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 611, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5823:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 609, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "5796:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 610, + "id": 571, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "getWTokenByToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 9221, - "src": "5796:26:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8750_$", - "typeString": "function (address) view external returns (contract WToken)" - } - }, - "id": 612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5796:40:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5848:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5840:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5840:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5796:54:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 639, - "nodeType": "IfStatement", - "src": "5792:242:1", - "trueBody": { - "id": 638, - "nodeType": "Block", - "src": "5852:182:1", - "statements": [ - { - "assignments": [ - 618 - ], - "declarations": [ - { - "constant": false, - "id": 618, - "name": "wToken", - "nodeType": "VariableDeclaration", - "scope": 652, - "src": "5866:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - }, - "typeName": { - "contractScope": null, - "id": 617, - "name": "WToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "5866:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 628, - "initialValue": { + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 621, - "name": "listedToken", + "id": 560, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5893:11:1", + "referencedDeclaration": 516, + "src": "5556:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 622, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 157, - "src": "5893:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 623, - "name": "listedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5911:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 624, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 159, - "src": "5911:18:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "argumentTypes": null, + ], "expression": { "argumentTypes": null, - "id": 625, - "name": "listedToken", + "id": 558, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5931:11:1", + "referencedDeclaration": 111, + "src": "5519:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 626, + "id": 559, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "decimals", + "memberName": "getNotInitialisedCrowdsale", "nodeType": "MemberAccess", - "referencedDeclaration": 161, - "src": "5931:20:1", + "referencedDeclaration": 7530, + "src": "5519:36:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" } - ], - "id": 620, + }, + "id": 561, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5882:10:1", + "names": [], + "nodeType": "FunctionCall", + "src": "5519:43:1", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$8750_$", - "typeString": "function (string memory,string memory,uint8) returns (contract WToken)" - }, - "typeName": { - "contractScope": null, - "id": 619, - "name": "WToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "5886:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } }, - "id": 627, + "id": 562, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5882:70:1", + "memberName": "tokensForSaleAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7320, + "src": "5519:63:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5866:86:1" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 633, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "6001:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 632, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "5995:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5995:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - { - "argumentTypes": null, - "id": 635, - "name": "wToken", + "id": 569, + "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "6016:6:1", + "referencedDeclaration": 518, + "src": "5670:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - }, - { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 629, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "5967:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 565, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "5639:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 563, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "5602:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 564, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getNotInitialisedCrowdsale", + "nodeType": "MemberAccess", + "referencedDeclaration": 7530, + "src": "5602:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5602:43:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 567, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wTokensIssuedAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7322, + "src": "5602:63:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 631, + "id": 568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "addTokenToListing", + "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 9205, - "src": "5967:27:1", + "referencedDeclaration": 12367, + "src": "5602:67:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$10211_$_t_contract$_WToken_$8750_$returns$__$", - "typeString": "function (contract ERC20,contract WToken) external" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 636, + "id": 570, "isConstant": false, "isLValue": false, "isPure": false, @@ -8488,141 +7636,226 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5967:56:1", + "src": "5602:82:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 637, - "nodeType": "ExpressionStatement", - "src": "5967:56:1" + "src": "5519:165:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } } - ] - } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 557, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5498:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5498:196:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 573, + "nodeType": "ExpressionStatement", + "src": "5498:196:1" }, { - "eventCall": { + "assignments": [ + 577 + ], + "declarations": [ + { + "constant": false, + "id": 577, + "name": "listedToken", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "5705:49:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + }, + "typeName": { + "contractScope": null, + "id": 576, + "name": "TokenListing.WhitelistedToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7308, + "src": "5705:29:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 582, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 641, - "name": "tokenAddress", + "id": 580, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "6061:12:1", + "referencedDeclaration": 516, + "src": "5776:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 642, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6075:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6075:10:1", - "typeDescriptions": { + } + ], + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_address", "typeString": "address" } - }, - { + ], + "expression": { "argumentTypes": null, - "id": 644, - "name": "amountWithoutFee", + "id": 578, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "6087:16:1", + "referencedDeclaration": 111, + "src": "5757:9:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 579, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "5757:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5757:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5705:77:1" + }, + { + "assignments": [ + 584 + ], + "declarations": [ + { + "constant": false, + "id": 584, + "name": "wtoken", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "5792:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 583, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "5792:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, + "value": null, + "visibility": "internal" + } + ], + "id": 590, + "initialValue": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 647, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "6132:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 645, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "6105:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getWTokenByToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 9221, - "src": "6105:26:1", + "argumentTypes": null, + "id": 587, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "5836:11:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8750_$", - "typeString": "function (address) view external returns (contract WToken)" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 648, + "id": 588, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6105:40:1", + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 7303, + "src": "5836:17:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_address", + "typeString": "address" } } ], @@ -8631,32 +7864,36 @@ { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" } ], - "id": 640, - "name": "TokenPlaced", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "6049:11:1", + "expression": { + "argumentTypes": null, + "id": 585, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "5809:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "id": 586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWTokenByToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11517, + "src": "5809:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,address,uint256,address)" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function (address) view external returns (contract IWToken)" } }, - "id": 649, + "id": 589, "isConstant": false, "isLValue": false, "isPure": false, @@ -8664,318 +7901,171 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6049:97:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 650, - "nodeType": "EmitStatement", - "src": "6044:102:1" - } - ] - }, - "documentation": "@notice Place token for sale\n@param tokenAddress Token that will be placed\n@param amount Token amount to place", - "id": 652, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 481, - "modifierName": { - "argumentTypes": null, - "id": 480, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9776, - "src": "4799:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4799:12:1" - } - ], - "name": "placeToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 479, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 476, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 652, - "src": "4755:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 475, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4755:7:1", + "src": "5809:45:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "value": null, - "visibility": "internal" + "nodeType": "VariableDeclarationStatement", + "src": "5792:62:1" }, - { - "constant": false, - "id": 478, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 652, - "src": "4777:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 477, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4777:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4754:35:1" - }, - "payable": false, - "returnParameters": { - "id": 482, - "nodeType": "ParameterList", - "parameters": [], - "src": "4812:0:1" - }, - "scope": 1058, - "src": "4735:1418:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 689, - "nodeType": "Block", - "src": "6310:341:1", - "statements": [ { "assignments": [ - 662 + 592 ], "declarations": [ { "constant": false, - "id": 662, - "name": "expectedBalance", + "id": 592, + "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 690, - "src": "6422:20:1", + "scope": 699, + "src": "5865:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" }, "typeName": { - "id": 661, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6422:4:1", + "contractScope": null, + "id": 591, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "5865:13:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, "value": null, "visibility": "internal" } ], - "id": 670, + "id": 615, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 668, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "6469:5:1", + "expression": { + "argumentTypes": null, + "id": 595, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "5928:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 596, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 7303, + "src": "5928:17:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "expression": { + }, + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 665, - "name": "to", + "id": 598, + "name": "wtoken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "6461:2:1", + "referencedDeclaration": 584, + "src": "5967:6:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } ], - "expression": { - "argumentTypes": null, - "id": 663, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "6445:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 664, + "id": 597, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "6445:15:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "5959:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 666, + "id": 599, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6445:19:1", + "src": "5959:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 600, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 520, + "src": "5988:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6445:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6445:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6422:53:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, + "arguments": [], "expression": { - "argumentTypes": null, - "id": 674, - "name": "msg", + "argumentTypes": [], + "id": 601, + "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6505:3:1", + "referencedDeclaration": 1225, + "src": "6007:13:1", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" } }, - "id": 675, + "id": 602, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6505:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 676, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "6517:2:1", + "names": [], + "nodeType": "FunctionCall", + "src": "6007:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8983,16 +8073,170 @@ }, { "argumentTypes": null, - "id": 677, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "6521:5:1", + "expression": { + "argumentTypes": null, + "id": 603, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6036:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ethFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7297, + "src": "6036:25:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 605, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6075:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 606, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7299, + "src": "6075:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 607, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6121:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 608, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7301, + "src": "6121:29:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 610, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "6172:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + ], + "id": 609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6164:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6164:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 612, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6196:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 613, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "6196:18:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } } ], "expression": { @@ -9008,36 +8252,60 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" } ], "expression": { "argumentTypes": null, - "id": 671, - "name": "token", + "id": 593, + "name": "factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "6486:5:1", + "referencedDeclaration": 107, + "src": "5891:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", + "typeString": "contract IW12CrowdsaleFactory" } }, - "id": 673, + "id": 594, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transferFrom", + "memberName": "createCrowdsale", "nodeType": "MemberAccess", - "referencedDeclaration": 10193, - "src": "6486:18:1", + "referencedDeclaration": 4083, + "src": "5891:23:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_contract$_IW12Crowdsale_$1760_$", + "typeString": "function (address,address,uint256,address,uint256,uint256,uint256,address,address[] memory) external returns (contract IW12Crowdsale)" } }, - "id": 678, + "id": 614, "isConstant": false, "isLValue": false, "isPure": false, @@ -9045,15 +8313,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6486:41:1", + "src": "5891:333:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, - "id": 679, - "nodeType": "ExpressionStatement", - "src": "6486:41:1" + "nodeType": "VariableDeclarationStatement", + "src": "5865:359:1" }, { "expression": { @@ -9061,386 +8328,188 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 683, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "6621:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 681, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "6605:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "6605:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6605:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "expression": { "argumentTypes": null, - "id": 685, - "name": "expectedBalance", + "id": 619, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 662, - "src": "6628:15:1", + "referencedDeclaration": 13441, + "src": "6254:3:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "src": "6605:38:1", + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6254:10:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 680, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10477, - "src": "6598:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 687, - "isConstant": false, + "expression": { + "argumentTypes": null, + "id": 616, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "6235:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "6235:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 621, + "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6598:46:1", + "src": "6235:30:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 688, + "id": 622, "nodeType": "ExpressionStatement", - "src": "6598:46:1" - } - ] - }, - "documentation": "@dev Securely transfer token from sender to account", - "id": 690, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_secureTokenTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 654, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 690, - "src": "6264:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - }, - "typeName": { - "contractScope": null, - "id": 653, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "6264:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 656, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 690, - "src": "6277:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 655, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6277:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" + "src": "6235:30:1" }, - { - "constant": false, - "id": 658, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 690, - "src": "6289:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 657, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6289:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6263:37:1" - }, - "payable": false, - "returnParameters": { - "id": 660, - "nodeType": "ParameterList", - "parameters": [], - "src": "6310:0:1" - }, - "scope": 1058, - "src": "6234:417:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 863, - "nodeType": "Block", - "src": "6756:1585:1", - "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "expression": { + "argumentTypes": null, + "id": 628, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } }, - "id": 707, + "id": 629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6304:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], "expression": { - "argumentTypes": [], - "id": 702, - "name": "serviceWallet", + "argumentTypes": null, + "id": 623, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "6774:13:1", + "referencedDeclaration": 592, + "src": "6275:9:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, - "id": 703, + "id": 625, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6774:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 705, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6801:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6793:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6793:10:1", + "memberName": "getFund", + "nodeType": "MemberAccess", + "referencedDeclaration": 1668, + "src": "6275:17:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IW12Fund_$1803_$", + "typeString": "function () view external returns (contract IW12Fund)" } }, - "src": "6774:29:1", + "id": 626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6275:19:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" } - ], - "id": 701, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "6766:7:1", + }, + "id": 627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "6275:28:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" } }, - "id": 708, + "id": 630, "isConstant": false, "isLValue": false, "isPure": false, @@ -9448,15 +8517,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6766:38:1", + "src": "6275:40:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 709, + "id": 631, "nodeType": "ExpressionStatement", - "src": "6766:38:1" + "src": "6275:40:1" }, { "expression": { @@ -9464,205 +8533,91 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 712, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "6839:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 713, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6853:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 711, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "6822:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6822:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 716, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvedOwners", - "nodeType": "MemberAccess", - "referencedDeclaration": 165, - "src": "6822:57:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 719, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 717, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6880:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6880:10:1", + "id": 636, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "6349:9:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6822:69:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 720, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 635, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "bool", "lValueRequested": false, - "nodeType": "Literal", - "src": "6895:4:1", - "subdenomination": null, + "nodeType": "ElementaryTypeNameExpression", + "src": "6341:7:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" }, - "value": "true" + "typeName": "address" }, - "src": "6822:77:1", + "id": 637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6341:18:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 710, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "6814:7:1", + "expression": { + "argumentTypes": null, + "id": 632, + "name": "wtoken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "6325:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "6325:15:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" } }, - "id": 722, + "id": 638, "isConstant": false, "isLValue": false, "isPure": false, @@ -9670,15 +8625,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6814:86:1", + "src": "6325:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 723, + "id": 639, "nodeType": "ExpressionStatement", - "src": "6814:86:1" + "src": "6325:35:1" }, { "expression": { @@ -9686,294 +8641,108 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { + "id": 643, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "6401:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 726, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "6935:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 727, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6949:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6949:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 725, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "6918:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6918:42:1", + "id": 645, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "6416:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } - }, - "id": 730, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokensForSaleAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 177, - "src": "6918:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 738, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "7051:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 732, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7001:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 733, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7015:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7015:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 731, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "6984:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6984:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 736, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "wTokensIssuedAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 179, - "src": "6984:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6984:66:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 739, + "id": 644, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6984:81:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "6408:7:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "src": "6918:147:1", + "id": 646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6408:18:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 724, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "6910:7:1", + "expression": { + "argumentTypes": null, + "id": 640, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "6371:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 642, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "initializeCrowdsale", + "nodeType": "MemberAccess", + "referencedDeclaration": 8171, + "src": "6371:29:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$__$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address)" } }, - "id": 741, + "id": 647, "isConstant": false, "isLValue": false, "isPure": false, @@ -9981,283 +8750,560 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6910:156:1", + "src": "6371:56:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 742, + "id": 648, "nodeType": "ExpressionStatement", - "src": "6910:156:1" + "src": "6371:56:1" }, { - "expression": { + "condition": { "argumentTypes": null, - "arguments": [ - { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 649, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6442:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 650, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7299, + "src": "6442:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6477:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6442:36:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 678, + "nodeType": "IfStatement", + "src": "6438:336:1", + "trueBody": { + "id": 677, + "nodeType": "Block", + "src": "6480:294:1", + "statements": [ + { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 745, - "name": "tokenAddress", + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 657, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6536:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 658, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 7303, + "src": "6536:17:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 656, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7101:12:1", + "referencedDeclaration": 13083, + "src": "6529:6:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 746, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7115:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7115:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6529:25:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, + }, + { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "argumentTypes": null, + "id": 661, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "6580:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } } ], - "id": 744, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "7084:16:1", + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6572:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6572:18:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7084:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 749, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "crowdsaleAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 175, - "src": "7084:59:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 751, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 672, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6716:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 673, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7299, + "src": "6716:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 665, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "6640:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 667, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "6655:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6647:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6647:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 663, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "6608:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 664, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "6608:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:58:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 670, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokensForSaleAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7320, + "src": "6608:78:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "percent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6350, + "src": "6608:107:1", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 674, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "7155:1:1", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:141:1", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 750, + "expression": { + "argumentTypes": null, + "id": 653, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "6494:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "id": 655, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7147:7:1", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 11473, + "src": "6494:17:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20_$13083_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (contract IERC20,address,uint256) external returns (bool)" + } }, - "id": 752, + "id": 675, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7147:10:1", + "src": "6494:269:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "7084:73:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 676, + "nodeType": "ExpressionStatement", + "src": "6494:269:1" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 743, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7076:82:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 755, - "nodeType": "ExpressionStatement", - "src": "7076:82:1" + ] + } }, { - "assignments": [ - 757 - ], - "declarations": [ - { - "constant": false, - "id": 757, - "name": "wtoken", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "7169:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - }, - "typeName": { - "contractScope": null, - "id": 756, - "name": "WToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "7169:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 762, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 760, - "name": "tokenAddress", + "id": 680, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7212:12:1", + "referencedDeclaration": 516, + "src": "6805:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 682, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "6820:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6812:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6812:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } + }, + { + "argumentTypes": null, + "id": 684, + "name": "amountForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "6832:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { @@ -10265,36 +9311,28 @@ { "typeIdentifier": "t_address", "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "expression": { - "argumentTypes": null, - "id": 758, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "7185:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "id": 759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getWTokenByToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 9221, - "src": "7185:26:1", + "id": 679, + "name": "addTokensToCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 814, + "src": "6784:20:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8750_$", - "typeString": "function (address) view external returns (contract WToken)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" } }, - "id": 761, + "id": 685, "isConstant": false, "isLValue": false, "isPure": false, @@ -10302,99 +9340,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7185:40:1", + "src": "6784:62:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "7169:56:1" + "id": 686, + "nodeType": "ExpressionStatement", + "src": "6784:62:1" }, { - "assignments": [ - 764 - ], - "declarations": [ - { - "constant": false, - "id": 764, - "name": "crowdsale", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "7236:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - }, - "typeName": { - "contractScope": null, - "id": 763, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "7236:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 800, - "initialValue": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 768, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7307:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "expression": { + "argumentTypes": null, + "id": 688, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6883:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } - ], + }, + "id": 689, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 7303, + "src": "6883:17:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 767, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7299:7:1", + "argumentTypes": null, + "id": 690, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6902:3:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } }, - "id": 769, + "id": 691, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7299:21:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6902:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10405,39 +9417,39 @@ "arguments": [ { "argumentTypes": null, - "id": 771, - "name": "wtoken", + "id": 693, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "7342:6:1", + "referencedDeclaration": 592, + "src": "6922:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } ], - "id": 770, + "id": 692, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7334:7:1", + "src": "6914:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 772, + "id": 694, "isConstant": false, "isLValue": false, "isPure": false, @@ -10445,7 +9457,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7334:15:1", + "src": "6914:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10453,489 +9465,528 @@ }, { "argumentTypes": null, - "id": 773, - "name": "price", + "id": 695, + "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "7363:5:1", + "referencedDeclaration": 518, + "src": "6934:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 774, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "7382:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7382:15:1", - "typeDescriptions": { + { "typeIdentifier": "t_address", "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7428:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 778, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7442:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7442:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 776, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "7411:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7411:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } }, - "id": 781, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ethFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 169, - "src": "7411:56:1", - "typeDescriptions": { + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, + ], + "id": 687, + "name": "CrowdsaleInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 152, + "src": "6862:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256)" + } + }, + "id": 696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6862:86:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 697, + "nodeType": "EmitStatement", + "src": "6857:91:1" + } + ] + }, + "documentation": null, + "id": 699, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 523, + "modifierName": { + "argumentTypes": null, + "id": 522, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13257, + "src": "5250:12:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5250:12:1" + } + ], + "name": "initCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 516, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "5194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 518, + "name": "amountForSale", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "5209:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 517, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 520, + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "5229:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 519, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5229:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5193:47:1" + }, + "payable": false, + "returnParameters": { + "id": 524, + "nodeType": "ParameterList", + "parameters": [], + "src": "5263:0:1" + }, + "scope": 1226, + "src": "5171:1784:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "7052:924:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 783, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7498:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 784, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7512:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7512:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 782, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "7481:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 786, + "id": 709, + "name": "amountForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "7070:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 710, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7481:42:1", + "nodeType": "Literal", + "src": "7086:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "id": 787, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "WTokenSaleFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 171, - "src": "7481:63:1", + "src": "7070:17:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 708, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "7062:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7062:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 713, + "nodeType": "ExpressionStatement", + "src": "7062:26:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 717, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7135:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 789, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7575:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "argumentTypes": [ { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 790, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7589:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7589:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 788, - "name": "getApprovedToken", + "argumentTypes": null, + "id": 715, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "7558:16:1", + "referencedDeclaration": 111, + "src": "7106:9:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 792, + "id": 716, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7558:42:1", + "memberName": "isTokenWhitelisted", + "nodeType": "MemberAccess", + "referencedDeclaration": 7395, + "src": "7106:28:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" } }, - "id": 793, + "id": 718, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "trancheFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 173, - "src": "7558:60:1", + "names": [], + "nodeType": "FunctionCall", + "src": "7106:35:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 714, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "7098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7098:44:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 720, + "nodeType": "ExpressionStatement", + "src": "7098:44:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 795, - "name": "exchanger", + "id": 724, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "7640:9:1", + "referencedDeclaration": 701, + "src": "7184:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 725, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "7191:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7191:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 794, + "expression": { + "argumentTypes": null, + "id": 722, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "7160:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 723, "isConstant": false, - "isLValue": false, - "isPure": true, + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7632:7:1", + "memberName": "hasTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7437, + "src": "7160:23:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } }, - "id": 796, + "id": 727, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7632:18:1", + "src": "7160:42:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 797, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7664:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7664:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 765, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "7262:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", - "typeString": "contract IW12CrowdsaleFactory" - } - }, - "id": 766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createCrowdsale", - "nodeType": "MemberAccess", - "referencedDeclaration": 4561, - "src": "7262:23:1", + "id": 721, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "7152:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$_t_contract$_IW12Crowdsale_$1224_$", - "typeString": "function (address,address,uint256,address,uint256,uint256,uint256,address,address) external returns (contract IW12Crowdsale)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 799, + "id": 728, "isConstant": false, "isLValue": false, "isPure": false, @@ -10943,36 +9994,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7262:422:1", + "src": "7152:51:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "7236:448:1" + "id": 729, + "nodeType": "ExpressionStatement", + "src": "7152:51:1" }, { "expression": { "argumentTypes": null, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 802, - "name": "tokenAddress", + "id": 733, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7712:12:1", + "referencedDeclaration": 701, + "src": "7255:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10980,28 +10026,12 @@ }, { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 803, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7726:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7726:10:1", + "id": 734, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7262:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11019,18 +10049,34 @@ "typeString": "address" } ], - "id": 801, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "7695:16:1", + "expression": { + "argumentTypes": null, + "id": 731, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "7221:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 732, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasCrowdsaleWithAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7486, + "src": "7221:33:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" } }, - "id": 805, + "id": 735, "isConstant": false, "isLValue": false, "isPure": false, @@ -11038,104 +10084,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7695:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 806, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "crowdsaleAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 175, - "src": "7695:59:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 807, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 764, - "src": "7757:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "src": "7695:71:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 809, - "nodeType": "ExpressionStatement", - "src": "7695:71:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 813, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 764, - "src": "7801:9:1", + "src": "7221:51:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 810, - "name": "wtoken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "7776:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - }, - "id": 812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addTrustedAccount", - "nodeType": "MemberAccess", - "referencedDeclaration": 8723, - "src": "7776:24:1", + "id": 730, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "7213:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 814, + "id": 736, "isConstant": false, "isLValue": false, "isPure": false, @@ -11143,176 +10120,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7776:35:1", + "src": "7213:60:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 815, + "id": 737, "nodeType": "ExpressionStatement", - "src": "7776:35:1" + "src": "7213:60:1" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 817, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7843:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 818, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7857:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7857:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 816, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "7826:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7826:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 821, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "WTokenSaleFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 171, - "src": "7826:63:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 822, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7892:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7826:67:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 850, - "nodeType": "IfStatement", - "src": "7822:376:1", - "trueBody": { - "id": 849, - "nodeType": "Block", - "src": "7895:303:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 828, - "name": "tokenAddress", + "id": 742, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7950:12:1", + "referencedDeclaration": 701, + "src": "7326:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11326,435 +10172,169 @@ "typeString": "address" } ], - "id": 827, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "7944:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7944:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - { - "argumentTypes": null, - "arguments": [ - { + "expression": { "argumentTypes": null, - "id": 831, - "name": "crowdsale", + "id": 740, + "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 764, - "src": "7989:9:1", + "referencedDeclaration": 105, + "src": "7299:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" } - ], - "id": 830, + }, + "id": 741, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7981:7:1", + "memberName": "getWTokenByToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11517, + "src": "7299:26:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function (address) view external returns (contract IWToken)" + } }, - "id": 832, + "id": 743, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7981:18:1", + "src": "7299:33:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } + ], + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7291:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" }, + "typeName": "address" + }, + "id": 744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7291:42:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 841, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "8126:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 842, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8140:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8140:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 840, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "8109:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8109:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 845, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "WTokenSaleFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 171, - "src": "8109:63:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 834, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "8034:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 835, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8048:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8048:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 833, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "8017:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8017:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 838, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokensForSaleAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 177, - "src": "8017:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "percent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5133, - "src": "8017:91:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 846, + "hexValue": "30", + "id": 746, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8017:156:1", + "nodeType": "Literal", + "src": "7345:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "expression": { - "argumentTypes": null, - "id": 824, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "7909:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "id": 826, + "id": 745, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 9177, - "src": "7909:17:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "7337:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$10211_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (contract ERC20,address,uint256) external returns (bool)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 847, + "id": 747, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7909:278:1", + "src": "7337:10:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 848, - "nodeType": "ExpressionStatement", - "src": "7909:278:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "8229:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 853, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "8243:13:1", + "src": "7291:56:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "id": 851, - "name": "addTokensToCrowdsale", + "id": 738, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "8208:20:1", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "7283:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 854, + "id": 749, "isConstant": false, "isLValue": false, "isPure": false, @@ -11762,435 +10342,282 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8208:49:1", + "src": "7283:65:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 855, + "id": 750, "nodeType": "ExpressionStatement", - "src": "8208:49:1" + "src": "7283:65:1" }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 857, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "8294:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 858, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8308:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8308:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 860, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "8320:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 856, - "name": "CrowdsaleInitialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "8273:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8273:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 862, - "nodeType": "EmitStatement", - "src": "8268:66:1" - } - ] - }, - "documentation": null, - "id": 864, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 699, - "modifierName": { - "argumentTypes": null, - "id": 698, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9776, - "src": "6743:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6743:12:1" - } - ], - "name": "initCrowdsale", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 697, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 692, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "6680:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6680:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 694, - "name": "amountForSale", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "6702:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 693, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6702:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 696, - "name": "price", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "6722:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 695, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6722:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6679:54:1" - }, - "payable": false, - "returnParameters": { - "id": 700, - "nodeType": "ParameterList", - "parameters": [], - "src": "6756:0:1" - }, - "scope": 1058, - "src": "6657:1684:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 990, - "nodeType": "Block", - "src": "8426:973:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 874, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 872, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "8444:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 873, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 754, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 755, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7418:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 752, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "7379:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 753, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "7379:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7379:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 757, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "8460:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8444:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 871, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8436:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 876, - "nodeType": "ExpressionStatement", - "src": "8436:26:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 878, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8480:12:1", + "memberName": "tokensForSaleAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7320, + "src": "7379:69:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": ">=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8504:1:1", - "subdenomination": null, + "id": 765, + "name": "amountForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "7542:13:1", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 879, - "isConstant": false, - "isLValue": false, - "isPure": true, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 760, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7500:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 761, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7507:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 758, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "7468:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 759, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "7468:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7468:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 763, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wTokensIssuedAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7322, + "src": "7468:69:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8496:7:1", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "7468:73:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - "id": 881, + "id": 766, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8496:10:1", + "src": "7468:88:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "8480:26:1", + "src": "7379:177:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12204,21 +10631,21 @@ "typeString": "bool" } ], - "id": 877, + "id": 751, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8472:7:1", + "referencedDeclaration": 13444, + "src": "7358:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 883, + "id": 768, "isConstant": false, "isLValue": false, "isPure": false, @@ -12226,228 +10653,264 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8472:35:1", + "src": "7358:208:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 884, + "id": 769, "nodeType": "ExpressionStatement", - "src": "8472:35:1" + "src": "7358:208:1" }, { - "expression": { + "assignments": [ + 771 + ], + "declarations": [ + { + "constant": false, + "id": 771, + "name": "wtoken", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "7577:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 770, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "7577:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 776, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 774, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7621:5:1", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "id": 893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 772, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "7594:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWTokenByToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11517, + "src": "7594:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function (address) view external returns (contract IWToken)" + } + }, + "id": 775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7594:33:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7577:50:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 780, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7670:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 781, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7677:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 888, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8552:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 886, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "8525:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "id": 887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getWTokenByToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 9221, - "src": "8525:26:1", + "argumentTypes": null, + "id": 777, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "7638:9:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8750_$", - "typeString": "function (address) view external returns (contract WToken)" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 889, + "id": 779, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8525:40:1", + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "7638:31:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 891, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8577:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 890, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8569:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8569:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8525:54:1", + "id": 782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7638:49:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } + }, + "id": 783, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "wTokensIssuedAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7322, + "src": "7638:69:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "expression": { - "argumentTypes": [ + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "argumentTypes": null, + "id": 791, + "name": "amountForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "7814:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], - "id": 885, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8517:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8517:63:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 895, - "nodeType": "ExpressionStatement", - "src": "8517:63:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 898, - "name": "tokenAddress", + "id": 786, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8615:12:1", + "referencedDeclaration": 701, + "src": "7755:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12455,28 +10918,12 @@ }, { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 899, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8629:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8629:10:1", + "id": 787, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7762:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12494,18 +10941,34 @@ "typeString": "address" } ], - "id": 897, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "8598:16:1", + "expression": { + "argumentTypes": null, + "id": 784, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "7710:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 785, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "7710:44:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" } }, - "id": 901, + "id": 788, "isConstant": false, "isLValue": false, "isPure": false, @@ -12513,129 +10976,63 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8598:42:1", + "src": "7710:62:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } }, - "id": 902, + "id": 789, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "crowdsaleAddress", + "memberName": "wTokensIssuedAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 175, - "src": "8598:59:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8669:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 903, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8661:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8661:10:1", + "referencedDeclaration": 7322, + "src": "7710:99:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "8598:73:1", + "id": 790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "7710:103:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } - ], - "id": 896, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8590:7:1", + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7710:118:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8590:82:1", + "src": "7638:190:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 908, + "id": 794, "nodeType": "ExpressionStatement", - "src": "8590:82:1" + "src": "7638:190:1" }, { "expression": { @@ -12643,205 +11040,92 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 920, + "id": 798, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7851:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 799, + "name": "amountForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "7862:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 800, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 911, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8707:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 912, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8721:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8721:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 910, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "8690:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8690:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 915, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvedOwners", - "nodeType": "MemberAccess", - "referencedDeclaration": 165, - "src": "8690:57:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 918, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 916, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8748:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8748:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8690:69:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 919, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8763:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "8690:77:1", + "nodeType": "Literal", + "src": "7877:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 909, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8682:7:1", + "expression": { + "argumentTypes": null, + "id": 795, + "name": "wtoken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 771, + "src": "7839:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 10450, + "src": "7839:11:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", + "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 921, + "id": 801, "isConstant": false, "isLValue": false, "isPure": false, @@ -12849,310 +11133,158 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8682:86:1", + "src": "7839:40:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 922, + "id": 802, "nodeType": "ExpressionStatement", - "src": "8682:86:1" + "src": "7839:40:1" }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 804, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7916:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 805, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "7923:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } }, - "id": 939, + "id": 806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7923:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 925, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8803:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 926, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8817:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8817:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 924, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "8786:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8786:42:1", + "id": 808, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7943:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 929, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokensForSaleAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 177, - "src": "8786:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 937, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "8919:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_address", + "typeString": "address" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 931, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8869:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 932, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8883:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8883:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 930, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "8852:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8852:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 935, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "wTokensIssuedAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 179, - "src": "8852:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "8852:66:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 938, + "id": 807, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8852:81:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "7935:7:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "src": "8786:147:1", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7935:18:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 810, + "name": "amountForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "7955:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 923, - "name": "require", + "id": 803, + "name": "CrowdsaleTokenMinted", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8778:7:1", + "overloadedDeclarations": [], + "referencedDeclaration": 162, + "src": "7895:20:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256)" } }, - "id": 940, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, @@ -13160,167 +11292,330 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8778:156:1", + "src": "7895:74:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 941, - "nodeType": "ExpressionStatement", - "src": "8778:156:1" + "id": 812, + "nodeType": "EmitStatement", + "src": "7890:79:1" + } + ] + }, + "documentation": null, + "id": 814, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addTokensToCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 701, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "6991:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6991:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, { - "assignments": [ - 943 - ], - "declarations": [ - { - "constant": false, - "id": 943, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 991, - "src": "8945:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - }, - "typeName": { - "contractScope": null, - "id": 942, - "name": "WToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "8945:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - }, - "value": null, - "visibility": "internal" + "constant": false, + "id": 703, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "7006:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 702, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "id": 948, - "initialValue": { + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 705, + "name": "amountForSale", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "7025:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 704, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7025:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6990:54:1" + }, + "payable": false, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [], + "src": "7052:0:1" + }, + "scope": 1226, + "src": "6961:1015:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 828, + "nodeType": "Block", + "src": "8055:56:1", + "statements": [ + { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 946, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8987:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], "expression": { - "argumentTypes": [ + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "argumentTypes": null, + "id": 824, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 816, + "src": "8091:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { - "argumentTypes": null, - "id": 944, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "8960:9:1", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 822, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8072:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 823, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8072:18:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" } }, - "id": 945, + "id": 825, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "getWTokenByToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 9221, - "src": "8960:26:1", + "names": [], + "nodeType": "FunctionCall", + "src": "8072:25:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8750_$", - "typeString": "function (address) view external returns (contract WToken)" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 947, + "id": 826, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8960:40:1", + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "8072:32:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" } }, - "nodeType": "VariableDeclarationStatement", - "src": "8945:55:1" - }, + "functionReturnParameters": 821, + "id": 827, + "nodeType": "Return", + "src": "8065:39:1" + } + ] + }, + "documentation": null, + "id": 829, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTokenOwners", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 817, + "nodeType": "ParameterList", + "parameters": [ { - "assignments": [ - 950 - ], - "declarations": [ - { - "constant": false, - "id": 950, - "name": "crowdsale", - "nodeType": "VariableDeclaration", - "scope": 991, - "src": "9010:23:1", - "stateVariable": false, - "storageLocation": "default", + "constant": false, + "id": 816, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 829, + "src": "8006:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8005:15:1" + }, + "payable": false, + "returnParameters": { + "id": 821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 820, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 829, + "src": "8044:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 818, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8044:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - }, - "typeName": { - "contractScope": null, - "id": 949, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "9010:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 819, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8044:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } - ], - "id": 957, - "initialValue": { + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8043:11:1" + }, + "scope": 1226, + "src": "7982:129:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 846, + "nodeType": "Block", + "src": "8213:80:1", + "statements": [ + { + "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 952, - "name": "tokenAddress", + "id": 841, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "9053:12:1", + "referencedDeclaration": 831, + "src": "8262:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13328,28 +11623,12 @@ }, { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 953, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9067:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9067:10:1", + "id": 842, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 833, + "src": "8269:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13367,18 +11646,34 @@ "typeString": "address" } ], - "id": 951, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "9036:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 955, + "expression": { + "argumentTypes": null, + "id": 839, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8230:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 840, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "8230:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 843, "isConstant": false, "isLValue": false, "isPure": false, @@ -13386,79 +11681,254 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9036:42:1", + "src": "8230:49:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } }, - "id": 956, + "id": 844, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "crowdsaleAddress", + "memberName": "owners", "nodeType": "MemberAccess", - "referencedDeclaration": 175, - "src": "9036:59:1", + "referencedDeclaration": 7325, + "src": "8230:56:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" } }, - "nodeType": "VariableDeclarationStatement", - "src": "9010:85:1" + "functionReturnParameters": 838, + "id": 845, + "nodeType": "Return", + "src": "8223:63:1" + } + ] + }, + "documentation": null, + "id": 847, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCrowdsaleOwners", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 831, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 847, + "src": "8145:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 830, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 833, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 847, + "src": "8160:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8144:34:1" + }, + "payable": false, + "returnParameters": { + "id": 838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 837, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 847, + "src": "8202:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 835, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8202:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 836, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8202:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8201:11:1" + }, + "scope": 1226, + "src": "8117:176:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 854, + "nodeType": "Block", + "src": "8363:33:1", + "statements": [ { "expression": { "argumentTypes": null, - "id": 973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "id": 852, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "8380:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "functionReturnParameters": 851, + "id": 853, + "nodeType": "Return", + "src": "8373:16:1" + } + ] + }, + "documentation": null, + "id": 855, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getExchanger", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 848, + "nodeType": "ParameterList", + "parameters": [], + "src": "8320:2:1" + }, + "payable": false, + "returnParameters": { + "id": 851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 850, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 855, + "src": "8346:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + }, + "typeName": { + "contractScope": null, + "id": 849, + "name": "ITokenExchanger", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11490, + "src": "8346:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8345:17:1" + }, + "scope": 1226, + "src": "8299:97:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 952, + "nodeType": "Block", + "src": "8553:538:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 959, - "name": "tokenAddress", + "id": 876, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "9123:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 960, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9137:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9137:10:1", + "referencedDeclaration": 857, + "src": "8600:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13467,27 +11937,39 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_address", "typeString": "address" } ], - "id": 958, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "9106:16:1", + "expression": { + "argumentTypes": null, + "id": 874, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8571:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 875, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isTokenWhitelisted", + "nodeType": "MemberAccess", + "referencedDeclaration": 7395, + "src": "8571:28:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" } }, - "id": 962, + "id": 877, "isConstant": false, "isLValue": false, "isPure": false, @@ -13495,1041 +11977,1113 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9106:42:1", + "src": "8571:35:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 963, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "wTokensIssuedAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 179, - "src": "9106:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 971, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "9251:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_bool", + "typeString": "bool" } ], + "id": 873, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "8563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8563:44:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 879, + "nodeType": "ExpressionStatement", + "src": "8563:44:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 880, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 860, + "src": "8618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, "expression": { - "argumentTypes": [ + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": null, + "id": 883, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "8644:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { - "argumentTypes": null, + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 965, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "9188:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 966, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9202:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9202:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 964, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "9171:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9171:42:1", + "id": 881, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8625:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 969, + "id": 882, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "wTokensIssuedAmount", + "memberName": "getToken", "nodeType": "MemberAccess", - "referencedDeclaration": 179, - "src": "9171:75:1", + "referencedDeclaration": 7607, + "src": "8625:18:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" } }, - "id": 970, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "9171:79:1", + "names": [], + "nodeType": "FunctionCall", + "src": "8625:25:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 972, + "id": 885, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9171:94:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 7286, + "src": "8625:30:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } }, - "src": "9106:159:1", + "src": "8618:37:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, - "id": 974, + "id": 887, "nodeType": "ExpressionStatement", - "src": "9106:159:1" + "src": "8618:37:1" }, { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 978, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 950, - "src": "9287:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - { - "argumentTypes": null, - "id": 979, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "9298:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { + "id": 894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 888, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "8665:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "hexValue": "30", - "id": 980, + "arguments": [ + { + "argumentTypes": null, + "id": 891, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "8693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 889, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8674:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 890, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8674:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 892, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "9313:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 975, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "9276:5:1", + "names": [], + "nodeType": "FunctionCall", + "src": "8674:25:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 977, + "id": 893, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "mint", + "memberName": "symbol", "nodeType": "MemberAccess", - "referencedDeclaration": 8412, - "src": "9276:10:1", + "referencedDeclaration": 7288, + "src": "8674:32:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", - "typeString": "function (address,uint256,uint32) external returns (bool)" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } }, - "id": 981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9276:39:1", + "src": "8665:41:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, - "id": 982, + "id": 895, "nodeType": "ExpressionStatement", - "src": "9276:39:1" + "src": "8665:41:1" }, { - "eventCall": { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 984, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "9352:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 896, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 864, + "src": "8716:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 899, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "8746:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "argumentTypes": null, - "id": 985, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9366:3:1", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 897, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8727:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 898, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8727:18:1", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" } }, - "id": 986, + "id": 900, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9366:10:1", + "names": [], + "nodeType": "FunctionCall", + "src": "8727:25:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - { - "argumentTypes": null, - "id": 987, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "9378:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 983, - "name": "CrowdsaleTokenMinted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 155, - "src": "9331:20:1", + "id": 901, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 7290, + "src": "8727:34:1", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "id": 988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9331:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 989, - "nodeType": "EmitStatement", - "src": "9326:66:1" - } - ] - }, - "documentation": null, - "id": 991, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addTokensToCrowdsale", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 869, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 866, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 991, - "src": "8377:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 865, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8377:7:1", + "src": "8716:45:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "value": null, - "visibility": "internal" + "id": 903, + "nodeType": "ExpressionStatement", + "src": "8716:45:1" }, - { - "constant": false, - "id": 868, - "name": "amountForSale", - "nodeType": "VariableDeclaration", - "scope": 991, - "src": "8399:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 867, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8399:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8376:42:1" - }, - "payable": false, - "returnParameters": { - "id": 870, - "nodeType": "ParameterList", - "parameters": [], - "src": "8426:0:1" - }, - "scope": 1058, - "src": "8347:1052:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1006, - "nodeType": "Block", - "src": "9508:85:1", - "statements": [ { "expression": { "argumentTypes": null, - "expression": { + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 904, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 867, + "src": "8771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1001, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 993, - "src": "9542:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1002, - "name": "ownerAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "9556:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], "expression": { - "argumentTypes": [ + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "argumentTypes": null, + "id": 907, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "8799:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], - "id": 1000, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "9525:16:1", + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 905, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8780:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 906, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8780:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8780:25:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 1003, + "id": 909, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9525:44:1", + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "8780:32:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" } }, - "id": 1004, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "crowdsaleAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 175, - "src": "9525:61:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "functionReturnParameters": 999, - "id": 1005, - "nodeType": "Return", - "src": "9518:68:1" - } - ] - }, - "documentation": null, - "id": 1007, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTokenCrowdsale", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 993, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "9432:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 992, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9432:7:1", + "src": "8771:41:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "value": null, - "visibility": "internal" + "id": 911, + "nodeType": "ExpressionStatement", + "src": "8771:41:1" }, - { - "constant": false, - "id": 995, - "name": "ownerAddress", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "9454:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 994, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9454:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9431:44:1" - }, - "payable": false, - "returnParameters": { - "id": 999, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 998, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "9499:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 997, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9498:9:1" - }, - "scope": 1058, - "src": "9405:188:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1019, - "nodeType": "Block", - "src": "9670:49:1", - "statements": [ { "expression": { "argumentTypes": null, - "baseExpression": { + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "id": 1015, - "name": "approvedOwnersList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "9687:18:1", + "baseExpression": { + "argumentTypes": null, + "id": 912, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "8822:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 914, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8834:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8822:14:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[] storage ref)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1017, - "indexExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "id": 1016, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1009, - "src": "9706:5:1", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 917, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "8858:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 915, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8839:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 916, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8839:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8839:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 919, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7295, + "src": "8839:36:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9687:25:1", + "src": "8822:53:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 1014, - "id": 1018, - "nodeType": "Return", - "src": "9680:32:1" - } - ] - }, - "documentation": null, - "id": 1020, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTokenOwners", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1010, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1009, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 1020, - "src": "9623:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1008, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9623:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9622:15:1" - }, - "payable": false, - "returnParameters": { - "id": 1014, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1013, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1020, - "src": "9659:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1011, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9659:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1012, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9659:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9658:11:1" - }, - "scope": 1058, - "src": "9599:120:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "9789:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1025, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "9806:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "functionReturnParameters": 1024, - "id": 1026, - "nodeType": "Return", - "src": "9799:16:1" - } - ] - }, - "documentation": null, - "id": 1028, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getExchanger", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1021, - "nodeType": "ParameterList", - "parameters": [], - "src": "9746:2:1" - }, - "payable": false, - "returnParameters": { - "id": 1024, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1023, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "9772:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - }, - "typeName": { - "contractScope": null, - "id": 1022, - "name": "ITokenExchanger", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9194, - "src": "9772:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "9771:17:1" - }, - "scope": 1058, - "src": "9725:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1045, - "nodeType": "Block", - "src": "9949:87:1", - "statements": [ + "id": 921, + "nodeType": "ExpressionStatement", + "src": "8822:53:1" + }, { "expression": { "argumentTypes": null, - "baseExpression": { + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "id": 1037, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "9966:14:1", + "baseExpression": { + "argumentTypes": null, + "id": 922, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "8885:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 924, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8897:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8885:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1043, - "indexExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1038, - "name": "approvedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "9981:19:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint16_$_$", - "typeString": "mapping(address => mapping(address => uint16))" + "arguments": [ + { + "argumentTypes": null, + "id": 927, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "8921:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "id": 1040, - "indexExpression": { - "argumentTypes": null, - "id": 1039, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1030, - "src": "10001:12:1", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 925, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8902:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 926, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8902:18:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" } }, + "id": 928, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9981:33:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$", - "typeString": "mapping(address => uint16)" - } - }, - "id": 1042, - "indexExpression": { - "argumentTypes": null, - "id": 1041, - "name": "ownerAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "10015:12:1", + "names": [], + "nodeType": "FunctionCall", + "src": "8902:25:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, + "id": 929, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9981:47:1", + "memberName": "ethFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7297, + "src": "8902:39:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9966:63:1", + "src": "8885:56:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 1036, - "id": 1044, - "nodeType": "Return", - "src": "9959:70:1" - } - ] - }, - "documentation": null, - "id": 1046, - "implemented": true, - "isConstructor": false, + "id": 931, + "nodeType": "ExpressionStatement", + "src": "8885:56:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 932, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "8951:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 934, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8963:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8951:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 937, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "8987:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 935, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8968:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 936, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8968:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8968:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 939, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7299, + "src": "8968:46:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8951:63:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 941, + "nodeType": "ExpressionStatement", + "src": "8951:63:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 942, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "9024:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 944, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9036:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9024:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 947, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "9060:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 945, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9041:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 946, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "9041:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9041:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 949, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7301, + "src": "9041:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9024:60:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 951, + "nodeType": "ExpressionStatement", + "src": "9024:60:1" + } + ] + }, + "documentation": null, + "id": 953, + "implemented": true, + "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getApprovedToken", + "name": "getToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 1033, + "id": 858, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1030, - "name": "tokenAddress", + "id": 857, + "name": "token", "nodeType": "VariableDeclaration", - "scope": 1046, - "src": "9854:20:1", + "scope": 953, + "src": "8420:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14537,10 +13091,10 @@ "typeString": "address" }, "typeName": { - "id": 1029, + "id": 856, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9854:7:1", + "src": "8420:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14548,137 +13102,346 @@ }, "value": null, "visibility": "internal" - }, + } + ], + "src": "8419:15:1" + }, + "payable": false, + "returnParameters": { + "id": 872, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 1032, - "name": "ownerAddress", + "id": 860, + "name": "name", "nodeType": "VariableDeclaration", - "scope": 1046, - "src": "9876:20:1", + "scope": 953, + "src": "8466:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 1031, - "name": "address", + "id": 859, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "9876:7:1", + "src": "8466:6:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" - } - ], - "src": "9853:44:1" - }, - "payable": false, - "returnParameters": { - "id": 1036, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 1035, - "name": "result", + "id": 862, + "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1046, - "src": "9921:26:1", + "scope": 953, + "src": "8479:13:1", "stateVariable": false, - "storageLocation": "storage", + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "contractScope": null, - "id": 1034, - "name": "ListedToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 182, - "src": "9921:11:1", + "id": 861, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8479:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 864, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "8494:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 863, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "8494:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 867, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "8510:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 865, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8510:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 866, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8510:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 871, + "name": "commissions", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "8528:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 868, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8528:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 870, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8533:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "8528:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken" + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" } }, "value": null, "visibility": "internal" } ], - "src": "9920:28:1" + "src": "8465:83:1" }, - "scope": 1058, - "src": "9828:208:1", + "scope": 1226, + "src": "8402:689:1", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "external" }, { "body": { - "id": 1056, + "id": 1000, "nodeType": "Block", - "src": "10096:60:1", + "src": "9152:243:1", "statements": [ { - "expression": { + "assignments": [ + 962 + ], + "declarations": [ + { + "constant": false, + "id": 962, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "9162:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 960, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9162:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 961, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9162:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 971, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1053, - "name": "SERVICE_WALLET_ID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "10131:17:1", + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 966, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9202:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 967, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 7375, + "src": "9202:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$returns$_t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer) view returns (struct TokenListing.WhitelistedToken memory[] memory)" + } + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9202:21:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.WhitelistedToken memory[] memory" + } + }, + "id": 969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9202:28:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "expression": { - "argumentTypes": null, - "id": 1051, - "name": "wallets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "10113:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", - "typeString": "contract IWallets" - } - }, - "id": 1052, + "id": 965, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "getWallet", - "nodeType": "MemberAccess", - "referencedDeclaration": 9684, - "src": "10113:17:1", + "nodeType": "NewExpression", + "src": "9188:13:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint8_$returns$_t_address_$", - "typeString": "function (uint8) view external returns (address)" + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9192:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 964, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9192:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } } }, - "id": 1054, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, @@ -14686,92 +13449,3470 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10113:36:1", + "src": "9188:43:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" } }, - "functionReturnParameters": 1050, - "id": 1055, - "nodeType": "Return", - "src": "10106:43:1" - } - ] - }, - "documentation": null, - "id": 1057, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "serviceWallet", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1047, - "nodeType": "ParameterList", - "parameters": [], - "src": "10064:2:1" - }, - "payable": false, - "returnParameters": { - "id": 1050, - "nodeType": "ParameterList", - "parameters": [ + "nodeType": "VariableDeclarationStatement", + "src": "9162:69:1" + }, { - "constant": false, - "id": 1049, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "10087:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1048, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10087:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10086:9:1" - }, - "scope": 1058, - "src": "10042:114:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1059, - "src": "576:9582:1" - } - ], - "src": "0:10159:1" - }, - "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/W12Lister.sol", - "exportedSymbols": { - "W12Lister": [ - 1058 - ] - }, - "id": 1059, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 66, + "body": { + "id": 996, + "nodeType": "Block", + "src": "9298:67:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 985, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "9312:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 987, + "indexExpression": { + "argumentTypes": null, + "id": 986, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "9319:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9312:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 988, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9324:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 7375, + "src": "9324:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$returns$_t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer) view returns (struct TokenListing.WhitelistedToken memory[] memory)" + } + }, + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9324:21:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.WhitelistedToken memory[] memory" + } + }, + "id": 992, + "indexExpression": { + "argumentTypes": null, + "id": 991, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "9346:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9324:24:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_memory", + "typeString": "struct TokenListing.WhitelistedToken memory" + } + }, + "id": 993, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 7303, + "src": "9324:30:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9312:42:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 995, + "nodeType": "ExpressionStatement", + "src": "9312:42:1" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 976, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "9259:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 977, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9263:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 978, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 7375, + "src": "9263:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$returns$_t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer) view returns (struct TokenListing.WhitelistedToken memory[] memory)" + } + }, + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9263:21:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.WhitelistedToken memory[] memory" + } + }, + "id": 980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9263:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9259:32:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 997, + "initializationExpression": { + "assignments": [ + 973 + ], + "declarations": [ + { + "constant": false, + "id": 973, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "9247:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 972, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9247:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 975, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9256:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9247:10:1" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9293:3:1", + "subExpression": { + "argumentTypes": null, + "id": 982, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "9293:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 984, + "nodeType": "ExpressionStatement", + "src": "9293:3:1" + }, + "nodeType": "ForStatement", + "src": "9242:123:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 998, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "9382:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 958, + "id": 999, + "nodeType": "Return", + "src": "9375:13:1" + } + ] + }, + "documentation": null, + "id": 1001, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 954, + "nodeType": "ParameterList", + "parameters": [], + "src": "9115:2:1" + }, + "payable": false, + "returnParameters": { + "id": 958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 957, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "9141:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 955, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9141:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 956, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9141:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9140:11:1" + }, + "scope": 1226, + "src": "9097:298:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1013, + "nodeType": "Block", + "src": "9473:59:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1010, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1003, + "src": "9519:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1008, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9490:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1009, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isTokenWhitelisted", + "nodeType": "MemberAccess", + "referencedDeclaration": 7395, + "src": "9490:28:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9490:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1007, + "id": 1012, + "nodeType": "Return", + "src": "9483:42:1" + } + ] + }, + "documentation": null, + "id": 1014, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isTokenWhitelisted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1003, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1014, + "src": "9429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9428:15:1" + }, + "payable": false, + "returnParameters": { + "id": 1007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1006, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1014, + "src": "9467:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9467:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9466:6:1" + }, + "scope": 1226, + "src": "9401:131:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1029, + "nodeType": "Block", + "src": "9620:61:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1025, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "9661:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1026, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "9668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1023, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9637:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7437, + "src": "9637:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 1027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9637:37:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1022, + "id": 1028, + "nodeType": "Return", + "src": "9630:44:1" + } + ] + }, + "documentation": null, + "id": 1030, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1016, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1030, + "src": "9561:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1015, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9561:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1018, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1030, + "src": "9576:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9576:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9560:30:1" + }, + "payable": false, + "returnParameters": { + "id": 1022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1030, + "src": "9614:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1020, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9614:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9613:6:1" + }, + "scope": 1226, + "src": "9538:143:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1082, + "nodeType": "Block", + "src": "9759:274:1", + "statements": [ + { + "assignments": [ + 1041 + ], + "declarations": [ + { + "constant": false, + "id": 1041, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 1083, + "src": "9769:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9769:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1040, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9769:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1051, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1047, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "9833:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1045, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9809:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7460, + "src": "9809:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale memory[] memory)" + } + }, + "id": 1048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.Crowdsale memory[] memory" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9809:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "9795:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 1042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1043, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9799:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9795:52:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9769:78:1" + }, + { + "body": { + "id": 1078, + "nodeType": "Block", + "src": "9923:80:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1066, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "9937:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1068, + "indexExpression": { + "argumentTypes": null, + "id": 1067, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1053, + "src": "9944:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9937:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1071, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "9973:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1069, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9949:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1070, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7460, + "src": "9949:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale memory[] memory)" + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9949:30:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.Crowdsale memory[] memory" + } + }, + "id": 1074, + "indexExpression": { + "argumentTypes": null, + "id": 1073, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1053, + "src": "9980:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9949:33:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_memory", + "typeString": "struct TokenListing.Crowdsale memory" + } + }, + "id": 1075, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "crowdsale", + "nodeType": "MemberAccess", + "referencedDeclaration": 7310, + "src": "9949:43:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9937:55:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1077, + "nodeType": "ExpressionStatement", + "src": "9937:55:1" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1056, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1053, + "src": "9875:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1059, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "9903:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1057, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9879:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7460, + "src": "9879:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale memory[] memory)" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9879:30:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.Crowdsale memory[] memory" + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9879:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9875:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1079, + "initializationExpression": { + "assignments": [ + 1053 + ], + "declarations": [ + { + "constant": false, + "id": 1053, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1083, + "src": "9863:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1052, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1055, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9872:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9863:10:1" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9918:3:1", + "subExpression": { + "argumentTypes": null, + "id": 1063, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1053, + "src": "9918:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1065, + "nodeType": "ExpressionStatement", + "src": "9918:3:1" + }, + "nodeType": "ForStatement", + "src": "9858:145:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1080, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "10020:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 1037, + "id": 1081, + "nodeType": "Return", + "src": "10013:13:1" + } + ] + }, + "documentation": null, + "id": 1083, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCrowdsales", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1033, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1032, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1083, + "src": "9710:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1031, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9710:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9709:15:1" + }, + "payable": false, + "returnParameters": { + "id": 1037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1036, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1083, + "src": "9748:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9748:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1035, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9748:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9747:11:1" + }, + "scope": 1226, + "src": "9687:346:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1098, + "nodeType": "Block", + "src": "10135:75:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1094, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "10186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1095, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "10193:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1092, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10152:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasCrowdsaleWithAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7486, + "src": "10152:33:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 1096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10152:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1091, + "id": 1097, + "nodeType": "Return", + "src": "10145:58:1" + } + ] + }, + "documentation": null, + "id": 1099, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasCrowdsaleWithAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1085, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1099, + "src": "10072:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1084, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10072:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1087, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 1099, + "src": "10087:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1086, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10087:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10071:34:1" + }, + "payable": false, + "returnParameters": { + "id": 1091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1090, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1099, + "src": "10129:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1089, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10129:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10128:6:1" + }, + "scope": 1226, + "src": "10039:171:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1111, + "nodeType": "Block", + "src": "10294:67:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1108, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "10348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1106, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10311:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasNotInitialisedCrowdsale", + "nodeType": "MemberAccess", + "referencedDeclaration": 7512, + "src": "10311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10311:43:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1105, + "id": 1110, + "nodeType": "Return", + "src": "10304:50:1" + } + ] + }, + "documentation": null, + "id": 1112, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasNotInitialisedCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1101, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1112, + "src": "10252:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1100, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10252:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10251:15:1" + }, + "payable": false, + "returnParameters": { + "id": 1105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1104, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1112, + "src": "10288:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10288:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10287:6:1" + }, + "scope": 1226, + "src": "10216:145:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1213, + "nodeType": "Block", + "src": "10514:705:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1133, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "10566:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1134, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "10573:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1131, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10532:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1132, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasCrowdsaleWithAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7486, + "src": "10532:33:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 1135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10532:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1130, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "10524:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10524:60:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1137, + "nodeType": "ExpressionStatement", + "src": "10524:60:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1138, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1121, + "src": "10595:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 1140, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10607:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10595:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1143, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "10644:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1144, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "10651:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1141, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10612:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1142, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "10612:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10612:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 1146, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7312, + "src": "10612:60:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10595:77:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1148, + "nodeType": "ExpressionStatement", + "src": "10595:77:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1149, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1121, + "src": "10682:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 1151, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10694:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10682:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1154, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "10731:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1155, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "10738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1152, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10699:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1153, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "10699:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10699:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ethFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7314, + "src": "10699:63:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10682:80:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1159, + "nodeType": "ExpressionStatement", + "src": "10682:80:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1160, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1121, + "src": "10772:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 1162, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10784:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10772:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1165, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "10821:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1166, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "10828:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1163, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10789:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1164, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "10789:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10789:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 1168, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7316, + "src": "10789:70:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10772:87:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1170, + "nodeType": "ExpressionStatement", + "src": "10772:87:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1171, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1121, + "src": "10869:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 1173, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10881:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10869:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1176, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "10918:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1177, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "10925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1174, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10886:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1175, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "10886:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10886:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 1179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7318, + "src": "10886:67:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10869:84:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1181, + "nodeType": "ExpressionStatement", + "src": "10869:84:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1182, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "10963:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 1184, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10971:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10963:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1187, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "11008:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1188, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "11015:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1185, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10976:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1186, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "10976:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10976:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 1190, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokensForSaleAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7320, + "src": "10976:69:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10963:82:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1192, + "nodeType": "ExpressionStatement", + "src": "10963:82:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1193, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "11055:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 1195, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11063:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11055:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1198, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "11100:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1199, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "11107:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1196, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "11068:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1197, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "11068:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 1200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11068:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 1201, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wTokensIssuedAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7322, + "src": "11068:69:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11055:82:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1203, + "nodeType": "ExpressionStatement", + "src": "11055:82:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1204, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1128, + "src": "11147:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1207, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "11188:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1208, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "11195:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1205, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "11156:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1206, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "11156:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11156:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 1210, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7325, + "src": "11156:56:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "src": "11147:65:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1212, + "nodeType": "ExpressionStatement", + "src": "11147:65:1" + } + ] + }, + "documentation": null, + "id": 1214, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1114, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1214, + "src": "10389:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10389:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1116, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 1214, + "src": "10404:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10404:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10388:34:1" + }, + "payable": false, + "returnParameters": { + "id": 1129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1121, + "name": "commissions", + "nodeType": "VariableDeclaration", + "scope": 1214, + "src": "10454:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 1118, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10454:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1120, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 1119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10459:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "10454:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1125, + "name": "amounts", + "nodeType": "VariableDeclaration", + "scope": 1214, + "src": "10475:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 1122, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10475:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1124, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10480:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "10475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1128, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 1214, + "src": "10492:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10492:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1127, + "length": null, + "nodeType": "ArrayTypeName", + "src": "10492:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10453:56:1" + }, + "scope": 1226, + "src": "10367:852:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "11279:60:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1221, + "name": "SERVICE_WALLET_ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 103, + "src": "11314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 1219, + "name": "wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "11296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$12001", + "typeString": "contract IWallets" + } + }, + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 12000, + "src": "11296:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint8_$returns$_t_address_$", + "typeString": "function (uint8) view external returns (address)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11296:36:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1218, + "id": 1223, + "nodeType": "Return", + "src": "11289:43:1" + } + ] + }, + "documentation": null, + "id": 1225, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "serviceWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1215, + "nodeType": "ParameterList", + "parameters": [], + "src": "11247:2:1" + }, + "payable": false, + "returnParameters": { + "id": 1218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1217, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "11270:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1216, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11270:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11269:9:1" + }, + "scope": 1226, + "src": "11225:114:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1227, + "src": "737:10604:1" + } + ], + "src": "0:11342:1" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/W12Lister.sol", + "exportedSymbols": { + "W12Lister": [ + 1226 + ] + }, + "id": 1227, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 66, "literals": [ "solidity", "^", @@ -14786,53 +16927,53 @@ "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 67, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 10049, + "scope": 1227, + "sourceUnit": 12389, "src": "26:59:1", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", "id": 68, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 10135, - "src": "86:63:1", + "scope": 1227, + "sourceUnit": 12454, + "src": "86:65:1", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", + "absolutePath": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", + "file": "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol", "id": 69, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 9778, - "src": "150:61:1", + "scope": 1227, + "sourceUnit": 13259, + "src": "152:67:1", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", "id": 70, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 10212, - "src": "212:63:1", + "scope": 1227, + "sourceUnit": 12987, + "src": "220:71:1", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/access/rbac/RBAC.sol", - "file": "openzeppelin-solidity/contracts/access/rbac/RBAC.sol", + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "id": 71, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 9885, - "src": "276:62:1", + "scope": 1227, + "sourceUnit": 13084, + "src": "292:64:1", "symbolAliases": [], "unitAlias": "" }, @@ -14841,9 +16982,9 @@ "file": "./crowdsale/factories/IW12CrowdsaleFactory.sol", "id": 72, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 4563, - "src": "339:56:1", + "scope": 1227, + "sourceUnit": 4085, + "src": "357:56:1", "symbolAliases": [], "unitAlias": "" }, @@ -14852,53 +16993,97 @@ "file": "./wallets/IWallets.sol", "id": 73, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 9686, - "src": "396:32:1", + "scope": 1227, + "sourceUnit": 12002, + "src": "414:32:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "file": "./access/roles/IAdminRole.sol", + "id": 74, + "nodeType": "ImportDirective", + "scope": 1227, + "sourceUnit": 1376, + "src": "447:39:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "./token/IWToken.sol", + "id": 75, + "nodeType": "ImportDirective", + "scope": 1227, + "sourceUnit": 10486, + "src": "487:29:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "file": "./libs/Percent.sol", - "id": 74, + "id": 76, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 5215, - "src": "429:28:1", + "scope": 1227, + "sourceUnit": 6432, + "src": "517:28:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "./token/WToken.sol", - "id": 75, + "id": 77, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 8751, - "src": "458:28:1", + "scope": 1227, + "sourceUnit": 11049, + "src": "546:28:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "file": "./token/exchanger/ITokenExchanger.sol", - "id": 76, + "id": 78, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 9195, - "src": "487:47:1", + "scope": 1227, + "sourceUnit": 11491, + "src": "575:47:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "./versioning/Versionable.sol", - "id": 77, + "id": 79, + "nodeType": "ImportDirective", + "scope": 1227, + "sourceUnit": 11834, + "src": "623:38:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/AdminRole.sol", + "file": "./access/roles/AdminRole.sol", + "id": 80, + "nodeType": "ImportDirective", + "scope": 1227, + "sourceUnit": 1353, + "src": "662:38:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/TokenListing.sol", + "file": "./libs/TokenListing.sol", + "id": 81, "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 9517, - "src": "535:38:1", + "scope": 1227, + "sourceUnit": 8173, + "src": "701:33:1", "symbolAliases": [], "unitAlias": "" }, @@ -14908,117 +17093,137 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 78, - "name": "Versionable", + "id": 82, + "name": "IAdminRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9516, - "src": "598:11:1", + "referencedDeclaration": 1375, + "src": "759:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$9516", - "typeString": "contract Versionable" + "typeIdentifier": "t_contract$_IAdminRole_$1375", + "typeString": "contract IAdminRole" } }, - "id": 79, + "id": 83, "nodeType": "InheritanceSpecifier", - "src": "598:11:1" + "src": "759:10:1" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 80, - "name": "RBAC", + "id": 84, + "name": "AdminRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9884, - "src": "611:4:1", + "referencedDeclaration": 1352, + "src": "771:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_RBAC_$9884", - "typeString": "contract RBAC" + "typeIdentifier": "t_contract$_AdminRole_$1352", + "typeString": "contract AdminRole" } }, - "id": 81, + "id": 85, "nodeType": "InheritanceSpecifier", - "src": "611:4:1" + "src": "771:9:1" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 82, - "name": "Ownable", + "id": 86, + "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "617:7:1", + "referencedDeclaration": 11833, + "src": "782:11:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Versionable_$11833", + "typeString": "contract Versionable" } }, - "id": 83, + "id": 87, "nodeType": "InheritanceSpecifier", - "src": "617:7:1" + "src": "782:11:1" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 84, + "id": 88, + "name": "Secondary", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12453, + "src": "795:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" + } + }, + "id": 89, + "nodeType": "InheritanceSpecifier", + "src": "795:9:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 90, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9777, - "src": "626:15:1", + "referencedDeclaration": 13258, + "src": "806:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9777", + "typeIdentifier": "t_contract$_ReentrancyGuard_$13258", "typeString": "contract ReentrancyGuard" } }, - "id": 85, + "id": 91, "nodeType": "InheritanceSpecifier", - "src": "626:15:1" + "src": "806:15:1" } ], "contractDependencies": [ - 8750, - 9516, - 9777, - 9884, - 10134 + 1352, + 1375, + 11048, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1058, + "id": 1226, "linearizedBaseContracts": [ - 1058, - 9777, - 10134, - 9884, - 9516 + 1226, + 13258, + 12453, + 11833, + 1352, + 1375 ], "name": "W12Lister", "nodeType": "ContractDefinition", "nodes": [ { - "id": 88, + "id": 94, "libraryName": { "contractScope": null, - "id": 86, + "id": 92, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "654:8:1", + "referencedDeclaration": 12388, + "src": "834:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "648:24:1", + "src": "828:24:1", "typeName": { - "id": 87, + "id": 93, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "667:4:1", + "src": "847:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15026,39 +17231,68 @@ } }, { - "id": 91, + "id": 97, "libraryName": { "contractScope": null, - "id": 89, + "id": 95, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5214, - "src": "683:7:1", + "referencedDeclaration": 6431, + "src": "863:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$5214", + "typeIdentifier": "t_contract$_Percent_$6431", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "677:23:1", + "src": "857:23:1", "typeName": { - "id": 90, + "id": 96, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "695:4:1", + "src": "875:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, + { + "id": 100, + "libraryName": { + "contractScope": null, + "id": 98, + "name": "TokenListing", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 8172, + "src": "891:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenListing_$8172", + "typeString": "library TokenListing" + } + }, + "nodeType": "UsingForDirective", + "src": "885:46:1", + "typeName": { + "contractScope": null, + "id": 99, + "name": "TokenListing.Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "908:22:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" + } + } + }, { "constant": true, - "id": 94, + "id": 103, "name": "SERVICE_WALLET_ID", "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "706:36:1", + "scope": 1226, + "src": "937:36:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -15066,10 +17300,10 @@ "typeString": "uint8" }, "typeName": { - "id": 92, + "id": 101, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "706:5:1", + "src": "937:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15078,14 +17312,14 @@ "value": { "argumentTypes": null, "hexValue": "31", - "id": 93, + "id": 102, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "741:1:1", + "src": "972:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -15097,69 +17331,26 @@ }, { "constant": false, - "id": 97, - "name": "ROLE_ADMIN", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "748:34:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 95, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "748:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "61646d696e", - "id": 96, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "775:7:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d8", - "typeString": "literal_string \"admin\"" - }, - "value": "admin" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 99, + "id": 105, "name": "exchanger", "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "789:32:1", + "scope": 1226, + "src": "980:32:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" }, "typeName": { "contractScope": null, - "id": 98, + "id": 104, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9194, - "src": "789:15:1", + "referencedDeclaration": 11490, + "src": "980:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } }, @@ -15168,26 +17359,26 @@ }, { "constant": false, - "id": 101, + "id": 107, "name": "factory", "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "827:35:1", + "scope": 1226, + "src": "1018:35:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" }, "typeName": { "contractScope": null, - "id": 100, + "id": 106, "name": "IW12CrowdsaleFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4562, - "src": "827:20:1", + "referencedDeclaration": 4084, + "src": "1018:20:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, @@ -15196,26 +17387,26 @@ }, { "constant": false, - "id": 103, + "id": 109, "name": "wallets", "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "868:23:1", + "scope": 1226, + "src": "1059:23:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" }, "typeName": { "contractScope": null, - "id": 102, + "id": 108, "name": "IWallets", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9685, - "src": "868:8:1", + "referencedDeclaration": 12001, + "src": "1059:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" } }, @@ -15224,205 +17415,119 @@ }, { "constant": false, - "id": 109, - "name": "approvedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "984:75:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint16_$_$", - "typeString": "mapping(address => mapping(address => uint16))" - }, - "typeName": { - "id": 108, - "keyType": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "993:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "984:48:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint16_$_$", - "typeString": "mapping(address => mapping(address => uint16))" - }, - "valueType": { - "id": 107, - "keyType": { - "id": 105, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1013:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1004:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$", - "typeString": "mapping(address => uint16)" - }, - "valueType": { - "id": 106, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1024:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 112, - "name": "approvedTokens", + "id": 111, + "name": "whitelist", "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "1065:35:1", + "scope": 1226, + "src": "1089:32:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken[]" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist" }, "typeName": { - "baseType": { - "contractScope": null, - "id": 110, - "name": "ListedToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 182, - "src": "1065:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken" - } - }, - "id": 111, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1065:13:1", + "contractScope": null, + "id": 110, + "name": "TokenListing.Whitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7357, + "src": "1089:22:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage_ptr", - "typeString": "struct W12Lister.ListedToken[]" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage_ptr", + "typeString": "struct TokenListing.Whitelist" } }, "value": null, - "visibility": "public" + "visibility": "internal" }, { - "constant": false, + "anonymous": false, + "documentation": null, "id": 117, - "name": "approvedOwnersList", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "1144:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[])" - }, - "typeName": { + "name": "OwnerWhitelisted", + "nodeType": "EventDefinition", + "parameters": { "id": 116, - "keyType": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1154:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1144:32:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[])" - }, - "valueType": { - "baseType": { - "id": 114, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1165:7:1", + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 113, + "indexed": true, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 117, + "src": "1151:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1151:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 115, + "indexed": true, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 117, + "src": "1181:26:1", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - } - }, - "id": 115, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1165:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + }, + "typeName": { + "id": 114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1181:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "name": "approvedTokensLength", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "1201:34:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 118, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1201:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } + ], + "src": "1150:58:1" }, - "value": null, - "visibility": "public" + "src": "1128:81:1" }, { "anonymous": false, "documentation": null, - "id": 129, - "name": "OwnerWhitelisted", + "id": 130, + "name": "TokenWhitelisted", "nodeType": "EventDefinition", "parameters": { - "id": 128, + "id": 129, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 121, + "id": 119, "indexed": true, - "name": "tokenAddress", + "name": "token", "nodeType": "VariableDeclaration", - "scope": 129, - "src": "1265:28:1", + "scope": 130, + "src": "1237:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15430,10 +17535,10 @@ "typeString": "address" }, "typeName": { - "id": 120, + "id": 118, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1265:7:1", + "src": "1237:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15444,12 +17549,12 @@ }, { "constant": false, - "id": 123, + "id": 121, "indexed": true, - "name": "tokenOwner", + "name": "sender", "nodeType": "VariableDeclaration", - "scope": 129, - "src": "1295:26:1", + "scope": 130, + "src": "1260:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15457,10 +17562,10 @@ "typeString": "address" }, "typeName": { - "id": 122, + "id": 120, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1295:7:1", + "src": "1260:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15471,12 +17576,49 @@ }, { "constant": false, - "id": 125, + "id": 124, + "indexed": false, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 130, + "src": "1284:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 122, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 123, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1284:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 126, "indexed": false, "name": "name", "nodeType": "VariableDeclaration", - "scope": 129, - "src": "1323:11:1", + "scope": 130, + "src": "1302:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15484,10 +17626,10 @@ "typeString": "string" }, "typeName": { - "id": 124, + "id": 125, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1323:6:1", + "src": "1302:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -15498,12 +17640,12 @@ }, { "constant": false, - "id": 127, + "id": 128, "indexed": false, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 129, - "src": "1336:13:1", + "scope": 130, + "src": "1315:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15511,10 +17653,10 @@ "typeString": "string" }, "typeName": { - "id": 126, + "id": 127, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1336:6:1", + "src": "1315:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -15524,28 +17666,28 @@ "visibility": "internal" } ], - "src": "1264:86:1" + "src": "1236:93:1" }, - "src": "1242:109:1" + "src": "1214:116:1" }, { "anonymous": false, "documentation": null, - "id": 139, + "id": 142, "name": "TokenPlaced", "nodeType": "EventDefinition", "parameters": { - "id": 138, + "id": 141, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 131, + "id": 132, "indexed": true, - "name": "originalTokenAddress", + "name": "originalToken", "nodeType": "VariableDeclaration", - "scope": 139, - "src": "1374:36:1", + "scope": 142, + "src": "1353:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15553,10 +17695,10 @@ "typeString": "address" }, "typeName": { - "id": 130, + "id": 131, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1374:7:1", + "src": "1353:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15567,12 +17709,39 @@ }, { "constant": false, - "id": 133, + "id": 134, "indexed": true, - "name": "tokenOwner", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 142, + "src": "1384:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 133, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 136, + "indexed": false, + "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 139, - "src": "1412:26:1", + "scope": 142, + "src": "1408:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15580,10 +17749,10 @@ "typeString": "address" }, "typeName": { - "id": 132, + "id": 135, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1412:7:1", + "src": "1408:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15594,12 +17763,12 @@ }, { "constant": false, - "id": 135, + "id": 138, "indexed": false, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 139, - "src": "1440:16:1", + "scope": 142, + "src": "1427:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15607,10 +17776,10 @@ "typeString": "uint256" }, "typeName": { - "id": 134, + "id": 137, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1440:4:1", + "src": "1427:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15621,12 +17790,12 @@ }, { "constant": false, - "id": 137, + "id": 140, "indexed": false, - "name": "placedTokenAddress", + "name": "placedToken", "nodeType": "VariableDeclaration", - "scope": 139, - "src": "1458:26:1", + "scope": 142, + "src": "1445:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15634,10 +17803,10 @@ "typeString": "address" }, "typeName": { - "id": 136, + "id": 139, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1458:7:1", + "src": "1445:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15647,28 +17816,28 @@ "visibility": "internal" } ], - "src": "1373:112:1" + "src": "1352:113:1" }, - "src": "1356:130:1" + "src": "1335:131:1" }, { "anonymous": false, "documentation": null, - "id": 147, + "id": 152, "name": "CrowdsaleInitialized", "nodeType": "EventDefinition", "parameters": { - "id": 146, + "id": 151, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 141, + "id": 144, "indexed": true, - "name": "tokenAddress", + "name": "token", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1518:28:1", + "scope": 152, + "src": "1498:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15676,10 +17845,10 @@ "typeString": "address" }, "typeName": { - "id": 140, + "id": 143, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1518:7:1", + "src": "1498:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15690,12 +17859,39 @@ }, { "constant": false, - "id": 143, + "id": 146, "indexed": true, - "name": "tokenOwner", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "1521:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 145, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1521:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 148, + "indexed": false, + "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1548:26:1", + "scope": 152, + "src": "1545:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15703,10 +17899,10 @@ "typeString": "address" }, "typeName": { - "id": 142, + "id": 147, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1548:7:1", + "src": "1545:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15717,12 +17913,12 @@ }, { "constant": false, - "id": 145, + "id": 150, "indexed": false, "name": "amountForSale", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1576:18:1", + "scope": 152, + "src": "1564:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15730,10 +17926,10 @@ "typeString": "uint256" }, "typeName": { - "id": 144, + "id": 149, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1576:4:1", + "src": "1564:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15743,28 +17939,28 @@ "visibility": "internal" } ], - "src": "1517:78:1" + "src": "1497:86:1" }, - "src": "1491:105:1" + "src": "1471:113:1" }, { "anonymous": false, "documentation": null, - "id": 155, + "id": 162, "name": "CrowdsaleTokenMinted", "nodeType": "EventDefinition", "parameters": { - "id": 154, + "id": 161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 149, + "id": 154, "indexed": true, - "name": "tokenAddress", + "name": "token", "nodeType": "VariableDeclaration", - "scope": 155, - "src": "1628:28:1", + "scope": 162, + "src": "1616:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15772,10 +17968,10 @@ "typeString": "address" }, "typeName": { - "id": 148, + "id": 153, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1628:7:1", + "src": "1616:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15786,12 +17982,12 @@ }, { "constant": false, - "id": 151, + "id": 156, "indexed": true, - "name": "tokenOwner", + "name": "sender", "nodeType": "VariableDeclaration", - "scope": 155, - "src": "1658:26:1", + "scope": 162, + "src": "1639:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15799,10 +17995,10 @@ "typeString": "address" }, "typeName": { - "id": 150, + "id": 155, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1658:7:1", + "src": "1639:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15813,386 +18009,333 @@ }, { "constant": false, - "id": 153, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 155, - "src": "1686:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 152, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1686:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1627:71:1" - }, - "src": "1601:98:1" - }, - { - "canonicalName": "W12Lister.ListedToken", - "id": 182, - "members": [ - { - "constant": false, - "id": 157, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1734:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 156, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1734:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 159, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1755:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { "id": 158, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1755:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 161, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1778:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 160, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1778:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 165, - "name": "approvedOwners", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1802:39:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 164, - "keyType": { - "id": 162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1810:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1802:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 163, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1821:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 167, - "name": "feePercent", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1851:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1851:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "ethFeePercent", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1876:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1876:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 171, - "name": "WTokenSaleFeePercent", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1904:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 170, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1904:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 173, - "name": "trancheFeePercent", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1939:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 172, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1939:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 175, - "name": "crowdsaleAddress", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "1971:30:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - }, - "typeName": { - "contractScope": null, - "id": 174, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "1971:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 177, - "name": "tokensForSaleAmount", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "2011:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 176, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2011:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 179, - "name": "wTokensIssuedAmount", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "2045:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "indexed": false, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 162, + "src": "1663:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 157, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1663:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, - "typeName": { - "id": 178, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2045:4:1", + { + "constant": false, + "id": 160, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 162, + "src": "1682:11:1", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 181, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 182, - "src": "2079:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + }, + "typeName": { + "id": 159, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1682:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1615:79:1" + }, + "src": "1589:106:1" + }, + { + "body": { + "id": 212, + "nodeType": "Block", + "src": "1871:221:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 177, + "name": "_wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 166, + "src": "1889:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$12001", + "typeString": "contract IWallets" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1909:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1901:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1901:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1889:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 176, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1881:31:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 183, + "nodeType": "ExpressionStatement", + "src": "1881:31:1" }, - "typeName": { - "id": 180, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2079:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 185, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "1930:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", + "typeString": "contract IW12CrowdsaleFactory" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1950:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1942:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1942:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1930:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 184, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1922:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1922:31:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 191, + "nodeType": "ExpressionStatement", + "src": "1922:31:1" }, - "value": null, - "visibility": "internal" - } - ], - "name": "ListedToken", - "nodeType": "StructDefinition", - "scope": 1058, - "src": "1705:401:1", - "visibility": "public" - }, - { - "body": { - "id": 235, - "nodeType": "Block", - "src": "2282:298:1", - "statements": [ { "expression": { "argumentTypes": null, @@ -16203,22 +18346,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 201, + "id": 197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 197, - "name": "_factory", + "id": 193, + "name": "_exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "2300:8:1", + "referencedDeclaration": 170, + "src": "1971:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", - "typeString": "contract IW12CrowdsaleFactory" + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" } }, "nodeType": "BinaryOperation", @@ -16229,14 +18372,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 199, + "id": 195, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2320:1:1", + "src": "1993:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -16252,20 +18395,20 @@ "typeString": "int_const 0" } ], - "id": 198, + "id": 194, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2312:7:1", + "src": "1985:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 200, + "id": 196, "isConstant": false, "isLValue": false, "isPure": true, @@ -16273,13 +18416,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2312:10:1", + "src": "1985:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2300:22:1", + "src": "1971:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16293,21 +18436,21 @@ "typeString": "bool" } ], - "id": 196, + "id": 192, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "2292:7:1", + "referencedDeclaration": 13444, + "src": "1963:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 202, + "id": 198, "isConstant": false, "isLValue": false, "isPure": false, @@ -16315,131 +18458,371 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2292:31:1", + "src": "1963:33:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, + "id": 199, + "nodeType": "ExpressionStatement", + "src": "1963:33:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 200, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "2007:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 201, + "name": "_exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "2019:10:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "src": "2007:22:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, "id": 203, "nodeType": "ExpressionStatement", - "src": "2292:31:1" + "src": "2007:22:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 204, + "name": "wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "2039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$12001", + "typeString": "contract IWallets" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 205, + "name": "_wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 166, + "src": "2049:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$12001", + "typeString": "contract IWallets" + } + }, + "src": "2039:18:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$12001", + "typeString": "contract IWallets" + } + }, + "id": 207, + "nodeType": "ExpressionStatement", + "src": "2039:18:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 208, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "2067:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", + "typeString": "contract IW12CrowdsaleFactory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 209, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "2077:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", + "typeString": "contract IW12CrowdsaleFactory" + } + }, + "src": "2067:18:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", + "typeString": "contract IW12CrowdsaleFactory" + } + }, + "id": 211, + "nodeType": "ExpressionStatement", + "src": "2067:18:1" + } + ] + }, + "documentation": null, + "id": 213, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 173, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 164, + "src": "1855:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 174, + "modifierName": { + "argumentTypes": null, + "id": 172, + "name": "Versionable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11833, + "src": "1843:11:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Versionable_$11833_$", + "typeString": "type(contract Versionable)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1843:20:1" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 164, + "name": "version", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1722:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 163, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1722:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 166, + "name": "_wallets", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1744:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$12001", + "typeString": "contract IWallets" + }, + "typeName": { + "contractScope": null, + "id": 165, + "name": "IWallets", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12001, + "src": "1744:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$12001", + "typeString": "contract IWallets" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 168, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1771:29:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", + "typeString": "contract IW12CrowdsaleFactory" + }, + "typeName": { + "contractScope": null, + "id": 167, + "name": "IW12CrowdsaleFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4084, + "src": "1771:20:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", + "typeString": "contract IW12CrowdsaleFactory" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 170, + "name": "_exchanger", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1810:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + }, + "typeName": { + "contractScope": null, + "id": 169, + "name": "ITokenExchanger", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11490, + "src": "1810:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1712:130:1" + }, + "payable": false, + "returnParameters": { + "id": 175, + "nodeType": "ParameterList", + "parameters": [], + "src": "1871:0:1" + }, + "scope": 1226, + "src": "1701:391:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 224, + "nodeType": "Block", + "src": "2153:36:1", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 221, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "2173:8:1", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "id": 209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 205, - "name": "_exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 190, - "src": "2341:10:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2363:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2355:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2355:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2341:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 204, - "name": "require", + "id": 220, + "name": "_addAdmin", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2333:7:1", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "2163:9:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 210, + "id": 222, "isConstant": false, "isLValue": false, "isPure": false, @@ -16447,224 +18830,473 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2333:33:1", + "src": "2163:19:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 211, + "id": 223, "nodeType": "ExpressionStatement", - "src": "2333:33:1" + "src": "2163:19:1" + } + ] + }, + "documentation": null, + "id": 225, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 218, + "modifierName": { + "argumentTypes": null, + "id": 217, + "name": "onlyPrimary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12420, + "src": "2141:11:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "2141:11:1" + } + ], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 216, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "id": 214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 212, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "2377:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 213, - "name": "_exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 190, - "src": "2389:10:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "src": "2377:22:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, + "constant": false, "id": 215, - "nodeType": "ExpressionStatement", - "src": "2377:22:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 216, - "name": "wallets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2409:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", - "typeString": "contract IWallets" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 217, - "name": "_wallets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "2419:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", - "typeString": "contract IWallets" - } - }, - "src": "2409:18:1", + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 225, + "src": "2116:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2116:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", - "typeString": "contract IWallets" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 219, - "nodeType": "ExpressionStatement", - "src": "2409:18:1" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "2115:18:1" + }, + "payable": false, + "returnParameters": { + "id": 219, + "nodeType": "ParameterList", + "parameters": [], + "src": "2153:0:1" + }, + "scope": 1226, + "src": "2098:91:1", + "stateMutability": "nonpayable", + "superFunction": 1366, + "visibility": "public" + }, + { + "body": { + "id": 236, + "nodeType": "Block", + "src": "2253:39:1", + "statements": [ { "expression": { "argumentTypes": null, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 220, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "2437:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", - "typeString": "contract IW12CrowdsaleFactory" + "arguments": [ + { + "argumentTypes": null, + "id": 233, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "2276:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 221, - "name": "_factory", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 232, + "name": "_removeAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "2447:8:1", + "referencedDeclaration": 1351, + "src": "2263:12:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", - "typeString": "contract IW12CrowdsaleFactory" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "src": "2437:18:1", + "id": 234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2263:22:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", - "typeString": "contract IW12CrowdsaleFactory" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 223, + "id": 235, "nodeType": "ExpressionStatement", - "src": "2437:18:1" + "src": "2263:22:1" + } + ] + }, + "documentation": null, + "id": 237, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 230, + "modifierName": { + "argumentTypes": null, + "id": 229, + "name": "onlyPrimary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12420, + "src": "2241:11:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "2241:11:1" + } + ], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 227, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "2216:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2215:18:1" + }, + "payable": false, + "returnParameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [], + "src": "2253:0:1" + }, + "scope": 1226, + "src": "2195:97:1", + "stateMutability": "nonpayable", + "superFunction": 1374, + "visibility": "public" + }, + { + "body": { + "id": 284, + "nodeType": "Block", + "src": "2596:336:1", + "statements": [ { "expression": { "argumentTypes": null, - "id": 227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2465:23:1", - "subExpression": { - "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 264, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "2641:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 265, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "2660:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 266, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 243, + "src": "2678:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 267, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 245, + "src": "2698:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 268, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "2720:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 269, + "name": "feePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 250, + "src": "2740:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 270, + "name": "ethFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 252, + "src": "2764:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 271, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2791:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 272, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2825:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { "argumentTypes": null, - "id": 224, - "name": "approvedTokens", + "id": 261, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2465:14:1", + "referencedDeclaration": 111, + "src": "2606:9:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 226, + "id": 263, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": true, - "memberName": "length", + "lValueRequested": false, + "memberName": "addOrUpdate", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2465:21:1", + "referencedDeclaration": 8019, + "src": "2606:21:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,string memory,string memory,uint8,address[] memory,uint256,uint256,uint256,uint256) returns (uint256)" } }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2606:246:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 228, + "id": 274, "nodeType": "ExpressionStatement", - "src": "2465:23:1" + "src": "2606:246:1" }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ + { + "argumentTypes": null, + "id": 276, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "2885:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 230, + "id": 277, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "2550:3:1", + "referencedDeclaration": 13441, + "src": "2892:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 231, + "id": 278, "isConstant": false, "isLValue": false, "isPure": false, @@ -16672,7 +19304,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2550:10:1", + "src": "2892:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16680,15 +19312,41 @@ }, { "argumentTypes": null, - "id": 232, - "name": "ROLE_ADMIN", + "id": 279, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "2904:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 280, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "2912:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 281, + "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "2562:10:1", + "referencedDeclaration": 243, + "src": "2918:6:1", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } } ], @@ -16699,22 +19357,34 @@ "typeString": "address" }, { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } ], - "id": 229, - "name": "addRole", + "id": 275, + "name": "TokenWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9851, - "src": "2542:7:1", + "referencedDeclaration": 130, + "src": "2868:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,string memory)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,address,address[] memory,string memory,string memory)" } }, - "id": 233, + "id": 282, "isConstant": false, "isLValue": false, "isPure": false, @@ -16722,85 +19392,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2542:31:1", + "src": "2868:57:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 234, - "nodeType": "ExpressionStatement", - "src": "2542:31:1" + "id": 283, + "nodeType": "EmitStatement", + "src": "2863:62:1" } ] }, "documentation": null, - "id": 236, + "id": 285, "implemented": true, - "isConstructor": true, + "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { - "arguments": [ - { - "argumentTypes": null, - "id": 193, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "2266:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 194, + "arguments": null, + "id": 259, "modifierName": { "argumentTypes": null, - "id": 192, - "name": "Versionable", + "id": 258, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9516, - "src": "2254:11:1", + "referencedDeclaration": 1297, + "src": "2582:9:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$9516_$", - "typeString": "type(contract Versionable)" + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2254:20:1" + "src": "2582:9:1" } ], - "name": "", + "name": "whitelistToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 191, + "id": 257, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 184, - "name": "version", + "id": 239, + "name": "token", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "2133:12:1", + "scope": 285, + "src": "2331:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 183, - "name": "uint", + "id": 238, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "2133:4:1", + "src": "2331:7:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, @@ -16808,27 +19464,25 @@ }, { "constant": false, - "id": 186, - "name": "_wallets", + "id": 241, + "name": "name", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "2155:17:1", + "scope": 285, + "src": "2354:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", - "typeString": "contract IWallets" + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" }, "typeName": { - "contractScope": null, - "id": 185, - "name": "IWallets", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9685, - "src": "2155:8:1", + "id": 240, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2354:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", - "typeString": "contract IWallets" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, @@ -16836,27 +19490,25 @@ }, { "constant": false, - "id": 188, - "name": "_factory", + "id": 243, + "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "2182:29:1", + "scope": 285, + "src": "2375:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", - "typeString": "contract IW12CrowdsaleFactory" + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" }, "typeName": { - "contractScope": null, - "id": 187, - "name": "IW12CrowdsaleFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4562, - "src": "2182:20:1", + "id": 242, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2375:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", - "typeString": "contract IW12CrowdsaleFactory" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, @@ -16864,359 +19516,191 @@ }, { "constant": false, - "id": 190, - "name": "_exchanger", + "id": 245, + "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "2221:26:1", + "scope": 285, + "src": "2398:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_uint8", + "typeString": "uint8" }, "typeName": { - "contractScope": null, - "id": 189, - "name": "ITokenExchanger", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9194, - "src": "2221:15:1", + "id": 244, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2398:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "value": null, "visibility": "internal" - } - ], - "src": "2123:130:1" - }, - "payable": false, - "returnParameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [], - "src": "2282:0:1" - }, - "scope": 1058, - "src": "2112:468:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "2640:47:1", - "statements": [ + }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 244, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 238, - "src": "2658:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 245, - "name": "ROLE_ADMIN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "2669:10:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 243, - "name": "addRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9851, - "src": "2650:7:1", + "constant": false, + "id": 248, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2422:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 246, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2422:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,string memory)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2650:30:1", + "id": 247, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2422:9:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, - "id": 247, - "nodeType": "ExpressionStatement", - "src": "2650:30:1" - } - ] - }, - "documentation": null, - "id": 249, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 241, - "modifierName": { - "argumentTypes": null, - "id": 240, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "2630:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } + "value": null, + "visibility": "internal" }, - "nodeType": "ModifierInvocation", - "src": "2630:9:1" - } - ], - "name": "addAdmin", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 239, - "nodeType": "ParameterList", - "parameters": [ { "constant": false, - "id": 238, - "name": "_operator", + "id": 250, + "name": "feePercent", "nodeType": "VariableDeclaration", - "scope": 249, - "src": "2604:17:1", + "scope": 285, + "src": "2448:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 237, - "name": "address", + "id": 249, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2604:7:1", + "src": "2448:4:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" - } - ], - "src": "2603:19:1" - }, - "payable": false, - "returnParameters": { - "id": 242, - "nodeType": "ParameterList", - "parameters": [], - "src": "2640:0:1" - }, - "scope": 1058, - "src": "2586:101:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 261, - "nodeType": "Block", - "src": "2750:50:1", - "statements": [ + }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 257, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "2771:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 258, - "name": "ROLE_ADMIN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "2782:10:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 256, - "name": "removeRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9871, - "src": "2760:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,string memory)" - } - }, - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2760:33:1", + "constant": false, + "id": 252, + "name": "ethFeePercent", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2473:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 251, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2473:4:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 260, - "nodeType": "ExpressionStatement", - "src": "2760:33:1" - } - ] - }, - "documentation": null, - "id": 262, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 254, - "modifierName": { - "argumentTypes": null, - "id": 253, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "2740:9:1", + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 254, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2501:25:1", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 253, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2501:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" }, - "nodeType": "ModifierInvocation", - "src": "2740:9:1" - } - ], - "name": "removeAdmin", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 252, - "nodeType": "ParameterList", - "parameters": [ { "constant": false, - "id": 251, - "name": "_operator", + "id": 256, + "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "2714:17:1", + "scope": 285, + "src": "2536:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 250, - "name": "address", + "id": 255, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2714:7:1", + "src": "2536:4:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "2713:19:1" + "src": "2321:243:1" }, "payable": false, "returnParameters": { - "id": 255, + "id": 260, "nodeType": "ParameterList", "parameters": [], - "src": "2750:0:1" + "src": "2596:0:1" }, - "scope": 1058, - "src": "2693:107:1", + "scope": 1226, + "src": "2298:634:1", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 473, + "id": 475, "nodeType": "Block", - "src": "3124:1457:1", + "src": "3198:1468:1", "statements": [ { "expression": { @@ -17228,19 +19712,36 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 291, + "id": 302, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 287, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "3143:10:1", + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 297, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "3216:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3216:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17254,14 +19755,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 289, + "id": 300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3165:1:1", + "src": "3243:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17277,20 +19778,20 @@ "typeString": "int_const 0" } ], - "id": 288, + "id": 299, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3157:7:1", + "src": "3235:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 290, + "id": 301, "isConstant": false, "isLValue": false, "isPure": true, @@ -17298,13 +19799,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3157:10:1", + "src": "3235:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3143:24:1", + "src": "3216:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17318,21 +19819,21 @@ "typeString": "bool" } ], - "id": 286, + "id": 296, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3135:7:1", + "referencedDeclaration": 13444, + "src": "3208:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 292, + "id": 303, "isConstant": false, "isLValue": false, "isPure": false, @@ -17340,15 +19841,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3135:33:1", + "src": "3208:38:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 293, + "id": 304, "nodeType": "ExpressionStatement", - "src": "3135:33:1" + "src": "3208:38:1" }, { "expression": { @@ -17357,86 +19858,48 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 299, + "id": 308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 295, - "name": "tokenAddress", + "id": 306, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "3186:12:1", + "referencedDeclaration": 291, + "src": "3264:6:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": ">", "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3210:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3202:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 298, + "hexValue": "30", + "id": 307, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "typeConversion", + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3202:10:1", + "nodeType": "Literal", + "src": "3273:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "3186:26:1", + "src": "3264:10:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17450,21 +19913,21 @@ "typeString": "bool" } ], - "id": 294, + "id": 305, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3178:7:1", + "referencedDeclaration": 13444, + "src": "3256:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 300, + "id": 309, "isConstant": false, "isLValue": false, "isPure": false, @@ -17472,15 +19935,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3178:35:1", + "src": "3256:19:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 301, + "id": 310, "nodeType": "ExpressionStatement", - "src": "3178:35:1" + "src": "3256:19:1" }, { "expression": { @@ -17488,147 +19951,64 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 303, - "name": "feePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 274, - "src": "3231:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "3231:20:1", + "arguments": [ + { + "argumentTypes": null, + "id": 314, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "3322:5:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3231:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 306, - "name": "feePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 274, - "src": "3257:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "3257:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3257:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { + ], + "expression": { "argumentTypes": null, - "hexValue": "313030", - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3284:3:1", - "subdenomination": null, + "id": 312, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "3293:9:1", "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } }, - "src": "3257:30:1", + "id": 313, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isTokenWhitelisted", + "nodeType": "MemberAccess", + "referencedDeclaration": 7395, + "src": "3293:28:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" } }, - "src": "3231:56:1", + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3293:35:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17642,21 +20022,21 @@ "typeString": "bool" } ], - "id": 302, + "id": 311, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3223:7:1", + "referencedDeclaration": 13444, + "src": "3285:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 312, + "id": 316, "isConstant": false, "isLValue": false, "isPure": false, @@ -17664,15 +20044,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3223:65:1", + "src": "3285:44:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 313, + "id": 317, "nodeType": "ExpressionStatement", - "src": "3223:65:1" + "src": "3285:44:1" }, { "expression": { @@ -17680,147 +20060,97 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], + "arguments": [ + { + "argumentTypes": null, + "id": 321, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "3371:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 315, - "name": "ethFeePercent", + "id": 322, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "3306:13:1", + "referencedDeclaration": 13441, + "src": "3378:3:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 316, + "id": 323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "isPercent", + "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "3306:23:1", + "referencedDeclaration": null, + "src": "3378:10:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3306:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 318, - "name": "ethFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "3335:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "3335:25:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3335:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { + ], + "expression": { "argumentTypes": null, - "hexValue": "313030", - "id": 321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3365:3:1", - "subdenomination": null, + "id": 319, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "3347:9:1", "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } }, - "src": "3335:33:1", + "id": 320, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7437, + "src": "3347:23:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" } }, - "src": "3306:62:1", + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3347:42:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17834,21 +20164,21 @@ "typeString": "bool" } ], - "id": 314, + "id": 318, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3298:7:1", + "referencedDeclaration": 13444, + "src": "3339:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 324, + "id": 325, "isConstant": false, "isLValue": false, "isPure": false, @@ -17856,15 +20186,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3298:71:1", + "src": "3339:51:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 325, + "id": 326, "nodeType": "ExpressionStatement", - "src": "3298:71:1" + "src": "3339:51:1" }, { "expression": { @@ -17872,147 +20202,81 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 327, - "name": "WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 278, - "src": "3387:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "3387:30:1", + "arguments": [ + { + "argumentTypes": null, + "id": 330, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "3442:5:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3387:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 330, - "name": "WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 278, - "src": "3423:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "3423:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3423:34:1", + "id": 331, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "3449:9:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { "argumentTypes": null, - "hexValue": "313030", - "id": 333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3460:3:1", - "subdenomination": null, + "id": 328, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "3408:9:1", "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } }, - "src": "3423:40:1", + "id": 329, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasCrowdsaleWithAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7486, + "src": "3408:33:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" } }, - "src": "3387:76:1", + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3408:51:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18026,21 +20290,21 @@ "typeString": "bool" } ], - "id": 326, + "id": 327, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3379:7:1", + "referencedDeclaration": 13444, + "src": "3400:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 336, + "id": 333, "isConstant": false, "isLValue": false, "isPure": false, @@ -18048,207 +20312,205 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3379:85:1", + "src": "3400:60:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 337, + "id": 334, "nodeType": "ExpressionStatement", - "src": "3379:85:1" + "src": "3400:60:1" }, { - "expression": { + "assignments": [ + 338 + ], + "declarations": [ + { + "constant": false, + "id": 338, + "name": "listedToken", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "3471:49:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + }, + "typeName": { + "contractScope": null, + "id": 337, + "name": "TokenListing.WhitelistedToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7308, + "src": "3471:29:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 341, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "3542:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 339, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "3523:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 340, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "3523:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3523:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3471:77:1" + }, + { + "assignments": [ + 345 + ], + "declarations": [ + { + "constant": false, + "id": 345, + "name": "tokenInstance", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "3559:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + }, + "typeName": { + "contractScope": null, + "id": 344, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12986, + "src": "3559:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 349, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 339, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "3482:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5169, - "src": "3482:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3482:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 342, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "3515:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5213, - "src": "3515:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3515:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "313030", - "id": 345, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3549:3:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "src": "3515:37:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3482:70:1", + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "3603:5:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 338, - "name": "require", + "id": 346, + "name": "ERC20Detailed", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3474:7:1", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "3589:13:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" } }, "id": 348, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3474:79:1", + "src": "3589:20:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "id": 349, - "nodeType": "ExpressionStatement", - "src": "3474:79:1" + "nodeType": "VariableDeclarationStatement", + "src": "3559:50:1" }, { "expression": { @@ -18257,112 +20519,166 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 357, + "id": 360, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 353, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "3652:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3652:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 356, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13506, + "src": "3672:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Lister_$1226", + "typeString": "contract W12Lister" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Lister_$1226", + "typeString": "contract W12Lister" + } + ], + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3664:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3664:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "argumentTypes": null, - "arguments": [ + "argumentTypes": [ { - "argumentTypes": null, - "id": 352, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "3588:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" }, { - "argumentTypes": null, - "id": 353, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "3602:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], + "argumentTypes": null, "id": 351, - "name": "getApprovedToken", + "name": "tokenInstance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "3571:16:1", + "referencedDeclaration": 345, + "src": "3628:13:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, - "id": 354, + "id": 352, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3571:42:1", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 13037, + "src": "3628:23:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 355, + "id": 358, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "tokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 181, - "src": "3571:55:1", + "names": [], + "nodeType": "FunctionCall", + "src": "3628:50:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 356, - "name": "tokenAddress", + "id": 359, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "3630:12:1", + "referencedDeclaration": 291, + "src": "3682:6:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "3571:71:1", + "src": "3628:60:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18380,17 +20696,17 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "3563:7:1", + "referencedDeclaration": 13444, + "src": "3620:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 358, + "id": 361, "isConstant": false, "isLValue": false, "isPure": false, @@ -18398,15 +20714,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3563:80:1", + "src": "3620:69:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 359, + "id": 362, "nodeType": "ExpressionStatement", - "src": "3563:80:1" + "src": "3620:69:1" }, { "expression": { @@ -18414,124 +20730,93 @@ "arguments": [ { "argumentTypes": null, - "id": 368, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3661:70:1", - "subExpression": { + "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 362, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "3679:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 363, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "3693:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 361, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "3662:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3662:42:1", + "name": "tokenInstance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "3707:13:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } }, "id": 365, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "approvedOwners", + "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 165, - "src": "3662:57:1", + "referencedDeclaration": 12985, + "src": "3707:22:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" } }, - "id": 367, - "indexExpression": { + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3707:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 366, - "name": "tokenOwner", + "id": 367, + "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "3720:10:1", + "referencedDeclaration": 338, + "src": "3735:11:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, + "id": 368, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3662:69:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 7290, + "src": "3735:20:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, + "src": "3707:48:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18545,307 +20830,191 @@ "typeString": "bool" } ], - "id": 360, + "id": 363, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "3653:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3653:79:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 370, - "nodeType": "ExpressionStatement", - "src": "3653:79:1" - }, - { - "assignments": [ - 372 - ], - "declarations": [ - { - "constant": false, - "id": 372, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "3743:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 371, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3743:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 377, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 374, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "3765:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" - } - }, - "id": 375, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + 13444, + 13445 ], - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3758:6:1", + "referencedDeclaration": 13444, + "src": "3699:7:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": "uint16" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } }, - "id": 376, + "id": 370, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3758:29:1", + "src": "3699:57:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "3743:44:1" + "id": 371, + "nodeType": "ExpressionStatement", + "src": "3699:57:1" }, { - "expression": { + "assignments": [ + 373 + ], + "declarations": [ + { + "constant": false, + "id": 373, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "3767:8:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 372, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3767:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 385, + "initialValue": { "argumentTypes": null, - "id": 384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "condition": { "argumentTypes": null, - "baseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "approvedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "3798:19:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint16_$_$", - "typeString": "mapping(address => mapping(address => uint16))" - } - }, - "id": 381, - "indexExpression": { + "expression": { "argumentTypes": null, - "id": 379, - "name": "tokenAddress", + "id": 374, + "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "3818:12:1", + "referencedDeclaration": 338, + "src": "3778:11:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, + "id": 375, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3798:33:1", + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7295, + "src": "3778:22:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$", - "typeString": "mapping(address => uint16)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 382, - "indexExpression": { + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { "argumentTypes": null, - "id": 380, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "3832:10:1", + "hexValue": "30", + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3803:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3798:45:1", + "src": "3778:26:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "falseExpression": { "argumentTypes": null, + "hexValue": "30", "id": 383, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "3846:5:1", + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3872:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "3798:53:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 385, - "nodeType": "ExpressionStatement", - "src": "3798:53:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 392, + "id": 384, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 386, - "name": "approvedTokensLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "3862:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "Conditional", + "src": "3778:95:1", + "trueExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3892:23:1", - "subExpression": { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 388, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "3892:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" - } - }, - "id": 389, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3892:21:1", + "id": 380, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "3834:11:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, + "id": 381, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7295, + "src": "3834:22:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18859,123 +21028,140 @@ "typeString": "uint256" } ], - "id": 387, + "expression": { + "argumentTypes": null, + "id": 378, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 291, + "src": "3819:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 379, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3885:6:1", + "memberName": "percent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6350, + "src": "3819:14:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": "uint16" + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - "id": 391, + "id": 382, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3885:31:1", + "src": "3819:38:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "3862:54:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 393, - "nodeType": "ExpressionStatement", - "src": "3862:54:1" + "nodeType": "VariableDeclarationStatement", + "src": "3767:106:1" }, { - "expression": { + "assignments": [ + 387 + ], + "declarations": [ + { + "constant": false, + "id": 387, + "name": "amountWithoutFee", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "3883:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 386, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3883:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 392, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 398, - "name": "tokenOwner", + "id": 390, + "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "3965:10:1", + "referencedDeclaration": 373, + "src": "3918:3:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 394, - "name": "approvedOwnersList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "3927:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[] storage ref)" - } - }, - "id": 396, - "indexExpression": { - "argumentTypes": null, - "id": 395, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "3946:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3927:32:1", + "expression": { + "argumentTypes": null, + "id": 388, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 291, + "src": "3907:6:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 397, + "id": 389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "push", + "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3927:37:1", + "referencedDeclaration": 12343, + "src": "3907:10:1", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 399, + "id": 391, "isConstant": false, "isLValue": false, "isPure": false, @@ -18983,230 +21169,284 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3927:49:1", + "src": "3907:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 400, - "nodeType": "ExpressionStatement", - "src": "3927:49:1" + "nodeType": "VariableDeclarationStatement", + "src": "3883:39:1" }, { "expression": { "argumentTypes": null, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 401, - "name": "approvedTokens", + "id": 395, + "name": "tokenInstance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "3987:14:1", + "referencedDeclaration": 345, + "src": "3961:13:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } - }, - "id": 403, - "indexExpression": { - "argumentTypes": null, - "id": 402, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4002:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3987:21:1", + ], + "id": 394, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13083, + "src": "3954:6:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 404, + "id": 396, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "approvedOwners", - "nodeType": "MemberAccess", - "referencedDeclaration": 165, - "src": "3987:36:1", + "names": [], + "nodeType": "FunctionCall", + "src": "3954:21:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, - "id": 406, - "indexExpression": { + { "argumentTypes": null, - "id": 405, - "name": "tokenOwner", + "id": 397, + "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "4024:10:1", + "referencedDeclaration": 105, + "src": "3977:9:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3987:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + { + "argumentTypes": null, + "id": 398, + "name": "amountWithoutFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "3988:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4038:4:1", - "subdenomination": null, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 393, + "name": "_secureTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "3933:20:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$13083_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20,address,uint256)" + } }, - "src": "3987:55:1", + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3933:72:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 409, + "id": 400, "nodeType": "ExpressionStatement", - "src": "3987:55:1" + "src": "3933:72:1" }, { "expression": { "argumentTypes": null, - "id": 415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 410, - "name": "approvedTokens", + "arguments": [ + { + "argumentTypes": null, + "id": 403, + "name": "tokenInstance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4043:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + ], + "id": 402, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4052:14:1", + "referencedDeclaration": 13083, + "src": "4036:6:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 412, - "indexExpression": { - "argumentTypes": null, - "id": 411, - "name": "index", + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4036:21:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 405, + "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4067:5:1", + "referencedDeclaration": 1225, + "src": "4059:13:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" } }, + "id": 406, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4052:21:1", + "names": [], + "nodeType": "FunctionCall", + "src": "4059:15:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 413, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 157, - "src": "4052:26:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + { + "argumentTypes": null, + "id": 407, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "4076:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 414, - "name": "name", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 401, + "name": "_secureTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "4081:4:1", + "referencedDeclaration": 514, + "src": "4015:20:1", "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$13083_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20,address,uint256)" } }, - "src": "4052:33:1", + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4015:65:1", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 416, + "id": 409, "nodeType": "ExpressionStatement", - "src": "4052:33:1" + "src": "4015:65:1" }, { "expression": { "argumentTypes": null, - "id": 422, + "id": 426, "isConstant": false, "isLValue": false, "isPure": false, @@ -19215,629 +21455,799 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 417, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4095:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" - } - }, - "id": 419, - "indexExpression": { - "argumentTypes": null, - "id": 418, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4110:5:1", + "arguments": [ + { + "argumentTypes": null, + "id": 413, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "4123:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 414, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4130:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 410, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "4091:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 412, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "4091:31:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" } }, + "id": 415, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4095:21:1", + "names": [], + "nodeType": "FunctionCall", + "src": "4091:49:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } }, - "id": 420, + "id": 416, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberName": "symbol", + "memberName": "tokensForSaleAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 159, - "src": "4095:28:1", + "referencedDeclaration": 7320, + "src": "4091:69:1", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 421, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "4126:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "4095:37:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 423, - "nodeType": "ExpressionStatement", - "src": "4095:37:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, "id": 424, - "name": "approvedTokens", + "name": "amountWithoutFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4142:14:1", + "referencedDeclaration": 387, + "src": "4267:16:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 426, - "indexExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, - "id": 425, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4157:5:1", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 419, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "4208:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 420, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4215:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 417, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "4163:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 418, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "4163:44:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4163:62:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 422, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokensForSaleAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7320, + "src": "4163:99:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "id": 423, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4142:21:1", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "4163:103:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 427, + "id": 425, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 161, - "src": "4142:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 428, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 272, - "src": "4175:8:1", + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4163:121:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "4142:41:1", + "src": "4091:193:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 430, + "id": 427, "nodeType": "ExpressionStatement", - "src": "4142:41:1" + "src": "4091:193:1" }, { - "expression": { + "condition": { "argumentTypes": null, - "id": 436, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 431, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4193:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" - } - }, - "id": 433, - "indexExpression": { + "arguments": [ + { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 431, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "4334:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 429, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "4307:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWTokenByToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11517, + "src": "4307:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function (address) view external returns (contract IWToken)" + } + }, "id": 432, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4208:5:1", + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4307:33:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } - }, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 428, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4193:21:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "4299:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 434, + "id": 433, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberName": "feePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 167, - "src": "4193:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 435, - "name": "feePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 274, - "src": "4228:10:1", + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4299:42:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "4193:45:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 437, - "nodeType": "ExpressionStatement", - "src": "4193:45:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 438, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4248:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" - } - }, - "id": 440, - "indexExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 439, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4263:5:1", + "hexValue": "30", + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4353:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } - }, + ], + "id": 434, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4248:21:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "4345:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 441, + "id": 436, "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "ethFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 169, - "src": "4248:35:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 442, - "name": "ethFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "4286:13:1", + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4345:10:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "4248:51:1", + "src": "4299:56:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 444, - "nodeType": "ExpressionStatement", - "src": "4248:51:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "falseBody": null, + "id": 460, + "nodeType": "IfStatement", + "src": "4295:246:1", + "trueBody": { + "id": 459, + "nodeType": "Block", + "src": "4357:184:1", + "statements": [ + { + "assignments": [ + 439 + ], + "declarations": [ + { + "constant": false, + "id": 439, + "name": "wToken", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "4371:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 438, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "4371:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 449, + "initialValue": { "argumentTypes": null, - "id": 445, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4309:14:1", + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 442, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4399:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 443, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 7286, + "src": "4399:16:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 444, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4417:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 445, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 7288, + "src": "4417:18:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 446, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 447, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 7290, + "src": "4437:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4388:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$11048_$", + "typeString": "function (string memory,string memory,uint8) returns (contract WToken)" + }, + "typeName": { + "contractScope": null, + "id": 440, + "name": "WToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11048, + "src": "4392:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_WToken_$11048", + "typeString": "contract WToken" + } + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4388:70:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_contract$_WToken_$11048", + "typeString": "contract WToken" } }, - "id": 447, - "indexExpression": { + "nodeType": "VariableDeclarationStatement", + "src": "4371:87:1" + }, + { + "expression": { "argumentTypes": null, - "id": 446, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4324:5:1", + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 454, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "4515:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 453, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "4501:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4501:20:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + }, + { + "argumentTypes": null, + "id": 456, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 439, + "src": "4523:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + }, + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "expression": { + "argumentTypes": null, + "id": 450, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "4473:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "id": 452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addTokenToListing", + "nodeType": "MemberAccess", + "referencedDeclaration": 11501, + "src": "4473:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20Detailed_$12986_$_t_contract$_IWToken_$10485_$returns$__$", + "typeString": "function (contract ERC20Detailed,contract IWToken) external" + } + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4473:57:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4309:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" - } - }, - "id": 448, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "WTokenSaleFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 171, - "src": "4309:42:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 449, - "name": "WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 278, - "src": "4354:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 458, + "nodeType": "ExpressionStatement", + "src": "4473:57:1" } - }, - "src": "4309:65:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 451, - "nodeType": "ExpressionStatement", - "src": "4309:65:1" + ] + } }, { - "expression": { + "eventCall": { "argumentTypes": null, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 452, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4384:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" - } - }, - "id": 454, - "indexExpression": { - "argumentTypes": null, - "id": 453, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4399:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4384:21:1", + "id": 462, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "4568:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 455, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "trancheFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 173, - "src": "4384:39:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 456, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "4426:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4384:59:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 458, - "nodeType": "ExpressionStatement", - "src": "4384:59:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 459, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4453:14:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" - } - }, - "id": 461, - "indexExpression": { + "expression": { "argumentTypes": null, - "id": 460, - "name": "index", + "id": 463, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "4468:5:1", + "referencedDeclaration": 13441, + "src": "4575:3:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, + "id": 464, "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4453:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" - } - }, - "id": 462, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "tokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 181, - "src": "4453:34:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 463, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "4490:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4453:49:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 465, - "nodeType": "ExpressionStatement", - "src": "4453:49:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 467, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "4535:12:1", + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4575:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19845,12 +22255,12 @@ }, { "argumentTypes": null, - "id": 468, - "name": "tokenOwner", + "id": 465, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "4549:10:1", + "referencedDeclaration": 289, + "src": "4587:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19858,304 +22268,228 @@ }, { "argumentTypes": null, - "id": 469, - "name": "name", + "id": 466, + "name": "amountWithoutFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "4561:4:1", + "referencedDeclaration": 387, + "src": "4598:16:1", "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, { "argumentTypes": null, - "id": 470, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "4567:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 470, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "4651:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 468, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "4624:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWTokenByToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11517, + "src": "4624:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function (address) view external returns (contract IWToken)" + } + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4624:33:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - { + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4616:42:1", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" } - ], - "id": 466, - "name": "OwnerWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "4518:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" } - }, - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4518:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 472, - "nodeType": "EmitStatement", - "src": "4513:61:1" - } - ] - }, - "documentation": null, - "id": 474, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 283, - "name": "ROLE_ADMIN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "3108:10:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "id": 284, - "modifierName": { - "argumentTypes": null, - "id": 282, - "name": "onlyRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9883, - "src": "3099:8:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3099:20:1" - } - ], - "name": "whitelistToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 264, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2839:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 263, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 266, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2867:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 265, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2867:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 268, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2897:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 267, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2897:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 270, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 269, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 272, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2941:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 271, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2941:5:1", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 461, + "name": "TokenPlaced", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 142, + "src": "4556:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,address,address,uint256,address)" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4556:103:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 274, - "name": "feePercent", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2965:15:1", - "stateVariable": false, - "storageLocation": "default", + "id": 474, + "nodeType": "EmitStatement", + "src": "4551:108:1" + } + ] + }, + "documentation": "@notice Place token for sale\n@param token Token address\n@param crowdsale Crowdsale address\n@param amount Token amount to place", + "id": 476, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 294, + "modifierName": { + "argumentTypes": null, + "id": 293, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13257, + "src": "3185:12:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 273, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2965:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "3185:12:1" + } + ], + "name": "placeToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 292, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 276, - "name": "ethFeePercent", + "id": 287, + "name": "token", "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2990:18:1", + "scope": 476, + "src": "3129:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 275, - "name": "uint", + "id": 286, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "2990:4:1", + "src": "3129:7:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, @@ -20163,25 +22497,25 @@ }, { "constant": false, - "id": 278, - "name": "WTokenSaleFeePercent", + "id": 289, + "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 474, - "src": "3018:25:1", + "scope": 476, + "src": "3144:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 277, - "name": "uint", + "id": 288, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "3018:4:1", + "src": "3144:7:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, @@ -20189,11 +22523,11 @@ }, { "constant": false, - "id": 280, - "name": "trancheFeePercent", + "id": 291, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 474, - "src": "3053:22:1", + "scope": 476, + "src": "3163:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20201,10 +22535,10 @@ "typeString": "uint256" }, "typeName": { - "id": 279, + "id": 290, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3053:4:1", + "src": "3163:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20214,159 +22548,283 @@ "visibility": "internal" } ], - "src": "2829:252:1" + "src": "3128:47:1" }, "payable": false, "returnParameters": { - "id": 285, + "id": 295, "nodeType": "ParameterList", "parameters": [], - "src": "3124:0:1" + "src": "3198:0:1" }, - "scope": 1058, - "src": "2806:1775:1", + "scope": 1226, + "src": "3109:1557:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 651, + "id": 513, "nodeType": "Block", - "src": "4812:1341:1", + "src": "4824:341:1", "statements": [ { - "expression": { + "assignments": [ + 486 + ], + "declarations": [ + { + "constant": false, + "id": 486, + "name": "expectedBalance", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "4936:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 485, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4936:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 494, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 484, - "name": "serviceWallet", + "id": 492, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "4983:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 489, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4830:13:1", + "referencedDeclaration": 480, + "src": "4975:2:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4830:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "hexValue": "30", - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4857:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4849:7:1", + "argumentTypes": null, + "id": 487, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "4959:5:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } }, "id": 488, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4849:10:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "4959:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4959:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "4959:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4959:30:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4936:53:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 498, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "5019:3:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "src": "4830:29:1", + "id": 499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5019:10:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 500, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "5031:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 501, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "5035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 483, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "4822:7:1", + "expression": { + "argumentTypes": null, + "id": 495, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "5000:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 13066, + "src": "5000:18:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 490, + "id": 502, "isConstant": false, "isLValue": false, "isPure": false, @@ -20374,15 +22832,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4822:38:1", + "src": "5000:41:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 491, + "id": 503, "nodeType": "ExpressionStatement", - "src": "4822:38:1" + "src": "5000:41:1" }, { "expression": { @@ -20394,45 +22852,92 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 495, + "id": 510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 493, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "4878:6:1", + "arguments": [ + { + "argumentTypes": null, + "id": 507, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "5135:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 505, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "5119:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "id": 506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13028, + "src": "5119:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5119:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4887:1:1", - "subdenomination": null, + "id": 509, + "name": "expectedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 486, + "src": "5142:15:1", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "4878:10:1", + "src": "5119:38:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20446,21 +22951,18 @@ "typeString": "bool" } ], - "id": 492, - "name": "require", + "id": 504, + "name": "assert", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "4870:7:1", + "overloadedDeclarations": [], + "referencedDeclaration": 13430, + "src": "5112:6:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 496, + "id": 511, "isConstant": false, "isLValue": false, "isPure": false, @@ -20468,16 +22970,132 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4870:19:1", + "src": "5112:46:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 512, + "nodeType": "ExpressionStatement", + "src": "5112:46:1" + } + ] + }, + "documentation": "@dev Securely transfer token from sender to account", + "id": 514, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_secureTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 478, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "4777:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 477, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 13083, + "src": "4777:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 480, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "4791:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4791:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 482, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "4803:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 481, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4803:4:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 497, - "nodeType": "ExpressionStatement", - "src": "4870:19:1" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "4776:38:1" + }, + "payable": false, + "returnParameters": { + "id": 484, + "nodeType": "ParameterList", + "parameters": [], + "src": "4824:0:1" + }, + "scope": 1226, + "src": "4747:418:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 698, + "nodeType": "Block", + "src": "5263:1692:1", + "statements": [ { "expression": { "argumentTypes": null, @@ -20488,19 +23106,36 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 503, + "id": 531, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 499, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "4907:12:1", + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 526, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "5281:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5281:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20514,14 +23149,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 501, + "id": 529, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4931:1:1", + "src": "5308:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -20537,20 +23172,20 @@ "typeString": "int_const 0" } ], - "id": 500, + "id": 528, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4923:7:1", + "src": "5300:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 502, + "id": 530, "isConstant": false, "isLValue": false, "isPure": true, @@ -20558,13 +23193,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4923:10:1", + "src": "5300:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4907:26:1", + "src": "5281:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20578,21 +23213,21 @@ "typeString": "bool" } ], - "id": 498, + "id": 525, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "4899:7:1", + "referencedDeclaration": 13444, + "src": "5273:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 504, + "id": 532, "isConstant": false, "isLValue": false, "isPure": false, @@ -20600,15 +23235,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4899:35:1", + "src": "5273:38:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 505, + "id": 533, "nodeType": "ExpressionStatement", - "src": "4899:35:1" + "src": "5273:38:1" }, { "expression": { @@ -20616,129 +23251,64 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 537, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "5358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 508, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "4969:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 509, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "4983:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4983:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 507, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "4952:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4952:42:1", + "id": 535, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "5329:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 512, + "id": 536, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "tokenAddress", + "memberName": "isTokenWhitelisted", "nodeType": "MemberAccess", - "referencedDeclaration": 181, - "src": "4952:55:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 513, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5011:12:1", + "referencedDeclaration": 7395, + "src": "5329:28:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" } }, - "src": "4952:71:1", + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5329:35:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20752,21 +23322,21 @@ "typeString": "bool" } ], - "id": 506, + "id": 534, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "4944:7:1", + "referencedDeclaration": 13444, + "src": "5321:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 515, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, @@ -20774,15 +23344,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4944:80:1", + "src": "5321:44:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 516, + "id": 540, "nodeType": "ExpressionStatement", - "src": "4944:80:1" + "src": "5321:44:1" }, { "expression": { @@ -20790,140 +23360,97 @@ "arguments": [ { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { + "arguments": [ + { + "argumentTypes": null, + "id": 544, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "5407:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 519, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5059:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 520, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5073:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5073:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 518, - "name": "getApprovedToken", + "argumentTypes": null, + "id": 545, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "5042:16:1", + "referencedDeclaration": 13441, + "src": "5414:3:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 522, + "id": 546, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5042:42:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5414:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 523, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvedOwners", - "nodeType": "MemberAccess", - "referencedDeclaration": 165, - "src": "5042:57:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" } - }, - "id": 526, - "indexExpression": { - "argumentTypes": null, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "id": 524, - "name": "msg", + "id": 542, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5100:3:1", + "referencedDeclaration": 111, + "src": "5383:9:1", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 525, + "id": 543, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "sender", + "memberName": "hasTokenOwner", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5100:10:1", + "referencedDeclaration": 7437, + "src": "5383:23:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" } }, + "id": 547, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5042:69:1", + "names": [], + "nodeType": "FunctionCall", + "src": "5383:42:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20937,21 +23464,21 @@ "typeString": "bool" } ], - "id": 517, + "id": 541, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "5034:7:1", + "referencedDeclaration": 13444, + "src": "5375:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 527, + "id": 548, "isConstant": false, "isLValue": false, "isPure": false, @@ -20959,102 +23486,124 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5034:78:1", + "src": "5375:51:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 528, + "id": 549, "nodeType": "ExpressionStatement", - "src": "5034:78:1" + "src": "5375:51:1" }, { - "assignments": [ - 530 - ], - "declarations": [ - { - "constant": false, - "id": 530, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 652, - "src": "5123:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - }, - "typeName": { - "contractScope": null, - "id": 529, - "name": "DetailedERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10168, - "src": "5123:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 534, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 532, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5159:12:1", + "arguments": [ + { + "argumentTypes": null, + "id": 553, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "5481:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 551, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "5444:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 552, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasNotInitialisedCrowdsale", + "nodeType": "MemberAccess", + "referencedDeclaration": 7512, + "src": "5444:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5444:43:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "id": 531, - "name": "DetailedERC20", + "id": 550, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10168, - "src": "5145:13:1", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "5436:7:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$10168_$", - "typeString": "type(contract DetailedERC20)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 533, + "id": 555, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5145:27:1", + "src": "5436:52:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5123:49:1" + "id": 556, + "nodeType": "ExpressionStatement", + "src": "5436:52:1" }, { "expression": { @@ -21066,134 +23615,214 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 545, + "id": 571, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 560, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "5556:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "id": 538, - "name": "msg", + "id": 558, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5207:3:1", + "referencedDeclaration": 111, + "src": "5519:9:1", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 539, + "id": 559, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "sender", + "memberName": "getNotInitialisedCrowdsale", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5207:10:1", + "referencedDeclaration": 7530, + "src": "5519:36:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" } }, + "id": 561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5519:43:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 562, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokensForSaleAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7320, + "src": "5519:63:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 541, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10541, - "src": "5227:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Lister_$1058", - "typeString": "contract W12Lister" - } - } - ], + "id": 569, + "name": "amountForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "5670:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, "expression": { - "argumentTypes": [ + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_contract$_W12Lister_$1058", - "typeString": "contract W12Lister" + "argumentTypes": null, + "id": 565, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "5639:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], - "id": 540, + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 563, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "5602:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 564, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getNotInitialisedCrowdsale", + "nodeType": "MemberAccess", + "referencedDeclaration": 7530, + "src": "5602:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 566, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5219:7:1", + "names": [], + "nodeType": "FunctionCall", + "src": "5602:43:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } }, - "id": 542, + "id": 567, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5219:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 536, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "5191:5:1", + "memberName": "wTokensIssuedAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7322, + "src": "5602:63:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 537, + "id": 568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "allowance", + "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10182, - "src": "5191:15:1", + "referencedDeclaration": 12367, + "src": "5602:67:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 543, + "id": 570, "isConstant": false, "isLValue": false, "isPure": false, @@ -21201,28 +23830,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5191:42:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 544, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "5237:6:1", + "src": "5602:82:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5191:52:1", + "src": "5519:165:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21236,21 +23850,21 @@ "typeString": "bool" } ], - "id": 535, + "id": 557, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "5183:7:1", + "referencedDeclaration": 13444, + "src": "5498:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 546, + "id": 572, "isConstant": false, "isLValue": false, "isPure": false, @@ -21258,91 +23872,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5183:61:1", + "src": "5498:196:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 547, + "id": 573, "nodeType": "ExpressionStatement", - "src": "5183:61:1" + "src": "5498:196:1" }, { "assignments": [ - 549 + 577 ], "declarations": [ { "constant": false, - "id": 549, + "id": 577, "name": "listedToken", "nodeType": "VariableDeclaration", - "scope": 652, - "src": "5255:31:1", + "scope": 699, + "src": "5705:49:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" }, "typeName": { "contractScope": null, - "id": 548, - "name": "ListedToken", + "id": 576, + "name": "TokenListing.WhitelistedToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 182, - "src": "5255:11:1", + "referencedDeclaration": 7308, + "src": "5705:29:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken" } }, "value": null, "visibility": "internal" } ], - "id": 555, + "id": 582, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 551, - "name": "tokenAddress", + "id": 580, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5306:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 552, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5320:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5320:10:1", + "referencedDeclaration": 516, + "src": "5776:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21351,27 +23936,39 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_address", "typeString": "address" } ], - "id": 550, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "5289:16:1", + "expression": { + "argumentTypes": null, + "id": 578, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "5757:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 579, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "5757:18:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" } }, - "id": 554, + "id": 581, "isConstant": false, "isLValue": false, "isPure": false, @@ -21379,136 +23976,118 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5289:42:1", + "src": "5757:25:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, "nodeType": "VariableDeclarationStatement", - "src": "5255:76:1" + "src": "5705:77:1" }, { - "expression": { + "assignments": [ + 584 + ], + "declarations": [ + { + "constant": false, + "id": 584, + "name": "wtoken", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "5792:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 583, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "5792:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 590, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 557, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "5350:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - } - }, - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 10145, - "src": "5350:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5350:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 560, - "name": "listedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5370:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 561, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 161, - "src": "5370:20:1", + "id": 587, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "5836:11:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "src": "5350:40:1", + "id": 588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 7303, + "src": "5836:17:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 556, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "5342:7:1", + "expression": { + "argumentTypes": null, + "id": 585, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "5809:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "id": 586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWTokenByToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11517, + "src": "5809:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function (address) view external returns (contract IWToken)" } }, - "id": 563, + "id": 589, "isConstant": false, "isLValue": false, "isPure": false, @@ -21516,316 +24095,496 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5342:49:1", + "src": "5809:45:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" } }, - "id": 564, - "nodeType": "ExpressionStatement", - "src": "5342:49:1" + "nodeType": "VariableDeclarationStatement", + "src": "5792:62:1" }, { "assignments": [ - 566 + 592 ], "declarations": [ { "constant": false, - "id": 566, - "name": "fee", + "id": 592, + "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 652, - "src": "5402:8:1", + "scope": 699, + "src": "5865:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 591, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "5865:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 615, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 595, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "5928:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 596, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 7303, + "src": "5928:17:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 598, + "name": "wtoken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "5967:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5959:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5959:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "typeName": { - "id": 565, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5402:4:1", + { + "argumentTypes": null, + "id": 600, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 520, + "src": "5988:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 578, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 601, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "6007:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6007:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "id": 570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 567, + "id": 603, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5413:11:1", + "referencedDeclaration": 577, + "src": "6036:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 568, + "id": 604, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "feePercent", + "memberName": "ethFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 167, - "src": "5413:22:1", + "referencedDeclaration": 7297, + "src": "6036:25:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + { "argumentTypes": null, - "hexValue": "30", - "id": 569, + "expression": { + "argumentTypes": null, + "id": 605, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6075:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 606, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "5438:1:1", - "subdenomination": null, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7299, + "src": "6075:32:1", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5413:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5507:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "value": "0" - }, - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5413:95:1", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { + { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "expression": { + "id": 607, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6121:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 608, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7301, + "src": "6121:29:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 573, - "name": "listedToken", + "id": 610, + "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5469:11:1", + "referencedDeclaration": 105, + "src": "6172:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" } - }, - "id": 574, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + ], + "id": 609, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "memberName": "feePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 167, - "src": "5469:22:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "6164:7:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6164:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + }, + { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 571, - "name": "amount", + "id": 612, + "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "5454:6:1", + "referencedDeclaration": 577, + "src": "6196:11:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "percent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5133, - "src": "5454:14:1", + "id": 613, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "6196:18:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + ], + "expression": { + "argumentTypes": null, + "id": 593, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "5891:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", + "typeString": "contract IW12CrowdsaleFactory" } }, - "id": 575, + "id": 594, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5454:38:1", + "memberName": "createCrowdsale", + "nodeType": "MemberAccess", + "referencedDeclaration": 4083, + "src": "5891:23:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_contract$_IW12Crowdsale_$1760_$", + "typeString": "function (address,address,uint256,address,uint256,uint256,uint256,address,address[] memory) external returns (contract IW12Crowdsale)" } }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5891:333:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, "nodeType": "VariableDeclarationStatement", - "src": "5402:106:1" + "src": "5865:359:1" }, { - "assignments": [ - 580 - ], - "declarations": [ - { - "constant": false, - "id": 580, - "name": "amountWithoutFee", - "nodeType": "VariableDeclaration", - "scope": 652, - "src": "5518:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 579, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5518:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 585, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 583, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "5553:3:1", + "expression": { + "argumentTypes": null, + "id": 619, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6254:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6254:10:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { "argumentTypes": null, - "id": 581, - "name": "amount", + "id": 616, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "5542:6:1", + "referencedDeclaration": 592, + "src": "6235:9:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } }, - "id": 582, + "id": 618, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sub", + "memberName": "addAdmin", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "5542:10:1", + "referencedDeclaration": 1366, + "src": "6235:18:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" } }, - "id": 584, + "id": 621, "isConstant": false, "isLValue": false, "isPure": false, @@ -21833,14 +24592,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5542:15:1", + "src": "6235:30:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5518:39:1" + "id": 622, + "nodeType": "ExpressionStatement", + "src": "6235:30:1" }, { "expression": { @@ -21848,71 +24608,102 @@ "arguments": [ { "argumentTypes": null, - "id": 587, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "5589:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - } - }, - { - "argumentTypes": null, - "id": 588, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "5596:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - { - "argumentTypes": null, - "id": 589, - "name": "amountWithoutFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "5607:16:1", + "expression": { + "argumentTypes": null, + "id": 628, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "6304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6304:10:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - }, - { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 586, - "name": "_secureTokenTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "5568:20:1", + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 623, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "6275:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getFund", + "nodeType": "MemberAccess", + "referencedDeclaration": 1668, + "src": "6275:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IW12Fund_$1803_$", + "typeString": "function () view external returns (contract IW12Fund)" + } + }, + "id": 626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6275:19:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "6275:28:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$10211_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract ERC20,address,uint256)" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" } }, - "id": 590, + "id": 630, "isConstant": false, "isLValue": false, "isPure": false, @@ -21920,15 +24711,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5568:56:1", + "src": "6275:40:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 591, + "id": 631, "nodeType": "ExpressionStatement", - "src": "5568:56:1" + "src": "6275:40:1" }, { "expression": { @@ -21936,88 +24727,91 @@ "arguments": [ { "argumentTypes": null, - "id": 593, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "5655:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - } - }, - { - "argumentTypes": null, - "arguments": [], + "arguments": [ + { + "argumentTypes": null, + "id": 636, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "6349:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + } + ], "expression": { - "argumentTypes": [], - "id": 594, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "5662:13:1", + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6341:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 595, + "id": 637, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5662:15:1", + "src": "6341:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 596, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "5679:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DetailedERC20_$10168", - "typeString": "contract DetailedERC20" - }, { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], - "id": 592, - "name": "_secureTokenTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "5634:20:1", + "expression": { + "argumentTypes": null, + "id": 632, + "name": "wtoken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "6325:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "6325:15:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$10211_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract ERC20,address,uint256)" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" } }, - "id": 597, + "id": 638, "isConstant": false, "isLValue": false, "isPure": false, @@ -22025,584 +24819,585 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5634:49:1", + "src": "6325:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 598, + "id": 639, "nodeType": "ExpressionStatement", - "src": "5634:49:1" + "src": "6325:35:1" }, { "expression": { "argumentTypes": null, - "id": 607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "id": 599, - "name": "listedToken", + "id": 643, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5694:11:1", + "referencedDeclaration": 516, + "src": "6401:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 601, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "tokensForSaleAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 177, - "src": "5694:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 605, - "name": "amountWithoutFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "5764:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ + { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { "argumentTypes": null, - "id": 602, - "name": "listedToken", + "id": 645, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5728:11:1", + "referencedDeclaration": 592, + "src": "6416:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } - }, - "id": 603, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 644, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "memberName": "tokensForSaleAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 177, - "src": "5728:31:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "6408:7:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 604, + "id": 646, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "5728:35:1", + "names": [], + "nodeType": "FunctionCall", + "src": "6408:18:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 640, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "6371:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 606, + "id": 642, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5728:53:1", + "memberName": "initializeCrowdsale", + "nodeType": "MemberAccess", + "referencedDeclaration": 8171, + "src": "6371:29:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$__$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address)" } }, - "src": "5694:87:1", + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6371:56:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 608, + "id": 648, "nodeType": "ExpressionStatement", - "src": "5694:87:1" + "src": "6371:56:1" }, { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 616, + "id": 652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 611, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5823:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 609, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "5796:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getWTokenByToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 9221, - "src": "5796:26:1", + "argumentTypes": null, + "id": 649, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6442:11:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8750_$", - "typeString": "function (address) view external returns (contract WToken)" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 612, + "id": 650, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5796:40:1", + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7299, + "src": "6442:32:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "==", + "operator": ">", "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5848:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5840:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 615, + "hexValue": "30", + "id": 651, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "typeConversion", + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5840:10:1", + "nodeType": "Literal", + "src": "6477:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "5796:54:1", + "src": "6442:36:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 639, + "id": 678, "nodeType": "IfStatement", - "src": "5792:242:1", + "src": "6438:336:1", "trueBody": { - "id": 638, + "id": 677, "nodeType": "Block", - "src": "5852:182:1", + "src": "6480:294:1", "statements": [ { - "assignments": [ - 618 - ], - "declarations": [ - { - "constant": false, - "id": 618, - "name": "wToken", - "nodeType": "VariableDeclaration", - "scope": 652, - "src": "5866:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - }, - "typeName": { - "contractScope": null, - "id": 617, - "name": "WToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "5866:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 628, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 621, - "name": "listedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5893:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 657, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6536:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 658, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 7303, + "src": "6536:17:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "id": 622, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 157, - "src": "5893:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "argumentTypes": null, + ], "expression": { - "argumentTypes": null, - "id": 623, - "name": "listedToken", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 656, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5911:11:1", + "referencedDeclaration": 13083, + "src": "6529:6:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_type$_t_contract$_IERC20_$13083_$", + "typeString": "type(contract IERC20)" } }, - "id": 624, + "id": 659, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 159, - "src": "5911:18:1", + "names": [], + "nodeType": "FunctionCall", + "src": "6529:25:1", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" } }, { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 661, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "6580:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + } + ], "expression": { - "argumentTypes": null, - "id": 625, - "name": "listedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "5931:11:1", + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6572:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 626, + "id": 662, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 161, - "src": "5931:20:1", + "names": [], + "nodeType": "FunctionCall", + "src": "6572:18:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "id": 620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5882:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$8750_$", - "typeString": "function (string memory,string memory,uint8) returns (contract WToken)" }, - "typeName": { - "contractScope": null, - "id": 619, - "name": "WToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "5886:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - } - }, - "id": 627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5882:70:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5866:86:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 633, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "6001:12:1", + "expression": { + "argumentTypes": null, + "id": 672, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6716:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 673, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7299, + "src": "6716:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 665, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "6640:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 667, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "6655:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6647:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6647:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 663, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "6608:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 664, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "6608:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:58:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 670, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokensForSaleAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7320, + "src": "6608:78:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 632, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "5995:5:1", + }, + "id": 671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "percent", + "nodeType": "MemberAccess", + "referencedDeclaration": 6350, + "src": "6608:107:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 634, + "id": 674, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5995:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - { - "argumentTypes": null, - "id": 635, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "6016:6:1", + "src": "6608:141:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_contract$_IERC20_$13083", + "typeString": "contract IERC20" }, { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 629, + "id": 653, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "5967:9:1", + "referencedDeclaration": 105, + "src": "6494:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } }, - "id": 631, + "id": 655, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "addTokenToListing", + "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 9205, - "src": "5967:27:1", + "referencedDeclaration": 11473, + "src": "6494:17:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$10211_$_t_contract$_WToken_$8750_$returns$__$", - "typeString": "function (contract ERC20,contract WToken) external" + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20_$13083_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (contract IERC20,address,uint256) external returns (bool)" } }, - "id": 636, + "id": 675, "isConstant": false, "isLValue": false, "isPure": false, @@ -22610,31 +25405,173 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5967:56:1", + "src": "6494:269:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 637, + "id": 676, "nodeType": "ExpressionStatement", - "src": "5967:56:1" + "src": "6494:269:1" } ] } }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 641, - "name": "tokenAddress", + "id": 680, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "6805:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 682, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "6820:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + ], + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6812:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6812:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 684, + "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "6061:12:1", + "referencedDeclaration": 518, + "src": "6832:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 679, + "name": "addTokensToCrowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 814, + "src": "6784:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6784:62:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 686, + "nodeType": "ExpressionStatement", + "src": "6784:62:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 688, + "name": "listedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "6883:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 689, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 7303, + "src": "6883:17:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22644,18 +25581,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 642, + "id": 690, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6075:3:1", + "referencedDeclaration": 13441, + "src": "6902:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 643, + "id": 691, "isConstant": false, "isLValue": false, "isPure": false, @@ -22663,88 +25600,74 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6075:10:1", + "src": "6902:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - { - "argumentTypes": null, - "id": 644, - "name": "amountWithoutFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "6087:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 647, - "name": "tokenAddress", + "id": 693, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "6132:12:1", + "referencedDeclaration": 592, + "src": "6922:9:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" } ], - "expression": { - "argumentTypes": null, - "id": 645, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "6105:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "id": 646, + "id": 692, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "getWTokenByToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 9221, - "src": "6105:26:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "6914:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8750_$", - "typeString": "function (address) view external returns (contract WToken)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 648, + "id": 694, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6105:40:1", + "src": "6914:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 695, + "name": "amountForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "6934:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], @@ -22759,26 +25682,26 @@ "typeString": "address" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 640, - "name": "TokenPlaced", + "id": 687, + "name": "CrowdsaleInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "6049:11:1", + "referencedDeclaration": 152, + "src": "6862:20:1", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,address,uint256,address)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256)" } }, - "id": 649, + "id": 696, "isConstant": false, "isLValue": false, "isPure": false, @@ -22786,71 +25709,97 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6049:97:1", + "src": "6862:86:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 650, + "id": 697, "nodeType": "EmitStatement", - "src": "6044:102:1" + "src": "6857:91:1" } ] }, - "documentation": "@notice Place token for sale\n@param tokenAddress Token that will be placed\n@param amount Token amount to place", - "id": 652, + "documentation": null, + "id": 699, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 481, + "id": 523, "modifierName": { "argumentTypes": null, - "id": 480, + "id": 522, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9776, - "src": "4799:12:1", + "referencedDeclaration": 13257, + "src": "5250:12:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4799:12:1" + "src": "5250:12:1" } ], - "name": "placeToken", + "name": "initCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 479, + "id": 521, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 476, - "name": "tokenAddress", + "id": 516, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "5194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 518, + "name": "amountForSale", "nodeType": "VariableDeclaration", - "scope": 652, - "src": "4755:20:1", + "scope": 699, + "src": "5209:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 475, - "name": "address", + "id": 517, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4755:7:1", + "src": "5209:4:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -22858,11 +25807,11 @@ }, { "constant": false, - "id": 478, - "name": "amount", + "id": 520, + "name": "price", "nodeType": "VariableDeclaration", - "scope": 652, - "src": "4777:11:1", + "scope": 699, + "src": "5229:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22870,10 +25819,10 @@ "typeString": "uint256" }, "typeName": { - "id": 477, + "id": 519, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4777:4:1", + "src": "5229:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22883,95 +25832,136 @@ "visibility": "internal" } ], - "src": "4754:35:1" + "src": "5193:47:1" }, "payable": false, "returnParameters": { - "id": 482, + "id": 524, "nodeType": "ParameterList", "parameters": [], - "src": "4812:0:1" + "src": "5263:0:1" }, - "scope": 1058, - "src": "4735:1418:1", + "scope": 1226, + "src": "5171:1784:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 689, + "id": 813, "nodeType": "Block", - "src": "6310:341:1", + "src": "7052:924:1", "statements": [ { - "assignments": [ - 662 - ], - "declarations": [ - { - "constant": false, - "id": 662, - "name": "expectedBalance", - "nodeType": "VariableDeclaration", - "scope": 690, - "src": "6422:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 661, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6422:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 670, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 668, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "6469:5:1", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + "id": 711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 709, + "name": "amountForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "7070:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7086:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7070:17:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { + "id": 708, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "7062:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7062:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 713, + "nodeType": "ExpressionStatement", + "src": "7062:26:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 665, - "name": "to", + "id": 717, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "6461:2:1", + "referencedDeclaration": 701, + "src": "7135:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22987,32 +25977,32 @@ ], "expression": { "argumentTypes": null, - "id": 663, - "name": "token", + "id": 715, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "6445:5:1", + "referencedDeclaration": 111, + "src": "7106:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 664, + "id": 716, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "balanceOf", + "memberName": "isTokenWhitelisted", "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "6445:15:1", + "referencedDeclaration": 7395, + "src": "7106:28:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" } }, - "id": 666, + "id": 718, "isConstant": false, "isLValue": false, "isPure": false, @@ -23020,27 +26010,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6445:19:1", + "src": "7106:35:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6445:23:1", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 714, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "7098:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 669, + "id": 719, "isConstant": false, "isLValue": false, "isPure": false, @@ -23048,14 +26046,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6445:30:1", + "src": "7098:44:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6422:53:1" + "id": 720, + "nodeType": "ExpressionStatement", + "src": "7098:44:1" }, { "expression": { @@ -23063,103 +26062,125 @@ "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 674, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6505:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "arguments": [ + { + "argumentTypes": null, + "id": 724, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7184:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 725, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "7191:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7191:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "id": 675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6505:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 676, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "6517:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 677, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "6521:5:1", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 722, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "7160:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 723, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7437, + "src": "7160:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" + } + }, + "id": 727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7160:42:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 671, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "6486:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 10193, - "src": "6486:18:1", + "id": 721, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "7152:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 678, + "id": 728, "isConstant": false, "isLValue": false, "isPure": false, @@ -23167,15 +26188,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6486:41:1", + "src": "7152:51:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 679, + "id": 729, "nodeType": "ExpressionStatement", - "src": "6486:41:1" + "src": "7152:51:1" }, { "expression": { @@ -23183,96 +26204,81 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ + "arguments": [ + { + "argumentTypes": null, + "id": 733, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7255:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 734, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7262:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 683, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "6621:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 681, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "6605:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "id": 682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10225, - "src": "6605:15:1", + "argumentTypes": null, + "id": 731, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "7221:9:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 684, + "id": 732, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6605:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 685, - "name": "expectedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 662, - "src": "6628:15:1", + "memberName": "hasCrowdsaleWithAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7486, + "src": "7221:33:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" } }, - "src": "6605:38:1", + "id": 735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7221:51:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23286,18 +26292,21 @@ "typeString": "bool" } ], - "id": 680, - "name": "assert", + "id": 730, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10477, - "src": "6598:6:1", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "7213:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 687, + "id": 736, "isConstant": false, "isLValue": false, "isPure": false, @@ -23305,132 +26314,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6598:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 688, - "nodeType": "ExpressionStatement", - "src": "6598:46:1" - } - ] - }, - "documentation": "@dev Securely transfer token from sender to account", - "id": 690, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_secureTokenTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 654, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 690, - "src": "6264:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - }, - "typeName": { - "contractScope": null, - "id": 653, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10211, - "src": "6264:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 656, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 690, - "src": "6277:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 655, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6277:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 658, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 690, - "src": "6289:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 657, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6289:4:1", + "src": "7213:60:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6263:37:1" - }, - "payable": false, - "returnParameters": { - "id": 660, - "nodeType": "ParameterList", - "parameters": [], - "src": "6310:0:1" - }, - "scope": 1058, - "src": "6234:417:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 863, - "nodeType": "Block", - "src": "6756:1585:1", - "statements": [ + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 737, + "nodeType": "ExpressionStatement", + "src": "7213:60:1" + }, { "expression": { "argumentTypes": null, @@ -23441,36 +26334,109 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 707, + "id": 748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "arguments": [], + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 742, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7326:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 740, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "7299:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "id": 741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWTokenByToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11517, + "src": "7299:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function (address) view external returns (contract IWToken)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7299:33:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + } + ], "expression": { - "argumentTypes": [], - "id": 702, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "6774:13:1", + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + ], + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7291:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 703, + "id": 744, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6774:15:1", + "src": "7291:42:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23484,14 +26450,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 705, + "id": 746, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6801:1:1", + "src": "7345:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -23507,20 +26473,20 @@ "typeString": "int_const 0" } ], - "id": 704, + "id": 745, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6793:7:1", + "src": "7337:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 706, + "id": 747, "isConstant": false, "isLValue": false, "isPure": true, @@ -23528,13 +26494,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6793:10:1", + "src": "7337:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6774:29:1", + "src": "7291:56:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23548,21 +26514,21 @@ "typeString": "bool" } ], - "id": 701, + "id": 738, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "6766:7:1", + "referencedDeclaration": 13444, + "src": "7283:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 708, + "id": 749, "isConstant": false, "isLValue": false, "isPure": false, @@ -23570,15 +26536,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6766:38:1", + "src": "7283:65:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 709, + "id": 750, "nodeType": "ExpressionStatement", - "src": "6766:38:1" + "src": "7283:65:1" }, { "expression": { @@ -23587,176 +26553,265 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 721, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 754, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 755, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7418:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "argumentTypes": null, - "arguments": [ + "argumentTypes": [ { - "argumentTypes": null, - "id": 712, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "6839:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" }, { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 713, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6853:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 711, - "name": "getApprovedToken", + "argumentTypes": null, + "id": 752, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "6822:16:1", + "referencedDeclaration": 111, + "src": "7379:9:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 715, + "id": 753, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6822:42:1", + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "7379:31:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" } }, - "id": 716, + "id": 756, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "approvedOwners", - "nodeType": "MemberAccess", - "referencedDeclaration": 165, - "src": "6822:57:1", + "names": [], + "nodeType": "FunctionCall", + "src": "7379:49:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } }, - "id": 719, - "indexExpression": { - "argumentTypes": null, - "expression": { + "id": 757, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokensForSaleAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7320, + "src": "7379:69:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 717, - "name": "msg", + "id": 765, + "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6880:3:1", + "referencedDeclaration": 705, + "src": "7542:13:1", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 760, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7500:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 761, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7507:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 758, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "7468:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 759, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "7468:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7468:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 763, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wTokensIssuedAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7322, + "src": "7468:69:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 718, + "id": 764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sender", + "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6880:10:1", + "referencedDeclaration": 12367, + "src": "7468:73:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, + "id": 766, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6822:69:1", + "names": [], + "nodeType": "FunctionCall", + "src": "7468:88:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6895:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "6822:77:1", + "src": "7379:177:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23770,21 +26825,21 @@ "typeString": "bool" } ], - "id": 710, + "id": 751, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "6814:7:1", + "referencedDeclaration": 13444, + "src": "7358:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 722, + "id": 768, "isConstant": false, "isLValue": false, "isPure": false, @@ -23792,310 +26847,479 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6814:86:1", + "src": "7358:208:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 723, + "id": 769, "nodeType": "ExpressionStatement", - "src": "6814:86:1" + "src": "7358:208:1" }, { - "expression": { + "assignments": [ + 771 + ], + "declarations": [ + { + "constant": false, + "id": 771, + "name": "wtoken", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "7577:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 770, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "7577:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 776, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { + "id": 774, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7621:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 772, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "7594:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWTokenByToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11517, + "src": "7594:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_IWToken_$10485_$", + "typeString": "function (address) view external returns (contract IWToken)" + } + }, + "id": 775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7594:33:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7577:50:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 726, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "6935:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 727, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6949:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6949:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 725, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "6918:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } + "id": 780, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7670:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 781, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7677:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6918:42:1", + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 777, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "7638:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 730, + "id": 779, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "tokensForSaleAmount", + "memberName": "getCrowdsaleByAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 177, - "src": "6918:62:1", + "referencedDeclaration": 7562, + "src": "7638:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7638:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 783, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "wTokensIssuedAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7322, + "src": "7638:69:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 791, + "name": "amountForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "7814:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 738, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "7051:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], "expression": { - "argumentTypes": [ + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": null, + "id": 786, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7755:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 787, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7762:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { - "argumentTypes": null, + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 732, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7001:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 733, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7015:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7015:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 731, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "6984:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6984:42:1", + "id": 784, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "7710:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 736, + "id": 785, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "wTokensIssuedAmount", + "memberName": "getCrowdsaleByAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 179, - "src": "6984:62:1", + "referencedDeclaration": 7562, + "src": "7710:44:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" } }, - "id": 737, + "id": 788, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6984:66:1", + "names": [], + "nodeType": "FunctionCall", + "src": "7710:62:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } }, - "id": 739, + "id": 789, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6984:81:1", + "memberName": "wTokensIssuedAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7322, + "src": "7710:99:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6918:147:1", + "id": 790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "7710:103:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7710:118:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7638:190:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 794, + "nodeType": "ExpressionStatement", + "src": "7638:190:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 798, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7851:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 799, + "name": "amountForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "7862:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7877:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 724, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "6910:7:1", + "expression": { + "argumentTypes": null, + "id": 795, + "name": "wtoken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 771, + "src": "7839:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 10450, + "src": "7839:11:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", + "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 741, + "id": 801, "isConstant": false, "isLValue": false, "isPure": false, @@ -24103,216 +27327,158 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6910:156:1", + "src": "7839:40:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 742, + "id": 802, "nodeType": "ExpressionStatement", - "src": "6910:156:1" + "src": "7839:40:1" }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 804, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7916:5:1", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 805, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "7923:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } }, - "id": 753, + "id": 806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7923:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 745, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7101:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 746, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7115:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7115:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 744, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "7084:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7084:42:1", + "id": 808, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7943:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 749, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "crowdsaleAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 175, - "src": "7084:59:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "hexValue": "30", - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7155:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7147:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 752, + "id": 807, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7147:10:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "7935:7:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "src": "7084:73:1", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7935:18:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 810, + "name": "amountForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "7955:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 743, - "name": "require", + "id": 803, + "name": "CrowdsaleTokenMinted", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7076:7:1", + "overloadedDeclarations": [], + "referencedDeclaration": 162, + "src": "7895:20:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256)" } }, - "id": 754, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, @@ -24320,810 +27486,887 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7076:82:1", + "src": "7895:74:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 755, - "nodeType": "ExpressionStatement", - "src": "7076:82:1" + "id": 812, + "nodeType": "EmitStatement", + "src": "7890:79:1" + } + ] + }, + "documentation": null, + "id": 814, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addTokensToCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 701, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "6991:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6991:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, { - "assignments": [ - 757 - ], - "declarations": [ - { - "constant": false, - "id": 757, - "name": "wtoken", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "7169:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - }, - "typeName": { - "contractScope": null, - "id": 756, - "name": "WToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "7169:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - }, - "value": null, - "visibility": "internal" + "constant": false, + "id": 703, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "7006:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 702, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 705, + "name": "amountForSale", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "7025:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 704, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7025:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 762, - "initialValue": { + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6990:54:1" + }, + "payable": false, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [], + "src": "7052:0:1" + }, + "scope": 1226, + "src": "6961:1015:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 828, + "nodeType": "Block", + "src": "8055:56:1", + "statements": [ + { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 760, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7212:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], "expression": { - "argumentTypes": [ + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "argumentTypes": null, + "id": 824, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 816, + "src": "8091:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { - "argumentTypes": null, - "id": 758, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "7185:9:1", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 822, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8072:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 823, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8072:18:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" } }, - "id": 759, + "id": 825, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "getWTokenByToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 9221, - "src": "7185:26:1", + "names": [], + "nodeType": "FunctionCall", + "src": "8072:25:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8750_$", - "typeString": "function (address) view external returns (contract WToken)" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 761, + "id": 826, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7185:40:1", + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7293, + "src": "8072:32:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" } }, - "nodeType": "VariableDeclarationStatement", - "src": "7169:56:1" - }, + "functionReturnParameters": 821, + "id": 827, + "nodeType": "Return", + "src": "8065:39:1" + } + ] + }, + "documentation": null, + "id": 829, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTokenOwners", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 817, + "nodeType": "ParameterList", + "parameters": [ { - "assignments": [ - 764 - ], - "declarations": [ - { - "constant": false, - "id": 764, - "name": "crowdsale", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "7236:23:1", - "stateVariable": false, - "storageLocation": "default", + "constant": false, + "id": 816, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 829, + "src": "8006:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8005:15:1" + }, + "payable": false, + "returnParameters": { + "id": 821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 820, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 829, + "src": "8044:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 818, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8044:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - }, - "typeName": { - "contractScope": null, - "id": 763, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "7236:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 819, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8044:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } - ], - "id": 800, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 768, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7307:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 767, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7299:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7299:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 771, - "name": "wtoken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "7342:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - ], - "id": 770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7334:7:1", + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8043:11:1" + }, + "scope": 1226, + "src": "7982:129:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 846, + "nodeType": "Block", + "src": "8213:80:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 841, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "8262:5:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "id": 772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7334:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 773, - "name": "price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "7363:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "argumentTypes": null, + "id": 842, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 833, + "src": "8269:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - { - "argumentTypes": null, - "arguments": [], + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { - "argumentTypes": [], - "id": 774, - "name": "serviceWallet", + "argumentTypes": null, + "id": 839, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "7382:13:1", + "referencedDeclaration": 111, + "src": "8230:9:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 775, + "id": 840, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7382:15:1", + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "8230:31:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" } }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8230:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 844, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7325, + "src": "8230:56:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 838, + "id": 845, + "nodeType": "Return", + "src": "8223:63:1" + } + ] + }, + "documentation": null, + "id": 847, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCrowdsaleOwners", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 831, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 847, + "src": "8145:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 830, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 833, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 847, + "src": "8160:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8144:34:1" + }, + "payable": false, + "returnParameters": { + "id": 838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 837, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 847, + "src": "8202:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 835, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8202:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 836, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8202:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8201:11:1" + }, + "scope": 1226, + "src": "8117:176:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 854, + "nodeType": "Block", + "src": "8363:33:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 852, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "8380:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "functionReturnParameters": 851, + "id": 853, + "nodeType": "Return", + "src": "8373:16:1" + } + ] + }, + "documentation": null, + "id": 855, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getExchanger", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 848, + "nodeType": "ParameterList", + "parameters": [], + "src": "8320:2:1" + }, + "payable": false, + "returnParameters": { + "id": 851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 850, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 855, + "src": "8346:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + }, + "typeName": { + "contractScope": null, + "id": 849, + "name": "ITokenExchanger", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11490, + "src": "8346:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", + "typeString": "contract ITokenExchanger" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8345:17:1" + }, + "scope": 1226, + "src": "8299:97:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 952, + "nodeType": "Block", + "src": "8553:538:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7428:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 778, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7442:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7442:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 776, - "name": "getApprovedToken", + "arguments": [ + { + "argumentTypes": null, + "id": 876, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "7411:16:1", + "referencedDeclaration": 857, + "src": "8600:5:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7411:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" } - }, - "id": 781, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ethFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 169, - "src": "7411:56:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, + ], "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 783, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7498:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "argumentTypes": [ { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 784, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7512:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7512:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 782, - "name": "getApprovedToken", + "argumentTypes": null, + "id": 874, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "7481:16:1", + "referencedDeclaration": 111, + "src": "8571:9:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 786, + "id": 875, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7481:42:1", + "memberName": "isTokenWhitelisted", + "nodeType": "MemberAccess", + "referencedDeclaration": 7395, + "src": "8571:28:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" } }, - "id": 787, + "id": 877, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "WTokenSaleFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 171, - "src": "7481:63:1", + "names": [], + "nodeType": "FunctionCall", + "src": "8571:35:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 789, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7575:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 790, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7589:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7589:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 788, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "7558:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7558:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 793, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "trancheFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 173, - "src": "7558:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - { + ], + "id": 873, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "8563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8563:44:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 879, + "nodeType": "ExpressionStatement", + "src": "8563:44:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 880, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 860, + "src": "8618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 795, - "name": "exchanger", + "id": 883, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "7640:9:1", + "referencedDeclaration": 857, + "src": "8644:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 794, + "expression": { + "argumentTypes": null, + "id": 881, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 882, "isConstant": false, - "isLValue": false, - "isPure": true, + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7632:7:1", + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8625:18:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } }, - "id": 796, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7632:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 797, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7664:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7664:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 765, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "7262:7:1", + "src": "8625:25:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", - "typeString": "contract IW12CrowdsaleFactory" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 766, + "id": 885, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "createCrowdsale", + "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 4561, - "src": "7262:23:1", + "referencedDeclaration": 7286, + "src": "8625:30:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$_t_contract$_IW12Crowdsale_$1224_$", - "typeString": "function (address,address,uint256,address,uint256,uint256,uint256,address,address) external returns (contract IW12Crowdsale)" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7262:422:1", + "src": "8618:37:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, - "nodeType": "VariableDeclarationStatement", - "src": "7236:448:1" + "id": 887, + "nodeType": "ExpressionStatement", + "src": "8618:37:1" }, { "expression": { "argumentTypes": null, - "id": 808, + "id": 894, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { + "argumentTypes": null, + "id": 888, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "8665:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 802, - "name": "tokenAddress", + "id": 891, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7712:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 803, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7726:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7726:10:1", + "referencedDeclaration": 857, + "src": "8693:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25132,27 +28375,39 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_address", "typeString": "address" } ], - "id": 801, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "7695:16:1", + "expression": { + "argumentTypes": null, + "id": 889, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8674:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 890, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8674:18:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" } }, - "id": 805, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, @@ -25160,175 +28415,186 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7695:42:1", + "src": "8674:25:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 806, + "id": 893, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": true, - "memberName": "crowdsaleAddress", + "lValueRequested": false, + "memberName": "symbol", "nodeType": "MemberAccess", - "referencedDeclaration": 175, - "src": "7695:59:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 807, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 764, - "src": "7757:9:1", + "referencedDeclaration": 7288, + "src": "8674:32:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } }, - "src": "7695:71:1", + "src": "8665:41:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, - "id": 809, + "id": 895, "nodeType": "ExpressionStatement", - "src": "7695:71:1" + "src": "8665:41:1" }, { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 813, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 764, - "src": "7801:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 896, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 864, + "src": "8716:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - ], + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 810, - "name": "wtoken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "7776:6:1", + "arguments": [ + { + "argumentTypes": null, + "id": 899, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "8746:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 897, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8727:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 898, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8727:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8727:25:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 812, + "id": 901, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "addTrustedAccount", + "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 8723, - "src": "7776:24:1", + "referencedDeclaration": 7290, + "src": "8727:34:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "id": 814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7776:35:1", + "src": "8716:45:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "id": 815, + "id": 903, "nodeType": "ExpressionStatement", - "src": "7776:35:1" + "src": "8716:45:1" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 823, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { + "argumentTypes": null, + "id": 904, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 867, + "src": "8771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 817, - "name": "tokenAddress", + "id": 907, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7843:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 818, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7857:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7857:10:1", + "referencedDeclaration": 857, + "src": "8799:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25337,27 +28603,39 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_address", "typeString": "address" } ], - "id": 816, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "7826:16:1", + "expression": { + "argumentTypes": null, + "id": 905, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8780:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 906, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8780:18:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" } }, - "id": 820, + "id": 908, "isConstant": false, "isLValue": false, "isPure": false, @@ -25365,444 +28643,931 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7826:42:1", + "src": "8780:25:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" } }, - "id": 821, + "id": 909, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "WTokenSaleFeePercent", + "memberName": "owners", "nodeType": "MemberAccess", - "referencedDeclaration": 171, - "src": "7826:63:1", + "referencedDeclaration": 7293, + "src": "8780:32:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 822, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7892:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7826:67:1", + "src": "8771:41:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "falseBody": null, - "id": 850, - "nodeType": "IfStatement", - "src": "7822:376:1", - "trueBody": { - "id": 849, - "nodeType": "Block", - "src": "7895:303:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 828, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "7950:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 827, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10211, - "src": "7944:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$10211_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7944:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 831, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 764, - "src": "7989:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - ], - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7981:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "id": 911, + "nodeType": "ExpressionStatement", + "src": "8771:41:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 912, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "8822:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 914, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8834:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8822:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 917, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "8858:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 841, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "8126:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 842, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8140:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8140:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 840, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "8109:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8109:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 845, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "WTokenSaleFeePercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 171, - "src": "8109:63:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 834, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "8034:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 835, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8048:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8048:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 833, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "8017:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8017:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 838, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokensForSaleAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 177, - "src": "8017:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "percent", - "nodeType": "MemberAccess", - "referencedDeclaration": 5133, - "src": "8017:91:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8017:156:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 915, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8839:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 916, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8839:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8839:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 919, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7295, + "src": "8839:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8822:53:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 921, + "nodeType": "ExpressionStatement", + "src": "8822:53:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 922, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "8885:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 924, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8897:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8885:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 927, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "8921:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 925, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8902:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 926, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8902:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8902:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 929, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ethFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7297, + "src": "8902:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8885:56:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 931, + "nodeType": "ExpressionStatement", + "src": "8885:56:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 932, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "8951:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 934, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8963:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8951:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 937, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "8987:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 935, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "8968:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 936, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "8968:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8968:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 939, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7299, + "src": "8968:46:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8951:63:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 941, + "nodeType": "ExpressionStatement", + "src": "8951:63:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 942, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "9024:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 944, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9036:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9024:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 947, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "9060:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20_$10211", - "typeString": "contract ERC20" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + "argumentTypes": null, + "id": 945, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9041:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 946, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7607, + "src": "9041:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_struct$_WhitelistedToken_$7308_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.WhitelistedToken storage pointer)" + } + }, + "id": 948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9041:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_storage_ptr", + "typeString": "struct TokenListing.WhitelistedToken storage pointer" + } + }, + "id": 949, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7301, + "src": "9041:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9024:60:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 951, + "nodeType": "ExpressionStatement", + "src": "9024:60:1" + } + ] + }, + "documentation": null, + "id": 953, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 857, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "8420:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8419:15:1" + }, + "payable": false, + "returnParameters": { + "id": 872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 860, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "8466:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 859, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8466:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 862, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "8479:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 861, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8479:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 864, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "8494:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 863, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "8494:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 867, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "8510:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 865, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8510:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 866, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8510:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 871, + "name": "commissions", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "8528:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 868, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8528:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 870, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8533:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "8528:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8465:83:1" + }, + "scope": 1226, + "src": "8402:689:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1000, + "nodeType": "Block", + "src": "9152:243:1", + "statements": [ + { + "assignments": [ + 962 + ], + "declarations": [ + { + "constant": false, + "id": 962, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "9162:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 960, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9162:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 961, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9162:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 971, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 824, - "name": "exchanger", + "id": 966, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "7909:9:1", + "referencedDeclaration": 111, + "src": "9202:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 826, + "id": 967, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "approve", + "memberName": "getTokens", "nodeType": "MemberAccess", - "referencedDeclaration": 9177, - "src": "7909:17:1", + "referencedDeclaration": 7375, + "src": "9202:19:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$10211_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (contract ERC20,address,uint256) external returns (bool)" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$returns$_t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer) view returns (struct TokenListing.WhitelistedToken memory[] memory)" } }, - "id": 847, + "id": 968, "isConstant": false, "isLValue": false, "isPure": false, @@ -25810,44 +29575,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7909:278:1", + "src": "9202:21:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.WhitelistedToken memory[] memory" } }, - "id": 848, - "nodeType": "ExpressionStatement", - "src": "7909:278:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "8229:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 853, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "8243:13:1", + "id": 969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9202:28:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25856,27 +29598,44 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 851, - "name": "addTokensToCrowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "8208:20:1", + "id": 965, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "9188:13:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9192:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 964, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9192:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } } }, - "id": 854, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, @@ -25884,463 +29643,502 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8208:49:1", + "src": "9188:43:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" } }, - "id": 855, - "nodeType": "ExpressionStatement", - "src": "8208:49:1" + "nodeType": "VariableDeclarationStatement", + "src": "9162:69:1" }, { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 857, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "8294:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "body": { + "id": 996, + "nodeType": "Block", + "src": "9298:67:1", + "statements": [ { - "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 858, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8308:3:1", + "id": 994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 985, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "9312:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 987, + "indexExpression": { + "argumentTypes": null, + "id": 986, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "9319:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9312:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 988, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9324:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 7375, + "src": "9324:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$returns$_t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer) view returns (struct TokenListing.WhitelistedToken memory[] memory)" + } + }, + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9324:21:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.WhitelistedToken memory[] memory" + } + }, + "id": 992, + "indexExpression": { + "argumentTypes": null, + "id": 991, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "9346:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9324:24:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WhitelistedToken_$7308_memory", + "typeString": "struct TokenListing.WhitelistedToken memory" + } + }, + "id": 993, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 7303, + "src": "9324:30:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9312:42:1", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 995, + "nodeType": "ExpressionStatement", + "src": "9312:42:1" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 976, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "9259:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 977, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9263:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 978, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 7375, + "src": "9263:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$returns$_t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer) view returns (struct TokenListing.WhitelistedToken memory[] memory)" } }, - "id": 859, + "id": 979, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8308:10:1", + "names": [], + "nodeType": "FunctionCall", + "src": "9263:21:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_struct$_WhitelistedToken_$7308_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.WhitelistedToken memory[] memory" } }, - { - "argumentTypes": null, - "id": 860, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "8320:13:1", + "id": 980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9263:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9259:32:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 997, + "initializationExpression": { + "assignments": [ + 973 + ], + "declarations": [ + { + "constant": false, + "id": 973, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "9247:6:1", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "typeName": { + "id": 972, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9247:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } ], + "id": 975, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9256:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9247:10:1" + }, + "loopExpression": { "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { + "argumentTypes": null, + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9293:3:1", + "subExpression": { + "argumentTypes": null, + "id": 982, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "9293:1:1", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 856, - "name": "CrowdsaleInitialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "8273:20:1", + }, "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8273:61:1", + "id": 984, + "nodeType": "ExpressionStatement", + "src": "9293:3:1" + }, + "nodeType": "ForStatement", + "src": "9242:123:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 998, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "9382:6:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "id": 862, - "nodeType": "EmitStatement", - "src": "8268:66:1" + "functionReturnParameters": 958, + "id": 999, + "nodeType": "Return", + "src": "9375:13:1" } ] }, "documentation": null, - "id": 864, + "id": 1001, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 699, - "modifierName": { - "argumentTypes": null, - "id": 698, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9776, - "src": "6743:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6743:12:1" - } - ], - "name": "initCrowdsale", + "isDeclaredConst": true, + "modifiers": [], + "name": "getTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 697, + "id": 954, + "nodeType": "ParameterList", + "parameters": [], + "src": "9115:2:1" + }, + "payable": false, + "returnParameters": { + "id": 958, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 692, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "6680:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6680:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 694, - "name": "amountForSale", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "6702:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 693, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6702:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 696, - "name": "price", + "id": 957, + "name": "", "nodeType": "VariableDeclaration", - "scope": 864, - "src": "6722:10:1", + "scope": 1001, + "src": "9141:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "id": 695, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6722:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6679:54:1" - }, - "payable": false, - "returnParameters": { - "id": 700, - "nodeType": "ParameterList", - "parameters": [], - "src": "6756:0:1" - }, - "scope": 1058, - "src": "6657:1684:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 990, - "nodeType": "Block", - "src": "8426:973:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 872, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "8444:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8460:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8444:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 871, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8436:7:1", + "baseType": { + "id": 955, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9141:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8436:26:1", + "id": 956, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9141:9:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, - "id": 876, - "nodeType": "ExpressionStatement", - "src": "8436:26:1" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "9140:11:1" + }, + "scope": 1226, + "src": "9097:298:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1013, + "nodeType": "Block", + "src": "9473:59:1", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 1010, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1003, + "src": "9519:5:1", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "id": 882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 878, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8480:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8504:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8496:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 881, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8496:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8480:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 877, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8472:7:1", + "expression": { + "argumentTypes": null, + "id": 1008, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9490:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1009, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isTokenWhitelisted", + "nodeType": "MemberAccess", + "referencedDeclaration": 7395, + "src": "9490:28:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" } }, - "id": 883, + "id": 1011, "isConstant": false, "isLValue": false, "isPure": false, @@ -26348,183 +30146,176 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8472:35:1", + "src": "9490:35:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 884, - "nodeType": "ExpressionStatement", - "src": "8472:35:1" - }, + "functionReturnParameters": 1007, + "id": 1012, + "nodeType": "Return", + "src": "9483:42:1" + } + ] + }, + "documentation": null, + "id": 1014, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isTokenWhitelisted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1004, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 888, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8552:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 886, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "8525:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "id": 887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getWTokenByToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 9221, - "src": "8525:26:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8750_$", - "typeString": "function (address) view external returns (contract WToken)" - } - }, - "id": 889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8525:40:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 891, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8577:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 890, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8569:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8569:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8525:54:1", + "constant": false, + "id": 1003, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1014, + "src": "9429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9428:15:1" + }, + "payable": false, + "returnParameters": { + "id": 1007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1006, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1014, + "src": "9467:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9467:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9466:6:1" + }, + "scope": 1226, + "src": "9401:131:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1029, + "nodeType": "Block", + "src": "9620:61:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1025, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "9661:5:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1026, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "9668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 885, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8517:7:1", + "expression": { + "argumentTypes": null, + "id": 1023, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9637:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 7437, + "src": "9637:23:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" } }, - "id": 894, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": false, @@ -26532,216 +30323,300 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8517:63:1", + "src": "9637:37:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 895, - "nodeType": "ExpressionStatement", - "src": "8517:63:1" + "functionReturnParameters": 1022, + "id": 1028, + "nodeType": "Return", + "src": "9630:44:1" + } + ] + }, + "documentation": null, + "id": 1030, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1016, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1030, + "src": "9561:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1015, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9561:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 898, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8615:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 899, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8629:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8629:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 897, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "8598:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8598:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 902, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "crowdsaleAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 175, - "src": "8598:59:1", + "constant": false, + "id": 1018, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1030, + "src": "9576:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9576:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9560:30:1" + }, + "payable": false, + "returnParameters": { + "id": 1022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1030, + "src": "9614:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1020, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9614:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9613:6:1" + }, + "scope": 1226, + "src": "9538:143:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1082, + "nodeType": "Block", + "src": "9759:274:1", + "statements": [ + { + "assignments": [ + 1041 + ], + "declarations": [ + { + "constant": false, + "id": 1041, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 1083, + "src": "9769:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9769:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "id": 1040, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9769:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1051, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8669:1:1", - "subdenomination": null, + "id": 1047, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "9833:5:1", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 903, + "expression": { + "argumentTypes": null, + "id": 1045, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9809:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1046, "isConstant": false, - "isLValue": false, - "isPure": true, + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8661:7:1", + "memberName": "getCrowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7460, + "src": "9809:23:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale memory[] memory)" + } }, - "id": 905, + "id": 1048, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8661:10:1", + "src": "9809:30:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.Crowdsale memory[] memory" } }, - "src": "8598:73:1", + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9809:37:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 896, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8590:7:1", + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "9795:13:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 1042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1043, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9799:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } } }, - "id": 907, + "id": 1050, "isConstant": false, "isLValue": false, "isPure": false, @@ -26749,221 +30624,584 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8590:82:1", + "src": "9795:52:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" } }, - "id": 908, - "nodeType": "ExpressionStatement", - "src": "8590:82:1" + "nodeType": "VariableDeclarationStatement", + "src": "9769:78:1" }, { - "expression": { - "argumentTypes": null, - "arguments": [ + "body": { + "id": 1078, + "nodeType": "Block", + "src": "9923:80:1", + "statements": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, - "baseExpression": { + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1066, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "9937:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1068, + "indexExpression": { + "argumentTypes": null, + "id": 1067, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1053, + "src": "9944:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9937:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 911, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8707:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "baseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1071, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "9973:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - { - "argumentTypes": null, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "id": 912, - "name": "msg", + "id": 1069, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8721:3:1", + "referencedDeclaration": 111, + "src": "9949:9:1", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 913, + "id": 1070, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "sender", + "memberName": "getCrowdsales", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8721:10:1", + "referencedDeclaration": 7460, + "src": "9949:23:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale memory[] memory)" } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9949:30:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.Crowdsale memory[] memory" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 910, - "name": "getApprovedToken", + }, + "id": 1074, + "indexExpression": { + "argumentTypes": null, + "id": 1073, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "8690:16:1", + "referencedDeclaration": 1053, + "src": "9980:1:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 914, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8690:42:1", + "nodeType": "IndexAccess", + "src": "9949:33:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_Crowdsale_$7326_memory", + "typeString": "struct TokenListing.Crowdsale memory" } }, - "id": 915, + "id": 1075, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "approvedOwners", + "memberName": "crowdsale", "nodeType": "MemberAccess", - "referencedDeclaration": 165, - "src": "8690:57:1", + "referencedDeclaration": 7310, + "src": "9949:43:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 918, - "indexExpression": { + "src": "9937:55:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1077, + "nodeType": "ExpressionStatement", + "src": "9937:55:1" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1056, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1053, + "src": "9875:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 916, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8748:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8748:10:1", + "id": 1059, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "9903:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1057, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "9879:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } }, + "id": 1058, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8690:69:1", + "memberName": "getCrowdsales", + "nodeType": "MemberAccess", + "referencedDeclaration": 7460, + "src": "9879:23:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (struct TokenListing.Crowdsale memory[] memory)" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 919, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8763:4:1", - "subdenomination": null, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9879:30:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Crowdsale_$7326_memory_$dyn_memory_ptr", + "typeString": "struct TokenListing.Crowdsale memory[] memory" + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9879:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9875:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1079, + "initializationExpression": { + "assignments": [ + 1053 + ], + "declarations": [ + { + "constant": false, + "id": 1053, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1083, + "src": "9863:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1052, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9863:4:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "8690:77:1", + "value": null, + "visibility": "internal" + } + ], + "id": 1055, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9872:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9863:10:1" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9918:3:1", + "subExpression": { + "argumentTypes": null, + "id": 1063, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1053, + "src": "9918:1:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1065, + "nodeType": "ExpressionStatement", + "src": "9918:3:1" + }, + "nodeType": "ForStatement", + "src": "9858:145:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1080, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "10020:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 1037, + "id": 1081, + "nodeType": "Return", + "src": "10013:13:1" + } + ] + }, + "documentation": null, + "id": 1083, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCrowdsales", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1033, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1032, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1083, + "src": "9710:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1031, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9710:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9709:15:1" + }, + "payable": false, + "returnParameters": { + "id": 1037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1036, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1083, + "src": "9748:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9748:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1035, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9748:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9747:11:1" + }, + "scope": 1226, + "src": "9687:346:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1098, + "nodeType": "Block", + "src": "10135:75:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1094, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "10186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1095, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "10193:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 909, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "8682:7:1", + "expression": { + "argumentTypes": null, + "id": 1092, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10152:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasCrowdsaleWithAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7486, + "src": "10152:33:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" } }, - "id": 921, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -26971,282 +31209,373 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8682:86:1", + "src": "10152:51:1", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 922, - "nodeType": "ExpressionStatement", - "src": "8682:86:1" + "functionReturnParameters": 1091, + "id": 1097, + "nodeType": "Return", + "src": "10145:58:1" + } + ] + }, + "documentation": null, + "id": 1099, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasCrowdsaleWithAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1085, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1099, + "src": "10072:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1084, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10072:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 1087, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 1099, + "src": "10087:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1086, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10087:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10071:34:1" + }, + "payable": false, + "returnParameters": { + "id": 1091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1090, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1099, + "src": "10129:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1089, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10129:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10128:6:1" + }, + "scope": 1226, + "src": "10039:171:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1111, + "nodeType": "Block", + "src": "10294:67:1", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 925, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8803:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 926, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8817:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8817:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 924, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "8786:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8786:42:1", + "id": 1108, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "10348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1106, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10311:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasNotInitialisedCrowdsale", + "nodeType": "MemberAccess", + "referencedDeclaration": 7512, + "src": "10311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address) view returns (bool)" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10311:43:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1105, + "id": 1110, + "nodeType": "Return", + "src": "10304:50:1" + } + ] + }, + "documentation": null, + "id": 1112, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasNotInitialisedCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1101, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1112, + "src": "10252:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1100, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10252:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10251:15:1" + }, + "payable": false, + "returnParameters": { + "id": 1105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1104, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1112, + "src": "10288:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10288:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10287:6:1" + }, + "scope": 1226, + "src": "10216:145:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1213, + "nodeType": "Block", + "src": "10514:705:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1133, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "10566:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 929, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokensForSaleAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 177, - "src": "8786:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "argumentTypes": null, + "id": 1134, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "10573:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 937, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "8919:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 931, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8869:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 932, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "8883:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8883:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 930, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "8852:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8852:42:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } - }, - "id": 935, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "wTokensIssuedAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 179, - "src": "8852:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "8852:66:1", + "argumentTypes": null, + "id": 1131, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10532:9:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 938, + "id": 1132, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8852:81:1", + "memberName": "hasCrowdsaleWithAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7486, + "src": "10532:33:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (bool)" } }, - "src": "8786:147:1", + "id": 1135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10532:51:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27260,21 +31589,21 @@ "typeString": "bool" } ], - "id": 923, + "id": 1130, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "8778:7:1", + "referencedDeclaration": 13444, + "src": "10524:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 940, + "id": 1136, "isConstant": false, "isLValue": false, "isPure": false, @@ -27282,276 +31611,247 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8778:156:1", + "src": "10524:60:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 941, + "id": 1137, "nodeType": "ExpressionStatement", - "src": "8778:156:1" + "src": "10524:60:1" }, { - "assignments": [ - 943 - ], - "declarations": [ - { - "constant": false, - "id": 943, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 991, - "src": "8945:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - }, - "typeName": { - "contractScope": null, - "id": 942, - "name": "WToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "8945:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 948, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 1147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 946, - "name": "tokenAddress", + "id": 1138, + "name": "commissions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8987:12:1", + "referencedDeclaration": 1121, + "src": "10595:11:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" } - ], - "expression": { + }, + "id": 1140, + "indexExpression": { "argumentTypes": null, - "id": 944, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "8960:9:1", + "hexValue": "30", + "id": 1139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10607:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "id": 945, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "lValueRequested": false, - "memberName": "getWTokenByToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 9221, - "src": "8960:26:1", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10595:14:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8750_$", - "typeString": "function (address) view external returns (contract WToken)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8960:40:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8945:55:1" - }, - { - "assignments": [ - 950 - ], - "declarations": [ - { - "constant": false, - "id": 950, - "name": "crowdsale", - "nodeType": "VariableDeclaration", - "scope": 991, - "src": "9010:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - }, - "typeName": { - "contractScope": null, - "id": 949, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1224, - "src": "9010:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 957, - "initialValue": { - "argumentTypes": null, - "expression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 952, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "9053:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1143, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "10644:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1144, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "10651:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - { - "argumentTypes": null, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "id": 953, - "name": "msg", + "id": 1141, + "name": "whitelist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9067:3:1", + "referencedDeclaration": 111, + "src": "10612:9:1", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 954, + "id": 1142, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "sender", + "memberName": "getCrowdsaleByAddress", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9067:10:1", + "referencedDeclaration": 7562, + "src": "10612:31:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" } - ], - "id": 951, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "9036:16:1", + }, + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10612:49:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } }, - "id": 955, + "id": 1146, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9036:42:1", + "memberName": "feePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7312, + "src": "10612:60:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 956, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "crowdsaleAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 175, - "src": "9036:59:1", + "src": "10595:77:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "9010:85:1" + "id": 1148, + "nodeType": "ExpressionStatement", + "src": "10595:77:1" }, { "expression": { "argumentTypes": null, - "id": 973, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1149, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1121, + "src": "10682:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 1151, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10694:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10682:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 959, - "name": "tokenAddress", + "id": 1154, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "9123:12:1", + "referencedDeclaration": 1114, + "src": "10731:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27559,28 +31859,12 @@ }, { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 960, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9137:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9137:10:1", + "id": 1155, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "10738:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27598,18 +31882,34 @@ "typeString": "address" } ], - "id": 958, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "9106:16:1", + "expression": { + "argumentTypes": null, + "id": 1152, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10699:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1153, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "10699:31:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" } }, - "id": 962, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": false, @@ -27617,21 +31917,84 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9106:42:1", + "src": "10699:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ethFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7314, + "src": "10699:63:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10682:80:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1159, + "nodeType": "ExpressionStatement", + "src": "10682:80:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1160, + "name": "commissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1121, + "src": "10772:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 1162, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10784:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" - } + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" }, - "id": 963, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberName": "wTokensIssuedAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 179, - "src": "9106:62:1", + "nodeType": "IndexAccess", + "src": "10772:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27641,735 +32004,753 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 971, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "9251:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], "expression": { - "argumentTypes": [ + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": null, + "id": 1165, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "10821:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1166, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "10828:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { - "argumentTypes": null, + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 965, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "9188:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 966, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9202:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9202:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 964, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "9171:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" - } - }, - "id": 968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9171:42:1", + "id": 1163, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10789:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" } }, - "id": 969, + "id": 1164, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "wTokensIssuedAmount", + "memberName": "getCrowdsaleByAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 179, - "src": "9171:75:1", + "referencedDeclaration": 7562, + "src": "10789:31:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" } }, - "id": 970, + "id": 1167, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "9171:79:1", + "names": [], + "nodeType": "FunctionCall", + "src": "10789:49:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } }, - "id": 972, + "id": 1168, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9171:94:1", + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 7316, + "src": "10789:70:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9106:159:1", + "src": "10772:87:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 974, + "id": 1170, "nodeType": "ExpressionStatement", - "src": "9106:159:1" + "src": "10772:87:1" }, { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 978, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 950, - "src": "9287:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - { + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 979, - "name": "amountForSale", + "id": 1171, + "name": "commissions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "9298:13:1", + "referencedDeclaration": 1121, + "src": "10869:11:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" } }, - { + "id": 1173, + "indexExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 980, + "hexValue": "33", + "id": 1172, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9313:1:1", + "src": "10881:1:1", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" }, - "value": "0" + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10869:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 975, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "9276:5:1", + "arguments": [ + { + "argumentTypes": null, + "id": 1176, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "10918:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1177, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "10925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1174, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10886:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1175, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "10886:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10886:49:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", - "typeString": "contract WToken" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } }, - "id": 977, + "id": 1179, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "mint", + "memberName": "trancheFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 8412, - "src": "9276:10:1", + "referencedDeclaration": 7318, + "src": "10886:67:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", - "typeString": "function (address,uint256,uint32) external returns (bool)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9276:39:1", + }, + "src": "10869:84:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 982, + "id": 1181, "nodeType": "ExpressionStatement", - "src": "9276:39:1" + "src": "10869:84:1" }, { - "eventCall": { + "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 984, - "name": "tokenAddress", + "id": 1182, + "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "9352:12:1", + "referencedDeclaration": 1125, + "src": "10963:7:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" } }, - { + "id": 1184, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10971:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10963:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1187, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "11008:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1188, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "11015:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "argumentTypes": null, - "id": 985, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "9366:3:1", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1185, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "10976:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1186, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "10976:31:1", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" } }, - "id": 986, + "id": 1189, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9366:10:1", + "names": [], + "nodeType": "FunctionCall", + "src": "10976:49:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } }, - { - "argumentTypes": null, - "id": 987, - "name": "amountForSale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "9378:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 983, - "name": "CrowdsaleTokenMinted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 155, - "src": "9331:20:1", + "id": 1190, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokensForSaleAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7320, + "src": "10976:69:1", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9331:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 989, - "nodeType": "EmitStatement", - "src": "9326:66:1" - } - ] - }, - "documentation": null, - "id": 991, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addTokensToCrowdsale", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 869, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 866, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 991, - "src": "8377:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 865, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 868, - "name": "amountForSale", - "nodeType": "VariableDeclaration", - "scope": 991, - "src": "8399:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 867, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8399:4:1", + "src": "10963:82:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "8376:42:1" - }, - "payable": false, - "returnParameters": { - "id": 870, - "nodeType": "ParameterList", - "parameters": [], - "src": "8426:0:1" - }, - "scope": 1058, - "src": "8347:1052:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1006, - "nodeType": "Block", - "src": "9508:85:1", - "statements": [ + "id": 1192, + "nodeType": "ExpressionStatement", + "src": "10963:82:1" + }, { "expression": { "argumentTypes": null, - "expression": { + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1001, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 993, - "src": "9542:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "baseExpression": { + "argumentTypes": null, + "id": 1193, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "11055:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 1195, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11063:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - { - "argumentTypes": null, - "id": 1002, - "name": "ownerAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "9556:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11055:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, "expression": { - "argumentTypes": [ + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "argumentTypes": null, + "id": 1198, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "11100:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, { - "typeIdentifier": "t_address", - "typeString": "address" + "argumentTypes": null, + "id": 1199, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "11107:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], - "id": 1000, - "name": "getApprovedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "9525:16:1", + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1196, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "11068:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1197, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "11068:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 1200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11068:49:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$182_storage_ptr_$", - "typeString": "function (address,address) view returns (struct W12Lister.ListedToken storage pointer)" + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" } }, - "id": 1003, + "id": 1201, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9525:44:1", + "memberName": "wTokensIssuedAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7322, + "src": "11068:69:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken storage pointer" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1004, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "crowdsaleAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 175, - "src": "9525:61:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$1224", - "typeString": "contract IW12Crowdsale" - } - }, - "functionReturnParameters": 999, - "id": 1005, - "nodeType": "Return", - "src": "9518:68:1" - } - ] - }, - "documentation": null, - "id": 1007, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTokenCrowdsale", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 993, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "9432:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 992, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9432:7:1", + "src": "11055:82:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "value": null, - "visibility": "internal" + "id": 1203, + "nodeType": "ExpressionStatement", + "src": "11055:82:1" }, - { - "constant": false, - "id": 995, - "name": "ownerAddress", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "9454:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 994, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9454:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9431:44:1" - }, - "payable": false, - "returnParameters": { - "id": 999, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 998, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "9499:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 997, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9498:9:1" - }, - "scope": 1058, - "src": "9405:188:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1019, - "nodeType": "Block", - "src": "9670:49:1", - "statements": [ { "expression": { "argumentTypes": null, - "baseExpression": { + "id": 1211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "id": 1015, - "name": "approvedOwnersList", + "id": 1204, + "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "9687:18:1", + "referencedDeclaration": 1128, + "src": "11147:6:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[] storage ref)" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "id": 1017, - "indexExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "id": 1016, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1009, - "src": "9706:5:1", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1207, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "11188:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1208, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "11195:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1205, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "11156:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Whitelist_$7357_storage", + "typeString": "struct TokenListing.Whitelist storage ref" + } + }, + "id": 1206, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "getCrowdsaleByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 7562, + "src": "11156:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Whitelist_$7357_storage_ptr_$_t_address_$_t_address_$returns$_t_struct$_Crowdsale_$7326_storage_ptr_$bound_to$_t_struct$_Whitelist_$7357_storage_ptr_$", + "typeString": "function (struct TokenListing.Whitelist storage pointer,address,address) view returns (struct TokenListing.Crowdsale storage pointer)" + } + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11156:49:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Crowdsale_$7326_storage_ptr", + "typeString": "struct TokenListing.Crowdsale storage pointer" + } + }, + "id": 1210, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 7325, + "src": "11156:56:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9687:25:1", + "src": "11147:65:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "functionReturnParameters": 1014, - "id": 1018, - "nodeType": "Return", - "src": "9680:32:1" + "id": 1212, + "nodeType": "ExpressionStatement", + "src": "11147:65:1" } ] }, "documentation": null, - "id": 1020, + "id": 1214, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getTokenOwners", + "name": "getCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 1010, + "id": 1117, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1009, + "id": 1114, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1020, - "src": "9623:13:1", + "scope": 1214, + "src": "10389:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28377,10 +32758,10 @@ "typeString": "address" }, "typeName": { - "id": 1008, + "id": 1113, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9623:7:1", + "src": "10389:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -28388,284 +32769,89 @@ }, "value": null, "visibility": "internal" - } - ], - "src": "9622:15:1" - }, - "payable": false, - "returnParameters": { - "id": 1014, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 1013, - "name": "", + "id": 1116, + "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 1020, - "src": "9659:9:1", + "scope": 1214, + "src": "10404:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "baseType": { - "id": 1011, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9659:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1012, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9659:9:1", + "id": 1115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10404:7:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "9658:11:1" - }, - "scope": 1058, - "src": "9599:120:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "9789:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1025, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "9806:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "functionReturnParameters": 1024, - "id": 1026, - "nodeType": "Return", - "src": "9799:16:1" - } - ] - }, - "documentation": null, - "id": 1028, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getExchanger", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1021, - "nodeType": "ParameterList", - "parameters": [], - "src": "9746:2:1" + "src": "10388:34:1" }, "payable": false, "returnParameters": { - "id": 1024, + "id": 1129, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, - "name": "", + "id": 1121, + "name": "commissions", "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "9772:15:1", + "scope": 1214, + "src": "10454:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" }, "typeName": { - "contractScope": null, - "id": 1022, - "name": "ITokenExchanger", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9194, - "src": "9772:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", - "typeString": "contract ITokenExchanger" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9771:17:1" - }, - "scope": 1058, - "src": "9725:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1045, - "nodeType": "Block", - "src": "9949:87:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1037, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "9966:14:1", + "baseType": { + "id": 1118, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10454:4:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", - "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1043, - "indexExpression": { + "id": 1120, + "length": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1038, - "name": "approvedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "9981:19:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint16_$_$", - "typeString": "mapping(address => mapping(address => uint16))" - } - }, - "id": 1040, - "indexExpression": { - "argumentTypes": null, - "id": 1039, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1030, - "src": "10001:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9981:33:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$", - "typeString": "mapping(address => uint16)" - } - }, - "id": 1042, - "indexExpression": { - "argumentTypes": null, - "id": 1041, - "name": "ownerAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "10015:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "hexValue": "34", + "id": 1119, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "number", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9981:47:1", + "nodeType": "Literal", + "src": "10459:1:1", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } + "typeIdentifier": null, + "typeString": null + }, + "value": "4" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9966:63:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage", - "typeString": "struct W12Lister.ListedToken storage ref" - } - }, - "functionReturnParameters": 1036, - "id": 1044, - "nodeType": "Return", - "src": "9959:70:1" - } - ] - }, - "documentation": null, - "id": 1046, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getApprovedToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1030, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 1046, - "src": "9854:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1029, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9854:7:1", + "nodeType": "ArrayTypeName", + "src": "10454:7:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" } }, "value": null, @@ -28673,80 +32859,107 @@ }, { "constant": false, - "id": 1032, - "name": "ownerAddress", + "id": 1125, + "name": "amounts", "nodeType": "VariableDeclaration", - "scope": 1046, - "src": "9876:20:1", + "scope": 1214, + "src": "10475:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" }, "typeName": { - "id": 1031, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9876:7:1", + "baseType": { + "id": 1122, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10475:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1124, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10480:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "10475:7:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" } }, "value": null, "visibility": "internal" - } - ], - "src": "9853:44:1" - }, - "payable": false, - "returnParameters": { - "id": 1036, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 1035, - "name": "result", + "id": 1128, + "name": "owners", "nodeType": "VariableDeclaration", - "scope": 1046, - "src": "9921:26:1", + "scope": 1214, + "src": "10492:16:1", "stateVariable": false, - "storageLocation": "storage", + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "contractScope": null, - "id": 1034, - "name": "ListedToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 182, - "src": "9921:11:1", + "baseType": { + "id": 1126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10492:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1127, + "length": null, + "nodeType": "ArrayTypeName", + "src": "10492:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", - "typeString": "struct W12Lister.ListedToken" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], - "src": "9920:28:1" + "src": "10453:56:1" }, - "scope": 1058, - "src": "9828:208:1", + "scope": 1226, + "src": "10367:852:1", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "external" }, { "body": { - "id": 1056, + "id": 1224, "nodeType": "Block", - "src": "10096:60:1", + "src": "11279:60:1", "statements": [ { "expression": { @@ -28754,12 +32967,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1053, + "id": 1221, "name": "SERVICE_WALLET_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "10131:17:1", + "referencedDeclaration": 103, + "src": "11314:17:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -28775,32 +32988,32 @@ ], "expression": { "argumentTypes": null, - "id": 1051, + "id": 1219, "name": "wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "10113:7:1", + "referencedDeclaration": 109, + "src": "11296:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" } }, - "id": 1052, + "id": 1220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getWallet", "nodeType": "MemberAccess", - "referencedDeclaration": 9684, - "src": "10113:17:1", + "referencedDeclaration": 12000, + "src": "11296:17:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint8_$returns$_t_address_$", "typeString": "function (uint8) view external returns (address)" } }, - "id": 1054, + "id": 1222, "isConstant": false, "isLValue": false, "isPure": false, @@ -28808,21 +33021,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10113:36:1", + "src": "11296:36:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1050, - "id": 1055, + "functionReturnParameters": 1218, + "id": 1223, "nodeType": "Return", - "src": "10106:43:1" + "src": "11289:43:1" } ] }, "documentation": null, - "id": 1057, + "id": 1225, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -28830,23 +33043,23 @@ "name": "serviceWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 1047, + "id": 1215, "nodeType": "ParameterList", "parameters": [], - "src": "10064:2:1" + "src": "11247:2:1" }, "payable": false, "returnParameters": { - "id": 1050, + "id": 1218, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1049, + "id": 1217, "name": "", "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "10087:7:1", + "scope": 1225, + "src": "11270:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28854,10 +33067,10 @@ "typeString": "address" }, "typeName": { - "id": 1048, + "id": 1216, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10087:7:1", + "src": "11270:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -28867,20 +33080,20 @@ "visibility": "internal" } ], - "src": "10086:9:1" + "src": "11269:9:1" }, - "scope": 1058, - "src": "10042:114:1", + "scope": 1226, + "src": "11225:114:1", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1059, - "src": "576:9582:1" + "scope": 1227, + "src": "737:10604:1" } ], - "src": "0:10159:1" + "src": "0:11342:1" }, "compiler": { "name": "solc", @@ -28889,11 +33102,13 @@ "networks": { "4": { "events": {}, - "links": {}, + "links": { + "Percent": "0x04596c9a67ad5870686616d58c2a8198f8b94b34" + }, "address": "0x8adb10b4877052d03d8ac37c6a69ba5c316cee99", "transactionHash": "0xb330575a6cd8890193ab290c7148ca912f739d818ab8d180f9042639766661b1" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:56:22.031Z" + "updatedAt": "2018-12-06T13:20:48.567Z" } \ No newline at end of file diff --git a/build/contracts/W12ListerStub.json b/build/contracts/W12ListerStub.json index af00f93c..ae175eff 100644 --- a/build/contracts/W12ListerStub.json +++ b/build/contracts/W12ListerStub.json @@ -5,7 +5,7 @@ "constant": false, "inputs": [ { - "name": "tokenAddress", + "name": "token", "type": "address" }, { @@ -23,29 +23,11 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "constant": true, - "inputs": [ - { - "name": "_operator", - "type": "address" - }, - { - "name": "_role", - "type": "string" - } - ], - "name": "checkRole", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": false, "inputs": [ { - "name": "_operator", + "name": "_account", "type": "address" } ], @@ -59,55 +41,15 @@ "constant": true, "inputs": [ { - "name": "", - "type": "uint256" + "name": "token", + "type": "address" } ], - "name": "approvedTokens", + "name": "getCrowdsales", "outputs": [ { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "decimals", - "type": "uint8" - }, - { - "name": "feePercent", - "type": "uint256" - }, - { - "name": "ethFeePercent", - "type": "uint256" - }, - { - "name": "WTokenSaleFeePercent", - "type": "uint256" - }, - { - "name": "trancheFeePercent", - "type": "uint256" - }, - { - "name": "crowdsaleAddress", - "type": "address" - }, - { - "name": "tokensForSaleAmount", - "type": "uint256" - }, - { - "name": "wTokensIssuedAmount", - "type": "uint256" - }, - { - "name": "tokenAddress", - "type": "address" + "name": "", + "type": "address[]" } ], "payable": false, @@ -118,15 +60,11 @@ "constant": true, "inputs": [ { - "name": "_operator", + "name": "token", "type": "address" - }, - { - "name": "_role", - "type": "string" } ], - "name": "hasRole", + "name": "hasNotInitialisedCrowdsale", "outputs": [ { "name": "", @@ -141,43 +79,33 @@ "constant": false, "inputs": [ { - "name": "tokenOwner", + "name": "token", "type": "address" }, { - "name": "tokenAddress", + "name": "crowdsale", "type": "address" }, { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "decimals", - "type": "uint8" - }, - { - "name": "feePercent", - "type": "uint256" - }, - { - "name": "ethFeePercent", - "type": "uint256" - }, - { - "name": "WTokenSaleFeePercent", + "name": "amountForSale", "type": "uint256" - }, + } + ], + "name": "addTokensToCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ { - "name": "trancheFeePercent", - "type": "uint256" + "name": "recipient", + "type": "address" } ], - "name": "whitelistToken", + "name": "transferPrimary", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -187,19 +115,38 @@ "constant": true, "inputs": [ { - "name": "tokenAddress", + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "token", "type": "address" }, { - "name": "ownerAddress", + "name": "crowdsale", "type": "address" } ], - "name": "getTokenCrowdsale", + "name": "getCrowdsaleOwners", "outputs": [ { "name": "", - "type": "address" + "type": "address[]" } ], "payable": false, @@ -263,28 +210,45 @@ "type": "function" }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "tokenAddress", + "name": "token", "type": "address" + } + ], + "name": "getToken", + "outputs": [ + { + "name": "name", + "type": "string" }, { - "name": "amount", - "type": "uint256" + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + }, + { + "name": "owners", + "type": "address[]" + }, + { + "name": "commissions", + "type": "uint256[4]" } ], - "name": "placeToken", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { - "name": "_operator", + "name": "_account", "type": "address" } ], @@ -296,8 +260,21 @@ }, { "constant": false, - "inputs": [], - "name": "renounceOwnership", + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "placeToken", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -324,45 +301,85 @@ }, { "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ + "inputs": [ { - "name": "", + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", "type": "address" } ], + "name": "getCrowdsale", + "outputs": [ + { + "name": "commissions", + "type": "uint256[4]" + }, + { + "name": "amounts", + "type": "uint256[2]" + }, + { + "name": "owners", + "type": "address[]" + } + ], "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, + "constant": false, "inputs": [], - "name": "approvedTokensLength", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], + "name": "renounceAdmin", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { - "name": "tokenAddress", + "name": "token", "type": "address" }, { - "name": "amountForSale", + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + }, + { + "name": "owners", + "type": "address[]" + }, + { + "name": "feePercent", + "type": "uint256" + }, + { + "name": "ethFeePercent", + "type": "uint256" + }, + { + "name": "WTokenSaleFeePercent", + "type": "uint256" + }, + { + "name": "trancheFeePercent", "type": "uint256" } ], - "name": "addTokensToCrowdsale", + "name": "whitelistToken", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -371,11 +388,11 @@ { "constant": true, "inputs": [], - "name": "factory", + "name": "getTokens", "outputs": [ { "name": "", - "type": "address" + "type": "address[]" } ], "payable": false, @@ -386,19 +403,29 @@ "constant": true, "inputs": [ { - "name": "", + "name": "token", "type": "address" - }, + } + ], + "name": "isTokenWhitelisted", + "outputs": [ { "name": "", - "type": "address" + "type": "bool" } ], - "name": "approvedTokensIndex", + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "factory", "outputs": [ { "name": "", - "type": "uint16" + "type": "address" } ], "payable": false, @@ -408,7 +435,7 @@ { "constant": true, "inputs": [], - "name": "wallets", + "name": "primary", "outputs": [ { "name": "", @@ -419,14 +446,37 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "crowdsale", + "type": "address" + } + ], + "name": "hasCrowdsaleWithAddress", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], - "name": "ROLE_ADMIN", + "name": "wallets", "outputs": [ { "name": "", - "type": "string" + "type": "address" } ], "payable": false, @@ -434,17 +484,26 @@ "type": "function" }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "_newOwner", + "name": "token", + "type": "address" + }, + { + "name": "owner", "type": "address" } ], - "name": "transferOwnership", - "outputs": [], + "name": "hasTokenOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { @@ -482,6 +541,28 @@ "indexed": true, "name": "tokenOwner", "type": "address" + } + ], + "name": "OwnerWhitelisted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "token", + "type": "address" + }, + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "owners", + "type": "address[]" }, { "indexed": false, @@ -494,7 +575,7 @@ "type": "string" } ], - "name": "OwnerWhitelisted", + "name": "TokenWhitelisted", "type": "event" }, { @@ -502,12 +583,17 @@ "inputs": [ { "indexed": true, - "name": "originalTokenAddress", + "name": "originalToken", "type": "address" }, { "indexed": true, - "name": "tokenOwner", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsale", "type": "address" }, { @@ -517,7 +603,7 @@ }, { "indexed": false, - "name": "placedTokenAddress", + "name": "placedToken", "type": "address" } ], @@ -529,12 +615,17 @@ "inputs": [ { "indexed": true, - "name": "tokenAddress", + "name": "token", "type": "address" }, { "indexed": true, - "name": "tokenOwner", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsale", "type": "address" }, { @@ -551,12 +642,17 @@ "inputs": [ { "indexed": true, - "name": "tokenAddress", + "name": "token", "type": "address" }, { "indexed": true, - "name": "tokenOwner", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "crowdsale", "type": "address" }, { @@ -572,29 +668,12 @@ "anonymous": false, "inputs": [ { - "indexed": true, - "name": "previousOwner", - "type": "address" - } - ], - "name": "OwnershipRenounced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", + "indexed": false, + "name": "recipient", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "PrimaryTransferred", "type": "event" }, { @@ -602,16 +681,11 @@ "inputs": [ { "indexed": true, - "name": "operator", + "name": "account", "type": "address" - }, - { - "indexed": false, - "name": "role", - "type": "string" } ], - "name": "RoleAdded", + "name": "AdminAdded", "type": "event" }, { @@ -619,37 +693,32 @@ "inputs": [ { "indexed": true, - "name": "operator", + "name": "account", "type": "address" - }, - { - "indexed": false, - "name": "role", - "type": "string" } ], - "name": "RoleRemoved", + "name": "AdminRemoved", "type": "event" } ], - "bytecode": "0x600160035560c0604052600560808190527f61646d696e00000000000000000000000000000000000000000000000000000060a09081526200004591600491906200031a565b503480156200005357600080fd5b50604051608080620042048339810160409081528151602083015191830151606090930151600082905560028054600160a060020a0319163317905590929083838383600160a060020a0382161515620000ac57600080fd5b600160a060020a0381161515620000c257600080fd5b60058054600160a060020a03808416600160a060020a03199283161790925560078054868416908316179055600680549285169290911691909117905560098054906200011390600183016200039f565b506004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152620001c193339391929091830182828015620001a75780601f106200017b57610100808354040283529160200191620001a7565b820191906000526020600020905b8154815290600101906020018083116200018957829003601f168201915b5050505050620001cf640100000000026401000000009004565b5050505050505050620004cf565b6200024b826001836040518082805190602001908083835b60208310620002085780518252601f199092019160209182019101620001e7565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050640100000000620002f581026200262d1704565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360005b83811015620002b65781810151838201526020016200029c565b50505050905090810190601f168015620002e45780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200035d57805160ff19168380011785556200038d565b828001600101855582156200038d579182015b828111156200038d57825182559160200191906001019062000370565b506200039b929150620003d3565b5090565b815481835581811115620003ce57600c0281600c028360005260206000209182019101620003ce9190620003f3565b505050565b620003f091905b808211156200039b5760008155600101620003da565b90565b620003f091905b808211156200039b57600062000411828262000484565b6200042160018301600062000484565b5060028101805460ff19169055600060048201819055600582018190556006820181905560078201819055600882018054600160a060020a031990811690915560098301829055600a830191909155600b820180549091169055600c01620003fa565b50805460018160011615610100020316600290046000825580601f10620004ac5750620004cc565b601f016020900490600052602060002090810190620004cc9190620003d3565b50565b613d2580620004df6000396000f300608060405260043610620001315763ffffffff60e060020a60003504166309363c998114620001365780630988ca8c14620001625780631785f53c14620001cc5780631dafede014620001f0578063217fe6c6146200035857806334cf82bf14620003d65780633f3466a7146200042d5780634b1acf3914620004735780634d12fca4146200048b57806354fd4d5014620004a35780635641f3c314620004cd57806368dce93214620004e557806370480275146200050c578063715018a61462000530578063849072b914620005485780638da5cb5b14620005be5780639cf96e2e14620005d6578063a41ffd381462000605578063c45a0155146200062c578063cca89d731462000644578063d2f4a50a146200066e578063d391014b1462000686578063f2fde38b1462000716575b600080fd5b3480156200014357600080fd5b5062000160600160a060020a03600435166024356044356200073a565b005b3480156200016f57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855262000160958335600160a060020a031695369560449491939091019190819084018382808284375094975062000b789650505050505050565b348015620001d957600080fd5b5062000160600160a060020a036004351662000bea565b348015620001fd57600080fd5b506200020b60043562000c8b565b6040518080602001806020018c60ff1660ff1681526020018b81526020018a815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184600160a060020a0316600160a060020a0316815260200183810383528e818151815260200191508051906020019080838360005b83811015620002ae57818101518382015260200162000294565b50505050905090810190601f168015620002dc5780820380516001836020036101000a031916815260200191505b5083810382528d5181528d516020918201918f019080838360005b8381101562000311578181015183820152602001620002f7565b50505050905090810190601f1680156200033f5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b3480156200036557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552620003c2958335600160a060020a031695369560449491939091019190819084018382808284375094975062000e2d9650505050505050565b604080519115158252519081900360200190f35b348015620003e357600080fd5b5062000160600160a060020a0360048035821691602480359091169160443580830192908201359160643591820191013560ff6084351660a43560c43560e4356101043562000ea6565b3480156200043a57600080fd5b5062000457600160a060020a03600435811690602435166200141e565b60408051600160a060020a039092168252519081900360200190f35b3480156200048057600080fd5b506200045762001440565b3480156200049857600080fd5b506200045762001450565b348015620004b057600080fd5b50620004bb6200145f565b60408051918252519081900360200190f35b348015620004da57600080fd5b506200045762001465565b348015620004f257600080fd5b5062000160600160a060020a0360043516602435620014ff565b3480156200051957600080fd5b5062000160600160a060020a036004351662001acc565b3480156200053d57600080fd5b506200016062001b6a565b3480156200055557600080fd5b506200056c600160a060020a036004351662001bc1565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620005aa57818101518382015260200162000590565b505050509050019250505060405180910390f35b348015620005cb57600080fd5b506200045762001c39565b348015620005e357600080fd5b50620005ee62001c48565b6040805161ffff9092168252519081900360200190f35b3480156200061257600080fd5b5062000160600160a060020a036004351660243562001c52565b3480156200063957600080fd5b506200045762001f40565b3480156200065157600080fd5b50620005ee600160a060020a036004358116906024351662001f4f565b3480156200067b57600080fd5b506200045762001f70565b3480156200069357600080fd5b506200069e62001f7f565b6040805160208082528351818301528351919283929083019185019080838360005b83811015620006da578181015183820152602001620006c0565b50505050905090810190601f168015620007085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200072357600080fd5b5062000160600160a060020a036004351662002011565b60008060016003541415156200074f57600080fd5b600260035560006200076062001465565b600160a060020a031614156200077557600080fd5b6200078185336200201c565b336000908152600391909101602052604090205460ff161515600114620007a757600080fd5b620007c984620007b887336200201c565b600a01549063ffffffff6200206e16565b620007d586336200201c565b600901541015620007e557600080fd5b6000620007f386336200201c565b60080154600160a060020a0316146200080b57600080fd5b6005546040805160e260020a630547cdcd028152600160a060020a0388811660048301529151919092169163151f37349160248083019260209291908290030181600087803b1580156200085e57600080fd5b505af115801562000873573d6000803e3d6000fd5b505050506040513d60208110156200088a57600080fd5b5051600654909250600160a060020a031663aa1322f7868486620008ad62001465565b620008b98b336200201c565b60050154620008c98c336200201c565b60060154620008d98d336200201c565b600701546005546040805160e060020a63ffffffff8c16028152600160a060020a03998a166004820152978916602489015260448801969096529387166064870152608486019290925260a485015260c48401529290921660e48201523361010482015290516101248083019260209291908290030181600087803b1580156200096257600080fd5b505af115801562000977573d6000803e3d6000fd5b505050506040513d60208110156200098e57600080fd5b50519050806200099f86336200201c565b600801805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316179055604080517fd88b8676000000000000000000000000000000000000000000000000000000008152838316600482015290519184169163d88b86769160248082019260009290919082900301818387803b15801562000a2657600080fd5b505af115801562000a3b573d6000803e3d6000fd5b50505050600062000a4d86336200201c565b60060154111562000b2057600554600160a060020a031663e1f21c67868362000a9c62000a7b83336200201c565b6006015462000a8b8b336200201c565b600901549063ffffffff6200207c16565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801562000af157600080fd5b505af115801562000b06573d6000803e3d6000fd5b505050506040513d602081101562000b1d57600080fd5b50505b62000b2c858562001c52565b6040805185815290513391600160a060020a038816917f824239e216016c403265447935e88cc521189d5e9a52754e5c2a16f7436281dc9181900360200190a350506001600355505050565b62000be6826001836040518082805190602001908083835b6020831062000bb15780518252601f19909201916020918201910162000b90565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050620020ab565b5050565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815262000c889385939192909183018282801562000c7d5780601f1062000c515761010080835404028352916020019162000c7d565b820191906000526020600020905b81548152906001019060200180831162000c5f57829003601f168201915b5050505050620020c3565b50565b600980548290811062000c9a57fe5b6000918252602091829020600c919091020180546040805160026001841615610100026000190190931692909204601f81018590048502830185019091528082529193509183919083018282801562000d375780601f1062000d0b5761010080835404028352916020019162000d37565b820191906000526020600020905b81548152906001019060200180831162000d1957829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000dd95780601f1062000dad5761010080835404028352916020019162000dd9565b820191906000526020600020905b81548152906001019060200180831162000dbb57829003601f168201915b50505060028401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b0154999a60ff9097169995985093965091949093600160a060020a039283169392168b565b600062000e9d836001846040518082805190602001908083835b6020831062000e685780518252601f19909201916020918201910162000e47565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050620021db565b90505b92915050565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526000939092909183018282801562000f365780601f1062000f0a5761010080835404028352916020019162000f36565b820191906000526020600020905b81548152906001019060200180831162000f1857829003601f168201915b5050505050600160a060020a038d16151562000f5157600080fd5b600160a060020a038c16151562000f6757600080fd5b62000f7286620021fa565b801562000f895750606462000f878762002224565b105b151562000f9557600080fd5b62000fa085620021fa565b801562000fb75750606462000fb58662002224565b105b151562000fc357600080fd5b62000fce84620021fa565b801562000fe55750606462000fe38562002224565b105b151562000ff157600080fd5b62000ffc83620021fa565b80156200101357506064620010118462002224565b105b15156200101f57600080fd5b8b600160a060020a0316620010358d8f6200201c565b600b0154600160a060020a031614156200104e57600080fd5b6200105a8c8e6200201c565b600160a060020a038e166000908152600391909101602052604090205460ff16156200108557600080fd5b600980549050915081600860008e600160a060020a0316600160a060020a0316815260200190815260200160002060008f600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506009805480919060010162001106919062002666565b600b60006101000a81548161ffff021916908361ffff160217905550600a60008d600160a060020a0316600160a060020a031681526020019081526020016000208d90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160098361ffff16815481101515620011a757fe5b90600052602060002090600c020160030160008f600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff0219169083151502179055508a8a60098461ffff168154811015156200120857fe5b600091825260209091206200122493600c90920201916200269a565b50888860098461ffff168154811015156200123b57fe5b90600052602060002090600c020160010191906200125b9291906200269a565b508660098361ffff168154811015156200127157fe5b90600052602060002090600c020160020160006101000a81548160ff021916908360ff1602179055508560098361ffff16815481101515620012af57fe5b90600052602060002090600c0201600401819055508460098361ffff16815481101515620012d957fe5b90600052602060002090600c0201600501819055508360098361ffff168154811015156200130357fe5b90600052602060002090600c0201600601819055508260098361ffff168154811015156200132d57fe5b90600052602060002090600c0201600701819055508b60098361ffff168154811015156200135757fe5b90600052602060002090600c0201600b0160006101000a815481600160a060020a030219169083600160a060020a031602179055508c600160a060020a03168c600160a060020a03167fd3bb7a0fd3c972c824718e5d4fe7501feb58ebd797223783efbfd1d3085d49438d8d8d8d60405180806020018060200183810383528787828181526020019250808284379091018481038352858152602001905085858082843760405192018290039850909650505050505050a350505050505050505050505050565b60006200142c83836200201c565b60080154600160a060020a03169392505050565b600554600160a060020a03165b90565b600554600160a060020a031681565b60005481565b600754604080517fe3ff76e4000000000000000000000000000000000000000000000000000000008152600160048201529051600092600160a060020a03169163e3ff76e491602480830192602092919082900301818787803b158015620014cc57600080fd5b505af1158015620014e1573d6000803e3d6000fd5b505050506040513d6020811015620014f857600080fd5b5051905090565b600080600080600060016003541415156200151957600080fd5b600260035560006200152a62001465565b600160a060020a031614156200153f57600080fd5b600086116200154d57600080fd5b600160a060020a03871615156200156357600080fd5b86600160a060020a03166200157988336200201c565b600b0154600160a060020a0316146200159157600080fd5b6200159d87336200201c565b336000908152600391909101602052604090205460ff161515620015c057600080fd5b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518896508791600160a060020a0388169163dd62ed3e916044808201926020929091908290030181600087803b1580156200162e57600080fd5b505af115801562001643573d6000803e3d6000fd5b505050506040513d60208110156200165a57600080fd5b505110156200166857600080fd5b6200167487336200201c565b93508360020160009054906101000a900460ff1660ff1685600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620016ca57600080fd5b505af1158015620016df573d6000803e3d6000fd5b505050506040513d6020811015620016f657600080fd5b505160ff16146200170657600080fd5b60008460040154116200171b57600062001733565b60048401546200173390879063ffffffff6200207c16565b925062001747868463ffffffff6200225c16565b60055490925062001764908690600160a060020a0316846200226f565b6200177a856200177362001465565b856200226f565b600984015462001791908363ffffffff6200206e16565b60098501556005546040805160e260020a630547cdcd028152600160a060020a038a8116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b158015620017eb57600080fd5b505af115801562001800573d6000803e3d6000fd5b505050506040513d60208110156200181757600080fd5b5051600160a060020a03161415620019f55760028401548490600182019060ff16620018426200271f565b60ff82166040820152606080825284546002600019610100600184161502019091160490820181905281906020820190608083019087908015620018ca5780601f106200189e57610100808354040283529160200191620018ca565b820191906000526020600020905b815481529060010190602001808311620018ac57829003601f168201915b5050838103825285546002600019610100600184161502019091160480825260209091019086908015620019425780601f10620019165761010080835404028352916020019162001942565b820191906000526020600020905b8154815290600101906020018083116200192457829003601f168201915b505095505050505050604051809103906000f08015801562001968573d6000803e3d6000fd5b50600554604080517fa0736912000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301528085166024830152915193945091169163a07369129160448082019260009290919082900301818387803b158015620019db57600080fd5b505af1158015620019f0573d6000803e3d6000fd5b505050505b6005546040805160e260020a630547cdcd028152600160a060020a038a811660048301819052925133947f2b11dc5f6b2036a3d03d04c1e89724a8650507582665455ed7154b544f3e3c4f9388939091169163151f3734916024808201926020929091908290030181600087803b15801562001a7057600080fd5b505af115801562001a85573d6000803e3d6000fd5b505050506040513d602081101562001a9c57600080fd5b505160408051928352600160a060020a0390911660208301528051918290030190a3505060016003555050505050565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815262000c889385939192909183018282801562001b5f5780601f1062001b335761010080835404028352916020019162001b5f565b820191906000526020600020905b81548152906001019060200180831162001b4157829003601f168201915b505050505062002453565b600254604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a0381166000908152600a602090815260409182902080548351818402810184019094528084526060939283018282801562001c2d57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001c0e575b50505050509050919050565b600254600160a060020a031681565b600b5461ffff1681565b60008080831162001c6257600080fd5b600160a060020a038416151562001c7857600080fd5b6005546040805160e260020a630547cdcd028152600160a060020a03878116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b15801562001ccd57600080fd5b505af115801562001ce2573d6000803e3d6000fd5b505050506040513d602081101562001cf957600080fd5b5051600160a060020a0316141562001d1057600080fd5b600062001d1e85336200201c565b60080154600160a060020a0316141562001d3757600080fd5b62001d4384336200201c565b336000908152600391909101602052604090205460ff16151560011462001d6957600080fd5b62001d7a83620007b886336200201c565b62001d8685336200201c565b60090154101562001d9657600080fd5b6005546040805160e260020a630547cdcd028152600160a060020a0387811660048301529151919092169163151f37349160248083019260209291908290030181600087803b15801562001de957600080fd5b505af115801562001dfe573d6000803e3d6000fd5b505050506040513d602081101562001e1557600080fd5b5051915062001e2584336200201c565b60080154600160a060020a0316905062001e4583620007b886336200201c565b62001e5185336200201c565b600a0155604080517fd0047acf000000000000000000000000000000000000000000000000000000008152600160a060020a0383811660048301526024820186905260006044830181905292519085169263d0047acf92606480820193602093909283900390910190829087803b15801562001ecc57600080fd5b505af115801562001ee1573d6000803e3d6000fd5b505050506040513d602081101562001ef857600080fd5b50506040805184815290513391600160a060020a038716917f9a2331701430ef95fa157fc5598820b278d8225e8a51263887abb0e1e2b06d979181900360200190a350505050565b600654600160a060020a031681565b600860209081526000928352604080842090915290825290205461ffff1681565b600754600160a060020a031681565b6004805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620020095780601f1062001fdd5761010080835404028352916020019162002009565b820191906000526020600020905b81548152906001019060200180831162001feb57829003601f168201915b505050505081565b62000c88816200252b565b600160a060020a03808316600090815260086020908152604080832093851683529290529081205460098054909161ffff169081106200205857fe5b90600052602060002090600c0201905092915050565b8181018281101562000ea057fe5b600062000e9d6200208c620025aa565b6200209e858563ffffffff620025be16565b9063ffffffff620025eb16565b620020b78282620021db565b151562000be657600080fd5b62002131826001836040518082805190602001908083835b60208310620020fc5780518252601f199092019160209182019101620020db565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505062002601565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b838110156200219c57818101518382015260200162002182565b50505050905090810190601f168015620021ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a03166000908152602091909152604090205460ff1690565b60006200220662002623565b821015801562000ea057506200221b620025aa565b82111592915050565b60006200223182620021fa565b15156200223d57600080fd5b62000ea06200224b62002628565b8390600a0a63ffffffff620025eb16565b6000828211156200226957fe5b50900390565b60006200230d8285600160a060020a03166370a08231866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015620022d257600080fd5b505af1158015620022e7573d6000803e3d6000fd5b505050506040513d6020811015620022fe57600080fd5b50519063ffffffff6200206e16565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151929350908616916323b872dd916064808201926020929091908290030181600087803b1580156200238357600080fd5b505af115801562002398573d6000803e3d6000fd5b505050506040513d6020811015620023af57600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915183928716916370a082319160248083019260209291908290030181600087803b1580156200241757600080fd5b505af11580156200242c573d6000803e3d6000fd5b505050506040513d60208110156200244357600080fd5b5051146200244d57fe5b50505050565b620024c1826001836040518082805190602001908083835b602083106200248c5780518252601f1990920191602091820191016200246b565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220929150506200262d565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b70048982604051808060200182810382528381815181526020019150805190602001908083836000838110156200219c57818101518382015260200162002182565b600160a060020a03811615156200254157600080fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000620025b662002652565b600a0a905090565b6000821515620025d15750600062000ea0565b50818102818382811515620025e257fe5b041462000ea057fe5b60008183811515620025f957fe5b049392505050565b600160a060020a0316600090815260209190915260409020805460ff19169055565b600090565b600290565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60006200265e62002628565b600201905090565b8154818355818111156200269557600c0281600c02836000526020600020918201910162002695919062002730565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620026dd5782800160ff198235161785556200270d565b828001600101855582156200270d579182015b828111156200270d578235825591602001919060010190620026f0565b506200271b929150620027ce565b5090565b6040516114c6806200283483390190565b6200144d91905b808211156200271b5760006200274e8282620027eb565b6200275e600183016000620027eb565b5060028101805460ff1916905560006004820181905560058201819055600682018190556007820181905560088201805473ffffffffffffffffffffffffffffffffffffffff1990811690915560098301829055600a830191909155600b820180549091169055600c0162002737565b6200144d91905b808211156200271b5760008155600101620027d5565b50805460018160011615610100020316600290046000825580601f1062002813575062000c88565b601f01602090049060005260206000209081019062000c889190620027ce560060806040523480156200001157600080fd5b50604051620014c6380380620014c68339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000ba565b5081516200006e906001906020850190620000ba565b506002805460ff90921660ff1992831617905560058054600160a060020a031916339081179091556000908152600b6020526040902080549091166001179055506200015f9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000fd57805160ff19168380011785556200012d565b828001600101855582156200012d579182015b828111156200012d57825182559160200191906001019062000110565b506200013b9291506200013f565b5090565b6200015c91905b808211156200013b576000815560010162000146565b90565b611357806200016f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108fc565b34801561035e57600080fd5b50610367610992565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109a1565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109fb565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610aa7565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b7a565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bb2565b34801561044357600080fd5b5061020e600160a060020a0360043516610cf8565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610dfd565b34801561048857600080fd5b506102ae600160a060020a0360043516610e96565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610ed1565b3480156104d057600080fd5b506102ae600160a060020a0360043516610efc565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085490565b60006105ea84610f1c565b600160a060020a03831615156105ff57600080fd5b61060884610cf8565b82111561061457600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526007602052604090205461066d908363ffffffff61108b16565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106a2908363ffffffff61109d16565b600160a060020a0380851660009081526007602090815260408083209490945591871681526006825282812033825290915220546106e6908363ffffffff61108b16565b600160a060020a038086166000818152600660209081526040808320338452825291829020949094558051868152905192871693919260008051602061130c833981519152929181900390910190a35060019392505050565b60076020526000908152604090205481565b60025460ff1681565b61076433826110b0565b50565b600960209081526000928352604080842090915290825290205481565b336000908152600660209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600660209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff61108b16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526007602052604090205490565b600554600160a060020a031633146108a557600080fd5b600554604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038216600090815260066020908152604080832033845290915290205481111561092c57600080fd5b600160a060020a0382166000908152600660209081526040808320338452909152902054610960908263ffffffff61108b16565b600160a060020a038316600090815260066020908152604080832033845290915290205561098e82826110b0565b5050565b600554600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b336000818152600b602052604081205490919060ff161515610a1c57600080fd5b610a268585610aa7565b50428363ffffffff161115610a4857610a486000868563ffffffff1687611198565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ab233610f1c565b600160a060020a0383161515610ac757600080fd5b610ad033610cf8565b821115610adc57600080fd5b33600090815260076020526040902054610afc908363ffffffff61108b16565b3360009081526007602052604080822092909255600160a060020a03851681522054610b2e908363ffffffff61109d16565b600160a060020a03841660008181526007602090815260409182902093909355805185815290519192339260008051602061130c8339815191529281900390910190a350600192915050565b600554600160a060020a03163314610b9157600080fd5b600160a060020a03166000908152600b60205260409020805460ff19169055565b336000818152600b602052604081205490919060ff161515610bd357600080fd5b600854610be6818663ffffffff61109d16565b11610bf057600080fd5b428363ffffffff161115610c1157610c116000868563ffffffff1687611198565b600160a060020a038516600090815260076020526040902054610c3a908563ffffffff61109d16565b600160a060020a038616600090815260076020526040902055600854610c66908563ffffffff61109d16565b600855604080518581529051600160a060020a0387169160009160008051602061130c8339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260076020908152604080832054600983528184208480529092528220549091901515610d3257610df7565b5060005b600160a060020a0383166000908152600a6020526040902054811015610df757600160a060020a0383166000908152600a60205260409020805442919083908110610d7d57fe5b9060005260206000200154101515610def57600160a060020a0383166000908152600960209081526040808320600a90925282208054610dec93919085908110610dc357fe5b90600052602060002001548152602001908152602001600020548361108b90919063ffffffff16565b91505b600101610d36565b50919050565b336000908152600660209081526040808320600160a060020a0386168452909152812054610e31908363ffffffff61109d16565b336000818152600660209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600554600160a060020a03163314610ead57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600554600160a060020a03163314610f1357600080fd5b6107648161128d565b600160a060020a03811660009081526009602090815260408083208380529091528120541515610f4b5761098e565b5060005b600160a060020a0382166000908152600a602052604090205481101561098e57600160a060020a0382166000908152600a60205260409020805442919083908110610f9657fe5b9060005260206000200154101561108357600160a060020a0382166000908152600960209081526040808320600a9092528220805461102193919085908110610fdb57fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526009845282822082805290935220549063ffffffff61108b16565b600160a060020a038316600081815260096020908152604080832083805280835281842095909555928252600a905290812080549192918391908590811061106557fe5b90600052602060002001548152602001908152602001600020819055505b600101610f4f565b60008282111561109757fe5b50900390565b818101828110156110aa57fe5b92915050565b6110b982610f1c565b6110c282610cf8565b8111156110ce57600080fd5b600160a060020a0382166000908152600760205260409020546110f7908263ffffffff61108b16565b600160a060020a038316600090815260076020526040902055600854611123908263ffffffff61108b16565b600855604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061130c8339815191529181900360200190a35050565b600160a060020a03831660009081526009602090815260408083208380529091529020546111cc908263ffffffff61109d16565b600160a060020a0384166000908152600960209081526040808320838052909152808220929092558381522054151561122b57600160a060020a0383166000908152600a60209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260096020908152604080832085845290915290205461125f908263ffffffff61109d16565b600160a060020a03909316600090815260096020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112a257600080fd5b600554604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582001f3b8ffebfc578122646c111958154798ff2fde3bc58f72b8cbe911bdfe9e600029a165627a7a7230582006cc004c2060a012a9bb68ab656a4e7e3abf6ac3484b07c823178d72e8b9c5330029", - "deployedBytecode": "0x608060405260043610620001315763ffffffff60e060020a60003504166309363c998114620001365780630988ca8c14620001625780631785f53c14620001cc5780631dafede014620001f0578063217fe6c6146200035857806334cf82bf14620003d65780633f3466a7146200042d5780634b1acf3914620004735780634d12fca4146200048b57806354fd4d5014620004a35780635641f3c314620004cd57806368dce93214620004e557806370480275146200050c578063715018a61462000530578063849072b914620005485780638da5cb5b14620005be5780639cf96e2e14620005d6578063a41ffd381462000605578063c45a0155146200062c578063cca89d731462000644578063d2f4a50a146200066e578063d391014b1462000686578063f2fde38b1462000716575b600080fd5b3480156200014357600080fd5b5062000160600160a060020a03600435166024356044356200073a565b005b3480156200016f57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855262000160958335600160a060020a031695369560449491939091019190819084018382808284375094975062000b789650505050505050565b348015620001d957600080fd5b5062000160600160a060020a036004351662000bea565b348015620001fd57600080fd5b506200020b60043562000c8b565b6040518080602001806020018c60ff1660ff1681526020018b81526020018a815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184600160a060020a0316600160a060020a0316815260200183810383528e818151815260200191508051906020019080838360005b83811015620002ae57818101518382015260200162000294565b50505050905090810190601f168015620002dc5780820380516001836020036101000a031916815260200191505b5083810382528d5181528d516020918201918f019080838360005b8381101562000311578181015183820152602001620002f7565b50505050905090810190601f1680156200033f5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b3480156200036557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552620003c2958335600160a060020a031695369560449491939091019190819084018382808284375094975062000e2d9650505050505050565b604080519115158252519081900360200190f35b348015620003e357600080fd5b5062000160600160a060020a0360048035821691602480359091169160443580830192908201359160643591820191013560ff6084351660a43560c43560e4356101043562000ea6565b3480156200043a57600080fd5b5062000457600160a060020a03600435811690602435166200141e565b60408051600160a060020a039092168252519081900360200190f35b3480156200048057600080fd5b506200045762001440565b3480156200049857600080fd5b506200045762001450565b348015620004b057600080fd5b50620004bb6200145f565b60408051918252519081900360200190f35b348015620004da57600080fd5b506200045762001465565b348015620004f257600080fd5b5062000160600160a060020a0360043516602435620014ff565b3480156200051957600080fd5b5062000160600160a060020a036004351662001acc565b3480156200053d57600080fd5b506200016062001b6a565b3480156200055557600080fd5b506200056c600160a060020a036004351662001bc1565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620005aa57818101518382015260200162000590565b505050509050019250505060405180910390f35b348015620005cb57600080fd5b506200045762001c39565b348015620005e357600080fd5b50620005ee62001c48565b6040805161ffff9092168252519081900360200190f35b3480156200061257600080fd5b5062000160600160a060020a036004351660243562001c52565b3480156200063957600080fd5b506200045762001f40565b3480156200065157600080fd5b50620005ee600160a060020a036004358116906024351662001f4f565b3480156200067b57600080fd5b506200045762001f70565b3480156200069357600080fd5b506200069e62001f7f565b6040805160208082528351818301528351919283929083019185019080838360005b83811015620006da578181015183820152602001620006c0565b50505050905090810190601f168015620007085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200072357600080fd5b5062000160600160a060020a036004351662002011565b60008060016003541415156200074f57600080fd5b600260035560006200076062001465565b600160a060020a031614156200077557600080fd5b6200078185336200201c565b336000908152600391909101602052604090205460ff161515600114620007a757600080fd5b620007c984620007b887336200201c565b600a01549063ffffffff6200206e16565b620007d586336200201c565b600901541015620007e557600080fd5b6000620007f386336200201c565b60080154600160a060020a0316146200080b57600080fd5b6005546040805160e260020a630547cdcd028152600160a060020a0388811660048301529151919092169163151f37349160248083019260209291908290030181600087803b1580156200085e57600080fd5b505af115801562000873573d6000803e3d6000fd5b505050506040513d60208110156200088a57600080fd5b5051600654909250600160a060020a031663aa1322f7868486620008ad62001465565b620008b98b336200201c565b60050154620008c98c336200201c565b60060154620008d98d336200201c565b600701546005546040805160e060020a63ffffffff8c16028152600160a060020a03998a166004820152978916602489015260448801969096529387166064870152608486019290925260a485015260c48401529290921660e48201523361010482015290516101248083019260209291908290030181600087803b1580156200096257600080fd5b505af115801562000977573d6000803e3d6000fd5b505050506040513d60208110156200098e57600080fd5b50519050806200099f86336200201c565b600801805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316179055604080517fd88b8676000000000000000000000000000000000000000000000000000000008152838316600482015290519184169163d88b86769160248082019260009290919082900301818387803b15801562000a2657600080fd5b505af115801562000a3b573d6000803e3d6000fd5b50505050600062000a4d86336200201c565b60060154111562000b2057600554600160a060020a031663e1f21c67868362000a9c62000a7b83336200201c565b6006015462000a8b8b336200201c565b600901549063ffffffff6200207c16565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801562000af157600080fd5b505af115801562000b06573d6000803e3d6000fd5b505050506040513d602081101562000b1d57600080fd5b50505b62000b2c858562001c52565b6040805185815290513391600160a060020a038816917f824239e216016c403265447935e88cc521189d5e9a52754e5c2a16f7436281dc9181900360200190a350506001600355505050565b62000be6826001836040518082805190602001908083835b6020831062000bb15780518252601f19909201916020918201910162000b90565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050620020ab565b5050565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815262000c889385939192909183018282801562000c7d5780601f1062000c515761010080835404028352916020019162000c7d565b820191906000526020600020905b81548152906001019060200180831162000c5f57829003601f168201915b5050505050620020c3565b50565b600980548290811062000c9a57fe5b6000918252602091829020600c919091020180546040805160026001841615610100026000190190931692909204601f81018590048502830185019091528082529193509183919083018282801562000d375780601f1062000d0b5761010080835404028352916020019162000d37565b820191906000526020600020905b81548152906001019060200180831162000d1957829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000dd95780601f1062000dad5761010080835404028352916020019162000dd9565b820191906000526020600020905b81548152906001019060200180831162000dbb57829003601f168201915b50505060028401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b0154999a60ff9097169995985093965091949093600160a060020a039283169392168b565b600062000e9d836001846040518082805190602001908083835b6020831062000e685780518252601f19909201916020918201910162000e47565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050620021db565b90505b92915050565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526000939092909183018282801562000f365780601f1062000f0a5761010080835404028352916020019162000f36565b820191906000526020600020905b81548152906001019060200180831162000f1857829003601f168201915b5050505050600160a060020a038d16151562000f5157600080fd5b600160a060020a038c16151562000f6757600080fd5b62000f7286620021fa565b801562000f895750606462000f878762002224565b105b151562000f9557600080fd5b62000fa085620021fa565b801562000fb75750606462000fb58662002224565b105b151562000fc357600080fd5b62000fce84620021fa565b801562000fe55750606462000fe38562002224565b105b151562000ff157600080fd5b62000ffc83620021fa565b80156200101357506064620010118462002224565b105b15156200101f57600080fd5b8b600160a060020a0316620010358d8f6200201c565b600b0154600160a060020a031614156200104e57600080fd5b6200105a8c8e6200201c565b600160a060020a038e166000908152600391909101602052604090205460ff16156200108557600080fd5b600980549050915081600860008e600160a060020a0316600160a060020a0316815260200190815260200160002060008f600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506009805480919060010162001106919062002666565b600b60006101000a81548161ffff021916908361ffff160217905550600a60008d600160a060020a0316600160a060020a031681526020019081526020016000208d90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160098361ffff16815481101515620011a757fe5b90600052602060002090600c020160030160008f600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff0219169083151502179055508a8a60098461ffff168154811015156200120857fe5b600091825260209091206200122493600c90920201916200269a565b50888860098461ffff168154811015156200123b57fe5b90600052602060002090600c020160010191906200125b9291906200269a565b508660098361ffff168154811015156200127157fe5b90600052602060002090600c020160020160006101000a81548160ff021916908360ff1602179055508560098361ffff16815481101515620012af57fe5b90600052602060002090600c0201600401819055508460098361ffff16815481101515620012d957fe5b90600052602060002090600c0201600501819055508360098361ffff168154811015156200130357fe5b90600052602060002090600c0201600601819055508260098361ffff168154811015156200132d57fe5b90600052602060002090600c0201600701819055508b60098361ffff168154811015156200135757fe5b90600052602060002090600c0201600b0160006101000a815481600160a060020a030219169083600160a060020a031602179055508c600160a060020a03168c600160a060020a03167fd3bb7a0fd3c972c824718e5d4fe7501feb58ebd797223783efbfd1d3085d49438d8d8d8d60405180806020018060200183810383528787828181526020019250808284379091018481038352858152602001905085858082843760405192018290039850909650505050505050a350505050505050505050505050565b60006200142c83836200201c565b60080154600160a060020a03169392505050565b600554600160a060020a03165b90565b600554600160a060020a031681565b60005481565b600754604080517fe3ff76e4000000000000000000000000000000000000000000000000000000008152600160048201529051600092600160a060020a03169163e3ff76e491602480830192602092919082900301818787803b158015620014cc57600080fd5b505af1158015620014e1573d6000803e3d6000fd5b505050506040513d6020811015620014f857600080fd5b5051905090565b600080600080600060016003541415156200151957600080fd5b600260035560006200152a62001465565b600160a060020a031614156200153f57600080fd5b600086116200154d57600080fd5b600160a060020a03871615156200156357600080fd5b86600160a060020a03166200157988336200201c565b600b0154600160a060020a0316146200159157600080fd5b6200159d87336200201c565b336000908152600391909101602052604090205460ff161515620015c057600080fd5b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518896508791600160a060020a0388169163dd62ed3e916044808201926020929091908290030181600087803b1580156200162e57600080fd5b505af115801562001643573d6000803e3d6000fd5b505050506040513d60208110156200165a57600080fd5b505110156200166857600080fd5b6200167487336200201c565b93508360020160009054906101000a900460ff1660ff1685600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620016ca57600080fd5b505af1158015620016df573d6000803e3d6000fd5b505050506040513d6020811015620016f657600080fd5b505160ff16146200170657600080fd5b60008460040154116200171b57600062001733565b60048401546200173390879063ffffffff6200207c16565b925062001747868463ffffffff6200225c16565b60055490925062001764908690600160a060020a0316846200226f565b6200177a856200177362001465565b856200226f565b600984015462001791908363ffffffff6200206e16565b60098501556005546040805160e260020a630547cdcd028152600160a060020a038a8116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b158015620017eb57600080fd5b505af115801562001800573d6000803e3d6000fd5b505050506040513d60208110156200181757600080fd5b5051600160a060020a03161415620019f55760028401548490600182019060ff16620018426200271f565b60ff82166040820152606080825284546002600019610100600184161502019091160490820181905281906020820190608083019087908015620018ca5780601f106200189e57610100808354040283529160200191620018ca565b820191906000526020600020905b815481529060010190602001808311620018ac57829003601f168201915b5050838103825285546002600019610100600184161502019091160480825260209091019086908015620019425780601f10620019165761010080835404028352916020019162001942565b820191906000526020600020905b8154815290600101906020018083116200192457829003601f168201915b505095505050505050604051809103906000f08015801562001968573d6000803e3d6000fd5b50600554604080517fa0736912000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301528085166024830152915193945091169163a07369129160448082019260009290919082900301818387803b158015620019db57600080fd5b505af1158015620019f0573d6000803e3d6000fd5b505050505b6005546040805160e260020a630547cdcd028152600160a060020a038a811660048301819052925133947f2b11dc5f6b2036a3d03d04c1e89724a8650507582665455ed7154b544f3e3c4f9388939091169163151f3734916024808201926020929091908290030181600087803b15801562001a7057600080fd5b505af115801562001a85573d6000803e3d6000fd5b505050506040513d602081101562001a9c57600080fd5b505160408051928352600160a060020a0390911660208301528051918290030190a3505060016003555050505050565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815262000c889385939192909183018282801562001b5f5780601f1062001b335761010080835404028352916020019162001b5f565b820191906000526020600020905b81548152906001019060200180831162001b4157829003601f168201915b505050505062002453565b600254604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a0381166000908152600a602090815260409182902080548351818402810184019094528084526060939283018282801562001c2d57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001c0e575b50505050509050919050565b600254600160a060020a031681565b600b5461ffff1681565b60008080831162001c6257600080fd5b600160a060020a038416151562001c7857600080fd5b6005546040805160e260020a630547cdcd028152600160a060020a03878116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b15801562001ccd57600080fd5b505af115801562001ce2573d6000803e3d6000fd5b505050506040513d602081101562001cf957600080fd5b5051600160a060020a0316141562001d1057600080fd5b600062001d1e85336200201c565b60080154600160a060020a0316141562001d3757600080fd5b62001d4384336200201c565b336000908152600391909101602052604090205460ff16151560011462001d6957600080fd5b62001d7a83620007b886336200201c565b62001d8685336200201c565b60090154101562001d9657600080fd5b6005546040805160e260020a630547cdcd028152600160a060020a0387811660048301529151919092169163151f37349160248083019260209291908290030181600087803b15801562001de957600080fd5b505af115801562001dfe573d6000803e3d6000fd5b505050506040513d602081101562001e1557600080fd5b5051915062001e2584336200201c565b60080154600160a060020a0316905062001e4583620007b886336200201c565b62001e5185336200201c565b600a0155604080517fd0047acf000000000000000000000000000000000000000000000000000000008152600160a060020a0383811660048301526024820186905260006044830181905292519085169263d0047acf92606480820193602093909283900390910190829087803b15801562001ecc57600080fd5b505af115801562001ee1573d6000803e3d6000fd5b505050506040513d602081101562001ef857600080fd5b50506040805184815290513391600160a060020a038716917f9a2331701430ef95fa157fc5598820b278d8225e8a51263887abb0e1e2b06d979181900360200190a350505050565b600654600160a060020a031681565b600860209081526000928352604080842090915290825290205461ffff1681565b600754600160a060020a031681565b6004805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620020095780601f1062001fdd5761010080835404028352916020019162002009565b820191906000526020600020905b81548152906001019060200180831162001feb57829003601f168201915b505050505081565b62000c88816200252b565b600160a060020a03808316600090815260086020908152604080832093851683529290529081205460098054909161ffff169081106200205857fe5b90600052602060002090600c0201905092915050565b8181018281101562000ea057fe5b600062000e9d6200208c620025aa565b6200209e858563ffffffff620025be16565b9063ffffffff620025eb16565b620020b78282620021db565b151562000be657600080fd5b62002131826001836040518082805190602001908083835b60208310620020fc5780518252601f199092019160209182019101620020db565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505062002601565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b838110156200219c57818101518382015260200162002182565b50505050905090810190601f168015620021ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a03166000908152602091909152604090205460ff1690565b60006200220662002623565b821015801562000ea057506200221b620025aa565b82111592915050565b60006200223182620021fa565b15156200223d57600080fd5b62000ea06200224b62002628565b8390600a0a63ffffffff620025eb16565b6000828211156200226957fe5b50900390565b60006200230d8285600160a060020a03166370a08231866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015620022d257600080fd5b505af1158015620022e7573d6000803e3d6000fd5b505050506040513d6020811015620022fe57600080fd5b50519063ffffffff6200206e16565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151929350908616916323b872dd916064808201926020929091908290030181600087803b1580156200238357600080fd5b505af115801562002398573d6000803e3d6000fd5b505050506040513d6020811015620023af57600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915183928716916370a082319160248083019260209291908290030181600087803b1580156200241757600080fd5b505af11580156200242c573d6000803e3d6000fd5b505050506040513d60208110156200244357600080fd5b5051146200244d57fe5b50505050565b620024c1826001836040518082805190602001908083835b602083106200248c5780518252601f1990920191602091820191016200246b565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220929150506200262d565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b70048982604051808060200182810382528381815181526020019150805190602001908083836000838110156200219c57818101518382015260200162002182565b600160a060020a03811615156200254157600080fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000620025b662002652565b600a0a905090565b6000821515620025d15750600062000ea0565b50818102818382811515620025e257fe5b041462000ea057fe5b60008183811515620025f957fe5b049392505050565b600160a060020a0316600090815260209190915260409020805460ff19169055565b600090565b600290565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60006200265e62002628565b600201905090565b8154818355818111156200269557600c0281600c02836000526020600020918201910162002695919062002730565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620026dd5782800160ff198235161785556200270d565b828001600101855582156200270d579182015b828111156200270d578235825591602001919060010190620026f0565b506200271b929150620027ce565b5090565b6040516114c6806200283483390190565b6200144d91905b808211156200271b5760006200274e8282620027eb565b6200275e600183016000620027eb565b5060028101805460ff1916905560006004820181905560058201819055600682018190556007820181905560088201805473ffffffffffffffffffffffffffffffffffffffff1990811690915560098301829055600a830191909155600b820180549091169055600c0162002737565b6200144d91905b808211156200271b5760008155600101620027d5565b50805460018160011615610100020316600290046000825580601f1062002813575062000c88565b601f01602090049060005260206000209081019062000c889190620027ce560060806040523480156200001157600080fd5b50604051620014c6380380620014c68339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000ba565b5081516200006e906001906020850190620000ba565b506002805460ff90921660ff1992831617905560058054600160a060020a031916339081179091556000908152600b6020526040902080549091166001179055506200015f9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000fd57805160ff19168380011785556200012d565b828001600101855582156200012d579182015b828111156200012d57825182559160200191906001019062000110565b506200013b9291506200013f565b5090565b6200015c91905b808211156200013b576000815560010162000146565b90565b611357806200016f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108fc565b34801561035e57600080fd5b50610367610992565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109a1565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109fb565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610aa7565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b7a565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bb2565b34801561044357600080fd5b5061020e600160a060020a0360043516610cf8565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610dfd565b34801561048857600080fd5b506102ae600160a060020a0360043516610e96565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610ed1565b3480156104d057600080fd5b506102ae600160a060020a0360043516610efc565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085490565b60006105ea84610f1c565b600160a060020a03831615156105ff57600080fd5b61060884610cf8565b82111561061457600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526007602052604090205461066d908363ffffffff61108b16565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106a2908363ffffffff61109d16565b600160a060020a0380851660009081526007602090815260408083209490945591871681526006825282812033825290915220546106e6908363ffffffff61108b16565b600160a060020a038086166000818152600660209081526040808320338452825291829020949094558051868152905192871693919260008051602061130c833981519152929181900390910190a35060019392505050565b60076020526000908152604090205481565b60025460ff1681565b61076433826110b0565b50565b600960209081526000928352604080842090915290825290205481565b336000908152600660209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600660209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff61108b16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526007602052604090205490565b600554600160a060020a031633146108a557600080fd5b600554604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038216600090815260066020908152604080832033845290915290205481111561092c57600080fd5b600160a060020a0382166000908152600660209081526040808320338452909152902054610960908263ffffffff61108b16565b600160a060020a038316600090815260066020908152604080832033845290915290205561098e82826110b0565b5050565b600554600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b336000818152600b602052604081205490919060ff161515610a1c57600080fd5b610a268585610aa7565b50428363ffffffff161115610a4857610a486000868563ffffffff1687611198565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ab233610f1c565b600160a060020a0383161515610ac757600080fd5b610ad033610cf8565b821115610adc57600080fd5b33600090815260076020526040902054610afc908363ffffffff61108b16565b3360009081526007602052604080822092909255600160a060020a03851681522054610b2e908363ffffffff61109d16565b600160a060020a03841660008181526007602090815260409182902093909355805185815290519192339260008051602061130c8339815191529281900390910190a350600192915050565b600554600160a060020a03163314610b9157600080fd5b600160a060020a03166000908152600b60205260409020805460ff19169055565b336000818152600b602052604081205490919060ff161515610bd357600080fd5b600854610be6818663ffffffff61109d16565b11610bf057600080fd5b428363ffffffff161115610c1157610c116000868563ffffffff1687611198565b600160a060020a038516600090815260076020526040902054610c3a908563ffffffff61109d16565b600160a060020a038616600090815260076020526040902055600854610c66908563ffffffff61109d16565b600855604080518581529051600160a060020a0387169160009160008051602061130c8339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260076020908152604080832054600983528184208480529092528220549091901515610d3257610df7565b5060005b600160a060020a0383166000908152600a6020526040902054811015610df757600160a060020a0383166000908152600a60205260409020805442919083908110610d7d57fe5b9060005260206000200154101515610def57600160a060020a0383166000908152600960209081526040808320600a90925282208054610dec93919085908110610dc357fe5b90600052602060002001548152602001908152602001600020548361108b90919063ffffffff16565b91505b600101610d36565b50919050565b336000908152600660209081526040808320600160a060020a0386168452909152812054610e31908363ffffffff61109d16565b336000818152600660209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600554600160a060020a03163314610ead57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600554600160a060020a03163314610f1357600080fd5b6107648161128d565b600160a060020a03811660009081526009602090815260408083208380529091528120541515610f4b5761098e565b5060005b600160a060020a0382166000908152600a602052604090205481101561098e57600160a060020a0382166000908152600a60205260409020805442919083908110610f9657fe5b9060005260206000200154101561108357600160a060020a0382166000908152600960209081526040808320600a9092528220805461102193919085908110610fdb57fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526009845282822082805290935220549063ffffffff61108b16565b600160a060020a038316600081815260096020908152604080832083805280835281842095909555928252600a905290812080549192918391908590811061106557fe5b90600052602060002001548152602001908152602001600020819055505b600101610f4f565b60008282111561109757fe5b50900390565b818101828110156110aa57fe5b92915050565b6110b982610f1c565b6110c282610cf8565b8111156110ce57600080fd5b600160a060020a0382166000908152600760205260409020546110f7908263ffffffff61108b16565b600160a060020a038316600090815260076020526040902055600854611123908263ffffffff61108b16565b600855604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061130c8339815191529181900360200190a35050565b600160a060020a03831660009081526009602090815260408083208380529091529020546111cc908263ffffffff61109d16565b600160a060020a0384166000908152600960209081526040808320838052909152808220929092558381522054151561122b57600160a060020a0383166000908152600a60209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260096020908152604080832085845290915290205461125f908263ffffffff61109d16565b600160a060020a03909316600090815260096020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112a257600080fd5b600554604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582001f3b8ffebfc578122646c111958154798ff2fde3bc58f72b8cbe911bdfe9e600029a165627a7a7230582006cc004c2060a012a9bb68ab656a4e7e3abf6ac3484b07c823178d72e8b9c5330029", - "sourceMap": "487:1:41:-;657:51;;748:34:1;191:487:2;748:34:1;;191:487:2;748:34:1;;;;;;;;;;;;;;:::i;:::-;;403:273:2;8:9:-1;5:2;;;30:1;27;20:12;5:2;403:273:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:7:37;:18;;;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;403:273:2;;;;;;;-1:-1:-1;;;;;2300:22:1;;;;2292:31;;;;;;-1:-1:-1;;;;;2341:24:1;;;;2333:33;;;;;;2377:9;:22;;-1:-1:-1;;;;;2377:22:1;;;-1:-1:-1;;;;;;2377:22:1;;;;;;;2409:7;:18;;;;;;;;;;;2437:7;:18;;;;;;;;;;;;;;;2465:14;:23;;;;;2377:22;2465:23;;;:::i;:::-;-1:-1:-1;2562:10:1;2542:31;;;;;;;;;;;;;-1:-1:-1;;2542:31:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;2550:10;;2542:31;;2562:10;;2542:31;;2562:10;2542:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;;;:31;;;:::i;:::-;2112:468;;;;403:273:2;;;;191:487;;1347:141:42;1418:27;1435:9;1418:5;1424;1418:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1418:12:42;;;;;-1:-1:-1;1418:12:42;;;;;;;;;;;;-1:-1:-1;;1418:16:42;;;;;;:27;:::i;:::-;1466:9;-1:-1:-1;;;;;1456:27:42;;1477:5;1456:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1456:27:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1347:141;;:::o;321:100:43:-;-1:-1:-1;;;;;390:19:43;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:43;412:4;390:26;;;321:100::o;191:487:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;191:487:2;;;-1:-1:-1;191:487:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;191:487:2;;;;;-1:-1:-1;;191:487:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;191:487:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;", - "deployedSourceMap": "191:487:2:-;;;;;;;;;-1:-1:-1;;;191:487:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6657:1684:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6657:1684:1;-1:-1:-1;;;;;6657:1684:1;;;;;;;;;;;837:114:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;837:114:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;837:114:42;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;837:114:42;;-1:-1:-1;837:114:42;;-1:-1:-1;;;;;;;837:114:42;2693:107:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2693:107:1;-1:-1:-1;;;;;2693:107:1;;;;;1065:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1065:35:1;-1:-1:-1;;;;;1065:35:1;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1065:35:1;-1:-1:-1;;;;;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1065:35:1;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1091:136:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1091:136:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1091:136:42;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1091:136:42;;-1:-1:-1;1091:136:42;;-1:-1:-1;;;;;;;1091:136:42;;;;;;;;;;;;;;;;;;;2806:1775:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2806:1775:1;-1:-1:-1;;;;;2806:1775:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9405:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9405:188:1;-1:-1:-1;;;;;9405:188:1;;;;;;;;;;;;;;-1:-1:-1;;;;;9405:188:1;;;;;;;;;;;;;;9725:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9725:97:1;;;;789:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;789:32:1;;;;53:19:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:37;;;;;;;;;;;;;;;;;;;;10042:114:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10042:114:1;;;;4735:1418;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4735:1418:1;-1:-1:-1;;;;;4735:1418:1;;;;;;;2586:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2586:101:1;-1:-1:-1;;;;;2586:101:1;;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;9599:120:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9599:120:1;-1:-1:-1;;;;;9599:120:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9599:120:1;;;;;;;;;;;;;;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;1201:34:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1201:34:1;;;;;;;;;;;;;;;;;;;;;;;8347:1052;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8347:1052:1;-1:-1:-1;;;;;8347:1052:1;;;;;;;827:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:35:1;;;;984:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;984:75:1;-1:-1:-1;;;;;984:75:1;;;;;;;;;;868:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;868:23:1;;;;748:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;748:34:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;748:34:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;-1:-1:-1;;;;;1274:103:45;;;;;6657:1684:1;7169:13;7236:23;487:1:41;1128:14;;:39;1120:48;;;;;;;;584:1;1174:14;:40;6801:1:1;6774:15;:13;:15::i;:::-;-1:-1:-1;;;;;6774:29:1;;;6766:38;;;;;;6822:42;6839:12;6853:10;6822:16;:42::i;:::-;6880:10;6822:69;;;;:57;;;;;:69;;;;;;;;:77;;:69;:77;6814:86;;;;;;6984:81;7051:13;6984:42;7001:12;7015:10;6984:16;:42::i;:::-;:62;;;;:81;:66;:81;:::i;:::-;6918:42;6935:12;6949:10;6918:16;:42::i;:::-;:62;;;:147;;6910:156;;;;;;7155:1;7084:42;7101:12;7115:10;7084:16;:42::i;:::-;:59;;;-1:-1:-1;;;;;7084:59:1;:73;7076:82;;;;;;7185:9;;:40;;;-1:-1:-1;;;;;7185:40:1;;-1:-1:-1;;;;;7185:40:1;;;;;;;;;:9;;;;;:26;;:40;;;;;;;;;;;;;;:9;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;7185:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7185:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7185:40:1;7262:7;;7185:40;;-1:-1:-1;;;;;;7262:7:1;:23;7307:12;7185:40;7363:5;7382:15;:13;:15::i;:::-;7411:42;7428:12;7442:10;7411:16;:42::i;:::-;:56;;;7481:42;7498:12;7512:10;7481:16;:42::i;:::-;:63;;;7558:42;7575:12;7589:10;7558:16;:42::i;:::-;:60;;;7640:9;;7262:422;;;-1:-1:-1;;;7262:422:1;;;;;;-1:-1:-1;;;;;7262:422:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7640:9;;;;7262:422;;;;7664:10;7262:422;;;;;;;;;;;;;;;;;;;;7640:9;7262:422;;;;5:2:-1;;;;30:1;27;20:12;5:2;7262:422:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7262:422:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7262:422:1;;-1:-1:-1;7262:422:1;7695:42;7712:12;7726:10;7695:16;:42::i;:::-;:59;;:71;;-1:-1:-1;;7695:71:1;-1:-1:-1;;;;;7695:71:1;;;;;;7776:35;;;;;;;;;;;;;;;:24;;;;;;:35;;;;;-1:-1:-1;;7776:35:1;;;;;;;;-1:-1:-1;7776:24:1;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;7776:35:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7776:35:1;;;;7892:1;7826:42;7843:12;7857:10;7826:16;:42::i;:::-;:63;;;:67;7822:376;;;7909:9;;-1:-1:-1;;;;;7909:9:1;:17;7950:12;7989:9;8017:156;8109:42;7950:12;8140:10;8109:16;:42::i;:::-;:63;;;8017:42;8034:12;8048:10;8017:16;:42::i;:::-;:62;;;;:156;:91;:156;:::i;:::-;7909:278;;;-1:-1:-1;;;7909:278:1;;;;;;-1:-1:-1;;;;;7909:278:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7909:278:1;;;;5:2:-1;;;;30:1;27;20:12;5:2;7909:278:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7909:278:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7822:376:1;8208:49;8229:12;8243:13;8208:20;:49::i;:::-;8273:61;;;;;;;;8308:10;;-1:-1:-1;;;;;8273:61:1;;;;;;;;;;;;-1:-1:-1;;487:1:41;1227:14;:38;-1:-1:-1;;;6657:1684:1:o;837:114:42:-;917:29;936:9;917:5;923;917:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;917:12:42;;;;;-1:-1:-1;917:12:42;;;;;;;;;;;;-1:-1:-1;;917:18:42;:29::i;:::-;837:114;;:::o;2693:107:1:-;2782:10;2760:33;;;;;;;;;;;;;-1:-1:-1;;2760:33:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;2771:9;;2760:33;;2782:10;;2760:33;;2782:10;2760:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:10;:33::i;:::-;2693:107;:::o;1065:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1065:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1065:35:1;;-1:-1:-1;1065:35:1;;;;-1:-1:-1;;;;;1065:35:1;;;;;;;:::o;1091:136:42:-;1174:4;1195:27;1212:9;1195:5;1201;1195:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1195:12:42;;;;;-1:-1:-1;1195:12:42;;;;;;;;;;;;-1:-1:-1;;1195:16:42;:27::i;:::-;1188:34;;1091:136;;;;;:::o;2806:1775:1:-;3108:10;347:50:2;;;;;;;;-1:-1:-1;;347:50:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:12:1;;347:50:2;;3108:10:1;;347:50:2;;3108:10:1;347:50:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;3143:24:1;;;;3135:33;;;;;;-1:-1:-1;;;;;3186:26:1;;;;3178:35;;;;;;3231:22;:10;:20;:22::i;:::-;:56;;;;;3284:3;3257:24;:10;:22;:24::i;:::-;:30;3231:56;3223:65;;;;;;;;3306:25;:13;:23;:25::i;:::-;:62;;;;;3365:3;3335:27;:13;:25;:27::i;:::-;:33;3306:62;3298:71;;;;;;;;3387:32;:20;:30;:32::i;:::-;:76;;;;;3460:3;3423:34;:20;:32;:34::i;:::-;:40;3387:76;3379:85;;;;;;;;3482:29;:17;:27;:29::i;:::-;:70;;;;;3549:3;3515:31;:17;:29;:31::i;:::-;:37;3482:70;3474:79;;;;;;;;3630:12;-1:-1:-1;;;;;3571:71:1;:42;3588:12;3602:10;3571:16;:42::i;:::-;:55;;;-1:-1:-1;;;;;3571:55:1;:71;;3563:80;;;;;;3662:42;3679:12;3693:10;3662:16;:42::i;:::-;-1:-1:-1;;;;;3662:69:1;;;;;;:57;;;;;:69;;;;;;;;3661:70;3653:79;;;;;;3765:14;:21;;;;3743:44;;3846:5;3798:19;:33;3818:12;-1:-1:-1;;;;;3798:33:1;-1:-1:-1;;;;;3798:33:1;;;;;;;;;;;;:45;3832:10;-1:-1:-1;;;;;3798:45:1;-1:-1:-1;;;;;3798:45:1;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;3892:14;:23;;;;;;;;;;;:::i;:::-;3862:20;;:54;;;;;;;;;;;;;;;;;;3927:18;:32;3946:12;-1:-1:-1;;;;;3927:32:1;-1:-1:-1;;;;;3927:32:1;;;;;;;;;;;;3965:10;3927:49;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3927:49:1;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3927:49:1;;;;;-1:-1:-1;;;;;3927:49:1;;;;;;;4038:4;3987:14;4002:5;3987:21;;;;;;;;;;;;;;;;;;;;;;:36;;:48;4024:10;-1:-1:-1;;;;;3987:48:1;-1:-1:-1;;;;;3987:48:1;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;4081:4;;4052:14;4067:5;4052:21;;;;;;;;;;;;;;;;;;;;:33;;:21;;;;;;:33;:::i;:::-;;4126:6;;4095:14;4110:5;4095:21;;;;;;;;;;;;;;;;;;;;;;:28;;:37;;;;;;;:::i;:::-;;4175:8;4142:14;4157:5;4142:21;;;;;;;;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;;;;;;;;4228:10;4193:14;4208:5;4193:21;;;;;;;;;;;;;;;;;;;;;;:32;;:45;;;;4286:13;4248:14;4263:5;4248:21;;;;;;;;;;;;;;;;;;;;;;:35;;:51;;;;4354:20;4309:14;4324:5;4309:21;;;;;;;;;;;;;;;;;;;;;;:42;;:65;;;;4426:17;4384:14;4399:5;4384:21;;;;;;;;;;;;;;;;;;;;;;:39;;:59;;;;4490:12;4453:14;4468:5;4453:21;;;;;;;;;;;;;;;;;;;;;;:34;;;:49;;;;;-1:-1:-1;;;;;4453:49:1;;;;;-1:-1:-1;;;;;4453:49:1;;;;;;4549:10;-1:-1:-1;;;;;4518:56:1;4535:12;-1:-1:-1;;;;;4518:56:1;;4561:4;;4567:6;;4518:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4518:56:1;;;;;;;;;;;;;;-1:-1:-1;4518:56:1;;-1:-1:-1;;;;;;;4518:56:1;2806:1775;;;;;;;;;;;;;:::o;9405:188::-;9499:7;9525:44;9542:12;9556;9525:16;:44::i;:::-;:61;;;-1:-1:-1;;;;;9525:61:1;;9405:188;-1:-1:-1;;;9405:188:1:o;9725:97::-;9806:9;;-1:-1:-1;;;;;9806:9:1;9725:97;;:::o;789:32::-;;;-1:-1:-1;;;;;789:32:1;;:::o;53:19:37:-;;;;:::o;10042:114:1:-;10113:7;;:36;;;;;;:7;:36;;;;;;10087:7;;-1:-1:-1;;;;;10113:7:1;;:17;;:36;;;;;;;;;;;;;;10087:7;10113;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;10113:36:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10113:36:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10113:36:1;;-1:-1:-1;10042:114:1;:::o;4735:1418::-;5123:19;5255:31;5402:8;5518:21;5866:13;487:1:41;1128:14;;:39;1120:48;;;;;;;;584:1;1174:14;:40;4857:1:1;4830:15;:13;:15::i;:::-;-1:-1:-1;;;;;4830:29:1;;;4822:38;;;;;;4887:1;4878:10;;4870:19;;;;;;-1:-1:-1;;;;;4907:26:1;;;;4899:35;;;;;;5011:12;-1:-1:-1;;;;;4952:71:1;:42;4969:12;4983:10;4952:16;:42::i;:::-;:55;;;-1:-1:-1;;;;;4952:55:1;:71;4944:80;;;;;;5042:42;5059:12;5073:10;5042:16;:42::i;:::-;5100:10;5042:69;;;;:57;;;;;:69;;;;;;;;5034:78;;;;;;;;5191:42;;;;;;5207:10;5191:42;;;;5227:4;5191:42;;;;;;5159:12;;-1:-1:-1;5237:6:1;;-1:-1:-1;;;;;5191:15:1;;;;;:42;;;;;;;;;;;;;;;-1:-1:-1;5191:15:1;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;5191:42:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5191:42:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5191:42:1;:52;;5183:61;;;;;;5289:42;5306:12;5320:10;5289:16;:42::i;:::-;5255:76;;5370:11;:20;;;;;;;;;;;;5350:40;;:5;-1:-1:-1;;;;;5350:14:1;;:16;;;;;-1:-1:-1;;;5350:16:1;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5350:16:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5350:16:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5350:16:1;:40;;;5342:49;;;;;;5438:1;5413:11;:22;;;:26;:95;;5507:1;5413:95;;;5469:22;;;;5454:38;;:6;;:38;:14;:38;:::i;:::-;5402:106;-1:-1:-1;5542:15:1;:6;5402:106;5542:15;:10;:15;:::i;:::-;5596:9;;5518:39;;-1:-1:-1;5568:56:1;;5589:5;;-1:-1:-1;;;;;5596:9:1;5518:39;5568:20;:56::i;:::-;5634:49;5655:5;5662:15;:13;:15::i;:::-;5679:3;5634:20;:49::i;:::-;5728:31;;;;:53;;5764:16;5728:53;:35;:53;:::i;:::-;5694:31;;;:87;5796:9;;:40;;;-1:-1:-1;;;;;5796:40:1;;-1:-1:-1;;;;;5796:40:1;;;;;;;;;5848:1;;5796:9;;;;:26;;:40;;;;;;;;;;;;;;;5848:1;5796:9;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5796:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5796:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5796:40:1;-1:-1:-1;;;;;5796:54:1;;5792:242;;;5931:20;;;;5893:11;;5911:18;;;;5931:20;;5882:70;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;5882:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5882:70:1;;;;;;;;-1:-1:-1;;5882:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;5967:9:1;;:56;;;;;;-1:-1:-1;;;;;5967:56:1;;;;;;;;;;;;;;;;5866:86;;-1:-1:-1;5967:9:1;;;:27;;:56;;;;;:9;;:56;;;;;;;;:9;;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;5967:56:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5967:56:1;;;;5792:242;6105:9;;:40;;;-1:-1:-1;;;;;6105:40:1;;-1:-1:-1;;;;;6049:97:1;;;6105:40;;;;;;;;6075:10;;6049:97;;6087:16;;6105:9;;;;:26;;:40;;;;;;;;;;;;;;;-1:-1:-1;6105:9:1;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;6105:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6105:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6105:40:1;6049:97;;;;;;-1:-1:-1;;;;;6049:97:1;;;6105:40;6049:97;;;;;;;;;;;;-1:-1:-1;;487:1:41;1227:14;:38;-1:-1:-1;;;;;4735:1418:1:o;2586:101::-;2669:10;2650:30;;;;;;;;;;;;;-1:-1:-1;;2650:30:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;2658:9;;2650:30;;2669:10;;2650:30;;2669:10;2650:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;:30::i;1001:111:45:-;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;9599:120:1:-;-1:-1:-1;;;;;9687:25:1;;;;;;:18;:25;;;;;;;;;9680:32;;;;;;;;;;;;;;;;;9659:9;;9680:32;;;9687:25;9680:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9680:32:1;;;;;;;;;;;;;;;;;;;;;;;9599:120;;;:::o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;1201:34:1:-;;;;;;:::o;8347:1052::-;8945:12;;8444:17;;;8436:26;;;;;;-1:-1:-1;;;;;8480:26:1;;;;8472:35;;;;;;8525:9;;:40;;;-1:-1:-1;;;;;8525:40:1;;-1:-1:-1;;;;;8525:40:1;;;;;;;;;8577:1;;8525:9;;;;:26;;:40;;;;;;;;;;;;;;;8577:1;8525:9;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8525:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8525:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8525:40:1;-1:-1:-1;;;;;8525:54:1;;;8517:63;;;;;;8669:1;8598:42;8615:12;8629:10;8598:16;:42::i;:::-;:59;;;-1:-1:-1;;;;;8598:59:1;:73;;8590:82;;;;;;8690:42;8707:12;8721:10;8690:16;:42::i;:::-;8748:10;8690:69;;;;:57;;;;;:69;;;;;;;;:77;;:69;:77;8682:86;;;;;;8852:81;8919:13;8852:42;8869:12;8883:10;8852:16;:42::i;:81::-;8786:42;8803:12;8817:10;8786:16;:42::i;:::-;:62;;;:147;;8778:156;;;;;;8960:9;;:40;;;-1:-1:-1;;;;;8960:40:1;;-1:-1:-1;;;;;8960:40:1;;;;;;;;;:9;;;;;:26;;:40;;;;;;;;;;;;;;:9;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8960:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8960:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8960:40:1;;-1:-1:-1;9036:42:1;9053:12;9067:10;9036:16;:42::i;:::-;:59;;;-1:-1:-1;;;;;9036:59:1;;-1:-1:-1;9171:94:1;9251:13;9171:42;9188:12;9202:10;9171:16;:42::i;:94::-;9106:42;9123:12;9137:10;9106:16;:42::i;:::-;:62;;:159;9276:39;;;;;;-1:-1:-1;;;;;9276:39:1;;;;;;;;;;;;;9313:1;9276:39;;;;;;;;:10;;;;;;:39;;;;;;;;;;;;;;;;;;:10;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;9276:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9276:39:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;9331:61:1;;;;;;;;9366:10;;-1:-1:-1;;;;;9331:61:1;;;;;;;;9276:39;9331:61;;;8347:1052;;;;:::o;827:35::-;;;-1:-1:-1;;;;;827:35:1;;:::o;984:75::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;868:23::-;;;-1:-1:-1;;;;;868:23:1;;:::o;748:34::-;;;;;;;;;;;;;;;-1:-1:-1;;748:34:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1274:103:45:-;1343:29;1362:9;1343:18;:29::i;9828:208:1:-;-1:-1:-1;;;;;9981:33:1;;;9921:26;9981:33;;;:19;:33;;;;;;;;:47;;;;;;;;;;;;9966:14;:63;;:14;;9981:47;;;9966:63;;;;;;;;;;;;;;;;9959:70;;9828:208;;;;:::o;1238:128:44:-;1319:7;;;1339;;;;1332:15;;;428:109:13;486:4;509:21;524:5;:3;:5::i;:::-;509:10;:2;516;509:10;:6;:10;:::i;:::-;:14;:21;:14;:21;:::i;666:111:43:-;754:17;758:5;765;754:3;:17::i;:::-;746:26;;;;;;;1613:149:42;1687:30;1707:9;1687:5;1693;1687:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1687:12:42;;;;;-1:-1:-1;1687:12:42;;;;;;;;;;;;-1:-1:-1;;1687:19:42;:30::i;:::-;1740:9;-1:-1:-1;;;;;1728:29:42;;1751:5;1728:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1728:29:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1613:149;;:::o;855:128:43:-;-1:-1:-1;;;;;959:19:43;938:4;959:19;;;;;;;;;;;;;;;855:128::o;672:107:13:-;723:4;752:5;:3;:5::i;:::-;746:2;:11;;:26;;;;;767:5;:3;:5::i;:::-;761:2;:11;;739:33;672:107;-1:-1:-1;;672:107:13:o;924:139::-;977:4;1001:13;1011:2;1001:9;:13::i;:::-;993:22;;;;;;;;1033:23;1046:9;:7;:9::i;:::-;1033:2;;1040;:15;1033:23;:6;:23;:::i;1060:116:44:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:44;;;1060:116::o;6234:417:1:-;6422:20;6445:30;6469:5;6445;-1:-1:-1;;;;;6445:15:1;;6461:2;6445:19;;;;;-1:-1:-1;;;6445:19:1;;;;;;;-1:-1:-1;;;;;6445:19:1;-1:-1:-1;;;;;6445:19:1;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6445:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6445:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6445:19:1;;:30;:23;:30;:::i;:::-;6486:41;;;;;;6505:10;6486:41;;;;-1:-1:-1;;;;;6486:41:1;;;;;;;;;;;;;;;6422:53;;-1:-1:-1;6486:18:1;;;;;;:41;;;;;;;;;;;;;;;-1:-1:-1;6486:18:1;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;6486:41:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6486:41:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6605:19:1;;;;;;-1:-1:-1;;;;;6605:19:1;;;;;;;;;6628:15;;6605;;;;;:19;;;;;6486:41;;6605:19;;;;;;;-1:-1:-1;6605:15:1;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;6605:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6605:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6605:19:1;:38;6598:46;;;;6234:417;;;;:::o;1347:141:42:-;1418:27;1435:9;1418:5;1424;1418:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1418:12:42;;;;;-1:-1:-1;1418:12:42;;;;;;;;;;;;-1:-1:-1;;1418:16:42;:27::i;:::-;1466:9;-1:-1:-1;;;;;1456:27:42;;1477:5;1456:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1512:171:45;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o;357:65:13:-;393:4;414:5;:3;:5::i;:::-;408:2;:11;401:18;;357:65;:::o;203:380:44:-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:44;506:8;;485:36;-1:-1:-1;531:7:44;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;665:283;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:44:o;486:104:43:-;-1:-1:-1;;;;;558:19:43;580:5;558:19;;;;;;;;;;;:27;;-1:-1:-1;;558:27:43;;;486:104::o;297:55:13:-;333:4;297:55;:::o;161:59::-;216:1;161:59;:::o;321:100:43:-;-1:-1:-1;;;;;390:19:43;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:43;412:4;390:26;;;321:100::o;225:67:13:-;261:4;280:9;:7;:9::i;:::-;276:1;:13;269:20;;225:67;:::o;191:487:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;191:487:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;191:487:2;;;-1:-1:-1;191:487:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;191:487:2;;;;;-1:-1:-1;;191:487:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;191:487:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i", - "source": "pragma solidity ^0.4.24;\n\nimport \"./W12Lister.sol\";\nimport \"./crowdsale/factories/IW12CrowdsaleFactory.sol\";\nimport \"./wallets/IWallets.sol\";\nimport \"./token/exchanger/ITokenExchanger.sol\";\n\ncontract W12ListerStub is W12Lister {\n\n /**\n * @dev Allows for any account besides the owner.\n */\n modifier onlyOwner() {\n _;\n }\n\n modifier onlyRole(string _role) {\n _;\n }\n\n constructor (\n uint version,\n IWallets _wallets,\n IW12CrowdsaleFactory _factory,\n ITokenExchanger _exchanger\n )\n W12Lister(\n version,\n _wallets,\n _factory,\n _exchanger\n ) public\n {}\n}\n", + "bytecode": "0x60806040523480156200001157600080fd5b506040516080806200517b83398101604090815281516020830151918301516060909301519092908383838383620000523364010000000062000134810204565b60015560028054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a16001600355600160a060020a0383161515620000c157600080fd5b600160a060020a0382161515620000d757600080fd5b600160a060020a0381161515620000ed57600080fd5b60048054600160a060020a0319908116600160a060020a03938416179091556006805482169483169490941790935560058054909316911617905550620002199350505050565b6200014f600082640100000000620033bc6200018682021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b600160a060020a03811615156200019c57600080fd5b620001b18282640100000000620001e1810204565b15620001bc57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001f957600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b614f5280620002296000396000f300608060405260043610620001555763ffffffff60e060020a60003504166309363c9981146200015a5780631785f53c14620001865780631cd82e6014620001aa57806320f59dc7146200022057806321689c1a14620002585780632348238c146200028557806324d7806c14620002a9578063460f0b6b14620002cd5780634b1acf3914620002f75780634d12fca4146200032b57806354fd4d5014620003435780635641f3c3146200036d57806359770438146200038557806370480275146200050b57806375dd8cfc146200052f578063849072b9146200055c57806386ad639814620005805780638bad0c0a1462000659578063a800199e1462000671578063aa6ca80814620006cd578063b5af090f14620006e5578063c45a01551462000709578063c6dbdf611462000721578063c96a68c11462000739578063d2f4a50a1462000763578063e45725d8146200077b575b600080fd5b3480156200016757600080fd5b5062000184600160a060020a0360043516602435604435620007a5565b005b3480156200019357600080fd5b5062000184600160a060020a036004351662000e5b565b348015620001b757600080fd5b50620001ce600160a060020a036004351662000e69565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200020c578181015183820152602001620001f2565b505050509050019250505060405180910390f35b3480156200022d57600080fd5b5062000244600160a060020a036004351662000f31565b604080519115158252519081900360200190f35b3480156200026557600080fd5b5062000184600160a060020a036004358116906024351660443562000f4c565b3480156200029257600080fd5b5062000184600160a060020a03600435166200123e565b348015620002b657600080fd5b5062000244600160a060020a0360043516620012ae565b348015620002da57600080fd5b50620001ce600160a060020a0360043581169060243516620012c2565b3480156200030457600080fd5b506200030f6200133e565b60408051600160a060020a039092168252519081900360200190f35b3480156200033857600080fd5b506200030f6200134e565b3480156200035057600080fd5b506200035b6200135d565b60408051918252519081900360200190f35b3480156200037a57600080fd5b506200030f62001363565b3480156200039257600080fd5b50620003a9600160a060020a0360043516620013fd565b6040518080602001806020018660ff1660ff1681526020018060200185600460200280838360005b83811015620003eb578181015183820152602001620003d1565b50505050905001848103845289818151815260200191508051906020019080838360005b83811015620004295781810151838201526020016200040f565b50505050905090810190601f168015620004575780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b838110156200048c57818101518382015260200162000472565b50505050905090810190601f168015620004ba5780820380516001836020036101000a031916815260200191505b508481038252865181528651602091820191808901910280838360005b83811015620004f1578181015183820152602001620004d7565b505050509050019850505050505050505060405180910390f35b3480156200051857600080fd5b5062000184600160a060020a036004351662001672565b3480156200053c57600080fd5b5062000184600160a060020a03600435811690602435166044356200167d565b3480156200056957600080fd5b50620001ce600160a060020a036004351662001cf0565b3480156200058d57600080fd5b50620005aa600160a060020a036004358116906024351662001d6a565b6040518084608080838360005b83811015620005d1578181015183820152602001620005b7565b5050505090500183600260200280838360005b83811015620005fe578181015183820152602001620005e4565b5050505090500180602001828103825283818151815260200191508051906020019060200280838360005b838110156200064357818101518382015260200162000629565b5050505090500194505050505060405180910390f35b3480156200066657600080fd5b506200018462001e9f565b3480156200067e57600080fd5b506200018460048035600160a060020a0316906024803580820192908101359160443580820192908101359160643560ff169160843591820191013560a43560c43560e4356101043562001eac565b348015620006da57600080fd5b50620001ce62002015565b348015620006f257600080fd5b5062000244600160a060020a0360043516620020cb565b3480156200071657600080fd5b506200030f620020e0565b3480156200072e57600080fd5b506200030f620020ef565b3480156200074657600080fd5b5062000244600160a060020a0360043581169060243516620020fe565b3480156200077057600080fd5b506200030f6200211b565b3480156200078857600080fd5b5062000244600160a060020a03600435811690602435166200212a565b60038054600101908190556000908190819081620007c262001363565b600160a060020a03161415620007d757600080fd5b620007ea60078863ffffffff6200214016565b1515620007f657600080fd5b6200080a6007883363ffffffff6200217016565b15156200081657600080fd5b6200082960078863ffffffff620021a716565b15156200083557600080fd5b6200085e866200084d60078a63ffffffff620021ef16565b600601549063ffffffff620021ff16565b6200087160078963ffffffff620021ef16565b6005015410156200088157600080fd5b6200089460078863ffffffff6200221216565b6004805460088301546040805160e260020a630547cdcd028152600160a060020a039283169481019490945251939750169163151f3734916024808201926020929091908290030181600087803b158015620008ef57600080fd5b505af115801562000904573d6000803e3d6000fd5b505050506040513d60208110156200091b57600080fd5b50516005546008860154919450600160a060020a039081169163868b16d9911685886200094762001363565b89600501548a600601548b60070154600460009054906101000a9004600160a060020a03168d6003016040518a63ffffffff1660e060020a028152600401808a600160a060020a0316600160a060020a0316815260200189600160a060020a0316600160a060020a0316815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818154815260200191508054801562000a4b57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000a2c575b50509a5050505050505050505050602060405180830381600087803b15801562000a7457600080fd5b505af115801562000a89573d6000803e3d6000fd5b505050506040513d602081101562000aa057600080fd5b5051604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051919350600160a060020a0384169163704802759160248082019260009290919082900301818387803b15801562000b0757600080fd5b505af115801562000b1c573d6000803e3d6000fd5b5050505081600160a060020a0316638edd6eb66040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801562000b5f57600080fd5b505af115801562000b74573d6000803e3d6000fd5b505050506040513d602081101562000b8b57600080fd5b5051604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163704802759160248082019260009290919082900301818387803b15801562000bf057600080fd5b505af115801562000c05573d6000803e3d6000fd5b5050505082600160a060020a03166370480275836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801562000c6557600080fd5b505af115801562000c7a573d6000803e3d6000fd5b5062000c959250600791508990508463ffffffff6200224516565b60008460060154111562000de9576004546008850154600160a060020a039182169163e1f21c6791168462000cd360078c8363ffffffff620023f916565b6005015473__Percent_______________________________6342318e3d90918a600601546040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b15801562000d3757600080fd5b505af415801562000d4c573d6000803e3d6000fd5b505050506040513d602081101562000d6357600080fd5b50516040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801562000dba57600080fd5b505af115801562000dcf573d6000803e3d6000fd5b505050506040513d602081101562000de657600080fd5b50505b62000df687838862000f4c565b600884015460408051600160a060020a038581168252602082018a905282513394909116927fc9cecf9fabde631d7582b55fdaf2a8800e68f0063771104348deff501b7c2827928290030190a3600354811462000e5257600080fd5b50505050505050565b62000e668162002469565b50565b606080600062000e8160078563ffffffff620024b316565b5160405190808252806020026020018201604052801562000eac578160200160208202803883390190505b509150600090505b62000ec760078563ffffffff620024b316565b5181101562000f2a5762000ee360078563ffffffff620024b316565b80518290811062000ef057fe5b6020908102909101015151825183908390811062000f0a57fe5b600160a060020a0390921660209283029091019091015260010162000eb4565b5092915050565b600062000f4660078363ffffffff620021a716565b92915050565b600080821162000f5b57600080fd5b62000f6e60078563ffffffff6200214016565b151562000f7a57600080fd5b62000f8e6007853363ffffffff6200217016565b151562000f9a57600080fd5b62000fae6007858563ffffffff620025ee16565b151562000fba57600080fd5b600480546040805160e260020a630547cdcd028152600160a060020a038881169482019490945290516000939092169163151f37349160248082019260209290919082900301818787803b1580156200101257600080fd5b505af115801562001027573d6000803e3d6000fd5b505050506040513d60208110156200103e57600080fd5b5051600160a060020a031614156200105557600080fd5b6200106e826200084d6007878763ffffffff620023f916565b620010826007868663ffffffff620023f916565b6005015410156200109257600080fd5b600480546040805160e260020a630547cdcd028152600160a060020a03888116948201949094529051929091169163151f3734916024808201926020929091908290030181600087803b158015620010e957600080fd5b505af1158015620010fe573d6000803e3d6000fd5b505050506040513d60208110156200111557600080fd5b5051905062001132826200084d6007878763ffffffff620023f916565b620011466007868663ffffffff620023f916565b60060155604080517fd0047acf000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301526024820185905260006044830181905292519084169263d0047acf92606480820193602093909283900390910190829087803b158015620011c157600080fd5b505af1158015620011d6573d6000803e3d6000fd5b505050506040513d6020811015620011ed57600080fd5b505060408051600160a060020a0385811682526020820185905282513393918816927fd663b1d1c366a683f19929e0e0f10df9ee4ba14bb42fb2f37e63605b0828da2a92908290030190a350505050565b600160a060020a03811615156200125457600080fd5b60028054600160a060020a031916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600062000f46818363ffffffff6200263916565b6060620012d86007848463ffffffff620023f916565b6007018054806020026020016040519081016040528092919081815260200182805480156200133157602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001312575b5050505050905092915050565b600454600160a060020a03165b90565b600454600160a060020a031681565b60015481565b600654604080517fe3ff76e4000000000000000000000000000000000000000000000000000000008152600160048201529051600092600160a060020a03169163e3ff76e491602480830192602092919082900301818787803b158015620013ca57600080fd5b505af1158015620013df573d6000803e3d6000fd5b505050506040513d6020811015620013f657600080fd5b5051905090565b606080600060606200140e620036bf565b6200142160078763ffffffff6200214016565b15156200142d57600080fd5b6200144060078763ffffffff6200221216565b805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620014c85780601f106200149c57610100808354040283529160200191620014c8565b820191906000526020600020905b815481529060010190602001808311620014aa57829003601f168201915b50505050509450620014e58660076200221290919063ffffffff16565b60019081018054604080516020600295841615610100026000190190931694909404601f810183900483028501830190915280845290830182828015620015705780601f10620015445761010080835404028352916020019162001570565b820191906000526020600020905b8154815290600101906020018083116200155257829003601f168201915b505050505093506200158d8660076200221290919063ffffffff16565b6002015460ff169250620015a960078763ffffffff6200221216565b6003018054806020026020016040519081016040528092919081815260200182805480156200160257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311620015e3575b505050505091506200161f8660076200221290919063ffffffff16565b6004015481526200163260078762002212565b6005015460208201526200164860078762002212565b6006015460408201526200165e60078762002212565b600701546060820152939592945090929091565b62000e668162002671565b60038054600101908190556000908190819081908190816200169e62001363565b600160a060020a03161415620016b357600080fd5b60008711620016c157600080fd5b620016d460078a63ffffffff6200214016565b1515620016e057600080fd5b620016f460078a3363ffffffff6200217016565b15156200170057600080fd5b6200171460078a8a63ffffffff620025ee16565b15156200172057600080fd5b6200173360078a63ffffffff6200221216565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519197508a96508891600160a060020a0388169163dd62ed3e9160448083019260209291908290030181600087803b158015620017a357600080fd5b505af1158015620017b8573d6000803e3d6000fd5b505050506040513d6020811015620017cf57600080fd5b50511015620017dd57600080fd5b8560020160009054906101000a900460ff1660ff1685600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200183157600080fd5b505af115801562001846573d6000803e3d6000fd5b505050506040513d60208110156200185d57600080fd5b505160ff16146200186d57600080fd5b60008660040154116200188257600062001912565b8673__Percent_______________________________6342318e3d909188600401546040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b158015620018e357600080fd5b505af4158015620018f8573d6000803e3d6000fd5b505050506040513d60208110156200190f57600080fd5b50515b935062001926878563ffffffff620026bb16565b60045490935062001943908690600160a060020a031685620026d3565b62001959856200195262001363565b86620026d3565b62001983836200197260078c8c63ffffffff620023f916565b600501549063ffffffff620021ff16565b6200199760078b8b63ffffffff620023f916565b60050155600480546040805160e260020a630547cdcd028152600160a060020a038d81169482019490945290516000939092169163151f37349160248082019260209290919082900301818787803b158015620019f357600080fd5b505af115801562001a08573d6000803e3d6000fd5b505050506040513d602081101562001a1f57600080fd5b5051600160a060020a0316141562001c005760028601548690600182019060ff1662001a4a620036de565b60ff8216604082015260608082528454600260001961010060018416150201909116049082018190528190602082019060808301908790801562001ad25780601f1062001aa65761010080835404028352916020019162001ad2565b820191906000526020600020905b81548152906001019060200180831162001ab457829003601f168201915b505083810382528554600260001961010060018416150201909116048082526020909101908690801562001b4a5780601f1062001b1e5761010080835404028352916020019162001b4a565b820191906000526020600020905b81548152906001019060200180831162001b2c57829003601f168201915b505095505050505050604051809103906000f08015801562001b70573d6000803e3d6000fd5b5060048054604080517fa0736912000000000000000000000000000000000000000000000000000000008152600160a060020a038e8116948201949094528385166024820152905193955091169163a07369129160448082019260009290919082900301818387803b15801562001be657600080fd5b505af115801562001bfb573d6000803e3d6000fd5b505050505b600480546040805160e260020a630547cdcd028152600160a060020a038d811694820185905291513394937f168493f0b2b7abab85259c2b490c5d5dff8fcde395381ac5084f554f7e9e2951938e938a93919092169163151f37349160248083019260209291908290030181600087803b15801562001c7e57600080fd5b505af115801562001c93573d6000803e3d6000fd5b505050506040513d602081101562001caa57600080fd5b505160408051600160a060020a039485168152602081019390935292168183015290519081900360600190a3600354811462001ce557600080fd5b505050505050505050565b606062001d0560078363ffffffff6200221216565b60030180548060200260200160405190810160405280929190818152602001828054801562001d5e57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001d3f575b50505050509050919050565b62001d74620036bf565b62001d7e620036ef565b606062001d946007868663ffffffff620025ee16565b151562001da057600080fd5b62001db46007868663ffffffff620023f916565b60010154835262001dc860078686620023f9565b60020154602084015262001ddf60078686620023f9565b60030154604084015262001df660078686620023f9565b60040154606084015262001e0d60078686620023f9565b60050154825262001e2160078686620023f9565b60060154602083015262001e3860078686620023f9565b60070180548060200260200160405190810160405280929190818152602001828054801562001e9157602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001e72575b505050505090509250925092565b62001eaa3362002469565b565b62001f618c8c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508a8a8a80806020026020016040519081016040528093929190818152602001838360200280828437506007999897969594508e93508d92508c91508b905063ffffffff620028b716565b5033600160a060020a03168c600160a060020a03167f02b6ecbf927eba8b506d1ceacc9ca4887d0f3978e6e1b6b3c423ceefc021b31a88888f8f8f8f6040518080602001806020018060200184810384528a8a82818152602001925060200280828437909101858103845288815260200190508888808284379091018581038352868152602001905086868082843760405192018290039b50909950505050505050505050a3505050505050505050505050565b60608060006200202660076200309d565b5160405190808252806020026020018201604052801562002051578160200160208202803883390190505b509150600090505b6200206560076200309d565b51811015620020c5576200207a60076200309d565b8051829081106200208757fe5b9060200190602002015161010001518282815181101515620020a557fe5b600160a060020a0390921660209283029091019091015260010162002059565b50919050565b600062000f4660078363ffffffff6200214016565b600554600160a060020a031681565b600254600160a060020a031690565b6000620021146007848463ffffffff620025ee16565b9392505050565b600654600160a060020a031681565b6000620021146007848463ffffffff6200217016565b600160a060020a031660009081526001820160209081526040808320938252808320548352929052205460ff1690565b60006200217e848462002212565b600160a060020a0383166000908152600991909101602052604090205460ff1690509392505050565b6000620021b5838362002140565b1515620021c157600080fd5b50600160a060020a031660009081526003919091016020908152604080832083805290915290205460ff1690565b60006200211483836000620023f9565b6000828201838110156200211457600080fd5b600082600501620022248484620032ec565b815481106200222f57fe5b90600052602060002090600a0201905092915050565b600160a060020a03811615156200225b57600080fd5b620022678383620021a7565b15156200227357600080fd5b62002280838383620025ee565b156200228b57600080fd5b80620022988484620021ef565b8054600160a060020a031916600160a060020a0392909216919091179055620022c2838362002212565b60040154620022d28484620021ef565b60010155620022e2838362002212565b60050154620022f28484620021ef565b6002015562002302838362002212565b60060154620023128484620021ef565b6003015562002322838362002212565b60070154620023328484620021ef565b6004015562002342838362002212565b600301620023518484620021ef565b600701908054620023649291906200370a565b50600160a060020a03808316600090815260038501602090815260408083209385168352929052908120805460ff19166001179055620023a8908490849062003323565b600160a060020a039283166000818152600486016020908152604080832095909616825284815285822093909355908152600390940181528284208480528152828420805460ff1916905552812055565b600062002408848484620025ee565b15156200241457600080fd5b600160a060020a0380841660009081526002860160209081526040808320600489018352818420948716845293909152902054815481106200245257fe5b906000526020600020906008020190509392505050565b6200247c60008263ffffffff6200336c16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6060620024c1838362002140565b1515620024cd57600080fd5b600160a060020a0382166000908152600284016020908152604080832080548251818502810185019093528083529193909284015b82821015620025e25760008481526020908190206040805161010081018252600886029092018054600160a060020a031683526001810154838501526002810154838301526003810154606084015260048101546080840152600581015460a0840152600681015460c08401526007810180548351818702810187019094528084529394919360e086019392830182828015620025c957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311620025aa575b5050505050815250508152602001906001019062002502565b50505050905092915050565b6000620025fc848462002140565b15156200260857600080fd5b50600160a060020a039182166000908152600393909301602090815260408085209290931684525290205460ff1690565b6000600160a060020a03821615156200265157600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6200268460008263ffffffff620033bc16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b60008083831115620026cc57600080fd5b5050900390565b6000620027718285600160a060020a03166370a08231866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156200273657600080fd5b505af11580156200274b573d6000803e3d6000fd5b505050506040513d60208110156200276257600080fd5b50519063ffffffff620021ff16565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151929350908616916323b872dd916064808201926020929091908290030181600087803b158015620027e757600080fd5b505af1158015620027fc573d6000803e3d6000fd5b505050506040513d60208110156200281357600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915183928716916370a082319160248083019260209291908290030181600087803b1580156200287b57600080fd5b505af115801562002890573d6000803e3d6000fd5b505050506040513d6020811015620028a757600080fd5b505114620028b157fe5b50505050565b600080600160a060020a038b161515620028d057600080fd5b8651600010620028df57600080fd5b8573__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b1580156200293457600080fd5b505af415801562002949573d6000803e3d6000fd5b505050506040513d60208110156200296057600080fd5b50518015620029f1575060648673__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015620029c157600080fd5b505af4158015620029d6573d6000803e3d6000fd5b505050506040513d6020811015620029ed57600080fd5b5051105b1515620029fd57600080fd5b8473__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002a5257600080fd5b505af415801562002a67573d6000803e3d6000fd5b505050506040513d602081101562002a7e57600080fd5b5051801562002b0f575060648573__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002adf57600080fd5b505af415801562002af4573d6000803e3d6000fd5b505050506040513d602081101562002b0b57600080fd5b5051105b151562002b1b57600080fd5b8373__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002b7057600080fd5b505af415801562002b85573d6000803e3d6000fd5b505050506040513d602081101562002b9c57600080fd5b5051801562002c2d575060648473__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002bfd57600080fd5b505af415801562002c12573d6000803e3d6000fd5b505050506040513d602081101562002c2957600080fd5b5051105b151562002c3957600080fd5b8273__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002c8e57600080fd5b505af415801562002ca3573d6000803e3d6000fd5b505050506040513d602081101562002cba57600080fd5b5051801562002d4b575060648373__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002d1b57600080fd5b505af415801562002d30573d6000803e3d6000fd5b505050506040513d602081101562002d4757600080fd5b5051105b151562002d5757600080fd5b62002d638c8c62002140565b151562002f56578b600501805490508c60000160008d600160a060020a0316600160a060020a031681526020019081526020016000208190555060018c60010160008d600160a060020a0316600160a060020a0316815260200190815260200160002060008e60050180549050815260200190815260200160002060006101000a81548160ff0219169083151502179055508b600501610120604051908101604052808c81526020018b81526020018a60ff168152602001600060405190808252806020026020018201604052801562002e47578160200160208202803883390190505b50815260208082018a9052604082018990526060820188905260808201879052600160a060020a038f1660a09092019190915282546001810180855560009485529382902083518051600a9093029091019262002eaa928492909101906200375f565b50602082810151805162002ec592600185019201906200375f565b50604082015160028201805460ff191660ff9092169190911790556060820151805162002efd916003840191602090910190620037e0565b506080820151600482015560a0820151600582015560c0820151600682015560e082015160078201556101009091015160089091018054600160a060020a031916600160a060020a039092169190911790555062003018565b62002f6c62002f668d8d62002212565b6200340e565b8962002f798d8d62002212565b815162002f8a92602001906200375f565b508862002f988d8d62002212565b600101908051906020019062002fb09291906200375f565b508762002fbe8d8d62002212565b600201805460ff191660ff929092169190911790558562002fe08d8d62002212565b600401558462002ff18d8d62002212565b6005015583620030028d8d62002212565b6006015582620030138d8d62002212565b600701555b5060005b865181101562003054576200304b8c8c89848151811015156200303b57fe5b906020019060200201516200349d565b6001016200301c565b620030608c8c620021a7565b15156200307357620030738c8c6200356f565b600160a060020a038b16600090815260208d905260409020549150509a9950505050505050505050565b606081600501805480602002602001604051908101604052809291908181526020016000905b82821015620032e157600084815260209081902060408051600a8602909201805460026001821615610100026000190190911604601f81018590049094028301610140908101909252610120830184815292939092849290918491840182828015620031735780601f10620031475761010080835404028352916020019162003173565b820191906000526020600020905b8154815290600101906020018083116200315557829003601f168201915b50505050508152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620032195780601f10620031ed5761010080835404028352916020019162003219565b820191906000526020600020905b815481529060010190602001808311620031fb57829003601f168201915b5050509183525050600282015460ff1660208083019190915260038301805460408051828502810185018252828152940193928301828280156200328757602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162003268575b50505091835250506004820154602080830191909152600583015460408301526006830154606083015260078301546080830152600890920154600160a060020a031660a0909101529082526001929092019101620030c3565b505050509050919050565b6000620032fa838362002140565b15156200330657600080fd5b50600160a060020a03166000908152602091909152604090205490565b600062003332848484620025ee565b15156200333e57600080fd5b50600160a060020a039182166000908152600493909301602090815260408085209290931684525290205490565b600160a060020a03811615156200338257600080fd5b6200338e828262002639565b15156200339a57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0381161515620033d257600080fd5b620033de828262002639565b15620033e957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600381015460009081101562003499575060005b60038201548110156200348657600082600901600084600301848154811015156200344957fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff191691151591909117905560010162003422565b600062003497600384018262003838565b505b5050565b600160a060020a0381161515620034b357600080fd5b620034c083838362002170565b15620034cb57600080fd5b620034d7838362002212565b60030180546001808201835560009283526020909220018054600160a060020a031916600160a060020a03841617905562003513848462002212565b600160a060020a0383811660008181526009939093016020526040808420805460ff1916951515959095179094559251908516917ffa5891b558f0fb64bcbdc5f17fa7bbee3a47f97f4c8f523556d0494941a1e18b91a3505050565b60006200357d8383620021a7565b156200358857600080fd5b50600160a060020a0381166000818152600284016020818152604080842080546003890184528286208680528452828620805460ff191660011790558686526004890184528286208680528452828620819055958552928252805161010081018252848152808301859052808201859052606081018590526080810185905260a0810185905260c081018590528151858152928301909152919260e08301919050905281546001808201808555600094855260209485902084516008909402018054600160a060020a031916600160a060020a03909416939093178355838501519183019190915560408301516002830155606083015160038301556080830151600483015560a0830151600583015560c0830151600683015560e08301518051919462000e5292600785019290910190620037e0565b6080604051908101604052806004906020820280388339509192915050565b60405161168380620038a483390190565b60408051808201825290600290829080388339509192915050565b8280548282559060005260206000209081019282156200374d5760005260206000209182015b828111156200374d57825482559160010191906001019062003730565b506200375b9291506200385f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620037a257805160ff1916838001178555620037d2565b82800160010185558215620037d2579182015b82811115620037d2578251825591602001919060010190620037b5565b506200375b92915062003886565b8280548282559060005260206000209081019282156200374d579160200282015b828111156200374d5782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019062003801565b81548183558181111562003497576000838152602090206200349791810190830162003886565b6200134b91905b808211156200375b578054600160a060020a031916815560010162003866565b6200134b91905b808211156200375b57600081556001016200388d560060806040523480156200001157600080fd5b50604051620016833803806200168383398101604090815281516020830151918301519083019291909101908282826200005433640100000000620000f1810204565b825162000069906001906020860190620001d6565b5081516200007f906002906020850190620001d6565b506003805460ff90921660ff19909216919091179055505060078054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a15050506200027b565b6200010c600082640100000000620012ec6200014382021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b600160a060020a03811615156200015957600080fd5b6200016e82826401000000006200019e810204565b156200017957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001b657600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021957805160ff191683800117855562000249565b8280016001018555821562000249579182015b82811115620002495782518255916020019190600101906200022c565b50620002579291506200025b565b5090565b6200027891905b8082111562000257576000815560010162000262565b90565b6113f8806200028b6000396000f3006080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d75780631785f53c1461020f57806318160ddd146102325780632348238c1461025957806323b872dd1461027a57806324d7806c146102a4578063313ce567146102c557806339509351146102f057806342966c68146103145780634afbf5ee1461032c5780636618846314610350578063704802751461037457806370a082311461039557806379cc6790146103b65780638bad0c0a146103da57806395d89b41146103ef5780639d2e477714610404578063a457c2d714610431578063a9059cbb14610455578063c6dbdf6114610479578063d0047acf146104aa578063d294cb0f146104d7578063d73dd623146104f8578063dd62ed3e1461051c575b600080fd5b34801561015957600080fd5b50610162610543565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019c578181015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e357600080fd5b506101fb600160a060020a03600435166024356105d8565b604080519115158252519081900360200190f35b34801561021b57600080fd5b50610230600160a060020a0360043516610656565b005b34801561023e57600080fd5b50610247610679565b60408051918252519081900360200190f35b34801561026557600080fd5b50610230600160a060020a036004351661067f565b34801561028657600080fd5b506101fb600160a060020a0360043581169060243516604435610712565b3480156102b057600080fd5b506101fb600160a060020a036004351661075a565b3480156102d157600080fd5b506102da610772565b6040805160ff9092168252519081900360200190f35b3480156102fc57600080fd5b506101fb600160a060020a036004351660243561077b565b34801561032057600080fd5b5061023060043561082b565b34801561033857600080fd5b50610247600160a060020a0360043516602435610835565b34801561035c57600080fd5b506101fb600160a060020a036004351660243561085d565b34801561038057600080fd5b50610230600160a060020a0360043516610870565b3480156103a157600080fd5b50610247600160a060020a0360043516610890565b3480156103c257600080fd5b50610230600160a060020a03600435166024356108ab565b3480156103e657600080fd5b506102306108b9565b3480156103fb57600080fd5b506101626108c4565b34801561041057600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610922565b34801561043d57600080fd5b506101fb600160a060020a036004351660243561096d565b34801561046157600080fd5b506101fb600160a060020a03600435166024356109b8565b34801561048557600080fd5b5061048e6109f7565b60408051600160a060020a039092168252519081900360200190f35b3480156104b657600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610a06565b3480156104e357600080fd5b50610247600160a060020a0360043516610a47565b34801561050457600080fd5b506101fb600160a060020a0360043516602435610b50565b34801561052857600080fd5b50610247600160a060020a0360043581169060243516610b5c565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b820191906000526020600020905b8154815290600101906020018083116105b157829003601f168201915b5050505050905090565b6000600160a060020a03831615156105ef57600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600754600160a060020a0316331461066d57600080fd5b61067681610b87565b50565b60065490565b600754600160a060020a0316331461069657600080fd5b600160a060020a03811615156106ab57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600061071d84610bcf565b600160a060020a038316151561073257600080fd5b61073b84610a47565b82111561074757600080fd5b610752848484610d55565b949350505050565b600061076c818363ffffffff610de816565b92915050565b60035460ff1690565b6000600160a060020a038316151561079257600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff610e1f16565b336000818152600560209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6106763382610e31565b600160a060020a03919091166000908152600860209081526040808320938352929052205490565b6000610869838361096d565b9392505050565b600754600160a060020a0316331461088757600080fd5b61067681610e59565b600160a060020a031660009081526004602052604090205490565b6108b58282610ea1565b5050565b6108c233610b87565b565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b600061092d3361075a565b151561093857600080fd5b61094284846109b8565b50428263ffffffff1611156109635761096333858463ffffffff1686610ec9565b5060019392505050565b6000600160a060020a038316151561098457600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff61100316565b60006109c333610bcf565b600160a060020a03831615156109d857600080fd5b6109e133610a47565b8211156109ed57600080fd5b610869838361101a565b600754600160a060020a031690565b6000610a113361075a565b1515610a1c57600080fd5b610a268484611030565b428263ffffffff161115610963576109636000858463ffffffff1686610ec9565b600080610a5383610890565b600160a060020a03841660009081526008602090815260408083208380529091529020549092501515610a8557610b4a565b5060005b600160a060020a038316600090815260096020526040902054811015610b4a57600160a060020a0383166000908152600960205260409020805442919083908110610ad057fe5b9060005260206000200154101515610b4257600160a060020a0383166000908152600860209081526040808320600990925282208054610b3f93919085908110610b1657fe5b90600052602060002001548152602001908152602001600020548361100390919063ffffffff16565b91505b600101610a89565b50919050565b6000610869838361077b565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610b9860008263ffffffff6110dc16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515610be657600080fd5b600160a060020a03821660009081526008602090815260408083208380529091529020541515610c15576108b5565b5060005b600160a060020a0382166000908152600960205260409020548110156108b557600160a060020a0382166000908152600960205260409020805442919083908110610c6057fe5b90600052602060002001541015610d4d57600160a060020a0382166000908152600860209081526040808320600990925282208054610ceb93919085908110610ca557fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526008845282822082805290935220549063ffffffff61100316565b600160a060020a03831660008181526008602090815260408083208380528083528184209590955592825260099052908120805491929183919085908110610d2f57fe5b90600052602060002001548152602001908152602001600020819055505b600101610c19565b600160a060020a0383166000908152600560209081526040808320338452909152812054821115610d8557600080fd5b600160a060020a0384166000908152600560209081526040808320338452909152902054610db9908363ffffffff61100316565b600160a060020a0385166000908152600560209081526040808320338452909152902055610963848484611128565b6000600160a060020a0382161515610dff57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b60008282018381101561086957600080fd5b610e3a82610bcf565b610e4382610a47565b811115610e4f57600080fd5b6108b5828261121c565b610e6a60008263ffffffff6112ec16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b610eaa82610bcf565b610eb382610a47565b811115610ebf57600080fd5b6108b5828261133a565b600160a060020a0383166000908152600860209081526040808320838052909152902054610efd908263ffffffff610e1f16565b600160a060020a03841660009081526008602090815260408083208380529091528082209290925583815220541515610f5c57600160a060020a0383166000908152600960209081526040822080546001810182559083529120018290555b600160a060020a0383166000908152600860209081526040808320858452909152902054610f90908263ffffffff610e1f16565b600160a060020a0380851660008181526008602090815260408083208884528252918290209490945580519288168352928201528082018390526060810184905290517f4dd99b63a45b55ac0b6999b9307251132e130b3e3f06c04c92b946c0f9e0dc279181900360800190a150505050565b6000808383111561101357600080fd5b5050900390565b6000611027338484611128565b50600192915050565b600160a060020a038216151561104557600080fd5b600654611058908263ffffffff610e1f16565b600655600160a060020a038216600090815260046020526040902054611084908263ffffffff610e1f16565b600160a060020a03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a03811615156110f157600080fd5b6110fb8282610de8565b151561110657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03831660009081526004602052604090205481111561114d57600080fd5b600160a060020a038216151561116257600080fd5b600160a060020a03831660009081526004602052604090205461118b908263ffffffff61100316565b600160a060020a0380851660009081526004602052604080822093909355908416815220546111c0908263ffffffff610e1f16565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a038216151561123157600080fd5b600160a060020a03821660009081526004602052604090205481111561125657600080fd5b600654611269908263ffffffff61100316565b600655600160a060020a038216600090815260046020526040902054611295908263ffffffff61100316565b600160a060020a0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a038116151561130157600080fd5b61130b8282610de8565b1561131557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038216600090815260056020908152604080832033845290915290205481111561136a57600080fd5b600160a060020a038216600090815260056020908152604080832033845290915290205461139e908263ffffffff61100316565b600160a060020a03831660009081526005602090815260408083203384529091529020556108b58282610e315600a165627a7a72305820062db0e6b0457b0016fe92cec01a2f813c664af8fd4f12281ebacf073384bab80029a165627a7a72305820f87409a47474d3ddb21621e55ba28a2d47e744650c13ac0f7ae5a674102b0d290029", + "deployedBytecode": "0x608060405260043610620001555763ffffffff60e060020a60003504166309363c9981146200015a5780631785f53c14620001865780631cd82e6014620001aa57806320f59dc7146200022057806321689c1a14620002585780632348238c146200028557806324d7806c14620002a9578063460f0b6b14620002cd5780634b1acf3914620002f75780634d12fca4146200032b57806354fd4d5014620003435780635641f3c3146200036d57806359770438146200038557806370480275146200050b57806375dd8cfc146200052f578063849072b9146200055c57806386ad639814620005805780638bad0c0a1462000659578063a800199e1462000671578063aa6ca80814620006cd578063b5af090f14620006e5578063c45a01551462000709578063c6dbdf611462000721578063c96a68c11462000739578063d2f4a50a1462000763578063e45725d8146200077b575b600080fd5b3480156200016757600080fd5b5062000184600160a060020a0360043516602435604435620007a5565b005b3480156200019357600080fd5b5062000184600160a060020a036004351662000e5b565b348015620001b757600080fd5b50620001ce600160a060020a036004351662000e69565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200020c578181015183820152602001620001f2565b505050509050019250505060405180910390f35b3480156200022d57600080fd5b5062000244600160a060020a036004351662000f31565b604080519115158252519081900360200190f35b3480156200026557600080fd5b5062000184600160a060020a036004358116906024351660443562000f4c565b3480156200029257600080fd5b5062000184600160a060020a03600435166200123e565b348015620002b657600080fd5b5062000244600160a060020a0360043516620012ae565b348015620002da57600080fd5b50620001ce600160a060020a0360043581169060243516620012c2565b3480156200030457600080fd5b506200030f6200133e565b60408051600160a060020a039092168252519081900360200190f35b3480156200033857600080fd5b506200030f6200134e565b3480156200035057600080fd5b506200035b6200135d565b60408051918252519081900360200190f35b3480156200037a57600080fd5b506200030f62001363565b3480156200039257600080fd5b50620003a9600160a060020a0360043516620013fd565b6040518080602001806020018660ff1660ff1681526020018060200185600460200280838360005b83811015620003eb578181015183820152602001620003d1565b50505050905001848103845289818151815260200191508051906020019080838360005b83811015620004295781810151838201526020016200040f565b50505050905090810190601f168015620004575780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b838110156200048c57818101518382015260200162000472565b50505050905090810190601f168015620004ba5780820380516001836020036101000a031916815260200191505b508481038252865181528651602091820191808901910280838360005b83811015620004f1578181015183820152602001620004d7565b505050509050019850505050505050505060405180910390f35b3480156200051857600080fd5b5062000184600160a060020a036004351662001672565b3480156200053c57600080fd5b5062000184600160a060020a03600435811690602435166044356200167d565b3480156200056957600080fd5b50620001ce600160a060020a036004351662001cf0565b3480156200058d57600080fd5b50620005aa600160a060020a036004358116906024351662001d6a565b6040518084608080838360005b83811015620005d1578181015183820152602001620005b7565b5050505090500183600260200280838360005b83811015620005fe578181015183820152602001620005e4565b5050505090500180602001828103825283818151815260200191508051906020019060200280838360005b838110156200064357818101518382015260200162000629565b5050505090500194505050505060405180910390f35b3480156200066657600080fd5b506200018462001e9f565b3480156200067e57600080fd5b506200018460048035600160a060020a0316906024803580820192908101359160443580820192908101359160643560ff169160843591820191013560a43560c43560e4356101043562001eac565b348015620006da57600080fd5b50620001ce62002015565b348015620006f257600080fd5b5062000244600160a060020a0360043516620020cb565b3480156200071657600080fd5b506200030f620020e0565b3480156200072e57600080fd5b506200030f620020ef565b3480156200074657600080fd5b5062000244600160a060020a0360043581169060243516620020fe565b3480156200077057600080fd5b506200030f6200211b565b3480156200078857600080fd5b5062000244600160a060020a03600435811690602435166200212a565b60038054600101908190556000908190819081620007c262001363565b600160a060020a03161415620007d757600080fd5b620007ea60078863ffffffff6200214016565b1515620007f657600080fd5b6200080a6007883363ffffffff6200217016565b15156200081657600080fd5b6200082960078863ffffffff620021a716565b15156200083557600080fd5b6200085e866200084d60078a63ffffffff620021ef16565b600601549063ffffffff620021ff16565b6200087160078963ffffffff620021ef16565b6005015410156200088157600080fd5b6200089460078863ffffffff6200221216565b6004805460088301546040805160e260020a630547cdcd028152600160a060020a039283169481019490945251939750169163151f3734916024808201926020929091908290030181600087803b158015620008ef57600080fd5b505af115801562000904573d6000803e3d6000fd5b505050506040513d60208110156200091b57600080fd5b50516005546008860154919450600160a060020a039081169163868b16d9911685886200094762001363565b89600501548a600601548b60070154600460009054906101000a9004600160a060020a03168d6003016040518a63ffffffff1660e060020a028152600401808a600160a060020a0316600160a060020a0316815260200189600160a060020a0316600160a060020a0316815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818154815260200191508054801562000a4b57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000a2c575b50509a5050505050505050505050602060405180830381600087803b15801562000a7457600080fd5b505af115801562000a89573d6000803e3d6000fd5b505050506040513d602081101562000aa057600080fd5b5051604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051919350600160a060020a0384169163704802759160248082019260009290919082900301818387803b15801562000b0757600080fd5b505af115801562000b1c573d6000803e3d6000fd5b5050505081600160a060020a0316638edd6eb66040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801562000b5f57600080fd5b505af115801562000b74573d6000803e3d6000fd5b505050506040513d602081101562000b8b57600080fd5b5051604080517f704802750000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163704802759160248082019260009290919082900301818387803b15801562000bf057600080fd5b505af115801562000c05573d6000803e3d6000fd5b5050505082600160a060020a03166370480275836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801562000c6557600080fd5b505af115801562000c7a573d6000803e3d6000fd5b5062000c959250600791508990508463ffffffff6200224516565b60008460060154111562000de9576004546008850154600160a060020a039182169163e1f21c6791168462000cd360078c8363ffffffff620023f916565b6005015473__Percent_______________________________6342318e3d90918a600601546040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b15801562000d3757600080fd5b505af415801562000d4c573d6000803e3d6000fd5b505050506040513d602081101562000d6357600080fd5b50516040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801562000dba57600080fd5b505af115801562000dcf573d6000803e3d6000fd5b505050506040513d602081101562000de657600080fd5b50505b62000df687838862000f4c565b600884015460408051600160a060020a038581168252602082018a905282513394909116927fc9cecf9fabde631d7582b55fdaf2a8800e68f0063771104348deff501b7c2827928290030190a3600354811462000e5257600080fd5b50505050505050565b62000e668162002469565b50565b606080600062000e8160078563ffffffff620024b316565b5160405190808252806020026020018201604052801562000eac578160200160208202803883390190505b509150600090505b62000ec760078563ffffffff620024b316565b5181101562000f2a5762000ee360078563ffffffff620024b316565b80518290811062000ef057fe5b6020908102909101015151825183908390811062000f0a57fe5b600160a060020a0390921660209283029091019091015260010162000eb4565b5092915050565b600062000f4660078363ffffffff620021a716565b92915050565b600080821162000f5b57600080fd5b62000f6e60078563ffffffff6200214016565b151562000f7a57600080fd5b62000f8e6007853363ffffffff6200217016565b151562000f9a57600080fd5b62000fae6007858563ffffffff620025ee16565b151562000fba57600080fd5b600480546040805160e260020a630547cdcd028152600160a060020a038881169482019490945290516000939092169163151f37349160248082019260209290919082900301818787803b1580156200101257600080fd5b505af115801562001027573d6000803e3d6000fd5b505050506040513d60208110156200103e57600080fd5b5051600160a060020a031614156200105557600080fd5b6200106e826200084d6007878763ffffffff620023f916565b620010826007868663ffffffff620023f916565b6005015410156200109257600080fd5b600480546040805160e260020a630547cdcd028152600160a060020a03888116948201949094529051929091169163151f3734916024808201926020929091908290030181600087803b158015620010e957600080fd5b505af1158015620010fe573d6000803e3d6000fd5b505050506040513d60208110156200111557600080fd5b5051905062001132826200084d6007878763ffffffff620023f916565b620011466007868663ffffffff620023f916565b60060155604080517fd0047acf000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301526024820185905260006044830181905292519084169263d0047acf92606480820193602093909283900390910190829087803b158015620011c157600080fd5b505af1158015620011d6573d6000803e3d6000fd5b505050506040513d6020811015620011ed57600080fd5b505060408051600160a060020a0385811682526020820185905282513393918816927fd663b1d1c366a683f19929e0e0f10df9ee4ba14bb42fb2f37e63605b0828da2a92908290030190a350505050565b600160a060020a03811615156200125457600080fd5b60028054600160a060020a031916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600062000f46818363ffffffff6200263916565b6060620012d86007848463ffffffff620023f916565b6007018054806020026020016040519081016040528092919081815260200182805480156200133157602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001312575b5050505050905092915050565b600454600160a060020a03165b90565b600454600160a060020a031681565b60015481565b600654604080517fe3ff76e4000000000000000000000000000000000000000000000000000000008152600160048201529051600092600160a060020a03169163e3ff76e491602480830192602092919082900301818787803b158015620013ca57600080fd5b505af1158015620013df573d6000803e3d6000fd5b505050506040513d6020811015620013f657600080fd5b5051905090565b606080600060606200140e620036bf565b6200142160078763ffffffff6200214016565b15156200142d57600080fd5b6200144060078763ffffffff6200221216565b805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620014c85780601f106200149c57610100808354040283529160200191620014c8565b820191906000526020600020905b815481529060010190602001808311620014aa57829003601f168201915b50505050509450620014e58660076200221290919063ffffffff16565b60019081018054604080516020600295841615610100026000190190931694909404601f810183900483028501830190915280845290830182828015620015705780601f10620015445761010080835404028352916020019162001570565b820191906000526020600020905b8154815290600101906020018083116200155257829003601f168201915b505050505093506200158d8660076200221290919063ffffffff16565b6002015460ff169250620015a960078763ffffffff6200221216565b6003018054806020026020016040519081016040528092919081815260200182805480156200160257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311620015e3575b505050505091506200161f8660076200221290919063ffffffff16565b6004015481526200163260078762002212565b6005015460208201526200164860078762002212565b6006015460408201526200165e60078762002212565b600701546060820152939592945090929091565b62000e668162002671565b60038054600101908190556000908190819081908190816200169e62001363565b600160a060020a03161415620016b357600080fd5b60008711620016c157600080fd5b620016d460078a63ffffffff6200214016565b1515620016e057600080fd5b620016f460078a3363ffffffff6200217016565b15156200170057600080fd5b6200171460078a8a63ffffffff620025ee16565b15156200172057600080fd5b6200173360078a63ffffffff6200221216565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519197508a96508891600160a060020a0388169163dd62ed3e9160448083019260209291908290030181600087803b158015620017a357600080fd5b505af1158015620017b8573d6000803e3d6000fd5b505050506040513d6020811015620017cf57600080fd5b50511015620017dd57600080fd5b8560020160009054906101000a900460ff1660ff1685600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200183157600080fd5b505af115801562001846573d6000803e3d6000fd5b505050506040513d60208110156200185d57600080fd5b505160ff16146200186d57600080fd5b60008660040154116200188257600062001912565b8673__Percent_______________________________6342318e3d909188600401546040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b158015620018e357600080fd5b505af4158015620018f8573d6000803e3d6000fd5b505050506040513d60208110156200190f57600080fd5b50515b935062001926878563ffffffff620026bb16565b60045490935062001943908690600160a060020a031685620026d3565b62001959856200195262001363565b86620026d3565b62001983836200197260078c8c63ffffffff620023f916565b600501549063ffffffff620021ff16565b6200199760078b8b63ffffffff620023f916565b60050155600480546040805160e260020a630547cdcd028152600160a060020a038d81169482019490945290516000939092169163151f37349160248082019260209290919082900301818787803b158015620019f357600080fd5b505af115801562001a08573d6000803e3d6000fd5b505050506040513d602081101562001a1f57600080fd5b5051600160a060020a0316141562001c005760028601548690600182019060ff1662001a4a620036de565b60ff8216604082015260608082528454600260001961010060018416150201909116049082018190528190602082019060808301908790801562001ad25780601f1062001aa65761010080835404028352916020019162001ad2565b820191906000526020600020905b81548152906001019060200180831162001ab457829003601f168201915b505083810382528554600260001961010060018416150201909116048082526020909101908690801562001b4a5780601f1062001b1e5761010080835404028352916020019162001b4a565b820191906000526020600020905b81548152906001019060200180831162001b2c57829003601f168201915b505095505050505050604051809103906000f08015801562001b70573d6000803e3d6000fd5b5060048054604080517fa0736912000000000000000000000000000000000000000000000000000000008152600160a060020a038e8116948201949094528385166024820152905193955091169163a07369129160448082019260009290919082900301818387803b15801562001be657600080fd5b505af115801562001bfb573d6000803e3d6000fd5b505050505b600480546040805160e260020a630547cdcd028152600160a060020a038d811694820185905291513394937f168493f0b2b7abab85259c2b490c5d5dff8fcde395381ac5084f554f7e9e2951938e938a93919092169163151f37349160248083019260209291908290030181600087803b15801562001c7e57600080fd5b505af115801562001c93573d6000803e3d6000fd5b505050506040513d602081101562001caa57600080fd5b505160408051600160a060020a039485168152602081019390935292168183015290519081900360600190a3600354811462001ce557600080fd5b505050505050505050565b606062001d0560078363ffffffff6200221216565b60030180548060200260200160405190810160405280929190818152602001828054801562001d5e57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001d3f575b50505050509050919050565b62001d74620036bf565b62001d7e620036ef565b606062001d946007868663ffffffff620025ee16565b151562001da057600080fd5b62001db46007868663ffffffff620023f916565b60010154835262001dc860078686620023f9565b60020154602084015262001ddf60078686620023f9565b60030154604084015262001df660078686620023f9565b60040154606084015262001e0d60078686620023f9565b60050154825262001e2160078686620023f9565b60060154602083015262001e3860078686620023f9565b60070180548060200260200160405190810160405280929190818152602001828054801562001e9157602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162001e72575b505050505090509250925092565b62001eaa3362002469565b565b62001f618c8c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508a8a8a80806020026020016040519081016040528093929190818152602001838360200280828437506007999897969594508e93508d92508c91508b905063ffffffff620028b716565b5033600160a060020a03168c600160a060020a03167f02b6ecbf927eba8b506d1ceacc9ca4887d0f3978e6e1b6b3c423ceefc021b31a88888f8f8f8f6040518080602001806020018060200184810384528a8a82818152602001925060200280828437909101858103845288815260200190508888808284379091018581038352868152602001905086868082843760405192018290039b50909950505050505050505050a3505050505050505050505050565b60608060006200202660076200309d565b5160405190808252806020026020018201604052801562002051578160200160208202803883390190505b509150600090505b6200206560076200309d565b51811015620020c5576200207a60076200309d565b8051829081106200208757fe5b9060200190602002015161010001518282815181101515620020a557fe5b600160a060020a0390921660209283029091019091015260010162002059565b50919050565b600062000f4660078363ffffffff6200214016565b600554600160a060020a031681565b600254600160a060020a031690565b6000620021146007848463ffffffff620025ee16565b9392505050565b600654600160a060020a031681565b6000620021146007848463ffffffff6200217016565b600160a060020a031660009081526001820160209081526040808320938252808320548352929052205460ff1690565b60006200217e848462002212565b600160a060020a0383166000908152600991909101602052604090205460ff1690509392505050565b6000620021b5838362002140565b1515620021c157600080fd5b50600160a060020a031660009081526003919091016020908152604080832083805290915290205460ff1690565b60006200211483836000620023f9565b6000828201838110156200211457600080fd5b600082600501620022248484620032ec565b815481106200222f57fe5b90600052602060002090600a0201905092915050565b600160a060020a03811615156200225b57600080fd5b620022678383620021a7565b15156200227357600080fd5b62002280838383620025ee565b156200228b57600080fd5b80620022988484620021ef565b8054600160a060020a031916600160a060020a0392909216919091179055620022c2838362002212565b60040154620022d28484620021ef565b60010155620022e2838362002212565b60050154620022f28484620021ef565b6002015562002302838362002212565b60060154620023128484620021ef565b6003015562002322838362002212565b60070154620023328484620021ef565b6004015562002342838362002212565b600301620023518484620021ef565b600701908054620023649291906200370a565b50600160a060020a03808316600090815260038501602090815260408083209385168352929052908120805460ff19166001179055620023a8908490849062003323565b600160a060020a039283166000818152600486016020908152604080832095909616825284815285822093909355908152600390940181528284208480528152828420805460ff1916905552812055565b600062002408848484620025ee565b15156200241457600080fd5b600160a060020a0380841660009081526002860160209081526040808320600489018352818420948716845293909152902054815481106200245257fe5b906000526020600020906008020190509392505050565b6200247c60008263ffffffff6200336c16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6060620024c1838362002140565b1515620024cd57600080fd5b600160a060020a0382166000908152600284016020908152604080832080548251818502810185019093528083529193909284015b82821015620025e25760008481526020908190206040805161010081018252600886029092018054600160a060020a031683526001810154838501526002810154838301526003810154606084015260048101546080840152600581015460a0840152600681015460c08401526007810180548351818702810187019094528084529394919360e086019392830182828015620025c957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311620025aa575b5050505050815250508152602001906001019062002502565b50505050905092915050565b6000620025fc848462002140565b15156200260857600080fd5b50600160a060020a039182166000908152600393909301602090815260408085209290931684525290205460ff1690565b6000600160a060020a03821615156200265157600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6200268460008263ffffffff620033bc16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b60008083831115620026cc57600080fd5b5050900390565b6000620027718285600160a060020a03166370a08231866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156200273657600080fd5b505af11580156200274b573d6000803e3d6000fd5b505050506040513d60208110156200276257600080fd5b50519063ffffffff620021ff16565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151929350908616916323b872dd916064808201926020929091908290030181600087803b158015620027e757600080fd5b505af1158015620027fc573d6000803e3d6000fd5b505050506040513d60208110156200281357600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915183928716916370a082319160248083019260209291908290030181600087803b1580156200287b57600080fd5b505af115801562002890573d6000803e3d6000fd5b505050506040513d6020811015620028a757600080fd5b505114620028b157fe5b50505050565b600080600160a060020a038b161515620028d057600080fd5b8651600010620028df57600080fd5b8573__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b1580156200293457600080fd5b505af415801562002949573d6000803e3d6000fd5b505050506040513d60208110156200296057600080fd5b50518015620029f1575060648673__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015620029c157600080fd5b505af4158015620029d6573d6000803e3d6000fd5b505050506040513d6020811015620029ed57600080fd5b5051105b1515620029fd57600080fd5b8473__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002a5257600080fd5b505af415801562002a67573d6000803e3d6000fd5b505050506040513d602081101562002a7e57600080fd5b5051801562002b0f575060648573__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002adf57600080fd5b505af415801562002af4573d6000803e3d6000fd5b505050506040513d602081101562002b0b57600080fd5b5051105b151562002b1b57600080fd5b8373__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002b7057600080fd5b505af415801562002b85573d6000803e3d6000fd5b505050506040513d602081101562002b9c57600080fd5b5051801562002c2d575060648473__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002bfd57600080fd5b505af415801562002c12573d6000803e3d6000fd5b505050506040513d602081101562002c2957600080fd5b5051105b151562002c3957600080fd5b8273__Percent_______________________________63520b006690916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002c8e57600080fd5b505af415801562002ca3573d6000803e3d6000fd5b505050506040513d602081101562002cba57600080fd5b5051801562002d4b575060648373__Percent_______________________________630fe9114790916040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b15801562002d1b57600080fd5b505af415801562002d30573d6000803e3d6000fd5b505050506040513d602081101562002d4757600080fd5b5051105b151562002d5757600080fd5b62002d638c8c62002140565b151562002f56578b600501805490508c60000160008d600160a060020a0316600160a060020a031681526020019081526020016000208190555060018c60010160008d600160a060020a0316600160a060020a0316815260200190815260200160002060008e60050180549050815260200190815260200160002060006101000a81548160ff0219169083151502179055508b600501610120604051908101604052808c81526020018b81526020018a60ff168152602001600060405190808252806020026020018201604052801562002e47578160200160208202803883390190505b50815260208082018a9052604082018990526060820188905260808201879052600160a060020a038f1660a09092019190915282546001810180855560009485529382902083518051600a9093029091019262002eaa928492909101906200375f565b50602082810151805162002ec592600185019201906200375f565b50604082015160028201805460ff191660ff9092169190911790556060820151805162002efd916003840191602090910190620037e0565b506080820151600482015560a0820151600582015560c0820151600682015560e082015160078201556101009091015160089091018054600160a060020a031916600160a060020a039092169190911790555062003018565b62002f6c62002f668d8d62002212565b6200340e565b8962002f798d8d62002212565b815162002f8a92602001906200375f565b508862002f988d8d62002212565b600101908051906020019062002fb09291906200375f565b508762002fbe8d8d62002212565b600201805460ff191660ff929092169190911790558562002fe08d8d62002212565b600401558462002ff18d8d62002212565b6005015583620030028d8d62002212565b6006015582620030138d8d62002212565b600701555b5060005b865181101562003054576200304b8c8c89848151811015156200303b57fe5b906020019060200201516200349d565b6001016200301c565b620030608c8c620021a7565b15156200307357620030738c8c6200356f565b600160a060020a038b16600090815260208d905260409020549150509a9950505050505050505050565b606081600501805480602002602001604051908101604052809291908181526020016000905b82821015620032e157600084815260209081902060408051600a8602909201805460026001821615610100026000190190911604601f81018590049094028301610140908101909252610120830184815292939092849290918491840182828015620031735780601f10620031475761010080835404028352916020019162003173565b820191906000526020600020905b8154815290600101906020018083116200315557829003601f168201915b50505050508152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620032195780601f10620031ed5761010080835404028352916020019162003219565b820191906000526020600020905b815481529060010190602001808311620031fb57829003601f168201915b5050509183525050600282015460ff1660208083019190915260038301805460408051828502810185018252828152940193928301828280156200328757602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162003268575b50505091835250506004820154602080830191909152600583015460408301526006830154606083015260078301546080830152600890920154600160a060020a031660a0909101529082526001929092019101620030c3565b505050509050919050565b6000620032fa838362002140565b15156200330657600080fd5b50600160a060020a03166000908152602091909152604090205490565b600062003332848484620025ee565b15156200333e57600080fd5b50600160a060020a039182166000908152600493909301602090815260408085209290931684525290205490565b600160a060020a03811615156200338257600080fd5b6200338e828262002639565b15156200339a57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0381161515620033d257600080fd5b620033de828262002639565b15620033e957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600381015460009081101562003499575060005b60038201548110156200348657600082600901600084600301848154811015156200344957fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff191691151591909117905560010162003422565b600062003497600384018262003838565b505b5050565b600160a060020a0381161515620034b357600080fd5b620034c083838362002170565b15620034cb57600080fd5b620034d7838362002212565b60030180546001808201835560009283526020909220018054600160a060020a031916600160a060020a03841617905562003513848462002212565b600160a060020a0383811660008181526009939093016020526040808420805460ff1916951515959095179094559251908516917ffa5891b558f0fb64bcbdc5f17fa7bbee3a47f97f4c8f523556d0494941a1e18b91a3505050565b60006200357d8383620021a7565b156200358857600080fd5b50600160a060020a0381166000818152600284016020818152604080842080546003890184528286208680528452828620805460ff191660011790558686526004890184528286208680528452828620819055958552928252805161010081018252848152808301859052808201859052606081018590526080810185905260a0810185905260c081018590528151858152928301909152919260e08301919050905281546001808201808555600094855260209485902084516008909402018054600160a060020a031916600160a060020a03909416939093178355838501519183019190915560408301516002830155606083015160038301556080830151600483015560a0830151600583015560c0830151600683015560e08301518051919462000e5292600785019290910190620037e0565b6080604051908101604052806004906020820280388339509192915050565b60405161168380620038a483390190565b60408051808201825290600290829080388339509192915050565b8280548282559060005260206000209081019282156200374d5760005260206000209182015b828111156200374d57825482559160010191906001019062003730565b506200375b9291506200385f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620037a257805160ff1916838001178555620037d2565b82800160010185558215620037d2579182015b82811115620037d2578251825591602001919060010190620037b5565b506200375b92915062003886565b8280548282559060005260206000209081019282156200374d579160200282015b828111156200374d5782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019062003801565b81548183558181111562003497576000838152602090206200349791810190830162003886565b6200134b91905b808211156200375b578054600160a060020a031916815560010162003866565b6200134b91905b808211156200375b57600081556001016200388d560060806040523480156200001157600080fd5b50604051620016833803806200168383398101604090815281516020830151918301519083019291909101908282826200005433640100000000620000f1810204565b825162000069906001906020860190620001d6565b5081516200007f906002906020850190620001d6565b506003805460ff90921660ff19909216919091179055505060078054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a15050506200027b565b6200010c600082640100000000620012ec6200014382021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b600160a060020a03811615156200015957600080fd5b6200016e82826401000000006200019e810204565b156200017957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001b657600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021957805160ff191683800117855562000249565b8280016001018555821562000249579182015b82811115620002495782518255916020019190600101906200022c565b50620002579291506200025b565b5090565b6200027891905b8082111562000257576000815560010162000262565b90565b6113f8806200028b6000396000f3006080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d75780631785f53c1461020f57806318160ddd146102325780632348238c1461025957806323b872dd1461027a57806324d7806c146102a4578063313ce567146102c557806339509351146102f057806342966c68146103145780634afbf5ee1461032c5780636618846314610350578063704802751461037457806370a082311461039557806379cc6790146103b65780638bad0c0a146103da57806395d89b41146103ef5780639d2e477714610404578063a457c2d714610431578063a9059cbb14610455578063c6dbdf6114610479578063d0047acf146104aa578063d294cb0f146104d7578063d73dd623146104f8578063dd62ed3e1461051c575b600080fd5b34801561015957600080fd5b50610162610543565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019c578181015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e357600080fd5b506101fb600160a060020a03600435166024356105d8565b604080519115158252519081900360200190f35b34801561021b57600080fd5b50610230600160a060020a0360043516610656565b005b34801561023e57600080fd5b50610247610679565b60408051918252519081900360200190f35b34801561026557600080fd5b50610230600160a060020a036004351661067f565b34801561028657600080fd5b506101fb600160a060020a0360043581169060243516604435610712565b3480156102b057600080fd5b506101fb600160a060020a036004351661075a565b3480156102d157600080fd5b506102da610772565b6040805160ff9092168252519081900360200190f35b3480156102fc57600080fd5b506101fb600160a060020a036004351660243561077b565b34801561032057600080fd5b5061023060043561082b565b34801561033857600080fd5b50610247600160a060020a0360043516602435610835565b34801561035c57600080fd5b506101fb600160a060020a036004351660243561085d565b34801561038057600080fd5b50610230600160a060020a0360043516610870565b3480156103a157600080fd5b50610247600160a060020a0360043516610890565b3480156103c257600080fd5b50610230600160a060020a03600435166024356108ab565b3480156103e657600080fd5b506102306108b9565b3480156103fb57600080fd5b506101626108c4565b34801561041057600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610922565b34801561043d57600080fd5b506101fb600160a060020a036004351660243561096d565b34801561046157600080fd5b506101fb600160a060020a03600435166024356109b8565b34801561048557600080fd5b5061048e6109f7565b60408051600160a060020a039092168252519081900360200190f35b3480156104b657600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610a06565b3480156104e357600080fd5b50610247600160a060020a0360043516610a47565b34801561050457600080fd5b506101fb600160a060020a0360043516602435610b50565b34801561052857600080fd5b50610247600160a060020a0360043581169060243516610b5c565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b820191906000526020600020905b8154815290600101906020018083116105b157829003601f168201915b5050505050905090565b6000600160a060020a03831615156105ef57600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600754600160a060020a0316331461066d57600080fd5b61067681610b87565b50565b60065490565b600754600160a060020a0316331461069657600080fd5b600160a060020a03811615156106ab57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600061071d84610bcf565b600160a060020a038316151561073257600080fd5b61073b84610a47565b82111561074757600080fd5b610752848484610d55565b949350505050565b600061076c818363ffffffff610de816565b92915050565b60035460ff1690565b6000600160a060020a038316151561079257600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff610e1f16565b336000818152600560209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6106763382610e31565b600160a060020a03919091166000908152600860209081526040808320938352929052205490565b6000610869838361096d565b9392505050565b600754600160a060020a0316331461088757600080fd5b61067681610e59565b600160a060020a031660009081526004602052604090205490565b6108b58282610ea1565b5050565b6108c233610b87565b565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b600061092d3361075a565b151561093857600080fd5b61094284846109b8565b50428263ffffffff1611156109635761096333858463ffffffff1686610ec9565b5060019392505050565b6000600160a060020a038316151561098457600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff61100316565b60006109c333610bcf565b600160a060020a03831615156109d857600080fd5b6109e133610a47565b8211156109ed57600080fd5b610869838361101a565b600754600160a060020a031690565b6000610a113361075a565b1515610a1c57600080fd5b610a268484611030565b428263ffffffff161115610963576109636000858463ffffffff1686610ec9565b600080610a5383610890565b600160a060020a03841660009081526008602090815260408083208380529091529020549092501515610a8557610b4a565b5060005b600160a060020a038316600090815260096020526040902054811015610b4a57600160a060020a0383166000908152600960205260409020805442919083908110610ad057fe5b9060005260206000200154101515610b4257600160a060020a0383166000908152600860209081526040808320600990925282208054610b3f93919085908110610b1657fe5b90600052602060002001548152602001908152602001600020548361100390919063ffffffff16565b91505b600101610a89565b50919050565b6000610869838361077b565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610b9860008263ffffffff6110dc16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515610be657600080fd5b600160a060020a03821660009081526008602090815260408083208380529091529020541515610c15576108b5565b5060005b600160a060020a0382166000908152600960205260409020548110156108b557600160a060020a0382166000908152600960205260409020805442919083908110610c6057fe5b90600052602060002001541015610d4d57600160a060020a0382166000908152600860209081526040808320600990925282208054610ceb93919085908110610ca557fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526008845282822082805290935220549063ffffffff61100316565b600160a060020a03831660008181526008602090815260408083208380528083528184209590955592825260099052908120805491929183919085908110610d2f57fe5b90600052602060002001548152602001908152602001600020819055505b600101610c19565b600160a060020a0383166000908152600560209081526040808320338452909152812054821115610d8557600080fd5b600160a060020a0384166000908152600560209081526040808320338452909152902054610db9908363ffffffff61100316565b600160a060020a0385166000908152600560209081526040808320338452909152902055610963848484611128565b6000600160a060020a0382161515610dff57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b60008282018381101561086957600080fd5b610e3a82610bcf565b610e4382610a47565b811115610e4f57600080fd5b6108b5828261121c565b610e6a60008263ffffffff6112ec16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b610eaa82610bcf565b610eb382610a47565b811115610ebf57600080fd5b6108b5828261133a565b600160a060020a0383166000908152600860209081526040808320838052909152902054610efd908263ffffffff610e1f16565b600160a060020a03841660009081526008602090815260408083208380529091528082209290925583815220541515610f5c57600160a060020a0383166000908152600960209081526040822080546001810182559083529120018290555b600160a060020a0383166000908152600860209081526040808320858452909152902054610f90908263ffffffff610e1f16565b600160a060020a0380851660008181526008602090815260408083208884528252918290209490945580519288168352928201528082018390526060810184905290517f4dd99b63a45b55ac0b6999b9307251132e130b3e3f06c04c92b946c0f9e0dc279181900360800190a150505050565b6000808383111561101357600080fd5b5050900390565b6000611027338484611128565b50600192915050565b600160a060020a038216151561104557600080fd5b600654611058908263ffffffff610e1f16565b600655600160a060020a038216600090815260046020526040902054611084908263ffffffff610e1f16565b600160a060020a03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a03811615156110f157600080fd5b6110fb8282610de8565b151561110657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03831660009081526004602052604090205481111561114d57600080fd5b600160a060020a038216151561116257600080fd5b600160a060020a03831660009081526004602052604090205461118b908263ffffffff61100316565b600160a060020a0380851660009081526004602052604080822093909355908416815220546111c0908263ffffffff610e1f16565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a038216151561123157600080fd5b600160a060020a03821660009081526004602052604090205481111561125657600080fd5b600654611269908263ffffffff61100316565b600655600160a060020a038216600090815260046020526040902054611295908263ffffffff61100316565b600160a060020a0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a038116151561130157600080fd5b61130b8282610de8565b1561131557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038216600090815260056020908152604080832033845290915290205481111561136a57600080fd5b600160a060020a038216600090815260056020908152604080832033845290915290205461139e908263ffffffff61100316565b600160a060020a03831660009081526005602090815260408083203384529091529020556108b58282610e315600a165627a7a72305820062db0e6b0457b0016fe92cec01a2f813c664af8fd4f12281ebacf073384bab80029a165627a7a72305820f87409a47474d3ddb21621e55ba28a2d47e744650c13ac0f7ae5a674102b0d290029", + "sourceMap": "191:476:2:-;;;392:273;8:9:-1;5:2;;;30:1;27;20:12;5:2;392:273:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;306:21:3;316:10;306:9;;;;:21;:::i;:::-;123:7:48;:18;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;417:28;;;-1:-1:-1;;;;;436:8:55;;;;417:28;;;;;;;;;;;;559:1:62;543:13;:17;-1:-1:-1;;;;;1889:22:1;;;;1881:31;;;;;;-1:-1:-1;;;;;1930:22:1;;;;1922:31;;;;;;-1:-1:-1;;;;;1971:24:1;;;;1963:33;;;;;;2007:9;:22;;-1:-1:-1;;;;;;2007:22:1;;;-1:-1:-1;;;;;2007:22:1;;;;;;;2039:7;:18;;;;;;;;;;;;;;2067:7;:18;;;;;;;;;;-1:-1:-1;191:476:2;;-1:-1:-1;;;;191:476:2;612:115:3;667:19;:6;678:7;667:10;;;;;;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;191:476:2:-;;;;;;;", + "deployedSourceMap": "191:476:2:-;;;;;;;;;-1:-1:-1;;;191:476:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5171:1784:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5171:1784:1;-1:-1:-1;;;;;5171:1784:1;;;;;;;;;;;2195:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2195:97:1;-1:-1:-1;;;;;2195:97:1;;;;;9687:346;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9687:346:1;-1:-1:-1;;;;;9687:346:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9687:346:1;;;;;;;;;;;;;;;;;10216:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10216:145:1;-1:-1:-1;;;;;10216:145:1;;;;;;;;;;;;;;;;;;;;;;;6961:1015;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6961:1015:1;-1:-1:-1;;;;;6961:1015:1;;;;;;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;-1:-1:-1;;;;;855:171:55;;;;;423:104:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;423:104:3;-1:-1:-1;;;;;423:104:3;;;;;8117:176:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8117:176:1;-1:-1:-1;;;;;8117:176:1;;;;;;;;;;8299:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8299:97:1;;;;;;;;-1:-1:-1;;;;;8299:97:1;;;;;;;;;;;;;;980:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;980:32:1;;;;53:19:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:48;;;;;;;;;;;;;;;;;;;;11225:114:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11225:114:1;;;;8402:689;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8402:689:1;-1:-1:-1;;;;;8402:689:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8402:689:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8402:689:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8402:689:1;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8402:689:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8402:689:1;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8402:689:1;;;;;;;;;;;;;;;;;;;;;;;2098:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2098:91:1;-1:-1:-1;;;;;2098:91:1;;;;;3109:1557;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3109:1557:1;-1:-1:-1;;;;;3109:1557:1;;;;;;;;;;;;7982:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7982:129:1;-1:-1:-1;;;;;7982:129:1;;;;;10367:852;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10367:852:1;-1:-1:-1;;;;;10367:852:1;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10367:852:1;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10367:852:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10367:852:1;;;;;;;;;;;;;;;;;;;533:73:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;533:73:3;;;;2298:634:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2298:634:1;;;;-1:-1:-1;;;;;2298:634:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9097:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9097:298:1;;;;9401:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9401:131:1;-1:-1:-1;;;;;9401:131:1;;;;;1018:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1018:35:1;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;10039:171:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10039:171:1;-1:-1:-1;;;;;10039:171:1;;;;;;;;;;1059:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1059:23:1;;;;9538:143;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9538:143:1;-1:-1:-1;;;;;9538:143:1;;;;;;;;;;5171:1784;954:13:62;:18;;971:1;954:18;;;;;5705:49:1;;;;;;;5281:15;:13;:15::i;:::-;-1:-1:-1;;;;;5281:29:1;;;5273:38;;;;;;5329:35;:9;5358:5;5329:35;:28;:35;:::i;:::-;5321:44;;;;;;;;5383:42;:9;5407:5;5414:10;5383:42;:23;:42;:::i;:::-;5375:51;;;;;;;;5444:43;:9;5481:5;5444:43;:36;:43;:::i;:::-;5436:52;;;;;;;;5602:82;5670:13;5602:43;:9;5639:5;5602:43;:36;:43;:::i;:::-;:63;;;;:82;:67;:82;:::i;:::-;5519:43;:9;5556:5;5519:43;:36;:43;:::i;:::-;:63;;;:165;;5498:196;;;;;;5757:25;:9;5776:5;5757:25;:18;:25;:::i;:::-;5809:9;;;5836:17;;;;5809:45;;;-1:-1:-1;;;;;5809:45:1;;-1:-1:-1;;;;;5836:17:1;;;5809:45;;;;;;;;5705:77;;-1:-1:-1;5809:9:1;;:26;;:45;;;;;;;;;;;;;;;:9;;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;5809:45:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5809:45:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5809:45:1;5891:7;;5928:17;;;;5809:45;;-1:-1:-1;;;;;;5891:7:1;;;;:23;;5928:17;5809:45;5988:5;6007:15;:13;:15::i;:::-;6036:11;:25;;;6075:11;:32;;;6121:11;:29;;;6172:9;;;;;;;;;-1:-1:-1;;;;;6172:9:1;6196:11;:18;;5891:333;;;;;-1:-1:-1;;;5891:333:1;;;;;;;-1:-1:-1;;;;;5891:333:1;-1:-1:-1;;;;;5891:333:1;;;;;;-1:-1:-1;;;;;5891:333:1;-1:-1:-1;;;;;5891:333:1;;;;;;;;;;;-1:-1:-1;;;;;5891:333:1;-1:-1:-1;;;;;5891:333:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5891:333:1;-1:-1:-1;;;;;5891:333:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5891:333:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5891:333:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5891:333:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5891:333:1;6235:30;;;;;;6254:10;6235:30;;;;;;5891:333;;-1:-1:-1;;;;;;6235:18:1;;;;;:30;;;;;-1:-1:-1;;6235:30:1;;;;;;;;-1:-1:-1;6235:18:1;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;6235:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6235:30:1;;;;6275:9;-1:-1:-1;;;;;6275:17:1;;:19;;;;;-1:-1:-1;;;6275:19:1;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6275:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6275:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6275:19:1;:40;;;;;;6304:10;6275:40;;;;;;-1:-1:-1;;;;;6275:28:1;;;;;;:40;;;;;-1:-1:-1;;6275:40:1;;;;;;;;-1:-1:-1;6275:28:1;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;6275:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6275:40:1;;;;6325:6;-1:-1:-1;;;;;6325:15:1;;6349:9;6325:35;;;;;-1:-1:-1;;;6325:35:1;;;;;;;-1:-1:-1;;;;;6325:35:1;-1:-1:-1;;;;;6325:35:1;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6325:35:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;6371:56:1;;-1:-1:-1;6371:9:1;;-1:-1:-1;6401:5:1;;-1:-1:-1;6416:9:1;6371:56;:29;:56;:::i;:::-;6477:1;6442:11;:32;;;:36;6438:336;;;6494:9;;6536:17;;;;-1:-1:-1;;;;;6494:9:1;;;;:17;;6536;6580:9;6608:58;:9;6640:5;6580:9;6608:58;:31;:58;:::i;:::-;:78;;;:107;;;;6716:11;:32;;;6608:141;;;;;-1:-1:-1;;;6608:141:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6608:141:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6608:141:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6608:141:1;6494:269;;;-1:-1:-1;;;6494:269:1;;;;;;-1:-1:-1;;;;;6494:269:1;;;;;;;;;;;;;;;;;;;;;;;;;;6608:141;;6494:269;;;;;;;-1:-1:-1;6494:269:1;;;;5:2:-1;;;;30:1;27;20:12;5:2;6494:269:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6494:269:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6438:336:1;6784:62;6805:5;6820:9;6832:13;6784:20;:62::i;:::-;6883:17;;;;6862:86;;;-1:-1:-1;;;;;6862:86:1;;;;;;;;;;;;;6902:10;;6883:17;;;;6862:86;;;;;;;;1051:13:62;;1035:29;;1027:38;;;;;;5171:1784:1;;;;;;;:::o;2195:97::-;2263:22;2276:8;2263:12;:22::i;:::-;2195:97;:::o;9687:346::-;9748:9;;9863:6;9809:30;:9;9833:5;9809:30;:23;:30;:::i;:::-;:37;9795:52;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9795:52:1;;9769:78;;9872:1;9863:10;;9858:145;9879:30;:9;9903:5;9879:30;:23;:30;:::i;:::-;:37;9875:1;:41;9858:145;;;9949:30;:9;9973:5;9949:30;:23;:30;:::i;:::-;:33;;9980:1;;9949:33;;;;;;;;;;;;;;;:43;9937:9;;:6;;9944:1;;9937:9;;;;;;-1:-1:-1;;;;;9937:55:1;;;:9;;;;;;;;;;:55;9918:3;;9858:145;;;-1:-1:-1;10020:6:1;9687:346;-1:-1:-1;;9687:346:1:o;10216:145::-;10288:4;10311:43;:9;10348:5;10311:43;:36;:43;:::i;:::-;10304:50;10216:145;-1:-1:-1;;10216:145:1:o;6961:1015::-;7577:14;7070:17;;;7062:26;;;;;;7106:35;:9;7135:5;7106:35;:28;:35;:::i;:::-;7098:44;;;;;;;;7160:42;:9;7184:5;7191:10;7160:42;:23;:42;:::i;:::-;7152:51;;;;;;;;7221;:9;7255:5;7262:9;7221:51;:33;:51;:::i;:::-;7213:60;;;;;;;;7299:9;;;:33;;;-1:-1:-1;;;;;7299:33:1;;-1:-1:-1;;;;;7299:33:1;;;;;;;;;;;;-1:-1:-1;;7299:9:1;;;;:26;;:33;;;;;;;;;;;;;;;-1:-1:-1;7299:9:1;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;7299:33:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7299:33:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7299:33:1;-1:-1:-1;;;;;7291:56:1;;;7283:65;;;;;;7468:88;7542:13;7468:49;:9;7500:5;7507:9;7468:49;:31;:49;:::i;:88::-;7379:49;:9;7411:5;7418:9;7379:49;:31;:49;:::i;:::-;:69;;;:177;;7358:208;;;;;;7594:9;;;:33;;;-1:-1:-1;;;;;7594:33:1;;-1:-1:-1;;;;;7594:33:1;;;;;;;;;;;;:9;;;;;:26;;:33;;;;;;;;;;;;;;;:9;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;7594:33:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7594:33:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7594:33:1;;-1:-1:-1;7710:118:1;7814:13;7710:62;:9;7755:5;7762:9;7710:62;:44;:62;:::i;:118::-;7638:49;:9;7670:5;7677:9;7638:49;:31;:49;:::i;:::-;:69;;:190;7839:40;;;;;;-1:-1:-1;;;;;7839:40:1;;;;;;;;;;;;;7877:1;7839:40;;;;;;;;:11;;;;;;:40;;;;;;;;;;;;;;;;;;:11;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;7839:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7839:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7895:74:1;;;-1:-1:-1;;;;;7895:74:1;;;;;7839:40;7895:74;;;;;;;7923:10;;7895:74;;;;;;;;;;;;;6961:1015;;;;:::o;855:171:55:-;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;;;;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;423:104:3:-;478:4;501:19;478:4;512:7;501:19;:10;:19;:::i;8117:176:1:-;8202:9;8230:49;:9;8262:5;8269:9;8230:49;:31;:49;:::i;:::-;:56;;8223:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8223:63:1;;;;;;;;;;;;;;;;;;;;;;;8117:176;;;;:::o;8299:97::-;8380:9;;-1:-1:-1;;;;;8380:9:1;8299:97;;:::o;980:32::-;;;-1:-1:-1;;;;;980:32:1;;:::o;53:19:48:-;;;;:::o;11225:114:1:-;11296:7;;:36;;;;;;:7;:36;;;;;;11270:7;;-1:-1:-1;;;;;11296:7:1;;:17;;:36;;;;;;;;;;;;;;11270:7;11296;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;11296:36:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11296:36:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11296:36:1;;-1:-1:-1;11225:114:1;:::o;8402:689::-;8466:11;8479:13;8494:14;8510:16;8528:19;;:::i;:::-;8571:35;:9;8600:5;8571:35;:28;:35;:::i;:::-;8563:44;;;;;;;;8625:25;:9;8644:5;8625:25;:18;:25;:::i;:::-;8618:37;;;;;;;;;;;;;-1:-1:-1;;8618:37:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:25;8693:5;8674:9;:18;;:25;;;;:::i;:::-;:32;;;;8665:41;;;;;;;;;;;;;-1:-1:-1;;8665:41:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:32;8665:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8727:25;8746:5;8727:9;:18;;:25;;;;:::i;:::-;:34;;;;;;-1:-1:-1;8780:25:1;:9;8799:5;8780:25;:18;:25;:::i;:::-;:32;;8771:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8771:41:1;;;;;;;;;;;;;;;;;;;;;;;8839:25;8858:5;8839:9;:18;;:25;;;;:::i;:::-;:36;;;8822:53;;8902:25;:9;8921:5;8902:18;:25::i;:::-;:39;;;8885:14;;;:56;8968:25;:9;8987:5;8968:18;:25::i;:::-;:46;;;8951:14;;;:63;9041:25;:9;9060:5;9041:18;:25::i;:::-;:43;;;9024:14;;;:60;8402:689;;;;-1:-1:-1;8402:689:1;;;;:::o;2098:91::-;2163:19;2173:8;2163:9;:19::i;3109:1557::-;954:13:62;:18;;971:1;954:18;;;;;3471:49:1;;;;;;;;;;;3216:15;:13;:15::i;:::-;-1:-1:-1;;;;;3216:29:1;;;3208:38;;;;;;3273:1;3264:10;;3256:19;;;;;;3293:35;:9;3322:5;3293:35;:28;:35;:::i;:::-;3285:44;;;;;;;;3347:42;:9;3371:5;3378:10;3347:42;:23;:42;:::i;:::-;3339:51;;;;;;;;3408;:9;3442:5;3449:9;3408:51;:33;:51;:::i;:::-;3400:60;;;;;;;;3523:25;:9;3542:5;3523:25;:18;:25;:::i;:::-;3628:50;;;;;;3652:10;3628:50;;;;3672:4;3628:50;;;;;;3471:77;;-1:-1:-1;3603:5:1;;-1:-1:-1;3682:6:1;;-1:-1:-1;;;;;3628:23:1;;;;;:50;;;;;;;;;;;;;;-1:-1:-1;3628:23:1;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;3628:50:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3628:50:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3628:50:1;:60;;3620:69;;;;;;3735:11;:20;;;;;;;;;;;;3707:48;;:13;-1:-1:-1;;;;;3707:22:1;;:24;;;;;-1:-1:-1;;;3707:24:1;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3707:24:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3707:24:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3707:24:1;:48;;;3699:57;;;;;;3803:1;3778:11;:22;;;:26;:95;;3872:1;3778:95;;;3819:6;:14;;;;3834:11;:22;;;3819:38;;;;;-1:-1:-1;;;3819:38:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3819:38:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3819:38:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3819:38:1;3778:95;3767:106;-1:-1:-1;3907:15:1;:6;3767:106;3907:15;:10;:15;:::i;:::-;3977:9;;3883:39;;-1:-1:-1;3933:72:1;;3961:13;;-1:-1:-1;;;;;3977:9:1;3883:39;3933:20;:72::i;:::-;4015:65;4043:13;4059:15;:13;:15::i;:::-;4076:3;4015:20;:65::i;:::-;4163:121;4267:16;4163:62;:9;4208:5;4215:9;4163:62;:44;:62;:::i;:::-;:99;;;;:121;:103;:121;:::i;:::-;4091:49;:9;4123:5;4130:9;4091:49;:31;:49;:::i;:::-;:69;;:193;4307:9;;;:33;;;-1:-1:-1;;;;;4307:33:1;;-1:-1:-1;;;;;4307:33:1;;;;;;;;;;;;-1:-1:-1;;4307:9:1;;;;:26;;:33;;;;;;;;;;;;;;;-1:-1:-1;4307:9:1;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;4307:33:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4307:33:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4307:33:1;-1:-1:-1;;;;;4299:56:1;;4295:246;;;4437:20;;;;4399:11;;4417:18;;;;4437:20;;4388:70;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;4388:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4388:70:1;;;;;;;;-1:-1:-1;;4388:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;4473:9:1;;;:57;;;;;;-1:-1:-1;;;;;4473:57:1;;;;;;;;;;;;;;;;;;;4371:87;;-1:-1:-1;4473:9:1;;;:27;;:57;;;;;:9;;:57;;;;;;;;:9;;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;4473:57:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4473:57:1;;;;4295:246;4624:9;;;:33;;;-1:-1:-1;;;;;4624:33:1;;-1:-1:-1;;;;;4556:103:1;;;4624:33;;;;;;;;4575:10;;4556:103;;;4587:9;;4598:16;;4624:9;;;;;:26;;:33;;;;;;;;;;;;;;-1:-1:-1;4624:9:1;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;4624:33:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4624:33:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4624:33:1;4556:103;;;-1:-1:-1;;;;;4556:103:1;;;;;4624:33;4556:103;;;;;;;;;;;;;;;;;;;;;;1051:13:62;;1035:29;;1027:38;;;;;;3109:1557:1;;;;;;;;;:::o;7982:129::-;8044:9;8072:25;:9;8091:5;8072:25;:18;:25;:::i;:::-;:32;;8065:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8065:39:1;;;;;;;;;;;;;;;;;;;;;;;7982:129;;;:::o;10367:852::-;10454:19;;:::i;:::-;10475:15;;:::i;:::-;10492:16;10532:51;:9;10566:5;10573:9;10532:51;:33;:51;:::i;:::-;10524:60;;;;;;;;10612:49;:9;10644:5;10651:9;10612:49;:31;:49;:::i;:::-;:60;;;10595:77;;10699:49;:9;10731:5;10738:9;10699:31;:49::i;:::-;:63;;;10682:14;;;:80;10789:49;:9;10821:5;10828:9;10789:31;:49::i;:::-;:70;;;10772:14;;;:87;10886:49;:9;10918:5;10925:9;10886:31;:49::i;:::-;:67;;;10869:14;;;:84;10976:49;:9;11008:5;11015:9;10976:31;:49::i;:::-;:69;;;10963:82;;11068:49;:9;11100:5;11107:9;11068:31;:49::i;:::-;:69;;;11055:10;;;:82;11156:49;:9;11188:5;11195:9;11156:31;:49::i;:::-;:56;;11147:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11147:65:1;;;;;;;;;;;;;;;;;;;;;;;10367:852;;;;;:::o;533:73:3:-;575:24;588:10;575:12;:24::i;:::-;533:73::o;2298:634:1:-;2606:246;2641:5;2660:4;;2606:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2678:6;;2606:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2698:8;2720:6;;2606:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2606:9:1;;:246;;;;;-1:-1:-1;2740:10:1;;-1:-1:-1;2764:13:1;;-1:-1:-1;2791:20:1;;-1:-1:-1;2825:17:1;;-1:-1:-1;2606:246:1;:21;:246;:::i;:::-;;2892:10;-1:-1:-1;;;;;2868:57:1;2885:5;-1:-1:-1;;;;;2868:57:1;;2904:6;;2912:4;;2918:6;;2868:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2868:57:1;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2868:57:1;;;;;;;;;;;;;;-1:-1:-1;2868:57:1;;-1:-1:-1;;;;;;;;;;2868:57:1;2298:634;;;;;;;;;;;;:::o;9097:298::-;9141:9;9162:23;9247:6;9202:21;:9;:19;:21::i;:::-;:28;9188:43;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9188:43:1;;9162:69;;9256:1;9247:10;;9242:123;9263:21;:9;:19;:21::i;:::-;:28;9259:1;:32;9242:123;;;9324:21;:9;:19;:21::i;:::-;:24;;9346:1;;9324:24;;;;;;;;;;;;;;:30;;;9312:6;9319:1;9312:9;;;;;;;;;;-1:-1:-1;;;;;9312:42:1;;;:9;;;;;;;;;;:42;9293:3;;9242:123;;;-1:-1:-1;9382:6:1;9097:298;-1:-1:-1;9097:298:1:o;9401:131::-;9467:4;9490:35;:9;9519:5;9490:35;:28;:35;:::i;1018:::-;;;-1:-1:-1;;;;;1018:35:1;;:::o;664:75:55:-;726:8;;-1:-1:-1;;;;;726:8:55;664:75;:::o;10039:171:1:-;10129:4;10152:51;:9;10186:5;10193:9;10152:51;:33;:51;:::i;:::-;10145:58;10039:171;-1:-1:-1;;;10039:171:1:o;1059:23::-;;;-1:-1:-1;;;;;1059:23:1;;:::o;9538:143::-;9614:4;9637:37;:9;9661:5;9668;9637:37;:23;:37;:::i;1868:176:23:-;-1:-1:-1;;;;;1986:26:23;1963:4;1986:26;;;:19;;;:26;;;;;;;;2013:23;;;;;;;1986:51;;;;;;;;;;1868:176::o;2252:178::-;2357:4;2380:26;2389:9;2400:5;2380:8;:26::i;:::-;-1:-1:-1;;;;;2380:43:23;;;;;;:36;;;;;:43;;;;;;;;;-1:-1:-1;2252:178:23;;;;;:::o;2910:236::-;3013:4;3037:36;3056:9;3067:5;3037:18;:36::i;:::-;3029:45;;;;;;;;-1:-1:-1;;;;;;3092:35:23;;;;;:28;;;;;:35;;;;;;;;:47;;;;;;;;;;;;2910:236::o;3152:209::-;3263:9;3303:51;3325:9;3336:5;3351:1;3303:21;:51::i;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;3975:192:23;4068:16;4115:9;:15;;4131:28;4142:9;4153:5;4131:10;:28::i;:::-;4115:45;;;;;;;;;;;;;;;;;;4108:52;;3975:192;;;;:::o;7956:1218::-;-1:-1:-1;;;;;8075:23:23;;;;8067:32;;;;;;8117:44;8144:9;8155:5;8117:26;:44::i;:::-;8109:53;;;;;;;;8181:52;8205:9;8216:5;8223:9;8181:23;:52::i;:::-;8180:53;8172:62;;;;;;8302:9;8245:44;8272:9;8283:5;8245:26;:44::i;:::-;:66;;-1:-1:-1;;;;;;8245:66:23;-1:-1:-1;;;;;8245:66:23;;;;;;;;;;8379:26;8388:9;8399:5;8379:8;:26::i;:::-;:37;;;8321:44;8348:9;8359:5;8321:26;:44::i;:::-;:55;;:95;8487:26;8496:9;8507:5;8487:8;:26::i;:::-;:40;;;8426:44;8453:9;8464:5;8426:26;:44::i;:::-;:58;;:101;8605:26;8614:9;8625:5;8605:8;:26::i;:::-;:47;;;8537:44;8564:9;8575:5;8537:26;:44::i;:::-;:65;;:115;8727:26;8736:9;8747:5;8727:8;:26::i;:::-;:44;;;8662;8689:9;8700:5;8662:26;:44::i;:::-;:62;;:109;8835:26;8844:9;8855:5;8835:8;:26::i;:::-;:33;;8781:44;8808:9;8819:5;8781:26;:44::i;:::-;:51;;:87;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;8879:35:23;;;;;;;:28;;;:35;;;;;;;;:46;;;;;;;;;;;:53;;-1:-1:-1;;8879:53:23;8928:4;8879:53;;;8988:56;;8879:9;;8908:5;;8988:26;:56::i;:::-;-1:-1:-1;;;;;8942:32:23;;;;;;;:25;;;:32;;;;;;;;:43;;;;;;;;;;;;:102;;;;9054:35;;;:28;;;;:35;;;;;:47;;;;;;;;:55;;-1:-1:-1;;9054:55:23;;;9119:44;;;:48;7956:1218::o;3367:317::-;3492:9;3533:52;3557:9;3568:5;3575:9;3533:23;:52::i;:::-;3525:61;;;;;;;;-1:-1:-1;;;;;3604:28:23;;;;;;;:21;;;:28;;;;;;;;3633:25;;;:32;;;;;:43;;;;;;;;;;;;3604:73;;;;;;;;;;;;;;;;;;3597:80;;3367:317;;;;;:::o;733:123:3:-;791:22;:6;805:7;791:22;:13;:22;:::i;:::-;828:21;;-1:-1:-1;;;;;828:21:3;;;;;;;;733:123;:::o;2436:211:23:-;2526:11;2557:36;2576:9;2587:5;2557:18;:36::i;:::-;2549:45;;;;;;;;-1:-1:-1;;;;;2612:28:23;;;;;;:21;;;:28;;;;;;;;2605:35;;;;;;;;;;;;;;;;;;;2612:28;;2605:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2605:35:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2605:35:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2436:211;;;;:::o;2653:251::-;2772:4;2796:36;2815:9;2826:5;2796:18;:36::i;:::-;2788:45;;;;;;;;-1:-1:-1;;;;;;2851:35:23;;;;;;;:28;;;;;:35;;;;;;;;:46;;;;;;;;;;;;;2653:251::o;725:166:52:-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;612:115:3:-;667:19;:6;678:7;667:19;:10;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;1078:131:54:-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;4747:418:1:-;4936:20;4959:30;4983:5;4959;-1:-1:-1;;;;;4959:15:1;;4975:2;4959:19;;;;;-1:-1:-1;;;4959:19:1;;;;;;;-1:-1:-1;;;;;4959:19:1;-1:-1:-1;;;;;4959:19:1;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4959:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4959:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4959:19:1;;:30;:23;:30;:::i;:::-;5000:41;;;;;;5019:10;5000:41;;;;-1:-1:-1;;;;;5000:41:1;;;;;;;;;;;;;;;4936:53;;-1:-1:-1;5000:18:1;;;;;;:41;;;;;;;;;;;;;;;-1:-1:-1;5000:18:1;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;5000:41:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5000:41:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;5119:19:1;;;;;;-1:-1:-1;;;;;5119:19:1;;;;;;;;;5142:15;;5119;;;;;:19;;;;;5000:41;;5119:19;;;;;;;-1:-1:-1;5119:15:1;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;5119:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5119:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5119:19:1;:38;5112:46;;;;4747:418;;;;:::o;5642:2307:23:-;5973:4;;-1:-1:-1;;;;;6001:19:23;;;;5993:28;;;;;;6039:18;;6060:1;-1:-1:-1;6031:31:23;;;;;;6080:10;:20;;;;:22;;;;;-1:-1:-1;;;6080:22:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6080:22:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6080:22:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6080:22:23;:56;;;;;6133:3;6106:10;:22;;;;:24;;;;;-1:-1:-1;;;6106:24:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6106:24:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6106:24:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6106:24:23;:30;6080:56;6072:65;;;;;;;;6155:13;:23;;;;:25;;;;;-1:-1:-1;;;6155:25:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6155:25:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6155:25:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6155:25:23;:62;;;;;6214:3;6184:13;:25;;;;:27;;;;;-1:-1:-1;;;6184:27:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6184:27:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6184:27:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6184:27:23;:33;6155:62;6147:71;;;;;;;;6236:20;:30;;;;:32;;;;;-1:-1:-1;;;6236:32:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6236:32:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6236:32:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6236:32:23;:76;;;;;6309:3;6272:20;:32;;;;:34;;;;;-1:-1:-1;;;6272:34:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6272:34:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6272:34:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6272:34:23;:40;6236:76;6228:85;;;;;;;;6331:17;:27;;;;:29;;;;;-1:-1:-1;;;6331:29:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6331:29:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6331:29:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6331:29:23;:70;;;;;6398:3;6364:17;:29;;;;:31;;;;;-1:-1:-1;;;6364:31:23;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6364:31:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6364:31:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6364:31:23;:37;6331:70;6323:79;;;;;;;;6418:36;6437:9;6448:5;6418:18;:36::i;:::-;6417:37;6413:1229;;;6496:9;:15;;:22;;;;6470:9;:16;;:23;6487:5;-1:-1:-1;;;;;6470:23:23;-1:-1:-1;;;;;6470:23:23;;;;;;;;;;;;:48;;;;6585:4;6532:9;:19;;:26;6552:5;-1:-1:-1;;;;;6532:26:23;-1:-1:-1;;;;;6532:26:23;;;;;;;;;;;;:50;6559:9;:15;;:22;;;;6532:50;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;6603:9;:15;;6641:440;;;;;;;;;6686:4;6641:440;;;;6720:6;6641:440;;;;6758:8;6641:440;;;;;;6810:1;6796:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;6796:16:23;-1:-1:-1;6641:440:23;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6641:440:23;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;;-1:-1;6603:492:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6603:492:23;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6603:492:23;;;;;;;;;-1:-1:-1;;6603:492:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6603:492:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6603:492:23;-1:-1:-1;;;;;6603:492:23;;;;;;;;;-1:-1:-1;6413:1229:23;;;7126:41;7140:26;7149:9;7160:5;7140:8;:26::i;:::-;7126:13;:41::i;:::-;7215:4;7181:26;7190:9;7201:5;7181:8;:26::i;:::-;:38;;;;;;;;:::i;:::-;;7269:6;7233:26;7242:9;7253:5;7233:8;:26::i;:::-;:33;;:42;;;;;;;;;;;;:::i;:::-;;7327:8;7289:26;7298:9;7309:5;7289:8;:26::i;:::-;:35;;:46;;-1:-1:-1;;7289:46:23;;;;;;;;;;;;7389:10;7349:26;7358:9;7369:5;7349:8;:26::i;:::-;:37;;:50;7456:13;7413:26;7422:9;7433:5;7413:8;:26::i;:::-;:40;;:56;7533:20;7483:26;7492:9;7503:5;7483:8;:26::i;:::-;:47;;:70;7614:17;7567:26;7576:9;7587:5;7567:8;:26::i;:::-;:44;;:64;6413:1229;-1:-1:-1;7666:1:23;7652:119;7673:11;:18;7669:1;:22;7652:119;;;7712:48;7727:9;7738:5;7745:11;7757:1;7745:14;;;;;;;;;;;;;;;;;;7712;:48::i;:::-;7693:3;;7652:119;;;7786:44;7813:9;7824:5;7786:26;:44::i;:::-;7785:45;7781:121;;;7846:45;7874:9;7885:5;7846:27;:45::i;:::-;-1:-1:-1;;;;;7919:23:23;;:16;:23;;;;;;;;;;;;-1:-1:-1;5642:2307:23;;;;;;;;;;;;;:::o;1732:130::-;1803:18;1840:9;:15;;1833:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1833:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1833:22:23;;;-1:-1:-1;;1833:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1833:22:23;;;;;;;;;;;;;;;;-1:-1:-1;;;1833:22:23;;;-1:-1:-1;;1833:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1833:22:23;;;;;;;;;;;;;;;;;;;;;;;;;1732:130;;;:::o;2050:196::-;2137:4;2161:36;2180:9;2191:5;2161:18;:36::i;:::-;2153:45;;;;;;;;-1:-1:-1;;;;;;2216:23:23;:16;:23;;;;;;;;;;;;;2050:196::o;3690:279::-;3820:4;3848:52;3872:9;3883:5;3890:9;3848:23;:52::i;:::-;3840:61;;;;;;;;-1:-1:-1;;;;;;3919:32:23;;;;;;;:25;;;;;:32;;;;;;;;:43;;;;;;;;;;;3690:279::o;477:170:52:-;-1:-1:-1;;;;;552:21:52;;;;544:30;;;;;;588:18;592:4;598:7;588:3;:18::i;:::-;580:27;;;;;;;;-1:-1:-1;;;;;614:20:52;637:5;614:20;;;;;;;;;;;:28;;-1:-1:-1;;614:28:52;;;477:170::o;244:167::-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;:18::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;4173:295:23:-;4251:13;;;:20;4296:6;;4251:24;-1:-1:-1;4247:215:23;;;-1:-1:-1;4305:1:23;4291:123;4312:13;;;:20;4308:24;;4291:123;;;4394:5;4357:6;:16;;:34;4374:6;:13;;4388:1;4374:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4374:16:23;4357:34;;;;;;;;;;;;:42;;-1:-1:-1;;4357:42:23;;;;;;;;;;-1:-1:-1;4334:3:23;4291:123;;;4450:1;4427:24;:13;;;4450:1;4427:24;:::i;:::-;;4247:215;4173:295;;:::o;5248:388::-;-1:-1:-1;;;;;5357:19:23;;;;5349:28;;;;;;5428:38;5442:9;5453:5;5460;5428:13;:38::i;:::-;5427:39;5419:48;;;;;;5478:26;5487:9;5498:5;5478:8;:26::i;:::-;:33;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;5478:45:23;;;;;;;;;;-1:-1:-1;;;;;;5478:45:23;-1:-1:-1;;;;;5478:45:23;;;;;5533:26;5542:9;5553:5;5533:8;:26::i;:::-;-1:-1:-1;;;;;5533:43:23;;;;;;;:36;;;;;:43;;;;;;:50;;-1:-1:-1;;5533:50:23;;;;;;;;;;;5599:30;;;;;;;;;5248:388;;;:::o;4474:768::-;4638:19;4582:44;4609:9;4620:5;4582:26;:44::i;:::-;4581:45;4573:54;;;;;;-1:-1:-1;;;;;;4660:28:23;;;;;;:21;;;:28;;;;;;;;:35;;4705:28;;;:35;;;;;:47;;;;;;;;:54;;-1:-1:-1;;4705:54:23;4755:4;4705:54;;;4769:32;;;:25;;;:32;;;;;:44;;;;;;;;:61;;;4840:28;;;;;;4887:338;;4705:54;4887:338;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5194:16;;;;;;;;;;;4660:28;;4887:338;;;;5194:16;-1:-1:-1;4887:338:23;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;4840:395:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4840:395:23;-1:-1:-1;;;;;4840:395:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:18:-1;;4840:395:23;;;;;;;;;;;:::i;191:476:2:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;191:476:2;;;-1:-1:-1;;191:476:2:o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;105:10:-1;191:476:2;88:34:-1;-1:-1;191:476:2;;;-1:-1:-1;;191:476:2:o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;191:476:2;;;-1:-1:-1;191:476:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;191:476:2;;;-1:-1:-1;191:476:2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;191:476:2;-1:-1:-1;;;;;191:476:2;;;;;;;;;;;-1:-1:-1;191:476:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;191:476:2;;;;;;;;;;;;;;;;;;;;;;;;", + "source": "pragma solidity ^0.4.24;\n\nimport \"./W12Lister.sol\";\nimport \"./crowdsale/factories/IW12CrowdsaleFactory.sol\";\nimport \"./wallets/IWallets.sol\";\nimport \"./token/exchanger/ITokenExchanger.sol\";\n\ncontract W12ListerStub is W12Lister {\n\n /**\n * @dev Allows for any account besides the owner.\n */\n modifier onlyPrimary() {\n _;\n }\n\n modifier onlyAdmin {\n _;\n }\n\n constructor (\n uint version,\n IWallets _wallets,\n IW12CrowdsaleFactory _factory,\n ITokenExchanger _exchanger\n )\n W12Lister(\n version,\n _wallets,\n _factory,\n _exchanger\n ) public\n {}\n}\n", "sourcePath": "/home/circleci/code/contracts/W12ListerStub.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/W12ListerStub.sol", "exportedSymbols": { "W12ListerStub": [ - 1095 + 1261 ] }, - "id": 1096, + "id": 1262, "nodeType": "SourceUnit", "nodes": [ { - "id": 1060, + "id": 1228, "literals": [ "solidity", "^", @@ -662,10 +731,10 @@ { "absolutePath": "/home/circleci/code/contracts/W12Lister.sol", "file": "./W12Lister.sol", - "id": 1061, + "id": 1229, "nodeType": "ImportDirective", - "scope": 1096, - "sourceUnit": 1059, + "scope": 1262, + "sourceUnit": 1227, "src": "26:25:2", "symbolAliases": [], "unitAlias": "" @@ -673,10 +742,10 @@ { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", "file": "./crowdsale/factories/IW12CrowdsaleFactory.sol", - "id": 1062, + "id": 1230, "nodeType": "ImportDirective", - "scope": 1096, - "sourceUnit": 4563, + "scope": 1262, + "sourceUnit": 4085, "src": "52:56:2", "symbolAliases": [], "unitAlias": "" @@ -684,10 +753,10 @@ { "absolutePath": "/home/circleci/code/contracts/wallets/IWallets.sol", "file": "./wallets/IWallets.sol", - "id": 1063, + "id": 1231, "nodeType": "ImportDirective", - "scope": 1096, - "sourceUnit": 9686, + "scope": 1262, + "sourceUnit": 12002, "src": "109:32:2", "symbolAliases": [], "unitAlias": "" @@ -695,10 +764,10 @@ { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "file": "./token/exchanger/ITokenExchanger.sol", - "id": 1064, + "id": 1232, "nodeType": "ImportDirective", - "scope": 1096, - "sourceUnit": 9195, + "scope": 1262, + "sourceUnit": 11491, "src": "142:47:2", "symbolAliases": [], "unitAlias": "" @@ -709,131 +778,106 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1065, + "id": 1233, "name": "W12Lister", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1058, + "referencedDeclaration": 1226, "src": "217:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Lister_$1058", + "typeIdentifier": "t_contract$_W12Lister_$1226", "typeString": "contract W12Lister" } }, - "id": 1066, + "id": 1234, "nodeType": "InheritanceSpecifier", "src": "217:9:2" } ], "contractDependencies": [ - 1058, - 9516, - 9777, - 9884, - 10134 + 1226, + 1352, + 1375, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1095, + "id": 1261, "linearizedBaseContracts": [ - 1095, - 1058, - 9777, - 10134, - 9884, - 9516 + 1261, + 1226, + 13258, + 12453, + 11833, + 1352, + 1375 ], "name": "W12ListerStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1069, + "id": 1237, "nodeType": "Block", - "src": "323:18:2", + "src": "325:18:2", "statements": [ { - "id": 1068, + "id": 1236, "nodeType": "PlaceholderStatement", - "src": "333:1:2" + "src": "335:1:2" } ] }, "documentation": "@dev Allows for any account besides the owner.", - "id": 1070, - "name": "onlyOwner", + "id": 1238, + "name": "onlyPrimary", "nodeType": "ModifierDefinition", "parameters": { - "id": 1067, + "id": 1235, "nodeType": "ParameterList", "parameters": [], - "src": "320:2:2" + "src": "322:2:2" }, - "src": "302:39:2", + "src": "302:41:2", "visibility": "internal" }, { "body": { - "id": 1075, + "id": 1241, "nodeType": "Block", - "src": "379:18:2", + "src": "368:18:2", "statements": [ { - "id": 1074, + "id": 1240, "nodeType": "PlaceholderStatement", - "src": "389:1:2" + "src": "378:1:2" } ] }, "documentation": null, - "id": 1076, - "name": "onlyRole", + "id": 1242, + "name": "onlyAdmin", "nodeType": "ModifierDefinition", "parameters": { - "id": 1073, + "id": 1239, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1072, - "name": "_role", - "nodeType": "VariableDeclaration", - "scope": 1076, - "src": "365:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1071, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "365:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "364:14:2" + "parameters": [], + "src": "368:0:2" }, - "src": "347:50:2", + "src": "349:37:2", "visibility": "internal" }, { "body": { - "id": 1093, + "id": 1259, "nodeType": "Block", - "src": "674:2:2", + "src": "663:2:2", "statements": [] }, "documentation": null, - "id": 1094, + "id": 1260, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -842,12 +886,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1087, + "id": 1253, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1078, - "src": "577:7:2", + "referencedDeclaration": 1244, + "src": "566:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -855,75 +899,75 @@ }, { "argumentTypes": null, - "id": 1088, + "id": 1254, "name": "_wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1080, - "src": "598:8:2", + "referencedDeclaration": 1246, + "src": "587:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" } }, { "argumentTypes": null, - "id": 1089, + "id": 1255, "name": "_factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1082, - "src": "620:8:2", + "referencedDeclaration": 1248, + "src": "609:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, { "argumentTypes": null, - "id": 1090, + "id": 1256, "name": "_exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1084, - "src": "642:10:2", + "referencedDeclaration": 1250, + "src": "631:10:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } } ], - "id": 1091, + "id": 1257, "modifierName": { "argumentTypes": null, - "id": 1086, + "id": 1252, "name": "W12Lister", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, - "src": "554:9:2", + "referencedDeclaration": 1226, + "src": "543:9:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_W12Lister_$1058_$", + "typeIdentifier": "t_type$_t_contract$_W12Lister_$1226_$", "typeString": "type(contract W12Lister)" } }, "nodeType": "ModifierInvocation", - "src": "554:108:2" + "src": "543:108:2" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1085, + "id": 1251, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1078, + "id": 1244, "name": "version", "nodeType": "VariableDeclaration", - "scope": 1094, - "src": "425:12:2", + "scope": 1260, + "src": "414:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -931,10 +975,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1077, + "id": 1243, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "425:4:2", + "src": "414:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -945,26 +989,26 @@ }, { "constant": false, - "id": 1080, + "id": 1246, "name": "_wallets", "nodeType": "VariableDeclaration", - "scope": 1094, - "src": "447:17:2", + "scope": 1260, + "src": "436:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" }, "typeName": { "contractScope": null, - "id": 1079, + "id": 1245, "name": "IWallets", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9685, - "src": "447:8:2", + "referencedDeclaration": 12001, + "src": "436:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" } }, @@ -973,26 +1017,26 @@ }, { "constant": false, - "id": 1082, + "id": 1248, "name": "_factory", "nodeType": "VariableDeclaration", - "scope": 1094, - "src": "474:29:2", + "scope": 1260, + "src": "463:29:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" }, "typeName": { "contractScope": null, - "id": 1081, + "id": 1247, "name": "IW12CrowdsaleFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4562, - "src": "474:20:2", + "referencedDeclaration": 4084, + "src": "463:20:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, @@ -1001,26 +1045,26 @@ }, { "constant": false, - "id": 1084, + "id": 1250, "name": "_exchanger", "nodeType": "VariableDeclaration", - "scope": 1094, - "src": "513:26:2", + "scope": 1260, + "src": "502:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" }, "typeName": { "contractScope": null, - "id": 1083, + "id": 1249, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9194, - "src": "513:15:2", + "referencedDeclaration": 11490, + "src": "502:15:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } }, @@ -1028,40 +1072,40 @@ "visibility": "internal" } ], - "src": "415:130:2" + "src": "404:130:2" }, "payable": false, "returnParameters": { - "id": 1092, + "id": 1258, "nodeType": "ParameterList", "parameters": [], - "src": "674:0:2" + "src": "663:0:2" }, - "scope": 1095, - "src": "403:273:2", + "scope": 1261, + "src": "392:273:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1096, - "src": "191:487:2" + "scope": 1262, + "src": "191:476:2" } ], - "src": "0:679:2" + "src": "0:668:2" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/W12ListerStub.sol", "exportedSymbols": { "W12ListerStub": [ - 1095 + 1261 ] }, - "id": 1096, + "id": 1262, "nodeType": "SourceUnit", "nodes": [ { - "id": 1060, + "id": 1228, "literals": [ "solidity", "^", @@ -1074,10 +1118,10 @@ { "absolutePath": "/home/circleci/code/contracts/W12Lister.sol", "file": "./W12Lister.sol", - "id": 1061, + "id": 1229, "nodeType": "ImportDirective", - "scope": 1096, - "sourceUnit": 1059, + "scope": 1262, + "sourceUnit": 1227, "src": "26:25:2", "symbolAliases": [], "unitAlias": "" @@ -1085,10 +1129,10 @@ { "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", "file": "./crowdsale/factories/IW12CrowdsaleFactory.sol", - "id": 1062, + "id": 1230, "nodeType": "ImportDirective", - "scope": 1096, - "sourceUnit": 4563, + "scope": 1262, + "sourceUnit": 4085, "src": "52:56:2", "symbolAliases": [], "unitAlias": "" @@ -1096,10 +1140,10 @@ { "absolutePath": "/home/circleci/code/contracts/wallets/IWallets.sol", "file": "./wallets/IWallets.sol", - "id": 1063, + "id": 1231, "nodeType": "ImportDirective", - "scope": 1096, - "sourceUnit": 9686, + "scope": 1262, + "sourceUnit": 12002, "src": "109:32:2", "symbolAliases": [], "unitAlias": "" @@ -1107,10 +1151,10 @@ { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "file": "./token/exchanger/ITokenExchanger.sol", - "id": 1064, + "id": 1232, "nodeType": "ImportDirective", - "scope": 1096, - "sourceUnit": 9195, + "scope": 1262, + "sourceUnit": 11491, "src": "142:47:2", "symbolAliases": [], "unitAlias": "" @@ -1121,131 +1165,106 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1065, + "id": 1233, "name": "W12Lister", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1058, + "referencedDeclaration": 1226, "src": "217:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Lister_$1058", + "typeIdentifier": "t_contract$_W12Lister_$1226", "typeString": "contract W12Lister" } }, - "id": 1066, + "id": 1234, "nodeType": "InheritanceSpecifier", "src": "217:9:2" } ], "contractDependencies": [ - 1058, - 9516, - 9777, - 9884, - 10134 + 1226, + 1352, + 1375, + 11833, + 12453, + 13258 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1095, + "id": 1261, "linearizedBaseContracts": [ - 1095, - 1058, - 9777, - 10134, - 9884, - 9516 + 1261, + 1226, + 13258, + 12453, + 11833, + 1352, + 1375 ], "name": "W12ListerStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1069, + "id": 1237, "nodeType": "Block", - "src": "323:18:2", + "src": "325:18:2", "statements": [ { - "id": 1068, + "id": 1236, "nodeType": "PlaceholderStatement", - "src": "333:1:2" + "src": "335:1:2" } ] }, "documentation": "@dev Allows for any account besides the owner.", - "id": 1070, - "name": "onlyOwner", + "id": 1238, + "name": "onlyPrimary", "nodeType": "ModifierDefinition", "parameters": { - "id": 1067, + "id": 1235, "nodeType": "ParameterList", "parameters": [], - "src": "320:2:2" + "src": "322:2:2" }, - "src": "302:39:2", + "src": "302:41:2", "visibility": "internal" }, { "body": { - "id": 1075, + "id": 1241, "nodeType": "Block", - "src": "379:18:2", + "src": "368:18:2", "statements": [ { - "id": 1074, + "id": 1240, "nodeType": "PlaceholderStatement", - "src": "389:1:2" + "src": "378:1:2" } ] }, "documentation": null, - "id": 1076, - "name": "onlyRole", + "id": 1242, + "name": "onlyAdmin", "nodeType": "ModifierDefinition", "parameters": { - "id": 1073, + "id": 1239, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1072, - "name": "_role", - "nodeType": "VariableDeclaration", - "scope": 1076, - "src": "365:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1071, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "365:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "364:14:2" + "parameters": [], + "src": "368:0:2" }, - "src": "347:50:2", + "src": "349:37:2", "visibility": "internal" }, { "body": { - "id": 1093, + "id": 1259, "nodeType": "Block", - "src": "674:2:2", + "src": "663:2:2", "statements": [] }, "documentation": null, - "id": 1094, + "id": 1260, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1254,12 +1273,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1087, + "id": 1253, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1078, - "src": "577:7:2", + "referencedDeclaration": 1244, + "src": "566:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1267,75 +1286,75 @@ }, { "argumentTypes": null, - "id": 1088, + "id": 1254, "name": "_wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1080, - "src": "598:8:2", + "referencedDeclaration": 1246, + "src": "587:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" } }, { "argumentTypes": null, - "id": 1089, + "id": 1255, "name": "_factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1082, - "src": "620:8:2", + "referencedDeclaration": 1248, + "src": "609:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, { "argumentTypes": null, - "id": 1090, + "id": 1256, "name": "_exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1084, - "src": "642:10:2", + "referencedDeclaration": 1250, + "src": "631:10:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } } ], - "id": 1091, + "id": 1257, "modifierName": { "argumentTypes": null, - "id": 1086, + "id": 1252, "name": "W12Lister", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, - "src": "554:9:2", + "referencedDeclaration": 1226, + "src": "543:9:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_W12Lister_$1058_$", + "typeIdentifier": "t_type$_t_contract$_W12Lister_$1226_$", "typeString": "type(contract W12Lister)" } }, "nodeType": "ModifierInvocation", - "src": "554:108:2" + "src": "543:108:2" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1085, + "id": 1251, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1078, + "id": 1244, "name": "version", "nodeType": "VariableDeclaration", - "scope": 1094, - "src": "425:12:2", + "scope": 1260, + "src": "414:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1343,10 +1362,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1077, + "id": 1243, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "425:4:2", + "src": "414:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1357,26 +1376,26 @@ }, { "constant": false, - "id": 1080, + "id": 1246, "name": "_wallets", "nodeType": "VariableDeclaration", - "scope": 1094, - "src": "447:17:2", + "scope": 1260, + "src": "436:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" }, "typeName": { "contractScope": null, - "id": 1079, + "id": 1245, "name": "IWallets", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9685, - "src": "447:8:2", + "referencedDeclaration": 12001, + "src": "436:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWallets_$9685", + "typeIdentifier": "t_contract$_IWallets_$12001", "typeString": "contract IWallets" } }, @@ -1385,26 +1404,26 @@ }, { "constant": false, - "id": 1082, + "id": 1248, "name": "_factory", "nodeType": "VariableDeclaration", - "scope": 1094, - "src": "474:29:2", + "scope": 1260, + "src": "463:29:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" }, "typeName": { "contractScope": null, - "id": 1081, + "id": 1247, "name": "IW12CrowdsaleFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4562, - "src": "474:20:2", + "referencedDeclaration": 4084, + "src": "463:20:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4562", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", "typeString": "contract IW12CrowdsaleFactory" } }, @@ -1413,26 +1432,26 @@ }, { "constant": false, - "id": 1084, + "id": 1250, "name": "_exchanger", "nodeType": "VariableDeclaration", - "scope": 1094, - "src": "513:26:2", + "scope": 1260, + "src": "502:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" }, "typeName": { "contractScope": null, - "id": 1083, + "id": 1249, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9194, - "src": "513:15:2", + "referencedDeclaration": 11490, + "src": "502:15:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$9194", + "typeIdentifier": "t_contract$_ITokenExchanger_$11490", "typeString": "contract ITokenExchanger" } }, @@ -1440,27 +1459,27 @@ "visibility": "internal" } ], - "src": "415:130:2" + "src": "404:130:2" }, "payable": false, "returnParameters": { - "id": 1092, + "id": 1258, "nodeType": "ParameterList", "parameters": [], - "src": "674:0:2" + "src": "663:0:2" }, - "scope": 1095, - "src": "403:273:2", + "scope": 1261, + "src": "392:273:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1096, - "src": "191:487:2" + "scope": 1262, + "src": "191:476:2" } ], - "src": "0:679:2" + "src": "0:668:2" }, "compiler": { "name": "solc", @@ -1469,11 +1488,13 @@ "networks": { "4": { "events": {}, - "links": {}, - "address": "0x45cef5dca9b7c5e25abd9879409a71cedb1a81f9", - "transactionHash": "0xb5bd608233aef72ab00f4780c13286a1e862ca0fdd7fcbf568c39fc76539532a" + "links": { + "Percent": "0x04596c9a67ad5870686616d58c2a8198f8b94b34" + }, + "address": "0x6074a1bfe00625f55d6bc2d3a4989a709372e7bd", + "transactionHash": "0xebcafe969ef6cf6689f7e36975972238d22e02af6705ac318d58dc112dc53486" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:56:22.022Z" + "updatedAt": "2018-12-06T13:20:48.542Z" } \ No newline at end of file diff --git a/build/contracts/W12Lister__W12CrowdsaleFactoryMock.json b/build/contracts/W12Lister__W12CrowdsaleFactoryMock.json new file mode 100644 index 00000000..40202db4 --- /dev/null +++ b/build/contracts/W12Lister__W12CrowdsaleFactoryMock.json @@ -0,0 +1,3835 @@ +{ + "contractName": "W12Lister__W12CrowdsaleFactoryMock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "_createCrowdsaleCall", + "outputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "_wTokenAddress", + "type": "address" + }, + { + "name": "price", + "type": "uint256" + }, + { + "name": "serviceWallet", + "type": "address" + }, + { + "name": "serviceFee", + "type": "uint256" + }, + { + "name": "WTokenSaleFeePercent", + "type": "uint256" + }, + { + "name": "trancheFeePercent", + "type": "uint256" + }, + { + "name": "swap", + "type": "address" + }, + { + "name": "owners", + "type": "address[]" + } + ], + "name": "createCrowdsale", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610cbf806100206000396000f30060806040526004361061004b5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663868b16d98114610050578063abca504f146100be575b600080fd5b34801561005c57600080fd5b506100a2600160a060020a036004803582169160248035821692604435926064358116926084359260a4359260c4359260e43590911691610104359182019101356101a7565b60408051600160a060020a039092168252519081900360200190f35b3480156100ca57600080fd5b506100d361024f565b604051808a600160a060020a0316600160a060020a0316815260200189600160a060020a0316600160a060020a0316815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561018b578181015183820152602001610173565b505050509050019a505050505050505050505060405180910390f35b60008054600160a060020a03808d1673ffffffffffffffffffffffffffffffffffffffff19928316178355600180548d831690841617905560028b9055600380548b8316908416179055600489905560058890556006879055600780549187169190921617905561021a60088484610311565b50610223610381565b604051809103906000f08015801561023f573d6000803e3d6000fd5b509b9a5050505050505050505050565b6000805460015460025460035460045460055460065460075460088054604080516020808402820181019092528281528c9b8c9b8c9b8c9b8c9b8c9b8c9b60609b600160a060020a039788169b9688169a95999488169893979296919592169390929183918301828280156102ed57602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116102cf575b50505050509050985098509850985098509850985098509850909192939495969798565b828054828255906000526020600020908101928215610371579160200282015b8281111561037157815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03843516178255602090920191600190910190610331565b5061037d929150610391565b5090565b6040516108ce806103c683390190565b6103c291905b8082111561037d57805473ffffffffffffffffffffffffffffffffffffffff19168155600101610397565b905600608060405234801561001057600080fd5b5061001961005b565b604051809103906000f080158015610035573d6000803e3d6000fd5b5060008054600160a060020a031916600160a060020a039290921691909117905561006b565b60405161024f8061067f83390190565b6106058061007a6000396000f30060806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166307f5d633811461013f57806314f66d341461014d5780631785f53c1461017b578063208853c91461019c5780632348238c1461017b5780632442e1cb146101c657806324d7806c146102fc5780632e3250201461033157806339e69a6c146104225780633baba4d7146104535780633bcdb1641461017b5780634090cb6414610468578063564566a81461047d57806370480275146104925780638bad0c0a146104b35780638edd6eb6146104c8578063a4fd6f561461047d578063d0934d61146104b3578063d155790b1461017b578063d5b22623146104dd578063d6d65f3d1461014d578063d8e9ce64146102fc578063daa4cf881461014d578063e93b054014610539575b005b61013d600435602435610551565b34801561015957600080fd5b50610162610555565b6040805192835290151560208301528051918290030190f35b34801561018757600080fd5b5061013d600160a060020a036004351661055c565b3480156101a857600080fd5b506101b460043561055f565b60408051918252519081900360200190f35b3480156101d257600080fd5b506101de600435610565565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561025b578181015183820152602001610243565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156102bb5781810151838201526020016102a3565b50505050905090810190601f1680156102e85780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561030857600080fd5b5061031d600160a060020a036004351661055f565b604080519115158252519081900360200190f35b34801561033d57600080fd5b50610349600435610565565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156103c95781810151838201526020016103b1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156104085781810151838201526020016103f0565b505050509050019850505050505050505060405180910390f35b34801561042e57600080fd5b50610437610577565b60408051600160a060020a039092168252519081900360200190f35b34801561045f57600080fd5b506101b4610586565b34801561047457600080fd5b50610437610586565b34801561048957600080fd5b5061031d610586565b34801561049e57600080fd5b5061013d600160a060020a036004351661058b565b3480156104bf57600080fd5b5061013d6105ba565b3480156104d457600080fd5b506104376105bc565b3480156104e957600080fd5b5061013d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a4359182019101356105cb565b34801561054557600080fd5b5061013d60043561055c565b5050565b6000809091565b50565b50600090565b60008060008060608091939550919395565b600154600160a060020a031681565b600090565b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b565b600054600160a060020a031690565b5050505050505050505050505600a165627a7a723058207439eea7a4fd6d4364e276282bbfcb60a3d045d1fc502b3b5bf06a1581a05f840029608060405234801561001057600080fd5b5061022f806100206000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631785f53c81146100d45780632348238c146100d457806323bffccc146100d457806324d7806c146100f757806339e69a6c1461012c5780633bcdb164146100d4578063483a20b2146100d4578063704802751461015d5780638bad0c0a1461017e578063acb3c073146100d4578063d0934d611461017e578063d0baf2f514610193578063d155790b146100d4578063d8e9ce64146100f7575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166101b3565b005b34801561010357600080fd5b50610118600160a060020a03600435166101b6565b604080519115158252519081900360200190f35b34801561013857600080fd5b506101416101bc565b60408051600160a060020a039092168252519081900360200190f35b34801561016957600080fd5b506100f5600160a060020a03600435166101cb565b34801561018a57600080fd5b506100f56101fa565b6100f5600160a060020a03600435166024356044356064356084356101fc565b50565b50600090565b600054600160a060020a031681565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b565b50505050505600a165627a7a72305820737c1e8a23180caeb011ac20837d0e1682a7a8b47d05981e1ee56d035ba7327f0029a165627a7a723058200a7f735ee9b3413be23ca4ffb022c4c8962cc7164cbbf14b5e783263661759c30029", + "deployedBytecode": "0x60806040526004361061004b5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663868b16d98114610050578063abca504f146100be575b600080fd5b34801561005c57600080fd5b506100a2600160a060020a036004803582169160248035821692604435926064358116926084359260a4359260c4359260e43590911691610104359182019101356101a7565b60408051600160a060020a039092168252519081900360200190f35b3480156100ca57600080fd5b506100d361024f565b604051808a600160a060020a0316600160a060020a0316815260200189600160a060020a0316600160a060020a0316815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561018b578181015183820152602001610173565b505050509050019a505050505050505050505060405180910390f35b60008054600160a060020a03808d1673ffffffffffffffffffffffffffffffffffffffff19928316178355600180548d831690841617905560028b9055600380548b8316908416179055600489905560058890556006879055600780549187169190921617905561021a60088484610311565b50610223610381565b604051809103906000f08015801561023f573d6000803e3d6000fd5b509b9a5050505050505050505050565b6000805460015460025460035460045460055460065460075460088054604080516020808402820181019092528281528c9b8c9b8c9b8c9b8c9b8c9b8c9b60609b600160a060020a039788169b9688169a95999488169893979296919592169390929183918301828280156102ed57602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116102cf575b50505050509050985098509850985098509850985098509850909192939495969798565b828054828255906000526020600020908101928215610371579160200282015b8281111561037157815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03843516178255602090920191600190910190610331565b5061037d929150610391565b5090565b6040516108ce806103c683390190565b6103c291905b8082111561037d57805473ffffffffffffffffffffffffffffffffffffffff19168155600101610397565b905600608060405234801561001057600080fd5b5061001961005b565b604051809103906000f080158015610035573d6000803e3d6000fd5b5060008054600160a060020a031916600160a060020a039290921691909117905561006b565b60405161024f8061067f83390190565b6106058061007a6000396000f30060806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166307f5d633811461013f57806314f66d341461014d5780631785f53c1461017b578063208853c91461019c5780632348238c1461017b5780632442e1cb146101c657806324d7806c146102fc5780632e3250201461033157806339e69a6c146104225780633baba4d7146104535780633bcdb1641461017b5780634090cb6414610468578063564566a81461047d57806370480275146104925780638bad0c0a146104b35780638edd6eb6146104c8578063a4fd6f561461047d578063d0934d61146104b3578063d155790b1461017b578063d5b22623146104dd578063d6d65f3d1461014d578063d8e9ce64146102fc578063daa4cf881461014d578063e93b054014610539575b005b61013d600435602435610551565b34801561015957600080fd5b50610162610555565b6040805192835290151560208301528051918290030190f35b34801561018757600080fd5b5061013d600160a060020a036004351661055c565b3480156101a857600080fd5b506101b460043561055f565b60408051918252519081900360200190f35b3480156101d257600080fd5b506101de600435610565565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561025b578181015183820152602001610243565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156102bb5781810151838201526020016102a3565b50505050905090810190601f1680156102e85780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561030857600080fd5b5061031d600160a060020a036004351661055f565b604080519115158252519081900360200190f35b34801561033d57600080fd5b50610349600435610565565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156103c95781810151838201526020016103b1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156104085781810151838201526020016103f0565b505050509050019850505050505050505060405180910390f35b34801561042e57600080fd5b50610437610577565b60408051600160a060020a039092168252519081900360200190f35b34801561045f57600080fd5b506101b4610586565b34801561047457600080fd5b50610437610586565b34801561048957600080fd5b5061031d610586565b34801561049e57600080fd5b5061013d600160a060020a036004351661058b565b3480156104bf57600080fd5b5061013d6105ba565b3480156104d457600080fd5b506104376105bc565b3480156104e957600080fd5b5061013d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a4359182019101356105cb565b34801561054557600080fd5b5061013d60043561055c565b5050565b6000809091565b50565b50600090565b60008060008060608091939550919395565b600154600160a060020a031681565b600090565b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b565b600054600160a060020a031690565b5050505050505050505050505600a165627a7a723058207439eea7a4fd6d4364e276282bbfcb60a3d045d1fc502b3b5bf06a1581a05f840029608060405234801561001057600080fd5b5061022f806100206000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631785f53c81146100d45780632348238c146100d457806323bffccc146100d457806324d7806c146100f757806339e69a6c1461012c5780633bcdb164146100d4578063483a20b2146100d4578063704802751461015d5780638bad0c0a1461017e578063acb3c073146100d4578063d0934d611461017e578063d0baf2f514610193578063d155790b146100d4578063d8e9ce64146100f7575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166101b3565b005b34801561010357600080fd5b50610118600160a060020a03600435166101b6565b604080519115158252519081900360200190f35b34801561013857600080fd5b506101416101bc565b60408051600160a060020a039092168252519081900360200190f35b34801561016957600080fd5b506100f5600160a060020a03600435166101cb565b34801561018a57600080fd5b506100f56101fa565b6100f5600160a060020a03600435166024356044356064356084356101fc565b50565b50600090565b600054600160a060020a031681565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b565b50505050505600a165627a7a72305820737c1e8a23180caeb011ac20837d0e1682a7a8b47d05981e1ee56d035ba7327f0029a165627a7a723058200a7f735ee9b3413be23ca4ffb022c4c8962cc7164cbbf14b5e783263661759c30029", + "sourceMap": "176:1901:32:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;176:1901:32;;;;;;;", + "deployedSourceMap": "176:1901:32:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;1178:897;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1178:897:32;-1:-1:-1;;;;;1178:897:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1178:897:32;;;;;;;;;;;;;;590:582;;8:9:-1;5:2;;;30:1;27;20:12;5:2;590:582:32;;;;;;;;;-1:-1:-1;;;;;590:582:32;-1:-1:-1;;;;;590:582:32;;;;;;-1:-1:-1;;;;;590:582:32;-1:-1:-1;;;;;590:582:32;;;;;;;;;;;-1:-1:-1;;;;;590:582:32;-1:-1:-1;;;;;590:582:32;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;590:582:32;-1:-1:-1;;;;;590:582:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;590:582:32;;;;;;;;;;;;;;;;;;;;;;;;;1178:897;1485:13;1510:49;;-1:-1:-1;;;;;1510:49:32;;;-1:-1:-1;;1510:49:32;;;;;;;1569:53;;;;;;;;;;;1632:27;:35;;;1677;:51;;;;;;;;;;;1738:32;:45;;;1793:42;:65;;;1868:39;:59;;;1937:26;:33;;;;;;;;;;;;1980:37;:28;2011:6;;1980:37;:::i;:::-;;2035:33;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2028:40:32;1178:897;-1:-1:-1;;;;;;;;;;;1178:897:32:o;590:582::-;642:7;744:34;;;792:36;842:27;;883:35;;932:32;;978:42;;1034:39;;1087:26;;1127:28;723:442;;;;;;;;;;;;;;;;;;;642:7;;;;;;;;;;;;;;702:9;;-1:-1:-1;;;;;744:34:32;;;;792:36;;;;842:27;;883:35;;;;932:32;;978:42;;1034:39;;1087:26;;;1127:28;;723:442;1127:28;;723:442;;1127:28;723:442;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;723:442:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;590:582;;;;;;;;;:::o;176:1901::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;176:1901:32;-1:-1:-1;;;;;176:1901:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;176:1901:32;;;-1:-1:-1;176:1901:32;:::i;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;176:1901:32;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"../../crowdsale/IW12Crowdsale.sol\";\nimport \"../../crowdsale/factories/IW12CrowdsaleFactory.sol\";\nimport \"./W12Lister__W12CrowdsaleMock.sol\";\n\ncontract W12Lister__W12CrowdsaleFactoryMock is IW12CrowdsaleFactory {\n struct CreateCrowdsaleCall {\n address tokenAddress;\n address _wTokenAddress;\n uint price;\n address serviceWallet;\n uint serviceFee;\n uint WTokenSaleFeePercent;\n uint trancheFeePercent;\n address swap;\n address[] owners;\n }\n\n CreateCrowdsaleCall __createCrowdsaleCall;\n function _createCrowdsaleCall() public view returns(address, address, uint, address, uint, uint, uint, address, address[]) {\n return (\n __createCrowdsaleCall.tokenAddress,\n __createCrowdsaleCall._wTokenAddress,\n __createCrowdsaleCall.price,\n __createCrowdsaleCall.serviceWallet,\n __createCrowdsaleCall.serviceFee,\n __createCrowdsaleCall.WTokenSaleFeePercent,\n __createCrowdsaleCall.trancheFeePercent,\n __createCrowdsaleCall.swap,\n __createCrowdsaleCall.owners\n );\n }\n\n function createCrowdsale(\n address tokenAddress,\n address _wTokenAddress,\n uint price,\n address serviceWallet,\n uint serviceFee,\n uint WTokenSaleFeePercent,\n uint trancheFeePercent,\n address swap,\n address[] owners\n )\n external returns (IW12Crowdsale) {\n __createCrowdsaleCall.tokenAddress = tokenAddress;\n __createCrowdsaleCall._wTokenAddress = _wTokenAddress;\n __createCrowdsaleCall.price = price;\n __createCrowdsaleCall.serviceWallet = serviceWallet;\n __createCrowdsaleCall.serviceFee = serviceFee;\n __createCrowdsaleCall.WTokenSaleFeePercent = WTokenSaleFeePercent;\n __createCrowdsaleCall.trancheFeePercent = trancheFeePercent;\n __createCrowdsaleCall.swap = swap;\n __createCrowdsaleCall.owners = owners;\n\n return new W12Lister__W12CrowdsaleMock();\n }\n}\n", + "sourcePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12CrowdsaleFactoryMock.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12CrowdsaleFactoryMock.sol", + "exportedSymbols": { + "W12Lister__W12CrowdsaleFactoryMock": [ + 9608 + ] + }, + "id": 9609, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9454, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:32" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../../crowdsale/IW12Crowdsale.sol", + "id": 9455, + "nodeType": "ImportDirective", + "scope": 9609, + "sourceUnit": 1761, + "src": "26:43:32", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", + "file": "../../crowdsale/factories/IW12CrowdsaleFactory.sol", + "id": 9456, + "nodeType": "ImportDirective", + "scope": 9609, + "sourceUnit": 4085, + "src": "70:60:32", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12CrowdsaleMock.sol", + "file": "./W12Lister__W12CrowdsaleMock.sol", + "id": 9457, + "nodeType": "ImportDirective", + "scope": 9609, + "sourceUnit": 9834, + "src": "131:43:32", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9458, + "name": "IW12CrowdsaleFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4084, + "src": "223:20:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", + "typeString": "contract IW12CrowdsaleFactory" + } + }, + "id": 9459, + "nodeType": "InheritanceSpecifier", + "src": "223:20:32" + } + ], + "contractDependencies": [ + 4084, + 9833 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9608, + "linearizedBaseContracts": [ + 9608, + 4084 + ], + "name": "W12Lister__W12CrowdsaleFactoryMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall", + "id": 9479, + "members": [ + { + "constant": false, + "id": 9461, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "287:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "287:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9463, + "name": "_wTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "317:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "317:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9465, + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "349:10:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9464, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "349:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9467, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "369:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9466, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "369:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9469, + "name": "serviceFee", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "400:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9468, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "400:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9471, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "425:25:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9470, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "425:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9473, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "460:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9472, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "460:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9475, + "name": "swap", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "492:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9474, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "492:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9478, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "514:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 9476, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "514:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9477, + "length": null, + "nodeType": "ArrayTypeName", + "src": "514:9:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "CreateCrowdsaleCall", + "nodeType": "StructDefinition", + "scope": 9608, + "src": "250:287:32", + "visibility": "public" + }, + { + "constant": false, + "id": 9481, + "name": "__createCrowdsaleCall", + "nodeType": "VariableDeclaration", + "scope": 9608, + "src": "543:41:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall" + }, + "typeName": { + "contractScope": null, + "id": 9480, + "name": "CreateCrowdsaleCall", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9479, + "src": "543:19:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage_ptr", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall" + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 9523, + "nodeType": "Block", + "src": "713:459:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9503, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "744:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9504, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9461, + "src": "744:34:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9505, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "792:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9506, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_wTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9463, + "src": "792:36:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9507, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "842:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9508, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 9465, + "src": "842:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9509, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "883:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "serviceWallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 9467, + "src": "883:35:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9511, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "932:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9512, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "serviceFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 9469, + "src": "932:32:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9513, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "978:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9514, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 9471, + "src": "978:42:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9515, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1034:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9516, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 9473, + "src": "1034:39:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9517, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1087:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 9475, + "src": "1087:26:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9519, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1127:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9520, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 9478, + "src": "1127:28:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + } + ], + "id": 9521, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "730:435:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "tuple(address,address,uint256,address,uint256,uint256,uint256,address,address[] storage ref)" + } + }, + "functionReturnParameters": 9502, + "id": 9522, + "nodeType": "Return", + "src": "723:442:32" + } + ] + }, + "documentation": null, + "id": 9524, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_createCrowdsaleCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9482, + "nodeType": "ParameterList", + "parameters": [], + "src": "619:2:32" + }, + "payable": false, + "returnParameters": { + "id": 9502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9484, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "642:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9483, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "642:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9486, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "651:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "651:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9488, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "660:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "660:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9490, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "666:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9489, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9492, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "675:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9491, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "675:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9494, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "681:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9493, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "681:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9496, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "687:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9495, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "687:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9498, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "693:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "693:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9501, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "702:9:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 9499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9500, + "length": null, + "nodeType": "ArrayTypeName", + "src": "702:9:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "641:71:32" + }, + "scope": 9608, + "src": "590:582:32", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9606, + "nodeType": "Block", + "src": "1500:575:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9548, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1510:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9550, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "tokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9461, + "src": "1510:34:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9551, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9526, + "src": "1547:12:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1510:49:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9553, + "nodeType": "ExpressionStatement", + "src": "1510:49:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9554, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1569:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9556, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_wTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9463, + "src": "1569:36:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9557, + "name": "_wTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9528, + "src": "1608:14:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1569:53:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9559, + "nodeType": "ExpressionStatement", + "src": "1569:53:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9560, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1632:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9562, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 9465, + "src": "1632:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9563, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9530, + "src": "1662:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1632:35:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9565, + "nodeType": "ExpressionStatement", + "src": "1632:35:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9566, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1677:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9568, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "serviceWallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 9467, + "src": "1677:35:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9569, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9532, + "src": "1715:13:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1677:51:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9571, + "nodeType": "ExpressionStatement", + "src": "1677:51:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9572, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1738:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "serviceFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 9469, + "src": "1738:32:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9575, + "name": "serviceFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9534, + "src": "1773:10:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1738:45:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9577, + "nodeType": "ExpressionStatement", + "src": "1738:45:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9578, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1793:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9580, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 9471, + "src": "1793:42:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9581, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9536, + "src": "1838:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1793:65:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9583, + "nodeType": "ExpressionStatement", + "src": "1793:65:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9584, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1868:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9586, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 9473, + "src": "1868:39:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9587, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "1910:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1868:59:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9589, + "nodeType": "ExpressionStatement", + "src": "1868:59:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9590, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1937:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9592, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 9475, + "src": "1937:26:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9593, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9540, + "src": "1966:4:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1937:33:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9595, + "nodeType": "ExpressionStatement", + "src": "1937:33:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9596, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1980:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9598, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 9478, + "src": "1980:28:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9599, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9543, + "src": "2011:6:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "src": "1980:37:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 9601, + "nodeType": "ExpressionStatement", + "src": "1980:37:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2035:31:32", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_W12Lister__W12CrowdsaleMock_$9833_$", + "typeString": "function () returns (contract W12Lister__W12CrowdsaleMock)" + }, + "typeName": { + "contractScope": null, + "id": 9602, + "name": "W12Lister__W12CrowdsaleMock", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9833, + "src": "2039:27:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Lister__W12CrowdsaleMock_$9833", + "typeString": "contract W12Lister__W12CrowdsaleMock" + } + } + }, + "id": 9604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2035:33:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Lister__W12CrowdsaleMock_$9833", + "typeString": "contract W12Lister__W12CrowdsaleMock" + } + }, + "functionReturnParameters": 9547, + "id": 9605, + "nodeType": "Return", + "src": "2028:40:32" + } + ] + }, + "documentation": null, + "id": 9607, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9526, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1212:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9525, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1212:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9528, + "name": "_wTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1242:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1242:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9530, + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1274:10:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9529, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1274:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9532, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1294:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9531, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1294:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9534, + "name": "serviceFee", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1325:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9533, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1325:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9536, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1350:25:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9535, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1350:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9538, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1385:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9537, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1385:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9540, + "name": "swap", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1417:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1417:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9543, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1439:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 9541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1439:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9542, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1439:9:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1202:259:32" + }, + "payable": false, + "returnParameters": { + "id": 9547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9546, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1485:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 9545, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "1485:13:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1484:15:32" + }, + "scope": 9608, + "src": "1178:897:32", + "stateMutability": "nonpayable", + "superFunction": 4083, + "visibility": "external" + } + ], + "scope": 9609, + "src": "176:1901:32" + } + ], + "src": "0:2078:32" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12CrowdsaleFactoryMock.sol", + "exportedSymbols": { + "W12Lister__W12CrowdsaleFactoryMock": [ + 9608 + ] + }, + "id": 9609, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9454, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:32" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../../crowdsale/IW12Crowdsale.sol", + "id": 9455, + "nodeType": "ImportDirective", + "scope": 9609, + "sourceUnit": 1761, + "src": "26:43:32", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", + "file": "../../crowdsale/factories/IW12CrowdsaleFactory.sol", + "id": 9456, + "nodeType": "ImportDirective", + "scope": 9609, + "sourceUnit": 4085, + "src": "70:60:32", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12CrowdsaleMock.sol", + "file": "./W12Lister__W12CrowdsaleMock.sol", + "id": 9457, + "nodeType": "ImportDirective", + "scope": 9609, + "sourceUnit": 9834, + "src": "131:43:32", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9458, + "name": "IW12CrowdsaleFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4084, + "src": "223:20:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4084", + "typeString": "contract IW12CrowdsaleFactory" + } + }, + "id": 9459, + "nodeType": "InheritanceSpecifier", + "src": "223:20:32" + } + ], + "contractDependencies": [ + 4084, + 9833 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9608, + "linearizedBaseContracts": [ + 9608, + 4084 + ], + "name": "W12Lister__W12CrowdsaleFactoryMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall", + "id": 9479, + "members": [ + { + "constant": false, + "id": 9461, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "287:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "287:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9463, + "name": "_wTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "317:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "317:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9465, + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "349:10:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9464, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "349:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9467, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "369:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9466, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "369:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9469, + "name": "serviceFee", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "400:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9468, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "400:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9471, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "425:25:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9470, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "425:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9473, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "460:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9472, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "460:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9475, + "name": "swap", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "492:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9474, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "492:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9478, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 9479, + "src": "514:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 9476, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "514:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9477, + "length": null, + "nodeType": "ArrayTypeName", + "src": "514:9:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "CreateCrowdsaleCall", + "nodeType": "StructDefinition", + "scope": 9608, + "src": "250:287:32", + "visibility": "public" + }, + { + "constant": false, + "id": 9481, + "name": "__createCrowdsaleCall", + "nodeType": "VariableDeclaration", + "scope": 9608, + "src": "543:41:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall" + }, + "typeName": { + "contractScope": null, + "id": 9480, + "name": "CreateCrowdsaleCall", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9479, + "src": "543:19:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage_ptr", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall" + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 9523, + "nodeType": "Block", + "src": "713:459:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9503, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "744:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9504, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9461, + "src": "744:34:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9505, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "792:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9506, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_wTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9463, + "src": "792:36:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9507, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "842:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9508, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 9465, + "src": "842:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9509, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "883:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "serviceWallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 9467, + "src": "883:35:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9511, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "932:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9512, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "serviceFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 9469, + "src": "932:32:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9513, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "978:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9514, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 9471, + "src": "978:42:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9515, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1034:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9516, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 9473, + "src": "1034:39:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9517, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1087:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 9475, + "src": "1087:26:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9519, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1127:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9520, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 9478, + "src": "1127:28:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + } + ], + "id": 9521, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "730:435:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "tuple(address,address,uint256,address,uint256,uint256,uint256,address,address[] storage ref)" + } + }, + "functionReturnParameters": 9502, + "id": 9522, + "nodeType": "Return", + "src": "723:442:32" + } + ] + }, + "documentation": null, + "id": 9524, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_createCrowdsaleCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9482, + "nodeType": "ParameterList", + "parameters": [], + "src": "619:2:32" + }, + "payable": false, + "returnParameters": { + "id": 9502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9484, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "642:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9483, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "642:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9486, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "651:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "651:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9488, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "660:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "660:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9490, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "666:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9489, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9492, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "675:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9491, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "675:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9494, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "681:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9493, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "681:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9496, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "687:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9495, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "687:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9498, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "693:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "693:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9501, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9524, + "src": "702:9:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 9499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9500, + "length": null, + "nodeType": "ArrayTypeName", + "src": "702:9:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "641:71:32" + }, + "scope": 9608, + "src": "590:582:32", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9606, + "nodeType": "Block", + "src": "1500:575:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9548, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1510:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9550, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "tokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9461, + "src": "1510:34:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9551, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9526, + "src": "1547:12:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1510:49:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9553, + "nodeType": "ExpressionStatement", + "src": "1510:49:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9554, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1569:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9556, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_wTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 9463, + "src": "1569:36:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9557, + "name": "_wTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9528, + "src": "1608:14:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1569:53:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9559, + "nodeType": "ExpressionStatement", + "src": "1569:53:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9560, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1632:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9562, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 9465, + "src": "1632:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9563, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9530, + "src": "1662:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1632:35:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9565, + "nodeType": "ExpressionStatement", + "src": "1632:35:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9566, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1677:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9568, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "serviceWallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 9467, + "src": "1677:35:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9569, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9532, + "src": "1715:13:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1677:51:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9571, + "nodeType": "ExpressionStatement", + "src": "1677:51:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9572, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1738:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "serviceFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 9469, + "src": "1738:32:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9575, + "name": "serviceFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9534, + "src": "1773:10:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1738:45:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9577, + "nodeType": "ExpressionStatement", + "src": "1738:45:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9578, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1793:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9580, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "WTokenSaleFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 9471, + "src": "1793:42:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9581, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9536, + "src": "1838:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1793:65:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9583, + "nodeType": "ExpressionStatement", + "src": "1793:65:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9584, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1868:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9586, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "trancheFeePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 9473, + "src": "1868:39:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9587, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "1910:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1868:59:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9589, + "nodeType": "ExpressionStatement", + "src": "1868:59:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9590, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1937:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9592, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 9475, + "src": "1937:26:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9593, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9540, + "src": "1966:4:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1937:33:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9595, + "nodeType": "ExpressionStatement", + "src": "1937:33:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 9600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9596, + "name": "__createCrowdsaleCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9481, + "src": "1980:21:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CreateCrowdsaleCall_$9479_storage", + "typeString": "struct W12Lister__W12CrowdsaleFactoryMock.CreateCrowdsaleCall storage ref" + } + }, + "id": 9598, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 9478, + "src": "1980:28:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9599, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9543, + "src": "2011:6:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "src": "1980:37:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 9601, + "nodeType": "ExpressionStatement", + "src": "1980:37:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2035:31:32", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_W12Lister__W12CrowdsaleMock_$9833_$", + "typeString": "function () returns (contract W12Lister__W12CrowdsaleMock)" + }, + "typeName": { + "contractScope": null, + "id": 9602, + "name": "W12Lister__W12CrowdsaleMock", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9833, + "src": "2039:27:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Lister__W12CrowdsaleMock_$9833", + "typeString": "contract W12Lister__W12CrowdsaleMock" + } + } + }, + "id": 9604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2035:33:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Lister__W12CrowdsaleMock_$9833", + "typeString": "contract W12Lister__W12CrowdsaleMock" + } + }, + "functionReturnParameters": 9547, + "id": 9605, + "nodeType": "Return", + "src": "2028:40:32" + } + ] + }, + "documentation": null, + "id": 9607, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9526, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1212:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9525, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1212:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9528, + "name": "_wTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1242:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1242:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9530, + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1274:10:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9529, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1274:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9532, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1294:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9531, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1294:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9534, + "name": "serviceFee", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1325:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9533, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1325:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9536, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1350:25:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9535, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1350:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9538, + "name": "trancheFeePercent", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1385:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9537, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1385:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9540, + "name": "swap", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1417:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1417:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9543, + "name": "owners", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1439:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 9541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1439:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9542, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1439:9:32", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1202:259:32" + }, + "payable": false, + "returnParameters": { + "id": 9547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9546, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "1485:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 9545, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "1485:13:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1484:15:32" + }, + "scope": 9608, + "src": "1178:897:32", + "stateMutability": "nonpayable", + "superFunction": 4083, + "visibility": "external" + } + ], + "scope": 9609, + "src": "176:1901:32" + } + ], + "src": "0:2078:32" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.027Z" +} \ No newline at end of file diff --git a/build/contracts/W12Lister__W12CrowdsaleMock.json b/build/contracts/W12Lister__W12CrowdsaleMock.json new file mode 100644 index 00000000..dbf6f2f7 --- /dev/null +++ b/build/contracts/W12Lister__W12CrowdsaleMock.json @@ -0,0 +1,5402 @@ +{ + "contractName": "W12Lister__W12CrowdsaleMock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "_addAdminCall", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getFund", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "price", + "type": "uint256" + } + ], + "name": "setParameters", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "parametersOfStages", + "type": "uint256[6][]" + }, + { + "name": "bonusConditionsOfStages", + "type": "uint256[]" + }, + { + "name": "parametersOfMilestones", + "type": "uint256[4][]" + }, + { + "name": "nameAndDescriptionsOffsetOfMilestones", + "type": "uint32[]" + }, + { + "name": "nameAndDescriptionsOfMilestones", + "type": "bytes" + }, + { + "name": "paymentMethodsList", + "type": "bytes32[]" + } + ], + "name": "setup", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getWToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "getMilestone", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bytes" + }, + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "getStage", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint256[]" + }, + { + "name": "", + "type": "uint256[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentMilestoneIndex", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLastMilestoneIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "milestonesLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentStageIndex", + "outputs": [ + { + "name": "index", + "type": "uint256" + }, + { + "name": "found", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "getSaleVolumeBonus", + "outputs": [ + { + "name": "bonus", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isEnded", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isSaleActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "buyTokens", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001961005b565b604051809103906000f080158015610035573d6000803e3d6000fd5b5060008054600160a060020a031916600160a060020a039290921691909117905561006b565b60405161024f8061067f83390190565b6106058061007a6000396000f30060806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166307f5d633811461013f57806314f66d341461014d5780631785f53c1461017b578063208853c91461019c5780632348238c1461017b5780632442e1cb146101c657806324d7806c146102fc5780632e3250201461033157806339e69a6c146104225780633baba4d7146104535780633bcdb1641461017b5780634090cb6414610468578063564566a81461047d57806370480275146104925780638bad0c0a146104b35780638edd6eb6146104c8578063a4fd6f561461047d578063d0934d61146104b3578063d155790b1461017b578063d5b22623146104dd578063d6d65f3d1461014d578063d8e9ce64146102fc578063daa4cf881461014d578063e93b054014610539575b005b61013d600435602435610551565b34801561015957600080fd5b50610162610555565b6040805192835290151560208301528051918290030190f35b34801561018757600080fd5b5061013d600160a060020a036004351661055c565b3480156101a857600080fd5b506101b460043561055f565b60408051918252519081900360200190f35b3480156101d257600080fd5b506101de600435610565565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561025b578181015183820152602001610243565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156102bb5781810151838201526020016102a3565b50505050905090810190601f1680156102e85780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561030857600080fd5b5061031d600160a060020a036004351661055f565b604080519115158252519081900360200190f35b34801561033d57600080fd5b50610349600435610565565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156103c95781810151838201526020016103b1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156104085781810151838201526020016103f0565b505050509050019850505050505050505060405180910390f35b34801561042e57600080fd5b50610437610577565b60408051600160a060020a039092168252519081900360200190f35b34801561045f57600080fd5b506101b4610586565b34801561047457600080fd5b50610437610586565b34801561048957600080fd5b5061031d610586565b34801561049e57600080fd5b5061013d600160a060020a036004351661058b565b3480156104bf57600080fd5b5061013d6105ba565b3480156104d457600080fd5b506104376105bc565b3480156104e957600080fd5b5061013d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a4359182019101356105cb565b34801561054557600080fd5b5061013d60043561055c565b5050565b6000809091565b50565b50600090565b60008060008060608091939550919395565b600154600160a060020a031681565b600090565b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b565b600054600160a060020a031690565b5050505050505050505050505600a165627a7a723058207439eea7a4fd6d4364e276282bbfcb60a3d045d1fc502b3b5bf06a1581a05f840029608060405234801561001057600080fd5b5061022f806100206000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631785f53c81146100d45780632348238c146100d457806323bffccc146100d457806324d7806c146100f757806339e69a6c1461012c5780633bcdb164146100d4578063483a20b2146100d4578063704802751461015d5780638bad0c0a1461017e578063acb3c073146100d4578063d0934d611461017e578063d0baf2f514610193578063d155790b146100d4578063d8e9ce64146100f7575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166101b3565b005b34801561010357600080fd5b50610118600160a060020a03600435166101b6565b604080519115158252519081900360200190f35b34801561013857600080fd5b506101416101bc565b60408051600160a060020a039092168252519081900360200190f35b34801561016957600080fd5b506100f5600160a060020a03600435166101cb565b34801561018a57600080fd5b506100f56101fa565b6100f5600160a060020a03600435166024356044356064356084356101fc565b50565b50600090565b600054600160a060020a031681565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b565b50505050505600a165627a7a72305820737c1e8a23180caeb011ac20837d0e1682a7a8b47d05981e1ee56d035ba7327f0029", + "deployedBytecode": "0x60806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166307f5d633811461013f57806314f66d341461014d5780631785f53c1461017b578063208853c91461019c5780632348238c1461017b5780632442e1cb146101c657806324d7806c146102fc5780632e3250201461033157806339e69a6c146104225780633baba4d7146104535780633bcdb1641461017b5780634090cb6414610468578063564566a81461047d57806370480275146104925780638bad0c0a146104b35780638edd6eb6146104c8578063a4fd6f561461047d578063d0934d61146104b3578063d155790b1461017b578063d5b22623146104dd578063d6d65f3d1461014d578063d8e9ce64146102fc578063daa4cf881461014d578063e93b054014610539575b005b61013d600435602435610551565b34801561015957600080fd5b50610162610555565b6040805192835290151560208301528051918290030190f35b34801561018757600080fd5b5061013d600160a060020a036004351661055c565b3480156101a857600080fd5b506101b460043561055f565b60408051918252519081900360200190f35b3480156101d257600080fd5b506101de600435610565565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561025b578181015183820152602001610243565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156102bb5781810151838201526020016102a3565b50505050905090810190601f1680156102e85780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561030857600080fd5b5061031d600160a060020a036004351661055f565b604080519115158252519081900360200190f35b34801561033d57600080fd5b50610349600435610565565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156103c95781810151838201526020016103b1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156104085781810151838201526020016103f0565b505050509050019850505050505050505060405180910390f35b34801561042e57600080fd5b50610437610577565b60408051600160a060020a039092168252519081900360200190f35b34801561045f57600080fd5b506101b4610586565b34801561047457600080fd5b50610437610586565b34801561048957600080fd5b5061031d610586565b34801561049e57600080fd5b5061013d600160a060020a036004351661058b565b3480156104bf57600080fd5b5061013d6105ba565b3480156104d457600080fd5b506104376105bc565b3480156104e957600080fd5b5061013d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a4359182019101356105cb565b34801561054557600080fd5b5061013d60043561055c565b5050565b6000809091565b50565b50600090565b60008060008060608091939550919395565b600154600160a060020a031681565b600090565b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b565b600054600160a060020a031690565b5050505050505050505050505600a165627a7a723058207439eea7a4fd6d4364e276282bbfcb60a3d045d1fc502b3b5bf06a1581a05f840029", + "sourceMap": "149:2073:33:-;;;238:74;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:74:33;277:28;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;269:5:33;:36;;-1:-1:-1;;;;;;269:36:33;-1:-1:-1;;;;;269:36:33;;;;;;;;;;149:2073;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "149:2073:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2155:65;;;;;;;;1689:80;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1689:80:33;;;;;;;;;;;;;;;;;;;;;;;;;;;550:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;550:47:33;;;-1:-1:-1;550:47:33;;;1925:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1925:75:33;;;;;;;;;;;;;;;;;;;;;1400:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1400:101:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1400:101:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1400:101:33;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1400:101:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;318:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;318:63:33;;;-1:-1:-1;318:63:33;;;;;;;;;;;;;;;;;;;;;1507:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1507:99:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1507:99:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1507:99:33;;;;;;;;;;;;;;;;;;;;;;;387:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;387:28:33;;;;;;;;-1:-1:-1;;;;;387:28:33;;;;;;;;;;;;;;1775:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1775:59:33;;;;1339:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1339:55:33;;;;2060:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2060:53:33;;;;422:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;422:82:33;;;-1:-1:-1;422:82:33;;;510:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;510:34:33;;;;843:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;843:81:33;;;;1040:293;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1040:293:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;930:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;930:46:33;;;;;2155:65;;;:::o;1689:80::-;1743:10;1755;1689:80;;:::o;550:47::-;;:::o;1925:75::-;-1:-1:-1;1986:10:33;;1925:75::o;1400:101::-;1455:6;1463:4;1469:6;1477;1485:5;1492;1400:101;;;;;;;:::o;387:28::-;;;-1:-1:-1;387:28:33;;:::o;1775:59::-;1826:4;1775:59;:::o;422:82::-;474:13;:23;;-1:-1:-1;;474:23:33;-1:-1:-1;474:23:33;;;;;;;;;;422:82::o;510:34::-;:::o;843:81::-;885:8;912:5;-1:-1:-1;912:5:33;;843:81::o;1040:293::-;;;;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"../../crowdsale/IW12Crowdsale.sol\";\nimport \"../../crowdsale/IW12Fund.sol\";\nimport \"./W12Lister__W12FundMock.sol\";\n\ncontract W12Lister__W12CrowdsaleMock is IW12Crowdsale {\n IW12Fund private _fund;\n\n constructor() public {\n _fund = new W12Lister__W12FundMock();\n }\n\n function isAdmin(address account) public view returns (bool) {}\n\n address public _addAdminCall;\n\n function addAdmin(address account) public {\n _addAdminCall = account;\n }\n\n function renounceAdmin() public {}\n\n function removeAdmin(address account) public {}\n\n function isProjectOwner(address account) public view returns (bool) {}\n\n function addProjectOwner(address account) public {}\n\n function renounceProjectOwner() public {}\n\n function removeProjectOwner(address account) public {}\n\n function getFund() external view returns (IW12Fund) {\n return _fund;\n }\n\n function setParameters(uint price) external {}\n\n function transferPrimary(address _address) public {}\n\n function setup(\n uint[6][] parametersOfStages,\n uint[] bonusConditionsOfStages,\n uint[4][] parametersOfMilestones,\n uint32[] nameAndDescriptionsOffsetOfMilestones,\n bytes nameAndDescriptionsOfMilestones,\n bytes32[] paymentMethodsList\n ) external {}\n\n function getWToken() external view returns (IWToken) {}\n\n function getMilestone(uint index) public view returns (uint32, uint, uint32, uint32, bytes, bytes) {}\n\n function getStage(uint index) public view returns (uint32, uint32, uint, uint32, uint[], uint[]) {}\n\n function getCurrentMilestoneIndex() public view returns (uint, bool) {}\n\n function getLastMilestoneIndex() public view returns (uint index, bool found) {}\n\n function milestonesLength() external view returns (uint) {}\n\n function getCurrentStageIndex() public view returns (uint index, bool found) {}\n\n function getSaleVolumeBonus(uint value) public view returns (uint bonus) {}\n\n function isEnded() public view returns (bool) {}\n\n function isSaleActive() public view returns (bool) {}\n\n function() payable external {}\n\n function buyTokens(bytes32 method, uint amount) payable public {}\n}\n", + "sourcePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12CrowdsaleMock.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12CrowdsaleMock.sol", + "exportedSymbols": { + "W12Lister__W12CrowdsaleMock": [ + 9833 + ] + }, + "id": 9834, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9610, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:33" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../../crowdsale/IW12Crowdsale.sol", + "id": 9611, + "nodeType": "ImportDirective", + "scope": 9834, + "sourceUnit": 1761, + "src": "26:43:33", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "../../crowdsale/IW12Fund.sol", + "id": 9612, + "nodeType": "ImportDirective", + "scope": 9834, + "sourceUnit": 1804, + "src": "70:38:33", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12FundMock.sol", + "file": "./W12Lister__W12FundMock.sol", + "id": 9613, + "nodeType": "ImportDirective", + "scope": 9834, + "sourceUnit": 9933, + "src": "109:38:33", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9614, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "189:13:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 9615, + "nodeType": "InheritanceSpecifier", + "src": "189:13:33" + } + ], + "contractDependencies": [ + 1375, + 1421, + 1760, + 9932 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9833, + "linearizedBaseContracts": [ + 9833, + 1760, + 1421, + 1375 + ], + "name": "W12Lister__W12CrowdsaleMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9617, + "name": "_fund", + "nodeType": "VariableDeclaration", + "scope": 9833, + "src": "209:22:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 9616, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "209:8:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9626, + "nodeType": "Block", + "src": "259:53:33", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9620, + "name": "_fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9617, + "src": "269:5:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "277:26:33", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_W12Lister__W12FundMock_$9932_$", + "typeString": "function () returns (contract W12Lister__W12FundMock)" + }, + "typeName": { + "contractScope": null, + "id": 9621, + "name": "W12Lister__W12FundMock", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9932, + "src": "281:22:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Lister__W12FundMock_$9932", + "typeString": "contract W12Lister__W12FundMock" + } + } + }, + "id": 9623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "277:28:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Lister__W12FundMock_$9932", + "typeString": "contract W12Lister__W12FundMock" + } + }, + "src": "269:36:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 9625, + "nodeType": "ExpressionStatement", + "src": "269:36:33" + } + ] + }, + "documentation": null, + "id": 9627, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9618, + "nodeType": "ParameterList", + "parameters": [], + "src": "249:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9619, + "nodeType": "ParameterList", + "parameters": [], + "src": "259:0:33" + }, + "scope": 9833, + "src": "238:74:33", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9634, + "nodeType": "Block", + "src": "379:2:33", + "statements": [] + }, + "documentation": null, + "id": 9635, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9629, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9635, + "src": "335:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9628, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "335:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "334:17:33" + }, + "payable": false, + "returnParameters": { + "id": 9633, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9632, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9635, + "src": "373:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9631, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "373:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "372:6:33" + }, + "scope": 9833, + "src": "318:63:33", + "stateMutability": "view", + "superFunction": 1361, + "visibility": "public" + }, + { + "constant": false, + "id": 9637, + "name": "_addAdminCall", + "nodeType": "VariableDeclaration", + "scope": 9833, + "src": "387:28:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "387:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 9646, + "nodeType": "Block", + "src": "464:40:33", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9642, + "name": "_addAdminCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9637, + "src": "474:13:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9643, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9639, + "src": "490:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "474:23:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9645, + "nodeType": "ExpressionStatement", + "src": "474:23:33" + } + ] + }, + "documentation": null, + "id": 9647, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9639, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9647, + "src": "440:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "440:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "439:17:33" + }, + "payable": false, + "returnParameters": { + "id": 9641, + "nodeType": "ParameterList", + "parameters": [], + "src": "464:0:33" + }, + "scope": 9833, + "src": "422:82:33", + "stateMutability": "nonpayable", + "superFunction": 1366, + "visibility": "public" + }, + { + "body": { + "id": 9650, + "nodeType": "Block", + "src": "542:2:33", + "statements": [] + }, + "documentation": null, + "id": 9651, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9648, + "nodeType": "ParameterList", + "parameters": [], + "src": "532:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9649, + "nodeType": "ParameterList", + "parameters": [], + "src": "542:0:33" + }, + "scope": 9833, + "src": "510:34:33", + "stateMutability": "nonpayable", + "superFunction": 1369, + "visibility": "public" + }, + { + "body": { + "id": 9656, + "nodeType": "Block", + "src": "595:2:33", + "statements": [] + }, + "documentation": null, + "id": 9657, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9653, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9657, + "src": "571:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "571:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "570:17:33" + }, + "payable": false, + "returnParameters": { + "id": 9655, + "nodeType": "ParameterList", + "parameters": [], + "src": "595:0:33" + }, + "scope": 9833, + "src": "550:47:33", + "stateMutability": "nonpayable", + "superFunction": 1374, + "visibility": "public" + }, + { + "body": { + "id": 9664, + "nodeType": "Block", + "src": "671:2:33", + "statements": [] + }, + "documentation": null, + "id": 9665, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9659, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9665, + "src": "627:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9658, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "627:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "626:17:33" + }, + "payable": false, + "returnParameters": { + "id": 9663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9662, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9665, + "src": "665:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "665:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "664:6:33" + }, + "scope": 9833, + "src": "603:70:33", + "stateMutability": "view", + "superFunction": 1407, + "visibility": "public" + }, + { + "body": { + "id": 9670, + "nodeType": "Block", + "src": "728:2:33", + "statements": [] + }, + "documentation": null, + "id": 9671, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9667, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9671, + "src": "704:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9666, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "704:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "703:17:33" + }, + "payable": false, + "returnParameters": { + "id": 9669, + "nodeType": "ParameterList", + "parameters": [], + "src": "728:0:33" + }, + "scope": 9833, + "src": "679:51:33", + "stateMutability": "nonpayable", + "superFunction": 1412, + "visibility": "public" + }, + { + "body": { + "id": 9674, + "nodeType": "Block", + "src": "775:2:33", + "statements": [] + }, + "documentation": null, + "id": 9675, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9672, + "nodeType": "ParameterList", + "parameters": [], + "src": "765:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9673, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:0:33" + }, + "scope": 9833, + "src": "736:41:33", + "stateMutability": "nonpayable", + "superFunction": 1415, + "visibility": "public" + }, + { + "body": { + "id": 9680, + "nodeType": "Block", + "src": "835:2:33", + "statements": [] + }, + "documentation": null, + "id": 9681, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9677, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9681, + "src": "811:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "811:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "810:17:33" + }, + "payable": false, + "returnParameters": { + "id": 9679, + "nodeType": "ParameterList", + "parameters": [], + "src": "835:0:33" + }, + "scope": 9833, + "src": "783:54:33", + "stateMutability": "nonpayable", + "superFunction": 1420, + "visibility": "public" + }, + { + "body": { + "id": 9688, + "nodeType": "Block", + "src": "895:29:33", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9686, + "name": "_fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9617, + "src": "912:5:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "functionReturnParameters": 9685, + "id": 9687, + "nodeType": "Return", + "src": "905:12:33" + } + ] + }, + "documentation": null, + "id": 9689, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getFund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9682, + "nodeType": "ParameterList", + "parameters": [], + "src": "859:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9684, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9689, + "src": "885:8:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 9683, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "885:8:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "884:10:33" + }, + "scope": 9833, + "src": "843:81:33", + "stateMutability": "view", + "superFunction": 1668, + "visibility": "external" + }, + { + "body": { + "id": 9694, + "nodeType": "Block", + "src": "974:2:33", + "statements": [] + }, + "documentation": null, + "id": 9695, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setParameters", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9691, + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 9695, + "src": "953:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9690, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "953:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "952:12:33" + }, + "payable": false, + "returnParameters": { + "id": 9693, + "nodeType": "ParameterList", + "parameters": [], + "src": "974:0:33" + }, + "scope": 9833, + "src": "930:46:33", + "stateMutability": "nonpayable", + "superFunction": 1634, + "visibility": "external" + }, + { + "body": { + "id": 9700, + "nodeType": "Block", + "src": "1032:2:33", + "statements": [] + }, + "documentation": null, + "id": 9701, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferPrimary", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9697, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 9701, + "src": "1007:16:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9696, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1007:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1006:18:33" + }, + "payable": false, + "returnParameters": { + "id": 9699, + "nodeType": "ParameterList", + "parameters": [], + "src": "1032:0:33" + }, + "scope": 9833, + "src": "982:52:33", + "stateMutability": "nonpayable", + "superFunction": 1759, + "visibility": "public" + }, + { + "body": { + "id": 9725, + "nodeType": "Block", + "src": "1331:2:33", + "statements": [] + }, + "documentation": null, + "id": 9726, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setup", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9706, + "name": "parametersOfStages", + "nodeType": "VariableDeclaration", + "scope": 9726, + "src": "1064:28:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", + "typeString": "uint256[6][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 9702, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1064:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9704, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 9703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1069:1:33", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "1064:7:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "id": 9705, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1064:9:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", + "typeString": "uint256[6][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9709, + "name": "bonusConditionsOfStages", + "nodeType": "VariableDeclaration", + "scope": 9726, + "src": "1102:30:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 9707, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1102:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9708, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1102:6:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9714, + "name": "parametersOfMilestones", + "nodeType": "VariableDeclaration", + "scope": 9726, + "src": "1142:32:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", + "typeString": "uint256[4][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 9710, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1142:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9712, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 9711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1147:1:33", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "1142:7:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "id": 9713, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1142:9:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", + "typeString": "uint256[4][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9717, + "name": "nameAndDescriptionsOffsetOfMilestones", + "nodeType": "VariableDeclaration", + "scope": 9726, + "src": "1184:46:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 9715, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1184:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 9716, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1184:8:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9719, + "name": "nameAndDescriptionsOfMilestones", + "nodeType": "VariableDeclaration", + "scope": 9726, + "src": "1240:37:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9718, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1240:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9722, + "name": "paymentMethodsList", + "nodeType": "VariableDeclaration", + "scope": 9726, + "src": "1287:28:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 9720, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1287:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 9721, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1287:9:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1054:267:33" + }, + "payable": false, + "returnParameters": { + "id": 9724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1331:0:33" + }, + "scope": 9833, + "src": "1040:293:33", + "stateMutability": "nonpayable", + "superFunction": 1658, + "visibility": "external" + }, + { + "body": { + "id": 9731, + "nodeType": "Block", + "src": "1392:2:33", + "statements": [] + }, + "documentation": null, + "id": 9732, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getWToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9727, + "nodeType": "ParameterList", + "parameters": [], + "src": "1357:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9729, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9732, + "src": "1383:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 9728, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "1383:7:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1382:9:33" + }, + "scope": 9833, + "src": "1339:55:33", + "stateMutability": "view", + "superFunction": 1663, + "visibility": "external" + }, + { + "body": { + "id": 9749, + "nodeType": "Block", + "src": "1499:2:33", + "statements": [] + }, + "documentation": null, + "id": 9750, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getMilestone", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9734, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1422:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9733, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1422:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1421:12:33" + }, + "payable": false, + "returnParameters": { + "id": 9748, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9737, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1455:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 9736, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1455:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9739, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1463:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9738, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1463:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9741, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1469:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 9740, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1469:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9743, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1477:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 9742, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1477:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9745, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1485:5:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9744, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1485:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9747, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1492:5:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9746, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1492:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1454:44:33" + }, + "scope": 9833, + "src": "1400:101:33", + "stateMutability": "view", + "superFunction": 1685, + "visibility": "public" + }, + { + "body": { + "id": 9769, + "nodeType": "Block", + "src": "1604:2:33", + "statements": [] + }, + "documentation": null, + "id": 9770, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getStage", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9752, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1525:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9751, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1525:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1524:12:33" + }, + "payable": false, + "returnParameters": { + "id": 9768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9755, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1558:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 9754, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1558:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9757, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1566:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 9756, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1566:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9759, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1574:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9758, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1574:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9761, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1580:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 9760, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1580:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9764, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1588:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 9762, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1588:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9763, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1588:6:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9767, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1596:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 9765, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1596:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9766, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1596:6:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1557:46:33" + }, + "scope": 9833, + "src": "1507:99:33", + "stateMutability": "view", + "superFunction": 1704, + "visibility": "public" + }, + { + "body": { + "id": 9777, + "nodeType": "Block", + "src": "1681:2:33", + "statements": [] + }, + "documentation": null, + "id": 9778, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCurrentMilestoneIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9771, + "nodeType": "ParameterList", + "parameters": [], + "src": "1645:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9773, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9778, + "src": "1669:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9772, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1669:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9775, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9778, + "src": "1675:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9774, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1675:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1668:12:33" + }, + "scope": 9833, + "src": "1612:71:33", + "stateMutability": "view", + "superFunction": 1711, + "visibility": "public" + }, + { + "body": { + "id": 9785, + "nodeType": "Block", + "src": "1767:2:33", + "statements": [] + }, + "documentation": null, + "id": 9786, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLastMilestoneIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9779, + "nodeType": "ParameterList", + "parameters": [], + "src": "1719:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9781, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 9786, + "src": "1743:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9780, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1743:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9783, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 9786, + "src": "1755:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9782, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1755:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1742:24:33" + }, + "scope": 9833, + "src": "1689:80:33", + "stateMutability": "view", + "superFunction": 1718, + "visibility": "public" + }, + { + "body": { + "id": 9791, + "nodeType": "Block", + "src": "1832:2:33", + "statements": [] + }, + "documentation": null, + "id": 9792, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "milestonesLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9787, + "nodeType": "ParameterList", + "parameters": [], + "src": "1800:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9789, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9792, + "src": "1826:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9788, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1826:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1825:6:33" + }, + "scope": 9833, + "src": "1775:59:33", + "stateMutability": "view", + "superFunction": 1723, + "visibility": "external" + }, + { + "body": { + "id": 9799, + "nodeType": "Block", + "src": "1917:2:33", + "statements": [] + }, + "documentation": null, + "id": 9800, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCurrentStageIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9793, + "nodeType": "ParameterList", + "parameters": [], + "src": "1869:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9795, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 9800, + "src": "1893:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9794, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1893:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9797, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 9800, + "src": "1905:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9796, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1905:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1892:24:33" + }, + "scope": 9833, + "src": "1840:79:33", + "stateMutability": "view", + "superFunction": 1730, + "visibility": "public" + }, + { + "body": { + "id": 9807, + "nodeType": "Block", + "src": "1998:2:33", + "statements": [] + }, + "documentation": null, + "id": 9808, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSaleVolumeBonus", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9802, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9808, + "src": "1953:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9801, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1953:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1952:12:33" + }, + "payable": false, + "returnParameters": { + "id": 9806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9805, + "name": "bonus", + "nodeType": "VariableDeclaration", + "scope": 9808, + "src": "1986:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9804, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1986:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1985:12:33" + }, + "scope": 9833, + "src": "1925:75:33", + "stateMutability": "view", + "superFunction": 1737, + "visibility": "public" + }, + { + "body": { + "id": 9813, + "nodeType": "Block", + "src": "2052:2:33", + "statements": [] + }, + "documentation": null, + "id": 9814, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isEnded", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9809, + "nodeType": "ParameterList", + "parameters": [], + "src": "2022:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9811, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9814, + "src": "2046:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9810, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2046:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2045:6:33" + }, + "scope": 9833, + "src": "2006:48:33", + "stateMutability": "view", + "superFunction": 1742, + "visibility": "public" + }, + { + "body": { + "id": 9819, + "nodeType": "Block", + "src": "2111:2:33", + "statements": [] + }, + "documentation": null, + "id": 9820, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isSaleActive", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9815, + "nodeType": "ParameterList", + "parameters": [], + "src": "2081:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9818, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9817, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9820, + "src": "2105:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9816, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2105:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2104:6:33" + }, + "scope": 9833, + "src": "2060:53:33", + "stateMutability": "view", + "superFunction": 1747, + "visibility": "public" + }, + { + "body": { + "id": 9823, + "nodeType": "Block", + "src": "2147:2:33", + "statements": [] + }, + "documentation": null, + "id": 9824, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9821, + "nodeType": "ParameterList", + "parameters": [], + "src": "2127:2:33" + }, + "payable": true, + "returnParameters": { + "id": 9822, + "nodeType": "ParameterList", + "parameters": [], + "src": "2147:0:33" + }, + "scope": 9833, + "src": "2119:30:33", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 9831, + "nodeType": "Block", + "src": "2218:2:33", + "statements": [] + }, + "documentation": null, + "id": 9832, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "buyTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9829, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9826, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 9832, + "src": "2174:14:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 9825, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2174:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9828, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 9832, + "src": "2190:11:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9827, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2190:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2173:29:33" + }, + "payable": true, + "returnParameters": { + "id": 9830, + "nodeType": "ParameterList", + "parameters": [], + "src": "2218:0:33" + }, + "scope": 9833, + "src": "2155:65:33", + "stateMutability": "payable", + "superFunction": 1754, + "visibility": "public" + } + ], + "scope": 9834, + "src": "149:2073:33" + } + ], + "src": "0:2223:33" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12CrowdsaleMock.sol", + "exportedSymbols": { + "W12Lister__W12CrowdsaleMock": [ + 9833 + ] + }, + "id": 9834, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9610, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:33" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../../crowdsale/IW12Crowdsale.sol", + "id": 9611, + "nodeType": "ImportDirective", + "scope": 9834, + "sourceUnit": 1761, + "src": "26:43:33", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "../../crowdsale/IW12Fund.sol", + "id": 9612, + "nodeType": "ImportDirective", + "scope": 9834, + "sourceUnit": 1804, + "src": "70:38:33", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12FundMock.sol", + "file": "./W12Lister__W12FundMock.sol", + "id": 9613, + "nodeType": "ImportDirective", + "scope": 9834, + "sourceUnit": 9933, + "src": "109:38:33", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9614, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "189:13:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 9615, + "nodeType": "InheritanceSpecifier", + "src": "189:13:33" + } + ], + "contractDependencies": [ + 1375, + 1421, + 1760, + 9932 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9833, + "linearizedBaseContracts": [ + 9833, + 1760, + 1421, + 1375 + ], + "name": "W12Lister__W12CrowdsaleMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9617, + "name": "_fund", + "nodeType": "VariableDeclaration", + "scope": 9833, + "src": "209:22:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 9616, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "209:8:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9626, + "nodeType": "Block", + "src": "259:53:33", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9620, + "name": "_fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9617, + "src": "269:5:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "277:26:33", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_W12Lister__W12FundMock_$9932_$", + "typeString": "function () returns (contract W12Lister__W12FundMock)" + }, + "typeName": { + "contractScope": null, + "id": 9621, + "name": "W12Lister__W12FundMock", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9932, + "src": "281:22:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Lister__W12FundMock_$9932", + "typeString": "contract W12Lister__W12FundMock" + } + } + }, + "id": 9623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "277:28:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Lister__W12FundMock_$9932", + "typeString": "contract W12Lister__W12FundMock" + } + }, + "src": "269:36:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 9625, + "nodeType": "ExpressionStatement", + "src": "269:36:33" + } + ] + }, + "documentation": null, + "id": 9627, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9618, + "nodeType": "ParameterList", + "parameters": [], + "src": "249:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9619, + "nodeType": "ParameterList", + "parameters": [], + "src": "259:0:33" + }, + "scope": 9833, + "src": "238:74:33", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9634, + "nodeType": "Block", + "src": "379:2:33", + "statements": [] + }, + "documentation": null, + "id": 9635, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9629, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9635, + "src": "335:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9628, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "335:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "334:17:33" + }, + "payable": false, + "returnParameters": { + "id": 9633, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9632, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9635, + "src": "373:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9631, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "373:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "372:6:33" + }, + "scope": 9833, + "src": "318:63:33", + "stateMutability": "view", + "superFunction": 1361, + "visibility": "public" + }, + { + "constant": false, + "id": 9637, + "name": "_addAdminCall", + "nodeType": "VariableDeclaration", + "scope": 9833, + "src": "387:28:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "387:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 9646, + "nodeType": "Block", + "src": "464:40:33", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9642, + "name": "_addAdminCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9637, + "src": "474:13:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9643, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9639, + "src": "490:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "474:23:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9645, + "nodeType": "ExpressionStatement", + "src": "474:23:33" + } + ] + }, + "documentation": null, + "id": 9647, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9639, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9647, + "src": "440:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "440:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "439:17:33" + }, + "payable": false, + "returnParameters": { + "id": 9641, + "nodeType": "ParameterList", + "parameters": [], + "src": "464:0:33" + }, + "scope": 9833, + "src": "422:82:33", + "stateMutability": "nonpayable", + "superFunction": 1366, + "visibility": "public" + }, + { + "body": { + "id": 9650, + "nodeType": "Block", + "src": "542:2:33", + "statements": [] + }, + "documentation": null, + "id": 9651, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9648, + "nodeType": "ParameterList", + "parameters": [], + "src": "532:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9649, + "nodeType": "ParameterList", + "parameters": [], + "src": "542:0:33" + }, + "scope": 9833, + "src": "510:34:33", + "stateMutability": "nonpayable", + "superFunction": 1369, + "visibility": "public" + }, + { + "body": { + "id": 9656, + "nodeType": "Block", + "src": "595:2:33", + "statements": [] + }, + "documentation": null, + "id": 9657, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9653, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9657, + "src": "571:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "571:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "570:17:33" + }, + "payable": false, + "returnParameters": { + "id": 9655, + "nodeType": "ParameterList", + "parameters": [], + "src": "595:0:33" + }, + "scope": 9833, + "src": "550:47:33", + "stateMutability": "nonpayable", + "superFunction": 1374, + "visibility": "public" + }, + { + "body": { + "id": 9664, + "nodeType": "Block", + "src": "671:2:33", + "statements": [] + }, + "documentation": null, + "id": 9665, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9659, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9665, + "src": "627:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9658, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "627:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "626:17:33" + }, + "payable": false, + "returnParameters": { + "id": 9663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9662, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9665, + "src": "665:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "665:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "664:6:33" + }, + "scope": 9833, + "src": "603:70:33", + "stateMutability": "view", + "superFunction": 1407, + "visibility": "public" + }, + { + "body": { + "id": 9670, + "nodeType": "Block", + "src": "728:2:33", + "statements": [] + }, + "documentation": null, + "id": 9671, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9667, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9671, + "src": "704:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9666, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "704:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "703:17:33" + }, + "payable": false, + "returnParameters": { + "id": 9669, + "nodeType": "ParameterList", + "parameters": [], + "src": "728:0:33" + }, + "scope": 9833, + "src": "679:51:33", + "stateMutability": "nonpayable", + "superFunction": 1412, + "visibility": "public" + }, + { + "body": { + "id": 9674, + "nodeType": "Block", + "src": "775:2:33", + "statements": [] + }, + "documentation": null, + "id": 9675, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9672, + "nodeType": "ParameterList", + "parameters": [], + "src": "765:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9673, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:0:33" + }, + "scope": 9833, + "src": "736:41:33", + "stateMutability": "nonpayable", + "superFunction": 1415, + "visibility": "public" + }, + { + "body": { + "id": 9680, + "nodeType": "Block", + "src": "835:2:33", + "statements": [] + }, + "documentation": null, + "id": 9681, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9677, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9681, + "src": "811:15:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "811:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "810:17:33" + }, + "payable": false, + "returnParameters": { + "id": 9679, + "nodeType": "ParameterList", + "parameters": [], + "src": "835:0:33" + }, + "scope": 9833, + "src": "783:54:33", + "stateMutability": "nonpayable", + "superFunction": 1420, + "visibility": "public" + }, + { + "body": { + "id": 9688, + "nodeType": "Block", + "src": "895:29:33", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9686, + "name": "_fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9617, + "src": "912:5:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "functionReturnParameters": 9685, + "id": 9687, + "nodeType": "Return", + "src": "905:12:33" + } + ] + }, + "documentation": null, + "id": 9689, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getFund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9682, + "nodeType": "ParameterList", + "parameters": [], + "src": "859:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9684, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9689, + "src": "885:8:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 9683, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "885:8:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "884:10:33" + }, + "scope": 9833, + "src": "843:81:33", + "stateMutability": "view", + "superFunction": 1668, + "visibility": "external" + }, + { + "body": { + "id": 9694, + "nodeType": "Block", + "src": "974:2:33", + "statements": [] + }, + "documentation": null, + "id": 9695, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setParameters", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9691, + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 9695, + "src": "953:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9690, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "953:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "952:12:33" + }, + "payable": false, + "returnParameters": { + "id": 9693, + "nodeType": "ParameterList", + "parameters": [], + "src": "974:0:33" + }, + "scope": 9833, + "src": "930:46:33", + "stateMutability": "nonpayable", + "superFunction": 1634, + "visibility": "external" + }, + { + "body": { + "id": 9700, + "nodeType": "Block", + "src": "1032:2:33", + "statements": [] + }, + "documentation": null, + "id": 9701, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferPrimary", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9697, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 9701, + "src": "1007:16:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9696, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1007:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1006:18:33" + }, + "payable": false, + "returnParameters": { + "id": 9699, + "nodeType": "ParameterList", + "parameters": [], + "src": "1032:0:33" + }, + "scope": 9833, + "src": "982:52:33", + "stateMutability": "nonpayable", + "superFunction": 1759, + "visibility": "public" + }, + { + "body": { + "id": 9725, + "nodeType": "Block", + "src": "1331:2:33", + "statements": [] + }, + "documentation": null, + "id": 9726, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setup", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9706, + "name": "parametersOfStages", + "nodeType": "VariableDeclaration", + "scope": 9726, + "src": "1064:28:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", + "typeString": "uint256[6][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 9702, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1064:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9704, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 9703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1069:1:33", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "1064:7:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "id": 9705, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1064:9:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", + "typeString": "uint256[6][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9709, + "name": "bonusConditionsOfStages", + "nodeType": "VariableDeclaration", + "scope": 9726, + "src": "1102:30:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 9707, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1102:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9708, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1102:6:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9714, + "name": "parametersOfMilestones", + "nodeType": "VariableDeclaration", + "scope": 9726, + "src": "1142:32:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", + "typeString": "uint256[4][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 9710, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1142:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9712, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 9711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1147:1:33", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "1142:7:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "id": 9713, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1142:9:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", + "typeString": "uint256[4][]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9717, + "name": "nameAndDescriptionsOffsetOfMilestones", + "nodeType": "VariableDeclaration", + "scope": 9726, + "src": "1184:46:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 9715, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1184:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 9716, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1184:8:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9719, + "name": "nameAndDescriptionsOfMilestones", + "nodeType": "VariableDeclaration", + "scope": 9726, + "src": "1240:37:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9718, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1240:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9722, + "name": "paymentMethodsList", + "nodeType": "VariableDeclaration", + "scope": 9726, + "src": "1287:28:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 9720, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1287:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 9721, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1287:9:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1054:267:33" + }, + "payable": false, + "returnParameters": { + "id": 9724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1331:0:33" + }, + "scope": 9833, + "src": "1040:293:33", + "stateMutability": "nonpayable", + "superFunction": 1658, + "visibility": "external" + }, + { + "body": { + "id": 9731, + "nodeType": "Block", + "src": "1392:2:33", + "statements": [] + }, + "documentation": null, + "id": 9732, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getWToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9727, + "nodeType": "ParameterList", + "parameters": [], + "src": "1357:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9729, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9732, + "src": "1383:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 9728, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "1383:7:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1382:9:33" + }, + "scope": 9833, + "src": "1339:55:33", + "stateMutability": "view", + "superFunction": 1663, + "visibility": "external" + }, + { + "body": { + "id": 9749, + "nodeType": "Block", + "src": "1499:2:33", + "statements": [] + }, + "documentation": null, + "id": 9750, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getMilestone", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9734, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1422:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9733, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1422:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1421:12:33" + }, + "payable": false, + "returnParameters": { + "id": 9748, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9737, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1455:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 9736, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1455:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9739, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1463:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9738, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1463:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9741, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1469:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 9740, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1469:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9743, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1477:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 9742, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1477:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9745, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1485:5:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9744, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1485:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9747, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9750, + "src": "1492:5:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9746, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1492:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1454:44:33" + }, + "scope": 9833, + "src": "1400:101:33", + "stateMutability": "view", + "superFunction": 1685, + "visibility": "public" + }, + { + "body": { + "id": 9769, + "nodeType": "Block", + "src": "1604:2:33", + "statements": [] + }, + "documentation": null, + "id": 9770, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getStage", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9752, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1525:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9751, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1525:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1524:12:33" + }, + "payable": false, + "returnParameters": { + "id": 9768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9755, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1558:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 9754, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1558:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9757, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1566:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 9756, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1566:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9759, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1574:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9758, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1574:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9761, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1580:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 9760, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1580:6:33", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9764, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1588:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 9762, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1588:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9763, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1588:6:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9767, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "1596:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 9765, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1596:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9766, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1596:6:33", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1557:46:33" + }, + "scope": 9833, + "src": "1507:99:33", + "stateMutability": "view", + "superFunction": 1704, + "visibility": "public" + }, + { + "body": { + "id": 9777, + "nodeType": "Block", + "src": "1681:2:33", + "statements": [] + }, + "documentation": null, + "id": 9778, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCurrentMilestoneIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9771, + "nodeType": "ParameterList", + "parameters": [], + "src": "1645:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9773, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9778, + "src": "1669:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9772, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1669:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9775, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9778, + "src": "1675:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9774, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1675:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1668:12:33" + }, + "scope": 9833, + "src": "1612:71:33", + "stateMutability": "view", + "superFunction": 1711, + "visibility": "public" + }, + { + "body": { + "id": 9785, + "nodeType": "Block", + "src": "1767:2:33", + "statements": [] + }, + "documentation": null, + "id": 9786, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLastMilestoneIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9779, + "nodeType": "ParameterList", + "parameters": [], + "src": "1719:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9781, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 9786, + "src": "1743:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9780, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1743:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9783, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 9786, + "src": "1755:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9782, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1755:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1742:24:33" + }, + "scope": 9833, + "src": "1689:80:33", + "stateMutability": "view", + "superFunction": 1718, + "visibility": "public" + }, + { + "body": { + "id": 9791, + "nodeType": "Block", + "src": "1832:2:33", + "statements": [] + }, + "documentation": null, + "id": 9792, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "milestonesLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9787, + "nodeType": "ParameterList", + "parameters": [], + "src": "1800:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9789, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9792, + "src": "1826:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9788, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1826:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1825:6:33" + }, + "scope": 9833, + "src": "1775:59:33", + "stateMutability": "view", + "superFunction": 1723, + "visibility": "external" + }, + { + "body": { + "id": 9799, + "nodeType": "Block", + "src": "1917:2:33", + "statements": [] + }, + "documentation": null, + "id": 9800, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCurrentStageIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9793, + "nodeType": "ParameterList", + "parameters": [], + "src": "1869:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9795, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 9800, + "src": "1893:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9794, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1893:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9797, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 9800, + "src": "1905:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9796, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1905:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1892:24:33" + }, + "scope": 9833, + "src": "1840:79:33", + "stateMutability": "view", + "superFunction": 1730, + "visibility": "public" + }, + { + "body": { + "id": 9807, + "nodeType": "Block", + "src": "1998:2:33", + "statements": [] + }, + "documentation": null, + "id": 9808, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSaleVolumeBonus", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9802, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9808, + "src": "1953:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9801, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1953:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1952:12:33" + }, + "payable": false, + "returnParameters": { + "id": 9806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9805, + "name": "bonus", + "nodeType": "VariableDeclaration", + "scope": 9808, + "src": "1986:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9804, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1986:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1985:12:33" + }, + "scope": 9833, + "src": "1925:75:33", + "stateMutability": "view", + "superFunction": 1737, + "visibility": "public" + }, + { + "body": { + "id": 9813, + "nodeType": "Block", + "src": "2052:2:33", + "statements": [] + }, + "documentation": null, + "id": 9814, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isEnded", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9809, + "nodeType": "ParameterList", + "parameters": [], + "src": "2022:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9811, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9814, + "src": "2046:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9810, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2046:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2045:6:33" + }, + "scope": 9833, + "src": "2006:48:33", + "stateMutability": "view", + "superFunction": 1742, + "visibility": "public" + }, + { + "body": { + "id": 9819, + "nodeType": "Block", + "src": "2111:2:33", + "statements": [] + }, + "documentation": null, + "id": 9820, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isSaleActive", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9815, + "nodeType": "ParameterList", + "parameters": [], + "src": "2081:2:33" + }, + "payable": false, + "returnParameters": { + "id": 9818, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9817, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9820, + "src": "2105:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9816, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2105:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2104:6:33" + }, + "scope": 9833, + "src": "2060:53:33", + "stateMutability": "view", + "superFunction": 1747, + "visibility": "public" + }, + { + "body": { + "id": 9823, + "nodeType": "Block", + "src": "2147:2:33", + "statements": [] + }, + "documentation": null, + "id": 9824, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9821, + "nodeType": "ParameterList", + "parameters": [], + "src": "2127:2:33" + }, + "payable": true, + "returnParameters": { + "id": 9822, + "nodeType": "ParameterList", + "parameters": [], + "src": "2147:0:33" + }, + "scope": 9833, + "src": "2119:30:33", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 9831, + "nodeType": "Block", + "src": "2218:2:33", + "statements": [] + }, + "documentation": null, + "id": 9832, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "buyTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9829, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9826, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 9832, + "src": "2174:14:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 9825, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2174:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9828, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 9832, + "src": "2190:11:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9827, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2190:4:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2173:29:33" + }, + "payable": true, + "returnParameters": { + "id": 9830, + "nodeType": "ParameterList", + "parameters": [], + "src": "2218:0:33" + }, + "scope": 9833, + "src": "2155:65:33", + "stateMutability": "payable", + "superFunction": 1754, + "visibility": "public" + } + ], + "scope": 9834, + "src": "149:2073:33" + } + ], + "src": "0:2223:33" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.027Z" +} \ No newline at end of file diff --git a/build/contracts/W12Lister__W12FundMock.json b/build/contracts/W12Lister__W12FundMock.json new file mode 100644 index 00000000..043ea466 --- /dev/null +++ b/build/contracts/W12Lister__W12FundMock.json @@ -0,0 +1,2352 @@ +{ + "contractName": "W12Lister__W12FundMock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "_addAdminCall", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_crowdsale", + "type": "address" + } + ], + "name": "setCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_serviceWallet", + "type": "address" + } + ], + "name": "setServiceWallet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_swap", + "type": "address" + } + ], + "name": "setSwap", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isProjectOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeProjectOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "investor", + "type": "address" + }, + { + "name": "tokenAmount", + "type": "uint256" + }, + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "costUSD", + "type": "uint256" + } + ], + "name": "recordPurchase", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061022f806100206000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631785f53c81146100d45780632348238c146100d457806323bffccc146100d457806324d7806c146100f757806339e69a6c1461012c5780633bcdb164146100d4578063483a20b2146100d4578063704802751461015d5780638bad0c0a1461017e578063acb3c073146100d4578063d0934d611461017e578063d0baf2f514610193578063d155790b146100d4578063d8e9ce64146100f7575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166101b3565b005b34801561010357600080fd5b50610118600160a060020a03600435166101b6565b604080519115158252519081900360200190f35b34801561013857600080fd5b506101416101bc565b60408051600160a060020a039092168252519081900360200190f35b34801561016957600080fd5b506100f5600160a060020a03600435166101cb565b34801561018a57600080fd5b506100f56101fa565b6100f5600160a060020a03600435166024356044356064356084356101fc565b50565b50600090565b600054600160a060020a031681565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b565b50505050505600a165627a7a72305820737c1e8a23180caeb011ac20837d0e1682a7a8b47d05981e1ee56d035ba7327f0029", + "deployedBytecode": "0x6080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631785f53c81146100d45780632348238c146100d457806323bffccc146100d457806324d7806c146100f757806339e69a6c1461012c5780633bcdb164146100d4578063483a20b2146100d4578063704802751461015d5780638bad0c0a1461017e578063acb3c073146100d4578063d0934d611461017e578063d0baf2f514610193578063d155790b146100d4578063d8e9ce64146100f7575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166101b3565b005b34801561010357600080fd5b50610118600160a060020a03600435166101b6565b604080519115158252519081900360200190f35b34801561013857600080fd5b506101416101bc565b60408051600160a060020a039092168252519081900360200190f35b34801561016957600080fd5b506100f5600160a060020a03600435166101cb565b34801561018a57600080fd5b506100f56101fa565b6100f5600160a060020a03600435166024356044356064356084356101fc565b50565b50600090565b600054600160a060020a031681565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b565b50505050505600a165627a7a72305820737c1e8a23180caeb011ac20837d0e1682a7a8b47d05981e1ee56d035ba7327f0029", + "sourceMap": "110:982:34:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;110:982:34;;;;;;;", + "deployedSourceMap": "110:982:34:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;631:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;631:47:34;-1:-1:-1;631:47:34;;;;;;;399:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;399:63:34;-1:-1:-1;399:63:34;;;;;;;;;;;;;;;;;;;;;;;468:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;468:28:34;;;;;;;;-1:-1:-1;;;;;468:28:34;;;;;;;;;;;;;;503:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;503:82:34;-1:-1:-1;503:82:34;;;;;591:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;591:34:34;;;;924:166;;-1:-1:-1;924:166:34;;;;;;;;;;;;;631:47;;:::o;399:63::-;-1:-1:-1;454:4:34;;399:63::o;468:28::-;;;-1:-1:-1;468:28:34;;:::o;503:82::-;555:13;:23;;-1:-1:-1;;555:23:34;-1:-1:-1;555:23:34;;;;;;;;;;503:82::o;591:34::-;:::o;924:166::-;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"../../crowdsale/IW12Crowdsale.sol\";\nimport \"../../crowdsale/IW12Fund.sol\";\n\ncontract W12Lister__W12FundMock is IW12Fund {\n function setCrowdsale(IW12Crowdsale _crowdsale) external {}\n\n function setServiceWallet(address _serviceWallet) external {}\n\n function setSwap(address _swap) external {}\n\n function transferPrimary(address _address) public {}\n\n function isAdmin(address account) public view returns (bool) {}\n\n address public _addAdminCall;\n\n function addAdmin(address account) public {\n _addAdminCall = account;\n }\n\n function renounceAdmin() public {}\n\n function removeAdmin(address account) public {}\n\n function isProjectOwner(address account) public view returns (bool) {}\n\n function addProjectOwner(address account) public {}\n\n function renounceProjectOwner() public {}\n\n function removeProjectOwner(address account) public {}\n\n function recordPurchase(\n address investor,\n uint tokenAmount,\n bytes32 symbol,\n uint cost,\n uint costUSD\n ) external payable {}\n}\n", + "sourcePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12FundMock.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12FundMock.sol", + "exportedSymbols": { + "W12Lister__W12FundMock": [ + 9932 + ] + }, + "id": 9933, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9835, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:34" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../../crowdsale/IW12Crowdsale.sol", + "id": 9836, + "nodeType": "ImportDirective", + "scope": 9933, + "sourceUnit": 1761, + "src": "26:43:34", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "../../crowdsale/IW12Fund.sol", + "id": 9837, + "nodeType": "ImportDirective", + "scope": 9933, + "sourceUnit": 1804, + "src": "70:38:34", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9838, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "145:8:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 9839, + "nodeType": "InheritanceSpecifier", + "src": "145:8:34" + } + ], + "contractDependencies": [ + 1375, + 1421, + 1803 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9932, + "linearizedBaseContracts": [ + 9932, + 1803, + 1421, + 1375 + ], + "name": "W12Lister__W12FundMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 9844, + "nodeType": "Block", + "src": "217:2:34", + "statements": [] + }, + "documentation": null, + "id": 9845, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9841, + "name": "_crowdsale", + "nodeType": "VariableDeclaration", + "scope": 9845, + "src": "182:24:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 9840, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "182:13:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "181:26:34" + }, + "payable": false, + "returnParameters": { + "id": 9843, + "nodeType": "ParameterList", + "parameters": [], + "src": "217:0:34" + }, + "scope": 9932, + "src": "160:59:34", + "stateMutability": "nonpayable", + "superFunction": 1774, + "visibility": "external" + }, + { + "body": { + "id": 9850, + "nodeType": "Block", + "src": "284:2:34", + "statements": [] + }, + "documentation": null, + "id": 9851, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setServiceWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9847, + "name": "_serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 9851, + "src": "251:22:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "251:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "250:24:34" + }, + "payable": false, + "returnParameters": { + "id": 9849, + "nodeType": "ParameterList", + "parameters": [], + "src": "284:0:34" + }, + "scope": 9932, + "src": "225:61:34", + "stateMutability": "nonpayable", + "superFunction": 1779, + "visibility": "external" + }, + { + "body": { + "id": 9856, + "nodeType": "Block", + "src": "333:2:34", + "statements": [] + }, + "documentation": null, + "id": 9857, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setSwap", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9853, + "name": "_swap", + "nodeType": "VariableDeclaration", + "scope": 9857, + "src": "309:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9852, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "309:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "308:15:34" + }, + "payable": false, + "returnParameters": { + "id": 9855, + "nodeType": "ParameterList", + "parameters": [], + "src": "333:0:34" + }, + "scope": 9932, + "src": "292:43:34", + "stateMutability": "nonpayable", + "superFunction": 1784, + "visibility": "external" + }, + { + "body": { + "id": 9862, + "nodeType": "Block", + "src": "391:2:34", + "statements": [] + }, + "documentation": null, + "id": 9863, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferPrimary", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9859, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 9863, + "src": "366:16:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "366:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "365:18:34" + }, + "payable": false, + "returnParameters": { + "id": 9861, + "nodeType": "ParameterList", + "parameters": [], + "src": "391:0:34" + }, + "scope": 9932, + "src": "341:52:34", + "stateMutability": "nonpayable", + "superFunction": 1789, + "visibility": "public" + }, + { + "body": { + "id": 9870, + "nodeType": "Block", + "src": "460:2:34", + "statements": [] + }, + "documentation": null, + "id": 9871, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9865, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9871, + "src": "416:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "416:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "415:17:34" + }, + "payable": false, + "returnParameters": { + "id": 9869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9868, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9871, + "src": "454:4:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9867, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "454:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "453:6:34" + }, + "scope": 9932, + "src": "399:63:34", + "stateMutability": "view", + "superFunction": 1361, + "visibility": "public" + }, + { + "constant": false, + "id": 9873, + "name": "_addAdminCall", + "nodeType": "VariableDeclaration", + "scope": 9932, + "src": "468:28:34", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "468:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 9882, + "nodeType": "Block", + "src": "545:40:34", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9878, + "name": "_addAdminCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9873, + "src": "555:13:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9879, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9875, + "src": "571:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "555:23:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9881, + "nodeType": "ExpressionStatement", + "src": "555:23:34" + } + ] + }, + "documentation": null, + "id": 9883, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9875, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9883, + "src": "521:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "521:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "520:17:34" + }, + "payable": false, + "returnParameters": { + "id": 9877, + "nodeType": "ParameterList", + "parameters": [], + "src": "545:0:34" + }, + "scope": 9932, + "src": "503:82:34", + "stateMutability": "nonpayable", + "superFunction": 1366, + "visibility": "public" + }, + { + "body": { + "id": 9886, + "nodeType": "Block", + "src": "623:2:34", + "statements": [] + }, + "documentation": null, + "id": 9887, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9884, + "nodeType": "ParameterList", + "parameters": [], + "src": "613:2:34" + }, + "payable": false, + "returnParameters": { + "id": 9885, + "nodeType": "ParameterList", + "parameters": [], + "src": "623:0:34" + }, + "scope": 9932, + "src": "591:34:34", + "stateMutability": "nonpayable", + "superFunction": 1369, + "visibility": "public" + }, + { + "body": { + "id": 9892, + "nodeType": "Block", + "src": "676:2:34", + "statements": [] + }, + "documentation": null, + "id": 9893, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9889, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9893, + "src": "652:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9888, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "652:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "651:17:34" + }, + "payable": false, + "returnParameters": { + "id": 9891, + "nodeType": "ParameterList", + "parameters": [], + "src": "676:0:34" + }, + "scope": 9932, + "src": "631:47:34", + "stateMutability": "nonpayable", + "superFunction": 1374, + "visibility": "public" + }, + { + "body": { + "id": 9900, + "nodeType": "Block", + "src": "752:2:34", + "statements": [] + }, + "documentation": null, + "id": 9901, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9896, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9895, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9901, + "src": "708:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9894, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "708:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "707:17:34" + }, + "payable": false, + "returnParameters": { + "id": 9899, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9898, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9901, + "src": "746:4:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9897, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "746:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "745:6:34" + }, + "scope": 9932, + "src": "684:70:34", + "stateMutability": "view", + "superFunction": 1407, + "visibility": "public" + }, + { + "body": { + "id": 9906, + "nodeType": "Block", + "src": "809:2:34", + "statements": [] + }, + "documentation": null, + "id": 9907, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9903, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9907, + "src": "785:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "785:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "784:17:34" + }, + "payable": false, + "returnParameters": { + "id": 9905, + "nodeType": "ParameterList", + "parameters": [], + "src": "809:0:34" + }, + "scope": 9932, + "src": "760:51:34", + "stateMutability": "nonpayable", + "superFunction": 1412, + "visibility": "public" + }, + { + "body": { + "id": 9910, + "nodeType": "Block", + "src": "856:2:34", + "statements": [] + }, + "documentation": null, + "id": 9911, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9908, + "nodeType": "ParameterList", + "parameters": [], + "src": "846:2:34" + }, + "payable": false, + "returnParameters": { + "id": 9909, + "nodeType": "ParameterList", + "parameters": [], + "src": "856:0:34" + }, + "scope": 9932, + "src": "817:41:34", + "stateMutability": "nonpayable", + "superFunction": 1415, + "visibility": "public" + }, + { + "body": { + "id": 9916, + "nodeType": "Block", + "src": "916:2:34", + "statements": [] + }, + "documentation": null, + "id": 9917, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9913, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9917, + "src": "892:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9912, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "892:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "891:17:34" + }, + "payable": false, + "returnParameters": { + "id": 9915, + "nodeType": "ParameterList", + "parameters": [], + "src": "916:0:34" + }, + "scope": 9932, + "src": "864:54:34", + "stateMutability": "nonpayable", + "superFunction": 1420, + "visibility": "public" + }, + { + "body": { + "id": 9930, + "nodeType": "Block", + "src": "1088:2:34", + "statements": [] + }, + "documentation": null, + "id": 9931, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "recordPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9919, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 9931, + "src": "957:16:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "957:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9921, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 9931, + "src": "983:16:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9920, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "983:4:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9923, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 9931, + "src": "1009:14:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 9922, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1009:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9925, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 9931, + "src": "1033:9:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9924, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1033:4:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9927, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 9931, + "src": "1052:12:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9926, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1052:4:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "947:123:34" + }, + "payable": true, + "returnParameters": { + "id": 9929, + "nodeType": "ParameterList", + "parameters": [], + "src": "1088:0:34" + }, + "scope": 9932, + "src": "924:166:34", + "stateMutability": "payable", + "superFunction": 1802, + "visibility": "external" + } + ], + "scope": 9933, + "src": "110:982:34" + } + ], + "src": "0:1093:34" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/mocks/lister/W12Lister__W12FundMock.sol", + "exportedSymbols": { + "W12Lister__W12FundMock": [ + 9932 + ] + }, + "id": 9933, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9835, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:34" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../../crowdsale/IW12Crowdsale.sol", + "id": 9836, + "nodeType": "ImportDirective", + "scope": 9933, + "sourceUnit": 1761, + "src": "26:43:34", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "../../crowdsale/IW12Fund.sol", + "id": 9837, + "nodeType": "ImportDirective", + "scope": 9933, + "sourceUnit": 1804, + "src": "70:38:34", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9838, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "145:8:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1803", + "typeString": "contract IW12Fund" + } + }, + "id": 9839, + "nodeType": "InheritanceSpecifier", + "src": "145:8:34" + } + ], + "contractDependencies": [ + 1375, + 1421, + 1803 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9932, + "linearizedBaseContracts": [ + 9932, + 1803, + 1421, + 1375 + ], + "name": "W12Lister__W12FundMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 9844, + "nodeType": "Block", + "src": "217:2:34", + "statements": [] + }, + "documentation": null, + "id": 9845, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9841, + "name": "_crowdsale", + "nodeType": "VariableDeclaration", + "scope": 9845, + "src": "182:24:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 9840, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1760, + "src": "182:13:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1760", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "181:26:34" + }, + "payable": false, + "returnParameters": { + "id": 9843, + "nodeType": "ParameterList", + "parameters": [], + "src": "217:0:34" + }, + "scope": 9932, + "src": "160:59:34", + "stateMutability": "nonpayable", + "superFunction": 1774, + "visibility": "external" + }, + { + "body": { + "id": 9850, + "nodeType": "Block", + "src": "284:2:34", + "statements": [] + }, + "documentation": null, + "id": 9851, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setServiceWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9847, + "name": "_serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 9851, + "src": "251:22:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "251:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "250:24:34" + }, + "payable": false, + "returnParameters": { + "id": 9849, + "nodeType": "ParameterList", + "parameters": [], + "src": "284:0:34" + }, + "scope": 9932, + "src": "225:61:34", + "stateMutability": "nonpayable", + "superFunction": 1779, + "visibility": "external" + }, + { + "body": { + "id": 9856, + "nodeType": "Block", + "src": "333:2:34", + "statements": [] + }, + "documentation": null, + "id": 9857, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setSwap", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9853, + "name": "_swap", + "nodeType": "VariableDeclaration", + "scope": 9857, + "src": "309:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9852, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "309:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "308:15:34" + }, + "payable": false, + "returnParameters": { + "id": 9855, + "nodeType": "ParameterList", + "parameters": [], + "src": "333:0:34" + }, + "scope": 9932, + "src": "292:43:34", + "stateMutability": "nonpayable", + "superFunction": 1784, + "visibility": "external" + }, + { + "body": { + "id": 9862, + "nodeType": "Block", + "src": "391:2:34", + "statements": [] + }, + "documentation": null, + "id": 9863, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferPrimary", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9859, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 9863, + "src": "366:16:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "366:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "365:18:34" + }, + "payable": false, + "returnParameters": { + "id": 9861, + "nodeType": "ParameterList", + "parameters": [], + "src": "391:0:34" + }, + "scope": 9932, + "src": "341:52:34", + "stateMutability": "nonpayable", + "superFunction": 1789, + "visibility": "public" + }, + { + "body": { + "id": 9870, + "nodeType": "Block", + "src": "460:2:34", + "statements": [] + }, + "documentation": null, + "id": 9871, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9865, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9871, + "src": "416:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "416:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "415:17:34" + }, + "payable": false, + "returnParameters": { + "id": 9869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9868, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9871, + "src": "454:4:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9867, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "454:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "453:6:34" + }, + "scope": 9932, + "src": "399:63:34", + "stateMutability": "view", + "superFunction": 1361, + "visibility": "public" + }, + { + "constant": false, + "id": 9873, + "name": "_addAdminCall", + "nodeType": "VariableDeclaration", + "scope": 9932, + "src": "468:28:34", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "468:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 9882, + "nodeType": "Block", + "src": "545:40:34", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9878, + "name": "_addAdminCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9873, + "src": "555:13:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9879, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9875, + "src": "571:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "555:23:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9881, + "nodeType": "ExpressionStatement", + "src": "555:23:34" + } + ] + }, + "documentation": null, + "id": 9883, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9875, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9883, + "src": "521:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "521:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "520:17:34" + }, + "payable": false, + "returnParameters": { + "id": 9877, + "nodeType": "ParameterList", + "parameters": [], + "src": "545:0:34" + }, + "scope": 9932, + "src": "503:82:34", + "stateMutability": "nonpayable", + "superFunction": 1366, + "visibility": "public" + }, + { + "body": { + "id": 9886, + "nodeType": "Block", + "src": "623:2:34", + "statements": [] + }, + "documentation": null, + "id": 9887, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9884, + "nodeType": "ParameterList", + "parameters": [], + "src": "613:2:34" + }, + "payable": false, + "returnParameters": { + "id": 9885, + "nodeType": "ParameterList", + "parameters": [], + "src": "623:0:34" + }, + "scope": 9932, + "src": "591:34:34", + "stateMutability": "nonpayable", + "superFunction": 1369, + "visibility": "public" + }, + { + "body": { + "id": 9892, + "nodeType": "Block", + "src": "676:2:34", + "statements": [] + }, + "documentation": null, + "id": 9893, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9889, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9893, + "src": "652:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9888, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "652:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "651:17:34" + }, + "payable": false, + "returnParameters": { + "id": 9891, + "nodeType": "ParameterList", + "parameters": [], + "src": "676:0:34" + }, + "scope": 9932, + "src": "631:47:34", + "stateMutability": "nonpayable", + "superFunction": 1374, + "visibility": "public" + }, + { + "body": { + "id": 9900, + "nodeType": "Block", + "src": "752:2:34", + "statements": [] + }, + "documentation": null, + "id": 9901, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9896, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9895, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9901, + "src": "708:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9894, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "708:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "707:17:34" + }, + "payable": false, + "returnParameters": { + "id": 9899, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9898, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9901, + "src": "746:4:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9897, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "746:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "745:6:34" + }, + "scope": 9932, + "src": "684:70:34", + "stateMutability": "view", + "superFunction": 1407, + "visibility": "public" + }, + { + "body": { + "id": 9906, + "nodeType": "Block", + "src": "809:2:34", + "statements": [] + }, + "documentation": null, + "id": 9907, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9903, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9907, + "src": "785:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "785:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "784:17:34" + }, + "payable": false, + "returnParameters": { + "id": 9905, + "nodeType": "ParameterList", + "parameters": [], + "src": "809:0:34" + }, + "scope": 9932, + "src": "760:51:34", + "stateMutability": "nonpayable", + "superFunction": 1412, + "visibility": "public" + }, + { + "body": { + "id": 9910, + "nodeType": "Block", + "src": "856:2:34", + "statements": [] + }, + "documentation": null, + "id": 9911, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9908, + "nodeType": "ParameterList", + "parameters": [], + "src": "846:2:34" + }, + "payable": false, + "returnParameters": { + "id": 9909, + "nodeType": "ParameterList", + "parameters": [], + "src": "856:0:34" + }, + "scope": 9932, + "src": "817:41:34", + "stateMutability": "nonpayable", + "superFunction": 1415, + "visibility": "public" + }, + { + "body": { + "id": 9916, + "nodeType": "Block", + "src": "916:2:34", + "statements": [] + }, + "documentation": null, + "id": 9917, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeProjectOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9913, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9917, + "src": "892:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9912, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "892:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "891:17:34" + }, + "payable": false, + "returnParameters": { + "id": 9915, + "nodeType": "ParameterList", + "parameters": [], + "src": "916:0:34" + }, + "scope": 9932, + "src": "864:54:34", + "stateMutability": "nonpayable", + "superFunction": 1420, + "visibility": "public" + }, + { + "body": { + "id": 9930, + "nodeType": "Block", + "src": "1088:2:34", + "statements": [] + }, + "documentation": null, + "id": 9931, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "recordPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9919, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 9931, + "src": "957:16:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "957:7:34", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9921, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 9931, + "src": "983:16:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9920, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "983:4:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9923, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 9931, + "src": "1009:14:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 9922, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1009:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9925, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 9931, + "src": "1033:9:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9924, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1033:4:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9927, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 9931, + "src": "1052:12:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9926, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1052:4:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "947:123:34" + }, + "payable": true, + "returnParameters": { + "id": 9929, + "nodeType": "ParameterList", + "parameters": [], + "src": "1088:0:34" + }, + "scope": 9932, + "src": "924:166:34", + "stateMutability": "payable", + "superFunction": 1802, + "visibility": "external" + } + ], + "scope": 9933, + "src": "110:982:34" + } + ], + "src": "0:1093:34" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-12-06T13:14:33.028Z" +} \ No newline at end of file diff --git a/build/contracts/WToken.json b/build/contracts/WToken.json index 3299f45c..80b7d6a2 100644 --- a/build/contracts/WToken.json +++ b/build/contracts/WToken.json @@ -16,14 +16,32 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "", + "name": "spender", "type": "address" + }, + { + "name": "value", + "type": "uint256" } ], - "name": "balances", + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", "outputs": [ { "name": "", @@ -34,6 +52,39 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], @@ -49,18 +100,37 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "", + "name": "spender", "type": "address" }, { - "name": "", + "name": "addedValue", "type": "uint256" } ], - "name": "vestingBalanceOf", + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", "outputs": [ { "name": "", @@ -74,7 +144,7 @@ { "constant": false, "inputs": [], - "name": "renounceOwnership", + "name": "renounceAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -83,25 +153,48 @@ { "constant": true, "inputs": [], - "name": "owner", + "name": "symbol", "outputs": [ { "name": "", - "type": "address" + "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], - "name": "symbol", + "name": "primary", "outputs": [ { "name": "", - "type": "string" + "type": "address" } ], "payable": false, @@ -109,31 +202,40 @@ "type": "function" }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "_newOwner", + "name": "owner", + "type": "address" + }, + { + "name": "spender", "type": "address" } ], - "name": "transferOwnership", - "outputs": [], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "name": "_name", + "name": "name", "type": "string" }, { - "name": "_symbol", + "name": "symbol", "type": "string" }, { - "name": "_decimals", + "name": "decimals", "type": "uint8" } ], @@ -165,24 +267,19 @@ "type": "uint256" } ], - "name": "VestingTransfer", + "name": "VestingTransferred", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "name": "burner", - "type": "address" - }, { "indexed": false, - "name": "value", - "type": "uint256" + "name": "recipient", + "type": "address" } ], - "name": "Burn", + "name": "PrimaryTransferred", "type": "event" }, { @@ -190,11 +287,11 @@ "inputs": [ { "indexed": true, - "name": "previousOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipRenounced", + "name": "AdminAdded", "type": "event" }, { @@ -202,16 +299,11 @@ "inputs": [ { "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "AdminRemoved", "type": "event" }, { @@ -219,12 +311,12 @@ "inputs": [ { "indexed": true, - "name": "owner", + "name": "from", "type": "address" }, { "indexed": true, - "name": "spender", + "name": "to", "type": "address" }, { @@ -233,7 +325,7 @@ "type": "uint256" } ], - "name": "Approval", + "name": "Transfer", "type": "event" }, { @@ -241,12 +333,12 @@ "inputs": [ { "indexed": true, - "name": "from", + "name": "owner", "type": "address" }, { "indexed": true, - "name": "to", + "name": "spender", "type": "address" }, { @@ -255,32 +347,18 @@ "type": "uint256" } ], - "name": "Transfer", + "name": "Approval", "type": "event" }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": false, "inputs": [ { - "name": "_to", + "name": "to", "type": "address" }, { - "name": "_value", + "name": "value", "type": "uint256" } ], @@ -299,15 +377,15 @@ "constant": false, "inputs": [ { - "name": "_to", + "name": "to", "type": "address" }, { - "name": "_value", + "name": "value", "type": "uint256" }, { - "name": "_vestingTime", + "name": "vestingTime", "type": "uint32" } ], @@ -322,38 +400,19 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": false, "inputs": [ { - "name": "_from", + "name": "from", "type": "address" }, { - "name": "_to", + "name": "to", "type": "address" }, { - "name": "_value", + "name": "value", "type": "uint256" } ], @@ -372,57 +431,11 @@ "constant": false, "inputs": [ { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", + "name": "spender", "type": "address" }, { - "name": "_addedValue", + "name": "addedValue", "type": "uint256" } ], @@ -441,11 +454,11 @@ "constant": false, "inputs": [ { - "name": "_spender", + "name": "spender", "type": "address" }, { - "name": "_subtractedValue", + "name": "subtractedValue", "type": "uint256" } ], @@ -464,15 +477,15 @@ "constant": false, "inputs": [ { - "name": "_to", + "name": "to", "type": "address" }, { - "name": "_amount", + "name": "amount", "type": "uint256" }, { - "name": "_vestingTime", + "name": "vestingTime", "type": "uint32" } ], @@ -491,7 +504,7 @@ "constant": false, "inputs": [ { - "name": "_value", + "name": "value", "type": "uint256" } ], @@ -505,11 +518,11 @@ "constant": false, "inputs": [ { - "name": "_from", + "name": "from", "type": "address" }, { - "name": "_value", + "name": "value", "type": "uint256" } ], @@ -523,7 +536,7 @@ "constant": true, "inputs": [ { - "name": "_address", + "name": "account", "type": "address" } ], @@ -538,15 +551,38 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + }, + { + "name": "date", + "type": "uint256" + } + ], + "name": "vestingBalanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ { - "name": "caller", + "name": "account", "type": "address" } ], - "name": "addTrustedAccount", + "name": "addAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -556,35 +592,35 @@ "constant": false, "inputs": [ { - "name": "caller", + "name": "account", "type": "address" } ], - "name": "removeTrustedAccount", + "name": "removeAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620014c6380380620014c68339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000ba565b5081516200006e906001906020850190620000ba565b506002805460ff90921660ff1992831617905560058054600160a060020a031916339081179091556000908152600b6020526040902080549091166001179055506200015f9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000fd57805160ff19168380011785556200012d565b828001600101855582156200012d579182015b828111156200012d57825182559160200191906001019062000110565b506200013b9291506200013f565b5090565b6200015c91905b808211156200013b576000815560010162000146565b90565b611357806200016f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108fc565b34801561035e57600080fd5b50610367610992565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109a1565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109fb565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610aa7565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b7a565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bb2565b34801561044357600080fd5b5061020e600160a060020a0360043516610cf8565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610dfd565b34801561048857600080fd5b506102ae600160a060020a0360043516610e96565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610ed1565b3480156104d057600080fd5b506102ae600160a060020a0360043516610efc565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085490565b60006105ea84610f1c565b600160a060020a03831615156105ff57600080fd5b61060884610cf8565b82111561061457600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526007602052604090205461066d908363ffffffff61108b16565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106a2908363ffffffff61109d16565b600160a060020a0380851660009081526007602090815260408083209490945591871681526006825282812033825290915220546106e6908363ffffffff61108b16565b600160a060020a038086166000818152600660209081526040808320338452825291829020949094558051868152905192871693919260008051602061130c833981519152929181900390910190a35060019392505050565b60076020526000908152604090205481565b60025460ff1681565b61076433826110b0565b50565b600960209081526000928352604080842090915290825290205481565b336000908152600660209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600660209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff61108b16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526007602052604090205490565b600554600160a060020a031633146108a557600080fd5b600554604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038216600090815260066020908152604080832033845290915290205481111561092c57600080fd5b600160a060020a0382166000908152600660209081526040808320338452909152902054610960908263ffffffff61108b16565b600160a060020a038316600090815260066020908152604080832033845290915290205561098e82826110b0565b5050565b600554600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b336000818152600b602052604081205490919060ff161515610a1c57600080fd5b610a268585610aa7565b50428363ffffffff161115610a4857610a486000868563ffffffff1687611198565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ab233610f1c565b600160a060020a0383161515610ac757600080fd5b610ad033610cf8565b821115610adc57600080fd5b33600090815260076020526040902054610afc908363ffffffff61108b16565b3360009081526007602052604080822092909255600160a060020a03851681522054610b2e908363ffffffff61109d16565b600160a060020a03841660008181526007602090815260409182902093909355805185815290519192339260008051602061130c8339815191529281900390910190a350600192915050565b600554600160a060020a03163314610b9157600080fd5b600160a060020a03166000908152600b60205260409020805460ff19169055565b336000818152600b602052604081205490919060ff161515610bd357600080fd5b600854610be6818663ffffffff61109d16565b11610bf057600080fd5b428363ffffffff161115610c1157610c116000868563ffffffff1687611198565b600160a060020a038516600090815260076020526040902054610c3a908563ffffffff61109d16565b600160a060020a038616600090815260076020526040902055600854610c66908563ffffffff61109d16565b600855604080518581529051600160a060020a0387169160009160008051602061130c8339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260076020908152604080832054600983528184208480529092528220549091901515610d3257610df7565b5060005b600160a060020a0383166000908152600a6020526040902054811015610df757600160a060020a0383166000908152600a60205260409020805442919083908110610d7d57fe5b9060005260206000200154101515610def57600160a060020a0383166000908152600960209081526040808320600a90925282208054610dec93919085908110610dc357fe5b90600052602060002001548152602001908152602001600020548361108b90919063ffffffff16565b91505b600101610d36565b50919050565b336000908152600660209081526040808320600160a060020a0386168452909152812054610e31908363ffffffff61109d16565b336000818152600660209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600554600160a060020a03163314610ead57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600554600160a060020a03163314610f1357600080fd5b6107648161128d565b600160a060020a03811660009081526009602090815260408083208380529091528120541515610f4b5761098e565b5060005b600160a060020a0382166000908152600a602052604090205481101561098e57600160a060020a0382166000908152600a60205260409020805442919083908110610f9657fe5b9060005260206000200154101561108357600160a060020a0382166000908152600960209081526040808320600a9092528220805461102193919085908110610fdb57fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526009845282822082805290935220549063ffffffff61108b16565b600160a060020a038316600081815260096020908152604080832083805280835281842095909555928252600a905290812080549192918391908590811061106557fe5b90600052602060002001548152602001908152602001600020819055505b600101610f4f565b60008282111561109757fe5b50900390565b818101828110156110aa57fe5b92915050565b6110b982610f1c565b6110c282610cf8565b8111156110ce57600080fd5b600160a060020a0382166000908152600760205260409020546110f7908263ffffffff61108b16565b600160a060020a038316600090815260076020526040902055600854611123908263ffffffff61108b16565b600855604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061130c8339815191529181900360200190a35050565b600160a060020a03831660009081526009602090815260408083208380529091529020546111cc908263ffffffff61109d16565b600160a060020a0384166000908152600960209081526040808320838052909152808220929092558381522054151561122b57600160a060020a0383166000908152600a60209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260096020908152604080832085845290915290205461125f908263ffffffff61109d16565b600160a060020a03909316600090815260096020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112a257600080fd5b600554604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582001f3b8ffebfc578122646c111958154798ff2fde3bc58f72b8cbe911bdfe9e600029", - "deployedBytecode": "0x6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108fc565b34801561035e57600080fd5b50610367610992565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109a1565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109fb565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610aa7565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b7a565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bb2565b34801561044357600080fd5b5061020e600160a060020a0360043516610cf8565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610dfd565b34801561048857600080fd5b506102ae600160a060020a0360043516610e96565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610ed1565b3480156104d057600080fd5b506102ae600160a060020a0360043516610efc565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085490565b60006105ea84610f1c565b600160a060020a03831615156105ff57600080fd5b61060884610cf8565b82111561061457600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526007602052604090205461066d908363ffffffff61108b16565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106a2908363ffffffff61109d16565b600160a060020a0380851660009081526007602090815260408083209490945591871681526006825282812033825290915220546106e6908363ffffffff61108b16565b600160a060020a038086166000818152600660209081526040808320338452825291829020949094558051868152905192871693919260008051602061130c833981519152929181900390910190a35060019392505050565b60076020526000908152604090205481565b60025460ff1681565b61076433826110b0565b50565b600960209081526000928352604080842090915290825290205481565b336000908152600660209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600660209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff61108b16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526007602052604090205490565b600554600160a060020a031633146108a557600080fd5b600554604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038216600090815260066020908152604080832033845290915290205481111561092c57600080fd5b600160a060020a0382166000908152600660209081526040808320338452909152902054610960908263ffffffff61108b16565b600160a060020a038316600090815260066020908152604080832033845290915290205561098e82826110b0565b5050565b600554600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b336000818152600b602052604081205490919060ff161515610a1c57600080fd5b610a268585610aa7565b50428363ffffffff161115610a4857610a486000868563ffffffff1687611198565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ab233610f1c565b600160a060020a0383161515610ac757600080fd5b610ad033610cf8565b821115610adc57600080fd5b33600090815260076020526040902054610afc908363ffffffff61108b16565b3360009081526007602052604080822092909255600160a060020a03851681522054610b2e908363ffffffff61109d16565b600160a060020a03841660008181526007602090815260409182902093909355805185815290519192339260008051602061130c8339815191529281900390910190a350600192915050565b600554600160a060020a03163314610b9157600080fd5b600160a060020a03166000908152600b60205260409020805460ff19169055565b336000818152600b602052604081205490919060ff161515610bd357600080fd5b600854610be6818663ffffffff61109d16565b11610bf057600080fd5b428363ffffffff161115610c1157610c116000868563ffffffff1687611198565b600160a060020a038516600090815260076020526040902054610c3a908563ffffffff61109d16565b600160a060020a038616600090815260076020526040902055600854610c66908563ffffffff61109d16565b600855604080518581529051600160a060020a0387169160009160008051602061130c8339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260076020908152604080832054600983528184208480529092528220549091901515610d3257610df7565b5060005b600160a060020a0383166000908152600a6020526040902054811015610df757600160a060020a0383166000908152600a60205260409020805442919083908110610d7d57fe5b9060005260206000200154101515610def57600160a060020a0383166000908152600960209081526040808320600a90925282208054610dec93919085908110610dc357fe5b90600052602060002001548152602001908152602001600020548361108b90919063ffffffff16565b91505b600101610d36565b50919050565b336000908152600660209081526040808320600160a060020a0386168452909152812054610e31908363ffffffff61109d16565b336000818152600660209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600554600160a060020a03163314610ead57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600554600160a060020a03163314610f1357600080fd5b6107648161128d565b600160a060020a03811660009081526009602090815260408083208380529091528120541515610f4b5761098e565b5060005b600160a060020a0382166000908152600a602052604090205481101561098e57600160a060020a0382166000908152600a60205260409020805442919083908110610f9657fe5b9060005260206000200154101561108357600160a060020a0382166000908152600960209081526040808320600a9092528220805461102193919085908110610fdb57fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526009845282822082805290935220549063ffffffff61108b16565b600160a060020a038316600081815260096020908152604080832083805280835281842095909555928252600a905290812080549192918391908590811061106557fe5b90600052602060002001548152602001908152602001600020819055505b600101610f4f565b60008282111561109757fe5b50900390565b818101828110156110aa57fe5b92915050565b6110b982610f1c565b6110c282610cf8565b8111156110ce57600080fd5b600160a060020a0382166000908152600760205260409020546110f7908263ffffffff61108b16565b600160a060020a038316600090815260076020526040902055600854611123908263ffffffff61108b16565b600855604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061130c8339815191529181900360200190a35050565b600160a060020a03831660009081526009602090815260408083208380529091529020546111cc908263ffffffff61109d16565b600160a060020a0384166000908152600960209081526040808320838052909152808220929092558381522054151561122b57600160a060020a0383166000908152600a60209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260096020908152604080832085845290915290205461125f908263ffffffff61109d16565b600160a060020a03909316600090815260096020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112a257600080fd5b600554604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582001f3b8ffebfc578122646c111958154798ff2fde3bc58f72b8cbe911bdfe9e600029", - "sourceMap": "176:9416:30:-;;;884:158;8:9:-1;5:2;;;30:1;27;20:12;5:2;884:158:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;463:12:46;;884:158:30;;;;;;;;;;;;;463:12:46;;:4;;:12;;;;:::i;:::-;-1:-1:-1;481:16:46;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;503:8:46;:20;;;;;;-1:-1:-1;;503:20:46;;;;;;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;;;;503:8:46;1001:27:30;;;:15;:27;;;;;:34;;;;;503:20:46;1001:34:30;;;-1:-1:-1;176:9416:30;;-1:-1:-1;;;;176:9416:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;176:9416:30;;;-1:-1:-1;176:9416:30;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "176:9416:30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;319:18:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;319:18:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;319:18:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3736:203:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3736:203:30;;;-1:-1:-1;;;;;3736:203:30;;;;;;;;;;;;;;;;;;;;;;;789:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;789:89:30;;;;;;;;;;;;;;;;;;;;2582:518;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2582:518:30;-1:-1:-1;;;;;2582:518:30;;;;;;;;;;;;324:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;324:43:30;;;-1:-1:-1;;;;;324:43:30;;;365:21:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;365:21:46;;;;;;;;;;;;;;;;;;;;;;;7116:79:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7116:79:30;;;;;;;409:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;409:73:30;;;-1:-1:-1;;;;;409:73:30;;;;;5621:443;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5621:443:30;;;-1:-1:-1;;;;;5621:443:30;;;;;2185:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2185:113:30;;;-1:-1:-1;;;;;2185:113:30;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;7449:392:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7449:392:30;;;-1:-1:-1;;;;;7449:392:30;;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;;;;;-1:-1:-1;;;;;238:20:45;;;;;;;;;;;;;;341::46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;341:20:46;;;;1607:364:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1607:364:30;;;-1:-1:-1;;;;;1607:364:30;;;;;;;;;1208:393;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1208:393:30;;;-1:-1:-1;;;;;1208:393:30;;;;;9374:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9374:113:30;;;-1:-1:-1;;;;;9374:113:30;;;6070:532;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6070:532:30;;;-1:-1:-1;;;;;6070:532:30;;;;;;;;;8830:423;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8830:423:30;;;-1:-1:-1;;;;;8830:423:30;;;4869:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4869:277:30;;;-1:-1:-1;;;;;4869:277:30;;;;;9259:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9259:109:30;;;-1:-1:-1;;;;;9259:109:30;;;4267:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4267:132:30;-1:-1:-1;;;;;4267:132:30;;;;;;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;;;-1:-1:-1;;;;;1274:103:45;;;319:18:46;;;;;;;;;;;;;;;-1:-1:-1;;319:18:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3736:203:30:-;3827:10;3803:4;3819:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3819:29:30;;;;;;;;;;;:38;;;3872;;;;;;;3803:4;;3819:29;;3827:10;;3872:38;;;;;;;;-1:-1:-1;3928:4:30;3736:203;;;;:::o;789:89::-;859:12;;789:89;:::o;2582:518::-;2664:4;2680:22;2696:5;2680:15;:22::i;:::-;-1:-1:-1;;;;;2721:17:30;;;;2713:26;;;;;;2767:21;2782:5;2767:14;:21::i;:::-;2757:31;;;2749:40;;;;;;-1:-1:-1;;;;;2817:14:30;;;;;;:7;:14;;;;;;;;2832:10;2817:26;;;;;;;;2807:36;;;2799:45;;;;;;-1:-1:-1;;;;;2873:15:30;;;;;;:8;:15;;;;;;:27;;2893:6;2873:19;:27::i;:::-;-1:-1:-1;;;;;2855:15:30;;;;;;;:8;:15;;;;;;:45;;;;2926:13;;;;;;;:25;;2944:6;2926:17;:25::i;:::-;-1:-1:-1;;;;;2910:13:30;;;;;;;:8;:13;;;;;;;;:41;;;;2990:14;;;;;:7;:14;;;;;3005:10;2990:26;;;;;;;:38;;3021:6;2990:30;:38::i;:::-;-1:-1:-1;;;;;2961:14:30;;;;;;;:7;:14;;;;;;;;2976:10;2961:26;;;;;;;:67;;;;3044:28;;;;;;;-1:-1:-1;;3044:28:30;;;;2961:14;;;;3044:28;;;2961:14;-1:-1:-1;2961:14:30;-1:-1:-1;;;;;3044:28:30;;;;;;;;;;-1:-1:-1;3089:4:30;2582:518;;;;;:::o;324:43::-;;;;;;;;;;;;;:::o;365:21:46:-;;;;;;:::o;7116:79:30:-;7163:25;7169:10;7181:6;7163:5;:25::i;:::-;7116:79;:::o;409:73::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;5621:443::-;5744:10;5704:4;5736:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5736:29:30;;;;;;;;;;5779:28;;;5775:185;;5831:10;5855:1;5823:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5823:29:30;;;;;;;;;:33;5775:185;;;5919:30;:8;5932:16;5919:30;:12;:30;:::i;:::-;5895:10;5887:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5887:29:30;;;;;;;;;:62;5775:185;5983:10;6005:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5974:61:30;;6005:29;;;;;;;;;;;5974:61;;;;;;;;;5983:10;5974:61;;;;;;;;;;;-1:-1:-1;6053:4:30;;5621:443;-1:-1:-1;;;5621:443:30:o;2185:113::-;-1:-1:-1;;;;;2275:16:30;2241:15;2275:16;;;:8;:16;;;;;;;2185:113::o;1001:111:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;7449:392:30:-;-1:-1:-1;;;;;7533:14:30;;;;;;:7;:14;;;;;;;;7548:10;7533:26;;;;;;;;7523:36;;;7515:45;;;;;;-1:-1:-1;;;;;7766:14:30;;;;;;:7;:14;;;;;;;;7781:10;7766:26;;;;;;;;:38;;7797:6;7766:30;:38::i;:::-;-1:-1:-1;;;;;7737:14:30;;;;;;:7;:14;;;;;;;;7752:10;7737:26;;;;;;;:67;7814:20;7737:14;7827:6;7814:5;:20::i;:::-;7449:392;;:::o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;341::46:-;;;;;;;;;;;;;;;-1:-1:-1;;341:20:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1607:364:30;1703:10;1724:4;9548:23;;;:15;:23;;;;;;1724:4;;1703:10;9548:23;;9540:32;;;;;;;;1740:21;1749:3;1754:6;1740:8;:21::i;:::-;;1791:3;1776:12;:18;;;1772:101;;;1810:52;1832:1;1836:3;1841:12;1810:52;;1855:6;1810:13;:52::i;:::-;1888:54;;;1904:10;1888:54;;-1:-1:-1;;;;;1888:54:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1960:4:30;;1607:364;-1:-1:-1;;;;1607:364:30:o;1208:393::-;1271:4;1287:27;1303:10;1287:15;:27::i;:::-;-1:-1:-1;;;;;1332:17:30;;;;1324:26;;;;;;1378;1393:10;1378:14;:26::i;:::-;1368:36;;;1360:45;;;;;;1448:10;1439:20;;;;:8;:20;;;;;;:32;;1464:6;1439:32;:24;:32;:::i;:::-;1425:10;1416:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;1498:13:30;;;;;;:25;;1516:6;1498:17;:25::i;:::-;-1:-1:-1;;;;;1482:13:30;;;;;;:8;:13;;;;;;;;:41;;;;1539:33;;;;;;;-1:-1:-1;;1482:13:30;;1548:10;;1539:33;;1482:13;;-1:-1:-1;1482:13:30;-1:-1:-1;;;;;1539:33:30;;;;;;;;;-1:-1:-1;1590:4:30;1208:393;;;;:::o;9374:113::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;9449:23:30;9475:5;9449:23;;;:15;:23;;;;;:31;;-1:-1:-1;;9449:31:30;;;9374:113::o;6070:532::-;6153:10;6174:4;9548:23;;;:15;:23;;;;;;6174:4;;6153:10;9548:23;;9540:32;;;;;;;;6226:12;;6198:25;6226:12;6215:7;6198:25;:16;:25;:::i;:::-;:40;6190:49;;;;;;6269:3;6254:12;:18;;;6250:102;;;6288:53;6310:1;6314:3;6319:12;6288:53;;6333:7;6288:13;:53::i;:::-;-1:-1:-1;;;;;6378:13:30;;;;;;:8;:13;;;;;;:26;;6396:7;6378:17;:26::i;:::-;-1:-1:-1;;;;;6362:13:30;;;;;;:8;:13;;;;;:42;6429:12;;:25;;6446:7;6429:16;:25::i;:::-;6414:12;:40;6469:34;;;;;;;;6486:1;-1:-1:-1;;;;;;;6469:34:30;;;6486:1;;6469:34;6486:1;;-1:-1:-1;;6486:1:30;-1:-1:-1;;;;;6469:34:30;;;;;;;;6518:55;;;6542:1;6518:55;;-1:-1:-1;;;;;6518:55:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6591:4:30;;6070:532;-1:-1:-1;;;;6070:532:30:o;8830:423::-;-1:-1:-1;;;;;8930:18:30;;8893:15;8930:18;;;:8;:18;;;;;;;;;8963:16;:26;;;;;:29;;;;;;;;;8930:18;;8893:15;8963:34;8959:47;;;8999:7;;8959:47;-1:-1:-1;9033:1:30;9016:231;-1:-1:-1;;;;;9040:22:30;;;;;;:12;:22;;;;;:29;9036:33;;9016:231;;;-1:-1:-1;;;;;9094:22:30;;;;;;:12;:22;;;;;:25;;9123:3;;9094:22;9117:1;;9094:25;;;;;;;;;;;;;;:32;;9090:147;;;-1:-1:-1;;;;;9168:26:30;;;;;;:16;:26;;;;;;;;9195:12;:22;;;;;:25;;9156:66;;9168:26;9195:22;9218:1;;9195:25;;;;;;;;;;;;;;9168:53;;;;;;;;;;;;9156:7;:11;;:66;;;;:::i;:::-;9146:76;;9090:147;9071:3;;9016:231;;;8830:423;;;;:::o;4869:277::-;5003:10;4947:4;4995:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;4995:29:30;;;;;;;;;;:46;;5029:11;4995:33;:46::i;:::-;4971:10;4963:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;4963:29:30;;;;;;;;;;;;:78;;;5056:61;;;;;;4963:29;;5056:61;;;;;;;;;;;-1:-1:-1;5135:4:30;4869:277;;;;:::o;9259:109::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;9331:23:30;;;;;:15;:23;;;;;:30;;-1:-1:-1;;9331:30:30;-1:-1:-1;9331:30:30;;;9259:109::o;4267:132::-;-1:-1:-1;;;;;4367:15:30;;;4341:7;4367:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;4267:132::o;1274:103:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;8359:465:30:-;-1:-1:-1;;;;;8422:23:30;;8477:9;8422:23;;;:16;:23;;;;;;;;:26;;;;;;;;;:31;8418:44;;;8455:7;;8418:44;-1:-1:-1;8489:1:30;8472:346;-1:-1:-1;;;;;8496:19:30;;;;;;:12;:19;;;;;:26;8492:30;;8472:346;;;-1:-1:-1;;;;;8547:19:30;;;;;;:12;:19;;;;;:22;;8572:3;;8547:19;8567:1;;8547:22;;;;;;;;;;;;;;:28;8543:265;;;-1:-1:-1;;;;;8676:23:30;;;;;;:16;:23;;;;;;;;8700:12;:19;;;;;:22;;8624:100;;8676:23;8700:19;8720:1;;8700:22;;;;;;;;;;;;;;;;;;;8676:47;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8624:23:30;;;;:16;:23;;;;;:26;;;;;;;;;:51;:100::i;:::-;-1:-1:-1;;;;;8595:23:30;;;;;;:16;:23;;;;;;;;:26;;;;;;;;;:129;;;;8742:23;;;8766:12;:19;;;;;:22;;8595:23;;;;;8766:19;8786:1;;8766:22;;;;;;;;;;;;;;8742:47;;;;;;;;;;;:51;;;;8543:265;8524:3;;8472:346;;1060:116:44;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:44;;;1060:116::o;1238:128::-;1319:7;;;1339;;;;1332:15;;;;1238:128;;;;:::o;7847:506:30:-;7911:21;7927:4;7911:15;:21::i;:::-;7961:20;7976:4;7961:14;:20::i;:::-;7951:30;;;7943:39;;;;;;-1:-1:-1;;;;;8189:14:30;;;;;;:8;:14;;;;;;:26;;8208:6;8189:18;:26::i;:::-;-1:-1:-1;;;;;8172:14:30;;;;;;:8;:14;;;;;:43;8240:12;;:24;;8257:6;8240:16;:24::i;:::-;8225:12;:39;8279:18;;;;;;;;-1:-1:-1;;;;;8279:18:30;;;;;;;;;;;;;8312:34;;;;;;;;8335:1;;-1:-1:-1;;;;;8312:34:30;;;-1:-1:-1;;;;;;;;;;;8312:34:30;;;;;;;;7847:506;;:::o;6608:381::-;-1:-1:-1;;;;;6744:21:30;;;;;;:16;:21;;;;;;;;:24;;;;;;;;;:37;;6773:7;6744:28;:37::i;:::-;-1:-1:-1;;;;;6717:21:30;;;;;;:16;:21;;;;;;;;:24;;;;;;;;;:64;;;;6795:35;;;;;:40;6792:93;;;-1:-1:-1;;;;;6849:17:30;;;;;;:12;:17;;;;;;;27:10:-1;;-1:-1;23:18;;45:23;;6849:36:30;;;;;;;;;6792:93;-1:-1:-1;;;;;6934:21:30;;;;;;:16;:21;;;;;;;;:35;;;;;;;;;:48;;6974:7;6934:39;:48::i;:::-;-1:-1:-1;;;;;6896:21:30;;;;;;;;:16;:21;;;;;;;;:35;;;;;;;;;;:86;;;;-1:-1:-1;;6608:381:30:o;1512:171:45:-;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"./IWToken.sol\";\n\n\ncontract WToken is IWToken, Ownable {\n using SafeMath for uint256;\n\n mapping (address => mapping (address => uint256)) internal allowed;\n\n mapping(address => uint256) public balances;\n\n uint256 private _totalSupply;\n\n mapping (address => mapping (uint256 => uint256)) public vestingBalanceOf;\n\n mapping (address => uint[]) vestingTimes;\n\n mapping (address => bool) trustedAccounts;\n\n event VestingTransfer(address from, address to, uint256 value, uint256 agingTime);\n event Burn(address indexed burner, uint256 value);\n\n /**\n * @dev total number of tokens in existence\n */\n function totalSupply() public view returns (uint256) {\n return _totalSupply;\n }\n\n constructor(string _name, string _symbol, uint8 _decimals) DetailedERC20(_name, _symbol, _decimals) public {\n trustedAccounts[msg.sender] = true;\n }\n\n /**\n * @dev transfer token for a specified address\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public returns (bool) {\n _checkMyVesting(msg.sender);\n require(_to != address(0));\n require(_value <= accountBalance(msg.sender));\n\n balances[msg.sender] = balances[msg.sender].sub(_value);\n\n balances[_to] = balances[_to].add(_value);\n\n emit Transfer(msg.sender, _to, _value);\n\n return true;\n }\n\n function vestingTransfer(address _to, uint256 _value, uint32 _vestingTime) external onlyTrusted(msg.sender) returns (bool) {\n transfer(_to, _value);\n\n if (_vestingTime > now) {\n _addToVesting(address(0), _to, _vestingTime, _value);\n }\n\n emit VestingTransfer(msg.sender, _to, _value, _vestingTime);\n\n return true;\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param _owner The address to query the the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address _owner) public view returns (uint256 balance) {\n return balances[_owner];\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {\n _checkMyVesting(_from);\n\n require(_to != address(0));\n require(_value <= accountBalance(_from));\n require(_value <= allowed[_from][msg.sender]);\n\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(_value);\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n\n emit Transfer(_from, _to, _value);\n return true;\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n *\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param _spender The address which will spend the funds.\n * @param _value The amount of tokens to be spent.\n */\n function approve(address _spender, uint256 _value) public returns (bool) {\n allowed[msg.sender][_spender] = _value;\n emit Approval(msg.sender, _spender, _value);\n\n return true;\n }\n\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param _owner address The address which owns the funds.\n * @param _spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(address _owner, address _spender) public view returns (uint256) {\n return allowed[_owner][_spender];\n }\n\n /**\n * @dev Increase the amount of tokens that an owner allowed to a spender.\n *\n * approve should be called when allowed[_spender] == 0. To increment\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param _spender The address which will spend the funds.\n * @param _addedValue The amount of tokens to increase the allowance by.\n */\n function increaseApproval(address _spender, uint _addedValue) public returns (bool) {\n allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n\n return true;\n }\n\n /**\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\n *\n * approve should be called when allowed[_spender] == 0. To decrement\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param _spender The address which will spend the funds.\n * @param _subtractedValue The amount of tokens to decrease the allowance by.\n */\n function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {\n uint oldValue = allowed[msg.sender][_spender];\n if (_subtractedValue >= oldValue) {\n allowed[msg.sender][_spender] = 0;\n } else {\n allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);\n }\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n\n return true;\n }\n\n function mint(address _to, uint _amount, uint32 _vestingTime) external onlyTrusted(msg.sender) returns (bool) {\n require(_totalSupply.add(_amount) > _totalSupply);\n\n if (_vestingTime > now) {\n _addToVesting(address(0), _to, _vestingTime, _amount);\n }\n\n balances[_to] = balances[_to].add(_amount);\n _totalSupply = _totalSupply.add(_amount);\n emit Transfer(address(0), _to, _amount);\n emit VestingTransfer(address(0), _to, _amount, _vestingTime);\n\n return true;\n }\n\n function _addToVesting(address _from, address _to, uint256 _vestingTime, uint256 _amount) internal {\n vestingBalanceOf[_to][0] = vestingBalanceOf[_to][0].add(_amount);\n\n if(vestingBalanceOf[_to][_vestingTime] == 0)\n vestingTimes[_to].push(_vestingTime);\n\n vestingBalanceOf[_to][_vestingTime] = vestingBalanceOf[_to][_vestingTime].add(_amount);\n }\n\n /**\n * @dev Burns a specific amount of tokens.\n * @param _value The amount of token to be burned.\n */\n function burn(uint256 _value) public {\n _burn(msg.sender, _value);\n }\n\n /**\n * @dev Burns a specific amount of tokens from the target address and decrements allowance\n * @param _from address The address which you want to send tokens from\n * @param _value uint256 The amount of token to be burned\n */\n function burnFrom(address _from, uint256 _value) public {\n require(_value <= allowed[_from][msg.sender]);\n // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted,\n // this function needs to emit an event with the updated approval.\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n _burn(_from, _value);\n }\n\n function _burn(address _who, uint256 _value) internal {\n _checkMyVesting(_who);\n\n require(_value <= accountBalance(_who));\n // no need to require value <= totalSupply, since that would imply the\n // sender's balance is greater than the totalSupply, which *should* be an assertion failure\n\n balances[_who] = balances[_who].sub(_value);\n _totalSupply = _totalSupply.sub(_value);\n emit Burn(_who, _value);\n emit Transfer(_who, address(0), _value);\n }\n\n function _checkMyVesting(address _from) internal {\n if (vestingBalanceOf[_from][0] == 0) return;\n\n for (uint256 k = 0; k < vestingTimes[_from].length; k++) {\n if (vestingTimes[_from][k] < now) {\n vestingBalanceOf[_from][0] = vestingBalanceOf[_from][0]\n .sub(vestingBalanceOf[_from][vestingTimes[_from][k]]);\n vestingBalanceOf[_from][vestingTimes[_from][k]] = 0;\n }\n }\n }\n\n function accountBalance(address _address) public view returns (uint256 balance) {\n balance = balances[_address];\n\n if (vestingBalanceOf[_address][0] == 0) return;\n\n for (uint256 k = 0; k < vestingTimes[_address].length; k++) {\n if (vestingTimes[_address][k] >= now) {\n balance = balance.sub(vestingBalanceOf[_address][vestingTimes[_address][k]]);\n }\n }\n }\n\n function addTrustedAccount(address caller) external onlyOwner {\n trustedAccounts[caller] = true;\n }\n\n function removeTrustedAccount(address caller) external onlyOwner {\n trustedAccounts[caller] = false;\n }\n\n modifier onlyTrusted(address caller) {\n require(trustedAccounts[caller]);\n _;\n }\n}\n", + "bytecode": "0x60806040523480156200001157600080fd5b50604051620016833803806200168383398101604090815281516020830151918301519083019291909101908282826200005433640100000000620000f1810204565b825162000069906001906020860190620001d6565b5081516200007f906002906020850190620001d6565b506003805460ff90921660ff19909216919091179055505060078054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a15050506200027b565b6200010c600082640100000000620012ec6200014382021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b600160a060020a03811615156200015957600080fd5b6200016e82826401000000006200019e810204565b156200017957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001b657600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021957805160ff191683800117855562000249565b8280016001018555821562000249579182015b82811115620002495782518255916020019190600101906200022c565b50620002579291506200025b565b5090565b6200027891905b8082111562000257576000815560010162000262565b90565b6113f8806200028b6000396000f3006080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d75780631785f53c1461020f57806318160ddd146102325780632348238c1461025957806323b872dd1461027a57806324d7806c146102a4578063313ce567146102c557806339509351146102f057806342966c68146103145780634afbf5ee1461032c5780636618846314610350578063704802751461037457806370a082311461039557806379cc6790146103b65780638bad0c0a146103da57806395d89b41146103ef5780639d2e477714610404578063a457c2d714610431578063a9059cbb14610455578063c6dbdf6114610479578063d0047acf146104aa578063d294cb0f146104d7578063d73dd623146104f8578063dd62ed3e1461051c575b600080fd5b34801561015957600080fd5b50610162610543565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019c578181015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e357600080fd5b506101fb600160a060020a03600435166024356105d8565b604080519115158252519081900360200190f35b34801561021b57600080fd5b50610230600160a060020a0360043516610656565b005b34801561023e57600080fd5b50610247610679565b60408051918252519081900360200190f35b34801561026557600080fd5b50610230600160a060020a036004351661067f565b34801561028657600080fd5b506101fb600160a060020a0360043581169060243516604435610712565b3480156102b057600080fd5b506101fb600160a060020a036004351661075a565b3480156102d157600080fd5b506102da610772565b6040805160ff9092168252519081900360200190f35b3480156102fc57600080fd5b506101fb600160a060020a036004351660243561077b565b34801561032057600080fd5b5061023060043561082b565b34801561033857600080fd5b50610247600160a060020a0360043516602435610835565b34801561035c57600080fd5b506101fb600160a060020a036004351660243561085d565b34801561038057600080fd5b50610230600160a060020a0360043516610870565b3480156103a157600080fd5b50610247600160a060020a0360043516610890565b3480156103c257600080fd5b50610230600160a060020a03600435166024356108ab565b3480156103e657600080fd5b506102306108b9565b3480156103fb57600080fd5b506101626108c4565b34801561041057600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610922565b34801561043d57600080fd5b506101fb600160a060020a036004351660243561096d565b34801561046157600080fd5b506101fb600160a060020a03600435166024356109b8565b34801561048557600080fd5b5061048e6109f7565b60408051600160a060020a039092168252519081900360200190f35b3480156104b657600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610a06565b3480156104e357600080fd5b50610247600160a060020a0360043516610a47565b34801561050457600080fd5b506101fb600160a060020a0360043516602435610b50565b34801561052857600080fd5b50610247600160a060020a0360043581169060243516610b5c565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b820191906000526020600020905b8154815290600101906020018083116105b157829003601f168201915b5050505050905090565b6000600160a060020a03831615156105ef57600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600754600160a060020a0316331461066d57600080fd5b61067681610b87565b50565b60065490565b600754600160a060020a0316331461069657600080fd5b600160a060020a03811615156106ab57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600061071d84610bcf565b600160a060020a038316151561073257600080fd5b61073b84610a47565b82111561074757600080fd5b610752848484610d55565b949350505050565b600061076c818363ffffffff610de816565b92915050565b60035460ff1690565b6000600160a060020a038316151561079257600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff610e1f16565b336000818152600560209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6106763382610e31565b600160a060020a03919091166000908152600860209081526040808320938352929052205490565b6000610869838361096d565b9392505050565b600754600160a060020a0316331461088757600080fd5b61067681610e59565b600160a060020a031660009081526004602052604090205490565b6108b58282610ea1565b5050565b6108c233610b87565b565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b600061092d3361075a565b151561093857600080fd5b61094284846109b8565b50428263ffffffff1611156109635761096333858463ffffffff1686610ec9565b5060019392505050565b6000600160a060020a038316151561098457600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff61100316565b60006109c333610bcf565b600160a060020a03831615156109d857600080fd5b6109e133610a47565b8211156109ed57600080fd5b610869838361101a565b600754600160a060020a031690565b6000610a113361075a565b1515610a1c57600080fd5b610a268484611030565b428263ffffffff161115610963576109636000858463ffffffff1686610ec9565b600080610a5383610890565b600160a060020a03841660009081526008602090815260408083208380529091529020549092501515610a8557610b4a565b5060005b600160a060020a038316600090815260096020526040902054811015610b4a57600160a060020a0383166000908152600960205260409020805442919083908110610ad057fe5b9060005260206000200154101515610b4257600160a060020a0383166000908152600860209081526040808320600990925282208054610b3f93919085908110610b1657fe5b90600052602060002001548152602001908152602001600020548361100390919063ffffffff16565b91505b600101610a89565b50919050565b6000610869838361077b565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610b9860008263ffffffff6110dc16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515610be657600080fd5b600160a060020a03821660009081526008602090815260408083208380529091529020541515610c15576108b5565b5060005b600160a060020a0382166000908152600960205260409020548110156108b557600160a060020a0382166000908152600960205260409020805442919083908110610c6057fe5b90600052602060002001541015610d4d57600160a060020a0382166000908152600860209081526040808320600990925282208054610ceb93919085908110610ca557fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526008845282822082805290935220549063ffffffff61100316565b600160a060020a03831660008181526008602090815260408083208380528083528184209590955592825260099052908120805491929183919085908110610d2f57fe5b90600052602060002001548152602001908152602001600020819055505b600101610c19565b600160a060020a0383166000908152600560209081526040808320338452909152812054821115610d8557600080fd5b600160a060020a0384166000908152600560209081526040808320338452909152902054610db9908363ffffffff61100316565b600160a060020a0385166000908152600560209081526040808320338452909152902055610963848484611128565b6000600160a060020a0382161515610dff57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b60008282018381101561086957600080fd5b610e3a82610bcf565b610e4382610a47565b811115610e4f57600080fd5b6108b5828261121c565b610e6a60008263ffffffff6112ec16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b610eaa82610bcf565b610eb382610a47565b811115610ebf57600080fd5b6108b5828261133a565b600160a060020a0383166000908152600860209081526040808320838052909152902054610efd908263ffffffff610e1f16565b600160a060020a03841660009081526008602090815260408083208380529091528082209290925583815220541515610f5c57600160a060020a0383166000908152600960209081526040822080546001810182559083529120018290555b600160a060020a0383166000908152600860209081526040808320858452909152902054610f90908263ffffffff610e1f16565b600160a060020a0380851660008181526008602090815260408083208884528252918290209490945580519288168352928201528082018390526060810184905290517f4dd99b63a45b55ac0b6999b9307251132e130b3e3f06c04c92b946c0f9e0dc279181900360800190a150505050565b6000808383111561101357600080fd5b5050900390565b6000611027338484611128565b50600192915050565b600160a060020a038216151561104557600080fd5b600654611058908263ffffffff610e1f16565b600655600160a060020a038216600090815260046020526040902054611084908263ffffffff610e1f16565b600160a060020a03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a03811615156110f157600080fd5b6110fb8282610de8565b151561110657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03831660009081526004602052604090205481111561114d57600080fd5b600160a060020a038216151561116257600080fd5b600160a060020a03831660009081526004602052604090205461118b908263ffffffff61100316565b600160a060020a0380851660009081526004602052604080822093909355908416815220546111c0908263ffffffff610e1f16565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a038216151561123157600080fd5b600160a060020a03821660009081526004602052604090205481111561125657600080fd5b600654611269908263ffffffff61100316565b600655600160a060020a038216600090815260046020526040902054611295908263ffffffff61100316565b600160a060020a0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a038116151561130157600080fd5b61130b8282610de8565b1561131557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038216600090815260056020908152604080832033845290915290205481111561136a57600080fd5b600160a060020a038216600090815260056020908152604080832033845290915290205461139e908263ffffffff61100316565b600160a060020a03831660009081526005602090815260408083203384529091529020556108b58282610e315600a165627a7a72305820062db0e6b0457b0016fe92cec01a2f813c664af8fd4f12281ebacf073384bab80029", + "deployedBytecode": "0x6080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d75780631785f53c1461020f57806318160ddd146102325780632348238c1461025957806323b872dd1461027a57806324d7806c146102a4578063313ce567146102c557806339509351146102f057806342966c68146103145780634afbf5ee1461032c5780636618846314610350578063704802751461037457806370a082311461039557806379cc6790146103b65780638bad0c0a146103da57806395d89b41146103ef5780639d2e477714610404578063a457c2d714610431578063a9059cbb14610455578063c6dbdf6114610479578063d0047acf146104aa578063d294cb0f146104d7578063d73dd623146104f8578063dd62ed3e1461051c575b600080fd5b34801561015957600080fd5b50610162610543565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019c578181015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e357600080fd5b506101fb600160a060020a03600435166024356105d8565b604080519115158252519081900360200190f35b34801561021b57600080fd5b50610230600160a060020a0360043516610656565b005b34801561023e57600080fd5b50610247610679565b60408051918252519081900360200190f35b34801561026557600080fd5b50610230600160a060020a036004351661067f565b34801561028657600080fd5b506101fb600160a060020a0360043581169060243516604435610712565b3480156102b057600080fd5b506101fb600160a060020a036004351661075a565b3480156102d157600080fd5b506102da610772565b6040805160ff9092168252519081900360200190f35b3480156102fc57600080fd5b506101fb600160a060020a036004351660243561077b565b34801561032057600080fd5b5061023060043561082b565b34801561033857600080fd5b50610247600160a060020a0360043516602435610835565b34801561035c57600080fd5b506101fb600160a060020a036004351660243561085d565b34801561038057600080fd5b50610230600160a060020a0360043516610870565b3480156103a157600080fd5b50610247600160a060020a0360043516610890565b3480156103c257600080fd5b50610230600160a060020a03600435166024356108ab565b3480156103e657600080fd5b506102306108b9565b3480156103fb57600080fd5b506101626108c4565b34801561041057600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610922565b34801561043d57600080fd5b506101fb600160a060020a036004351660243561096d565b34801561046157600080fd5b506101fb600160a060020a03600435166024356109b8565b34801561048557600080fd5b5061048e6109f7565b60408051600160a060020a039092168252519081900360200190f35b3480156104b657600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610a06565b3480156104e357600080fd5b50610247600160a060020a0360043516610a47565b34801561050457600080fd5b506101fb600160a060020a0360043516602435610b50565b34801561052857600080fd5b50610247600160a060020a0360043581169060243516610b5c565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b820191906000526020600020905b8154815290600101906020018083116105b157829003601f168201915b5050505050905090565b6000600160a060020a03831615156105ef57600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600754600160a060020a0316331461066d57600080fd5b61067681610b87565b50565b60065490565b600754600160a060020a0316331461069657600080fd5b600160a060020a03811615156106ab57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600061071d84610bcf565b600160a060020a038316151561073257600080fd5b61073b84610a47565b82111561074757600080fd5b610752848484610d55565b949350505050565b600061076c818363ffffffff610de816565b92915050565b60035460ff1690565b6000600160a060020a038316151561079257600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff610e1f16565b336000818152600560209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6106763382610e31565b600160a060020a03919091166000908152600860209081526040808320938352929052205490565b6000610869838361096d565b9392505050565b600754600160a060020a0316331461088757600080fd5b61067681610e59565b600160a060020a031660009081526004602052604090205490565b6108b58282610ea1565b5050565b6108c233610b87565b565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b600061092d3361075a565b151561093857600080fd5b61094284846109b8565b50428263ffffffff1611156109635761096333858463ffffffff1686610ec9565b5060019392505050565b6000600160a060020a038316151561098457600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff61100316565b60006109c333610bcf565b600160a060020a03831615156109d857600080fd5b6109e133610a47565b8211156109ed57600080fd5b610869838361101a565b600754600160a060020a031690565b6000610a113361075a565b1515610a1c57600080fd5b610a268484611030565b428263ffffffff161115610963576109636000858463ffffffff1686610ec9565b600080610a5383610890565b600160a060020a03841660009081526008602090815260408083208380529091529020549092501515610a8557610b4a565b5060005b600160a060020a038316600090815260096020526040902054811015610b4a57600160a060020a0383166000908152600960205260409020805442919083908110610ad057fe5b9060005260206000200154101515610b4257600160a060020a0383166000908152600860209081526040808320600990925282208054610b3f93919085908110610b1657fe5b90600052602060002001548152602001908152602001600020548361100390919063ffffffff16565b91505b600101610a89565b50919050565b6000610869838361077b565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610b9860008263ffffffff6110dc16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515610be657600080fd5b600160a060020a03821660009081526008602090815260408083208380529091529020541515610c15576108b5565b5060005b600160a060020a0382166000908152600960205260409020548110156108b557600160a060020a0382166000908152600960205260409020805442919083908110610c6057fe5b90600052602060002001541015610d4d57600160a060020a0382166000908152600860209081526040808320600990925282208054610ceb93919085908110610ca557fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526008845282822082805290935220549063ffffffff61100316565b600160a060020a03831660008181526008602090815260408083208380528083528184209590955592825260099052908120805491929183919085908110610d2f57fe5b90600052602060002001548152602001908152602001600020819055505b600101610c19565b600160a060020a0383166000908152600560209081526040808320338452909152812054821115610d8557600080fd5b600160a060020a0384166000908152600560209081526040808320338452909152902054610db9908363ffffffff61100316565b600160a060020a0385166000908152600560209081526040808320338452909152902055610963848484611128565b6000600160a060020a0382161515610dff57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b60008282018381101561086957600080fd5b610e3a82610bcf565b610e4382610a47565b811115610e4f57600080fd5b6108b5828261121c565b610e6a60008263ffffffff6112ec16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b610eaa82610bcf565b610eb382610a47565b811115610ebf57600080fd5b6108b5828261133a565b600160a060020a0383166000908152600860209081526040808320838052909152902054610efd908263ffffffff610e1f16565b600160a060020a03841660009081526008602090815260408083208380529091528082209290925583815220541515610f5c57600160a060020a0383166000908152600960209081526040822080546001810182559083529120018290555b600160a060020a0383166000908152600860209081526040808320858452909152902054610f90908263ffffffff610e1f16565b600160a060020a0380851660008181526008602090815260408083208884528252918290209490945580519288168352928201528082018390526060810184905290517f4dd99b63a45b55ac0b6999b9307251132e130b3e3f06c04c92b946c0f9e0dc279181900360800190a150505050565b6000808383111561101357600080fd5b5050900390565b6000611027338484611128565b50600192915050565b600160a060020a038216151561104557600080fd5b600654611058908263ffffffff610e1f16565b600655600160a060020a038216600090815260046020526040902054611084908263ffffffff610e1f16565b600160a060020a03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a03811615156110f157600080fd5b6110fb8282610de8565b151561110657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03831660009081526004602052604090205481111561114d57600080fd5b600160a060020a038216151561116257600080fd5b600160a060020a03831660009081526004602052604090205461118b908263ffffffff61100316565b600160a060020a0380851660009081526004602052604080822093909355908416815220546111c0908263ffffffff610e1f16565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a038216151561123157600080fd5b600160a060020a03821660009081526004602052604090205481111561125657600080fd5b600654611269908263ffffffff61100316565b600655600160a060020a038216600090815260046020526040902054611295908263ffffffff61100316565b600160a060020a0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a038116151561130157600080fd5b61130b8282610de8565b1561131557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038216600090815260056020908152604080832033845290915290205481111561136a57600080fd5b600160a060020a038216600090815260056020908152604080832033845290915290205461139e908263ffffffff61100316565b600160a060020a03831660009081526005602090815260408083203384529091529020556108b58282610e315600a165627a7a72305820062db0e6b0457b0016fe92cec01a2f813c664af8fd4f12281ebacf073384bab80029", + "sourceMap": "394:4148:41:-;;;733:103;8:9:-1;5:2;;;30:1;27;20:12;5:2;733:103:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;306:21:3;316:10;306:9;;;;:21;:::i;:::-;467:12:58;;;;:5;;:12;;;;;:::i;:::-;-1:-1:-1;485:16:58;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;507:9:58;:20;;;;;;-1:-1:-1;;507:20:58;;;;;;;;;-1:-1:-1;;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;417:28;;;-1:-1:-1;;;;;436:8:55;;;;417:28;;;;;;;;;;;;733:103:41;;;394:4148;;612:115:3;667:19;:6;678:7;667:10;;;;;;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;394:4148:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;394:4148:41;;;-1:-1:-1;394:4148:41;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "394:4148:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;584:67:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;584:67:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:220:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2380:220:56;;;-1:-1:-1;;;;;2380:220:56;;;;;;;;;;;;;;;;;;;;;;;4445:95:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4445:95:41;;;-1:-1:-1;;;;;4445:95:41;;;;;640:83:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:83:56;;;;;;;;;;;;;;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;;;-1:-1:-1;;;;;855:171:55;;;1369:260:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1369:260:41;-1:-1:-1;;;;;1369:260:41;;;;;;;;;;;;423:104:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;423:104:3;;;-1:-1:-1;;;;;423:104:3;;;842:74:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;842:74:58;;;;;;;;;;;;;;;;;;;;;;;3611:330:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3611:330:56;;;-1:-1:-1;;;;;3611:330:56;;;;;2662:77:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2662:77:41;;;;;4207:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4207:137:41;;;-1:-1:-1;;;;;4207:137:41;;;;;1785:154;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1785:154:41;;;-1:-1:-1;;;;;1785:154:41;;;;;4350:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4350:89:41;;;-1:-1:-1;;;;;4350:89:41;;;920:98:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;920:98:56;;;-1:-1:-1;;;;;920:98:56;;;2745:93:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2745:93:41;;;-1:-1:-1;;;;;2745:93:41;;;;;533:73:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;533:73:3;;;;705:71:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;705:71:58;;;;1092:271:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1092:271:41;;;-1:-1:-1;;;;;1092:271:41;;;;;;;;;4397:340:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4397:340:56;;;-1:-1:-1;;;;;4397:340:56;;;;;842:244:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;842:244:41;;;-1:-1:-1;;;;;842:244:41;;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;;;;;-1:-1:-1;;;;;664:75:55;;;;;;;;;;;;;;1945:257:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1945:257:41;;;-1:-1:-1;;;;;1945:257:41;;;;;;;;;3779:422;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3779:422:41;;;-1:-1:-1;;;;;3779:422:41;;;1635:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1635:144:41;;;-1:-1:-1;;;;;1635:144:41;;;;;1335:150:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1335:150:56;-1:-1:-1;;;;;1335:150:56;;;;;;;;;;584:67:58;641:5;634:12;;;;;;;;;;;;;-1:-1:-1;;634:12:58;;;;;;;;;;;;;;;;;;;;;;;;;;620:6;;634:12;;641:5;;634:12;;;641:5;634:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67;:::o;2380:220:56:-;2445:4;-1:-1:-1;;;;;2465:21:56;;;;2457:30;;;;;;2503:10;2494:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;2494:29:56;;;;;;;;;;;;:37;;;2542:36;;;;;;;2494:29;;2503:10;2542:36;;;;;;;;;;;-1:-1:-1;2591:4:56;2380:220;;;;:::o;4445:95:41:-;586:8:55;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;4512:21:41;4525:7;4512:12;:21::i;:::-;4445:95;:::o;640:83:56:-;706:12;;640:83;:::o;855:171:55:-;586:8;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;1369:260:41:-;1448:4;1464:21;1480:4;1464:15;:21::i;:::-;-1:-1:-1;;;;;1504:16:41;;;;1496:25;;;;;;1548:20;1563:4;1548:14;:20::i;:::-;1539:29;;;1531:38;;;;;;1587:35;1606:4;1612:2;1616:5;1587:18;:35::i;:::-;1580:42;1369:260;-1:-1:-1;;;;1369:260:41:o;423:104:3:-;478:4;501:19;478:4;512:7;501:19;:10;:19;:::i;:::-;494:26;423:104;-1:-1:-1;;423:104:3:o;842:74:58:-;902:9;;;;842:74;:::o;3611:330:56:-;3711:4;-1:-1:-1;;;;;3733:21:56;;;;3725:30;;;;;;3811:10;3802:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3802:29:56;;;;;;;;;;:45;;3836:10;3802:33;:45::i;:::-;3771:10;3762:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3762:29:56;;;;;;;;;;;;:86;;;3859:60;;;;;;3762:29;;3859:60;;;;;;;;;;;-1:-1:-1;3932:4:56;3611:330;;;;:::o;2662:77:41:-;2708:24;2714:10;2726:5;2708;:24::i;4207:137::-;-1:-1:-1;;;;;4305:26:41;;;;4282:4;4305:26;;;:17;:26;;;;;;;;:32;;;;;;;;;4207:137::o;1785:154::-;1866:4;1889:43;1907:7;1916:15;1889:17;:43::i;:::-;1882:50;1785:154;-1:-1:-1;;;1785:154:41:o;4350:89::-;586:8:55;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;4414:18:41;4424:7;4414:9;:18::i;920:98:56:-;-1:-1:-1;;;;;997:16:56;975:7;997:16;;;:9;:16;;;;;;;920:98::o;2745:93:41:-;2809:22;2819:4;2825:5;2809:9;:22::i;:::-;2745:93;;:::o;533:73:3:-;575:24;588:10;575:12;:24::i;:::-;533:73::o;705:71:58:-;764:7;757:14;;;;;;;;;;;;-1:-1:-1;;757:14:58;;;;;;;;;;;;;;;;;;;;;;;;;743:6;;757:14;;764:7;;757:14;;;764:7;757:14;;;;;;;;;;;;;;;;;;;;;;;;1092:271:41;1192:4;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;1208:19:41;1217:2;1221:5;1208:8;:19::i;:::-;;1256:3;1242:11;:17;;;1238:97;;;1275:49;1289:10;1301:2;1305:11;1275:49;;1318:5;1275:13;:49::i;:::-;-1:-1:-1;1352:4:41;1092:271;;;;;:::o;4397:340:56:-;4502:4;-1:-1:-1;;;;;4524:21:56;;;;4516:30;;;;;;4602:10;4593:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4593:29:56;;;;;;;;;;:50;;4627:15;4593:33;:50::i;842:244:41:-;903:4;919:27;935:10;919:15;:27::i;:::-;-1:-1:-1;;;;;965:16:41;;;;957:25;;;;;;1009:26;1024:10;1009:14;:26::i;:::-;1000:35;;;992:44;;;;;;1054:25;1069:2;1073:5;1054:14;:25::i;664:75:55:-;726:8;;-1:-1:-1;;;;;726:8:55;;664:75::o;1945:257:41:-;2032:4;379:19:3;387:10;379:7;:19::i;:::-;371:28;;;;;;;;2048:17:41;2054:2;2058:6;2048:5;:17::i;:::-;2094:3;2080:11;:17;;;2076:98;;;2113:50;2135:1;2139:2;2143:11;2113:50;;2156:6;2113:13;:50::i;3779:422::-;3841:15;3969:9;3878:18;3888:7;3878:9;:18::i;:::-;-1:-1:-1;;;;;3911:26:41;;;;;;:17;:26;;;;;;;;:29;;;;;;;;;3868:28;;-1:-1:-1;3911:34:41;3907:47;;;3947:7;;3907:47;-1:-1:-1;3981:1:41;3964:231;-1:-1:-1;;;;;3988:22:41;;;;;;:13;:22;;;;;:29;3984:33;;3964:231;;;-1:-1:-1;;;;;4042:22:41;;;;;;:13;:22;;;;;:25;;4071:3;;4042:22;4065:1;;4042:25;;;;;;;;;;;;;;:32;;4038:147;;;-1:-1:-1;;;;;4116:26:41;;;;;;:17;:26;;;;;;;;4143:13;:22;;;;;:25;;4104:66;;4116:26;4143:22;4166:1;;4143:25;;;;;;;;;;;;;;4116:53;;;;;;;;;;;;4104:7;:11;;:66;;;;:::i;:::-;4094:76;;4038:147;4019:3;;3964:231;;;3779:422;;;;:::o;1635:144::-;1711:4;1734:38;1752:7;1761:10;1734:17;:38::i;1335:150:56:-;-1:-1:-1;;;;;1456:15:56;;;1432:7;1456:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1335:150::o;733:123:3:-;791:22;:6;805:7;791:22;:13;:22;:::i;:::-;828:21;;-1:-1:-1;;;;;828:21:3;;;;;;;;733:123;:::o;3238:535:41:-;3402:9;-1:-1:-1;;;;;3307:21:41;;;;3299:30;;;;;;-1:-1:-1;;;;;3344:26:41;;;;;;:17;:26;;;;;;;;:29;;;;;;;;;:34;3340:47;;;3380:7;;3340:47;-1:-1:-1;3414:1:41;3397:370;-1:-1:-1;;;;;3421:22:41;;;;;;:13;:22;;;;;:29;3417:33;;3397:370;;;-1:-1:-1;;;;;3475:22:41;;;;;;:13;:22;;;;;:25;;3503:3;;3475:22;3498:1;;3475:25;;;;;;;;;;;;;;:31;3471:286;;;-1:-1:-1;;;;;3613:26:41;;;;;;:17;:26;;;;;;;;3640:13;:22;;;;;:25;;3558:109;;3613:26;3640:22;3663:1;;3640:25;;;;;;;;;;;;;;;;;;;3613:53;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3558:26:41;;;;:17;:26;;;;;:29;;;;;;;;;:54;:109::i;:::-;-1:-1:-1;;;;;3526:26:41;;;;;;:17;:26;;;;;;;;:29;;;;;;;;;:141;;;;3685:26;;;3712:13;:22;;;;;:25;;3526:26;;;;;3712:22;3735:1;;3712:25;;;;;;;;;;;;;;3685:53;;;;;;;;;;;:57;;;;3471:286;3452:3;;3397:370;;2872:288:56;-1:-1:-1;;;;;3006:14:56;;2975:4;3006:14;;;:8;:14;;;;;;;;3021:10;3006:26;;;;;;;;2997:35;;;2989:44;;;;;;-1:-1:-1;;;;;3069:14:56;;;;;;:8;:14;;;;;;;;3084:10;3069:26;;;;;;;;:37;;3100:5;3069:30;:37::i;:::-;-1:-1:-1;;;;;3040:14:56;;;;;;:8;:14;;;;;;;;3055:10;3040:26;;;;;;;:66;3112:26;3040:14;3128:2;3132:5;3112:9;:26::i;725:166:52:-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;3045:187:41;3111:24;3127:7;3111:15;:24::i;:::-;3163:23;3178:7;3163:14;:23::i;:::-;3154:32;;;3146:41;;;;;;3198:27;3210:7;3219:5;3198:11;:27::i;612:115:3:-;667:19;:6;678:7;667:19;:10;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;2844:195:41:-;2914:24;2930:7;2914:15;:24::i;:::-;2966:23;2981:7;2966:14;:23::i;:::-;2957:32;;;2949:41;;;;;;3001:31;3017:7;3026:5;3001:15;:31::i;2208:448::-;-1:-1:-1;;;;;2340:21:41;;;;;;:17;:21;;;;;;;;:24;;;;;;;;;:36;;2369:6;2340:28;:36::i;:::-;-1:-1:-1;;;;;2313:21:41;;;;;;:17;:21;;;;;;;;:24;;;;;;;;;:63;;;;2390:34;;;;;:39;2387:104;;;-1:-1:-1;;;;;2445:17:41;;;;;;:13;:17;;;;;;;27:10:-1;;-1:-1;23:18;;45:23;;2445:35:41;;;;;;;;;2387:104;-1:-1:-1;;;;;2538:21:41;;;;;;:17;:21;;;;;;;;:34;;;;;;;;;:46;;2577:6;2538:38;:46::i;:::-;-1:-1:-1;;;;;2501:21:41;;;;;;;:17;:21;;;;;;;;:34;;;;;;;;;:83;;;;2600:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2208:448;;;;:::o;1078:131:54:-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;1637:127:56:-;1698:4;1710:32;1720:10;1732:2;1736:5;1710:9;:32::i;:::-;-1:-1:-1;1755:4:56;1637:127;;;;:::o;5541:235::-;-1:-1:-1;;;;;5611:12:56;;;;5603:21;;;;;;5645:12;;:23;;5662:5;5645:23;:16;:23;:::i;:::-;5630:12;:38;-1:-1:-1;;;;;5695:18:56;;;;;;:9;:18;;;;;;:29;;5718:5;5695:22;:29::i;:::-;-1:-1:-1;;;;;5674:18:56;;;;;;:9;:18;;;;;;;;:50;;;;5735:36;;;;;;;5674:18;;;;5735:36;;;;;;;;;;5541:235;;:::o;477:170:52:-;-1:-1:-1;;;;;552:21:52;;;;544:30;;;;;;588:18;592:4;598:7;588:3;:18::i;:::-;580:27;;;;;;;;-1:-1:-1;;;;;614:20:52;637:5;614:20;;;;;;;;;;;:28;;-1:-1:-1;;614:28:52;;;477:170::o;4937:277:56:-;-1:-1:-1;;;;;5029:15:56;;;;;;:9;:15;;;;;;5020:24;;;5012:33;;;;;;-1:-1:-1;;;;;5059:16:56;;;;5051:25;;;;;;-1:-1:-1;;;;;5101:15:56;;;;;;:9;:15;;;;;;:26;;5121:5;5101:19;:26::i;:::-;-1:-1:-1;;;;;5083:15:56;;;;;;;:9;:15;;;;;;:44;;;;5149:13;;;;;;;:24;;5167:5;5149:17;:24::i;:::-;-1:-1:-1;;;;;5133:13:56;;;;;;;:9;:13;;;;;;;;;:40;;;;5184:25;;;;;;;5133:13;;5184:25;;;;;;;;;;;;;4937:277;;;:::o;5988:278::-;-1:-1:-1;;;;;6058:12:56;;;;6050:21;;;;;;-1:-1:-1;;;;;6094:18:56;;;;;;:9;:18;;;;;;6085:27;;;6077:36;;;;;;6135:12;;:23;;6152:5;6135:23;:16;:23;:::i;:::-;6120:12;:38;-1:-1:-1;;;;;6185:18:56;;;;;;:9;:18;;;;;;:29;;6208:5;6185:22;:29::i;:::-;-1:-1:-1;;;;;6164:18:56;;;;;;:9;:18;;;;;;;;:50;;;;6225:36;;;;;;;6164:18;;6225:36;;;;;;;;;;;5988:278;;:::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;:18::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;-1:-1:-1;379:27:52;;;244:167::o;6572:390:56:-;-1:-1:-1;;;;;6655:17:56;;;;;;:8;:17;;;;;;;;6673:10;6655:29;;;;;;;;6646:38;;;6638:47;;;;;;-1:-1:-1;;;;;6883:17:56;;;;;;:8;:17;;;;;;;;6901:10;6883:29;;;;;;;;:47;;6924:5;6883:33;:47::i;:::-;-1:-1:-1;;;;;6851:17:56;;;;;;:8;:17;;;;;;;;6869:10;6851:29;;;;;;;:79;6936:21;6851:17;6951:5;6936;:21::i", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Secondary.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"./IWToken.sol\";\nimport \"../access/roles/AdminRole.sol\";\nimport \"../access/roles/IAdminRole.sol\";\n\ncontract WToken is IWToken, AdminRole, ERC20Detailed, ERC20, Secondary {\n using SafeMath for uint256;\n\n mapping (address => mapping (uint256 => uint256)) private _vestingBalanceOf;\n\n mapping (address => uint[]) private _vestingTimes;\n\n event VestingTransferred(address from, address to, uint256 value, uint256 agingTime);\n\n constructor(string name, string symbol, uint8 decimals) ERC20Detailed(name, symbol, decimals) public {}\n\n function transfer(address to, uint256 value) public returns (bool) {\n _checkMyVesting(msg.sender);\n\n require(to != address(0));\n require(value <= accountBalance(msg.sender));\n\n return super.transfer(to, value);\n }\n\n function vestingTransfer(address to, uint256 value, uint32 vestingTime) external onlyAdmin returns (bool) {\n transfer(to, value);\n\n if (vestingTime > now) {\n _addToVesting(msg.sender, to, vestingTime, value);\n }\n\n return true;\n }\n\n function transferFrom(address from, address to, uint256 value) public returns (bool) {\n _checkMyVesting(from);\n\n require(to != address(0));\n require(value <= accountBalance(from));\n\n return super.transferFrom(from, to, value);\n }\n\n function increaseApproval(address spender, uint addedValue) public returns (bool) {\n return increaseAllowance(spender, addedValue);\n }\n\n function decreaseApproval(address spender, uint subtractedValue) public returns (bool) {\n return decreaseAllowance(spender, subtractedValue);\n }\n\n function mint(address to, uint amount, uint32 vestingTime) external onlyAdmin returns (bool) {\n _mint(to, amount);\n\n if (vestingTime > now) {\n _addToVesting(address(0), to, vestingTime, amount);\n }\n\n return true;\n }\n\n function _addToVesting(address from, address to, uint256 vestingTime, uint256 amount) internal {\n _vestingBalanceOf[to][0] = _vestingBalanceOf[to][0].add(amount);\n\n if(_vestingBalanceOf[to][vestingTime] == 0) {\n _vestingTimes[to].push(vestingTime);\n }\n\n _vestingBalanceOf[to][vestingTime] = _vestingBalanceOf[to][vestingTime].add(amount);\n\n emit VestingTransferred(from, to, amount, vestingTime);\n }\n\n function burn(uint256 value) public {\n _burn(msg.sender, value);\n }\n\n function burnFrom(address from, uint256 value) public {\n _burnFrom(from, value);\n }\n\n function _burnFrom(address account, uint256 value) internal {\n _checkMyVesting(account);\n\n require(value <= accountBalance(account));\n\n super._burnFrom(account, value);\n }\n\n function _burn(address account, uint256 value) internal {\n _checkMyVesting(account);\n\n require(value <= accountBalance(account));\n\n super._burn(account, value);\n }\n\n function _checkMyVesting(address account) internal {\n require(account != address(0));\n\n if (_vestingBalanceOf[account][0] == 0) return;\n\n for (uint256 k = 0; k < _vestingTimes[account].length; k++) {\n if (_vestingTimes[account][k] < now) {\n _vestingBalanceOf[account][0] = _vestingBalanceOf[account][0]\n .sub(_vestingBalanceOf[account][_vestingTimes[account][k]]);\n _vestingBalanceOf[account][_vestingTimes[account][k]] = 0;\n }\n }\n }\n\n function accountBalance(address account) public view returns (uint256 balance) {\n balance = balanceOf(account);\n\n if (_vestingBalanceOf[account][0] == 0) return;\n\n for (uint256 k = 0; k < _vestingTimes[account].length; k++) {\n if (_vestingTimes[account][k] >= now) {\n balance = balance.sub(_vestingBalanceOf[account][_vestingTimes[account][k]]);\n }\n }\n }\n\n function vestingBalanceOf(address account, uint date) public view returns (uint) {\n return _vestingBalanceOf[account][date];\n }\n\n function addAdmin(address account) public onlyPrimary {\n _addAdmin(account);\n }\n\n function removeAdmin(address account) public onlyPrimary {\n _removeAdmin(account);\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/token/WToken.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "exportedSymbols": { "WToken": [ - 8750 + 11048 ] }, - "id": 8751, + "id": 11049, "nodeType": "SourceUnit", "nodes": [ { - "id": 7896, + "id": 10487, "literals": [ "solidity", "^", @@ -592,38 +628,82 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:30" + "src": "0:24:41" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 7897, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 10488, "nodeType": "ImportDirective", - "scope": 8751, - "sourceUnit": 10135, - "src": "26:63:30", + "scope": 11049, + "sourceUnit": 12454, + "src": "26:65:41", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 7898, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "id": 10489, "nodeType": "ImportDirective", - "scope": 8751, - "sourceUnit": 10049, - "src": "90:59:30", + "scope": 11049, + "sourceUnit": 12987, + "src": "92:71:41", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", - "file": "./IWToken.sol", - "id": 7899, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 10490, "nodeType": "ImportDirective", - "scope": 8751, - "sourceUnit": 7895, - "src": "150:23:30", + "scope": 11049, + "sourceUnit": 12898, + "src": "164:63:41", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 10491, + "nodeType": "ImportDirective", + "scope": 11049, + "sourceUnit": 12389, + "src": "228:59:41", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "./IWToken.sol", + "id": 10492, + "nodeType": "ImportDirective", + "scope": 11049, + "sourceUnit": 10486, + "src": "288:23:41", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/AdminRole.sol", + "file": "../access/roles/AdminRole.sol", + "id": 10493, + "nodeType": "ImportDirective", + "scope": 11049, + "sourceUnit": 1353, + "src": "312:39:41", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "file": "../access/roles/IAdminRole.sol", + "id": 10494, + "nodeType": "ImportDirective", + "scope": 11049, + "sourceUnit": 1376, + "src": "352:40:41", "symbolAliases": [], "unitAlias": "" }, @@ -633,82 +713,140 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 7900, + "id": 10495, "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "195:7:30", + "referencedDeclaration": 10485, + "src": "413:7:41", "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", + "typeIdentifier": "t_contract$_IWToken_$10485", "typeString": "contract IWToken" } }, - "id": 7901, + "id": 10496, + "nodeType": "InheritanceSpecifier", + "src": "413:7:41" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10497, + "name": "AdminRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1352, + "src": "422:9:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AdminRole_$1352", + "typeString": "contract AdminRole" + } + }, + "id": 10498, + "nodeType": "InheritanceSpecifier", + "src": "422:9:41" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10499, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12986, + "src": "433:13:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + }, + "id": 10500, + "nodeType": "InheritanceSpecifier", + "src": "433:13:41" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10501, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12897, + "src": "448:5:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$12897", + "typeString": "contract ERC20" + } + }, + "id": 10502, "nodeType": "InheritanceSpecifier", - "src": "195:7:30" + "src": "448:5:41" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 7902, - "name": "Ownable", + "id": 10503, + "name": "Secondary", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "204:7:30", + "referencedDeclaration": 12453, + "src": "455:9:41", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" } }, - "id": 7903, + "id": 10504, "nodeType": "InheritanceSpecifier", - "src": "204:7:30" + "src": "455:9:41" } ], "contractDependencies": [ - 7894, - 10134, - 10168, - 10211, - 10243 + 1352, + 1375, + 10485, + 12453, + 12897, + 12986, + 13083 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 8750, + "id": 11048, "linearizedBaseContracts": [ - 8750, - 10134, - 7894, - 10168, - 10211, - 10243 + 11048, + 12453, + 12897, + 12986, + 1352, + 10485, + 1375, + 13083 ], "name": "WToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 7906, + "id": 10507, "libraryName": { "contractScope": null, - "id": 7904, + "id": 10505, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "224:8:30", + "referencedDeclaration": 12388, + "src": "477:8:41", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", + "typeIdentifier": "t_contract$_SafeMath_$12388", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "218:27:30", + "src": "471:27:41", "typeName": { - "id": 7905, + "id": 10506, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "237:7:30", + "src": "490:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -717,146 +855,11 @@ }, { "constant": false, - "id": 7912, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 8750, - "src": "251:66:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 7911, - "keyType": { - "id": 7907, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "260:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "251:49:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 7910, - "keyType": { - "id": 7908, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "280:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "271:28:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 7909, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "291:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7916, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 8750, - "src": "324:43:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 7915, - "keyType": { - "id": 7913, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "332:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "324:27:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 7914, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "343:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7918, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 8750, - "src": "374:28:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "374:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 7924, - "name": "vestingBalanceOf", + "id": 10513, + "name": "_vestingBalanceOf", "nodeType": "VariableDeclaration", - "scope": 8750, - "src": "409:73:30", + "scope": 11048, + "src": "504:75:41", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -864,46 +867,46 @@ "typeString": "mapping(address => mapping(uint256 => uint256))" }, "typeName": { - "id": 7923, + "id": 10512, "keyType": { - "id": 7919, + "id": 10508, "name": "address", "nodeType": "ElementaryTypeName", - "src": "418:7:30", + "src": "513:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "409:49:30", + "src": "504:49:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" }, "valueType": { - "id": 7922, + "id": 10511, "keyType": { - "id": 7920, + "id": 10509, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "438:7:30", + "src": "533:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "429:28:30", + "src": "524:28:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" }, "valueType": { - "id": 7921, + "id": 10510, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "449:7:30", + "src": "544:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -912,15 +915,15 @@ } }, "value": null, - "visibility": "public" + "visibility": "private" }, { "constant": false, - "id": 7929, - "name": "vestingTimes", + "id": 10518, + "name": "_vestingTimes", "nodeType": "VariableDeclaration", - "scope": 8750, - "src": "489:40:30", + "scope": 11048, + "src": "586:49:41", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -928,38 +931,38 @@ "typeString": "mapping(address => uint256[])" }, "typeName": { - "id": 7928, + "id": 10517, "keyType": { - "id": 7925, + "id": 10514, "name": "address", "nodeType": "ElementaryTypeName", - "src": "498:7:30", + "src": "595:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "489:27:30", + "src": "586:27:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[])" }, "valueType": { "baseType": { - "id": 7926, + "id": 10515, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "509:4:30", + "src": "606:4:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 7927, + "id": 10516, "length": null, "nodeType": "ArrayTypeName", - "src": "509:6:30", + "src": "606:6:41", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -967,71 +970,26 @@ } }, "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7933, - "name": "trustedAccounts", - "nodeType": "VariableDeclaration", - "scope": 8750, - "src": "536:41:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 7932, - "keyType": { - "id": 7930, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "545:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "536:25:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 7931, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "556:4:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" + "visibility": "private" }, { "anonymous": false, "documentation": null, - "id": 7943, - "name": "VestingTransfer", + "id": 10528, + "name": "VestingTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 7942, + "id": 10527, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7935, + "id": 10520, "indexed": false, "name": "from", "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "606:12:30", + "scope": 10528, + "src": "667:12:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1039,10 +997,10 @@ "typeString": "address" }, "typeName": { - "id": 7934, + "id": 10519, "name": "address", "nodeType": "ElementaryTypeName", - "src": "606:7:30", + "src": "667:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1053,12 +1011,12 @@ }, { "constant": false, - "id": 7937, + "id": 10522, "indexed": false, "name": "to", "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "620:10:30", + "scope": 10528, + "src": "681:10:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1066,10 +1024,10 @@ "typeString": "address" }, "typeName": { - "id": 7936, + "id": 10521, "name": "address", "nodeType": "ElementaryTypeName", - "src": "620:7:30", + "src": "681:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1080,12 +1038,12 @@ }, { "constant": false, - "id": 7939, + "id": 10524, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "632:13:30", + "scope": 10528, + "src": "693:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1093,10 +1051,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7938, + "id": 10523, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "632:7:30", + "src": "693:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1107,12 +1065,12 @@ }, { "constant": false, - "id": 7941, + "id": 10526, "indexed": false, "name": "agingTime", "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "647:17:30", + "scope": 10528, + "src": "708:17:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1120,10 +1078,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7940, + "id": 10525, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "647:7:30", + "src": "708:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1133,42 +1091,110 @@ "visibility": "internal" } ], - "src": "605:60:30" + "src": "666:60:41" }, - "src": "584:82:30" + "src": "642:85:41" }, { - "anonymous": false, + "body": { + "id": 10542, + "nodeType": "Block", + "src": "834:2:41", + "statements": [] + }, "documentation": null, - "id": 7949, - "name": "Burn", - "nodeType": "EventDefinition", + "id": 10543, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 10537, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10530, + "src": "803:4:41", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 10538, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10532, + "src": "809:6:41", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 10539, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10534, + "src": "817:8:41", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 10540, + "modifierName": { + "argumentTypes": null, + "id": 10536, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "789:13:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "789:37:41" + } + ], + "name": "", + "nodeType": "FunctionDefinition", "parameters": { - "id": 7948, + "id": 10535, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7945, - "indexed": true, - "name": "burner", + "id": 10530, + "name": "name", "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "682:22:30", + "scope": 10543, + "src": "745:11:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 7944, - "name": "address", + "id": 10529, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "682:7:30", + "src": "745:6:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, @@ -1176,338 +1202,25 @@ }, { "constant": false, - "id": 7947, - "indexed": false, - "name": "value", + "id": 10532, + "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "706:13:30", + "scope": 10543, + "src": "758:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 7946, - "name": "uint256", + "id": 10531, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "706:7:30", + "src": "758:6:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "681:39:30" - }, - "src": "671:50:30" - }, - { - "body": { - "id": 7956, - "nodeType": "Block", - "src": "842:36:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7954, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "859:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7953, - "id": 7955, - "nodeType": "Return", - "src": "852:19:30" - } - ] - }, - "documentation": "@dev total number of tokens in existence", - "id": 7957, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7950, - "nodeType": "ParameterList", - "parameters": [], - "src": "809:2:30" - }, - "payable": false, - "returnParameters": { - "id": 7953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7952, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7957, - "src": "833:7:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7951, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "833:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "832:9:30" - }, - "scope": 8750, - "src": "789:89:30", - "stateMutability": "view", - "superFunction": 10218, - "visibility": "public" - }, - { - "body": { - "id": 7978, - "nodeType": "Block", - "src": "991:51:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7971, - "name": "trustedAccounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7933, - "src": "1001:15:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 7974, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7972, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1017:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1017:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1001:27:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 7975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1031:4:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1001:34:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7977, - "nodeType": "ExpressionStatement", - "src": "1001:34:30" - } - ] - }, - "documentation": null, - "id": 7979, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 7966, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7959, - "src": "957:5:30", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 7967, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7961, - "src": "964:7:30", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 7968, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7963, - "src": "973:9:30", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 7969, - "modifierName": { - "argumentTypes": null, - "id": 7965, - "name": "DetailedERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10168, - "src": "943:13:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$10168_$", - "typeString": "type(contract DetailedERC20)" - } - }, - "nodeType": "ModifierInvocation", - "src": "943:40:30" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7959, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 7979, - "src": "896:12:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 7958, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "896:6:30", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7961, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 7979, - "src": "910:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 7960, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "910:6:30", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, @@ -1515,11 +1228,11 @@ }, { "constant": false, - "id": 7963, - "name": "_decimals", + "id": 10534, + "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 7979, - "src": "926:15:30", + "scope": 10543, + "src": "773:14:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1527,10 +1240,10 @@ "typeString": "uint8" }, "typeName": { - "id": 7962, + "id": 10533, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "926:5:30", + "src": "773:5:41", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1540,26 +1253,26 @@ "visibility": "internal" } ], - "src": "895:47:30" + "src": "744:44:41" }, "payable": false, "returnParameters": { - "id": 7970, + "id": 10541, "nodeType": "ParameterList", "parameters": [], - "src": "991:0:30" + "src": "834:0:41" }, - "scope": 8750, - "src": "884:158:30", + "scope": 11048, + "src": "733:103:41", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 8043, + "id": 10580, "nodeType": "Block", - "src": "1277:324:30", + "src": "909:177:41", "statements": [ { "expression": { @@ -1569,18 +1282,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7989, + "id": 10553, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1303:3:30", + "referencedDeclaration": 13441, + "src": "935:3:41", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 7990, + "id": 10554, "isConstant": false, "isLValue": false, "isPure": false, @@ -1588,7 +1301,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1303:10:30", + "src": "935:10:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1602,18 +1315,18 @@ "typeString": "address" } ], - "id": 7988, + "id": 10552, "name": "_checkMyVesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8647, - "src": "1287:15:30", + "referencedDeclaration": 10945, + "src": "919:15:41", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 7991, + "id": 10555, "isConstant": false, "isLValue": false, "isPure": false, @@ -1621,15 +1334,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1287:27:30", + "src": "919:27:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7992, + "id": 10556, "nodeType": "ExpressionStatement", - "src": "1287:27:30" + "src": "919:27:41" }, { "expression": { @@ -1641,19 +1354,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 7998, + "id": 10562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7994, - "name": "_to", + "id": 10558, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7981, - "src": "1332:3:30", + "referencedDeclaration": 10545, + "src": "965:2:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1667,14 +1380,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 7996, + "id": 10560, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1347:1:30", + "src": "979:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1690,20 +1403,20 @@ "typeString": "int_const 0" } ], - "id": 7995, + "id": 10559, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1339:7:30", + "src": "971:7:41", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 7997, + "id": 10561, "isConstant": false, "isLValue": false, "isPure": true, @@ -1711,13 +1424,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1339:10:30", + "src": "971:10:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1332:17:30", + "src": "965:16:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1731,21 +1444,21 @@ "typeString": "bool" } ], - "id": 7993, + "id": 10557, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1324:7:30", + "referencedDeclaration": 13444, + "src": "957:7:41", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7999, + "id": 10563, "isConstant": false, "isLValue": false, "isPure": false, @@ -1753,15 +1466,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1324:26:30", + "src": "957:25:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8000, + "id": 10564, "nodeType": "ExpressionStatement", - "src": "1324:26:30" + "src": "957:25:41" }, { "expression": { @@ -1773,19 +1486,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8007, + "id": 10571, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8002, - "name": "_value", + "id": 10566, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7983, - "src": "1368:6:30", + "referencedDeclaration": 10547, + "src": "1000:5:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1800,18 +1513,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 8004, + "id": 10568, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1393:3:30", + "referencedDeclaration": 13441, + "src": "1024:3:41", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 8005, + "id": 10569, "isConstant": false, "isLValue": false, "isPure": false, @@ -1819,7 +1532,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1393:10:30", + "src": "1024:10:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1833,20 +1546,20 @@ "typeString": "address" } ], - "id": 8003, + "id": 10567, "name": "accountBalance", "nodeType": "Identifier", "overloadedDeclarations": [ - 8709 + 11007 ], - "referencedDeclaration": 8709, - "src": "1378:14:30", + "referencedDeclaration": 11007, + "src": "1009:14:41", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 8006, + "id": 10570, "isConstant": false, "isLValue": false, "isPure": false, @@ -1854,13 +1567,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1378:26:30", + "src": "1009:26:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1368:36:30", + "src": "1000:35:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1874,21 +1587,21 @@ "typeString": "bool" } ], - "id": 8001, + "id": 10565, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1360:7:30", + "referencedDeclaration": 13444, + "src": "992:7:41", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8008, + "id": 10572, "isConstant": false, "isLValue": false, "isPure": false, @@ -1896,468 +1609,483 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1360:45:30", + "src": "992:44:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8009, + "id": 10573, "nodeType": "ExpressionStatement", - "src": "1360:45:30" + "src": "992:44:41" }, { "expression": { "argumentTypes": null, - "id": 8021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 8010, - "name": "balances", + "id": 10576, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "1416:8:30", + "referencedDeclaration": 10545, + "src": "1069:2:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 8013, - "indexExpression": { + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8011, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1425:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1425:10:30", + "id": 10577, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10547, + "src": "1073:5:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1416:20:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 8019, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7983, - "src": "1464:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8014, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "1439:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8017, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8015, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1448:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1448:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1439:20:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "1439:24:30", + "argumentTypes": null, + "id": 10574, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13493, + "src": "1054:5:41", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_super$_WToken_$11048", + "typeString": "contract super WToken" } }, - "id": 8020, + "id": 10575, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1439:32:30", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 12529, + "src": "1054:14:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" } }, - "src": "1416:55:30", + "id": 10578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1054:25:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10551, + "id": 10579, + "nodeType": "Return", + "src": "1047:32:41" + } + ] + }, + "documentation": null, + "id": 10581, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10548, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10545, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 10581, + "src": "860:10:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "860:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10547, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 10581, + "src": "872:13:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "872:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8022, - "nodeType": "ExpressionStatement", - "src": "1416:55:30" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "859:27:41" + }, + "payable": false, + "returnParameters": { + "id": 10551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10550, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10581, + "src": "903:4:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10549, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "903:4:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "902:6:41" + }, + "scope": 11048, + "src": "842:244:41", + "stateMutability": "nonpayable", + "superFunction": 12529, + "visibility": "public" + }, + { + "body": { + "id": 10614, + "nodeType": "Block", + "src": "1198:165:41", + "statements": [ { "expression": { "argumentTypes": null, - "id": 8032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 8023, - "name": "balances", + "id": 10595, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "1482:8:30", + "referencedDeclaration": 10583, + "src": "1217:2:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 8025, - "indexExpression": { + { "argumentTypes": null, - "id": 8024, - "name": "_to", + "id": 10596, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7981, - "src": "1491:3:30", + "referencedDeclaration": 10585, + "src": "1221:5:41", "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_address", "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1482:13:30", + ], + "id": 10594, + "name": "transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10581 + ], + "referencedDeclaration": 10581, + "src": "1208:8:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8030, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7983, - "src": "1516:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8026, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "1498:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8028, - "indexExpression": { - "argumentTypes": null, - "id": 8027, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7981, - "src": "1507:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1498:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "1498:17:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1498:25:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1482:41:30", + "id": 10597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1208:19:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 8033, + "id": 10598, "nodeType": "ExpressionStatement", - "src": "1482:41:30" + "src": "1208:19:41" }, { - "eventCall": { + "condition": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8035, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1548:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1548:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8037, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7981, - "src": "1560:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8038, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7983, - "src": "1565:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10599, + "name": "vestingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10587, + "src": "1242:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8034, - "name": "Transfer", + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 10600, + "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10242, - "src": "1539:8:30", + "referencedDeclaration": 13443, + "src": "1256:3:41", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 8039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1539:33:30", + "src": "1242:17:41", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 8040, - "nodeType": "EmitStatement", - "src": "1534:38:30" + "falseBody": null, + "id": 10611, + "nodeType": "IfStatement", + "src": "1238:97:41", + "trueBody": { + "id": 10610, + "nodeType": "Block", + "src": "1261:74:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10603, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "1289:3:41", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1289:10:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10605, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10583, + "src": "1301:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10606, + "name": "vestingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10587, + "src": "1305:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 10607, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10585, + "src": "1318:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10602, + "name": "_addToVesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10784, + "src": "1275:13:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 10608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1275:49:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10609, + "nodeType": "ExpressionStatement", + "src": "1275:49:41" + } + ] + } }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 8041, + "id": 10612, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1590:4:30", + "src": "1352:4:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2365,32 +2093,52 @@ }, "value": "true" }, - "functionReturnParameters": 7987, - "id": 8042, + "functionReturnParameters": 10593, + "id": 10613, "nodeType": "Return", - "src": "1583:11:30" + "src": "1345:11:41" } ] }, - "documentation": "@dev transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", - "id": 8044, + "documentation": null, + "id": 10615, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", + "modifiers": [ + { + "arguments": null, + "id": 10590, + "modifierName": { + "argumentTypes": null, + "id": 10589, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "1173:9:41", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1173:9:41" + } + ], + "name": "vestingTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7984, + "id": 10588, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7981, - "name": "_to", + "id": 10583, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 8044, - "src": "1226:11:30", + "scope": 10615, + "src": "1117:10:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2398,10 +2146,10 @@ "typeString": "address" }, "typeName": { - "id": 7980, + "id": 10582, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1226:7:30", + "src": "1117:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2412,11 +2160,11 @@ }, { "constant": false, - "id": 7983, - "name": "_value", + "id": 10585, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 8044, - "src": "1239:14:30", + "scope": 10615, + "src": "1129:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2424,10 +2172,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7982, + "id": 10584, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1239:7:30", + "src": "1129:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2435,22 +2183,48 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 10587, + "name": "vestingTime", + "nodeType": "VariableDeclaration", + "scope": 10615, + "src": "1144:18:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 10586, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1144:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "1225:29:30" + "src": "1116:47:41" }, "payable": false, "returnParameters": { - "id": 7987, + "id": 10593, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7986, + "id": 10592, "name": "", "nodeType": "VariableDeclaration", - "scope": 8044, - "src": "1271:4:30", + "scope": 10615, + "src": "1192:4:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2458,10 +2232,10 @@ "typeString": "bool" }, "typeName": { - "id": 7985, + "id": 10591, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1271:4:30", + "src": "1192:4:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2471,19 +2245,19 @@ "visibility": "internal" } ], - "src": "1270:6:30" + "src": "1191:6:41" }, - "scope": 8750, - "src": "1208:393:30", + "scope": 11048, + "src": "1092:271:41", "stateMutability": "nonpayable", - "superFunction": 10234, - "visibility": "public" + "superFunction": 10421, + "visibility": "external" }, { "body": { - "id": 8088, + "id": 10653, "nodeType": "Block", - "src": "1730:241:30", + "src": "1454:175:41", "statements": [ { "expression": { @@ -2491,29 +2265,16 @@ "arguments": [ { "argumentTypes": null, - "id": 8060, - "name": "_to", + "id": 10627, + "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8046, - "src": "1749:3:30", + "referencedDeclaration": 10617, + "src": "1480:4:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 8061, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "1754:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } } ], "expression": { @@ -2521,26 +2282,20 @@ { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], - "id": 8059, - "name": "transfer", + "id": 10626, + "name": "_checkMyVesting", "nodeType": "Identifier", - "overloadedDeclarations": [ - 8044 - ], - "referencedDeclaration": 8044, - "src": "1740:8:30", + "overloadedDeclarations": [], + "referencedDeclaration": 10945, + "src": "1464:15:41", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 8062, + "id": 10628, "isConstant": false, "isLValue": false, "isPure": false, @@ -2548,263 +2303,287 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1740:21:30", + "src": "1464:21:41", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 8063, + "id": 10629, "nodeType": "ExpressionStatement", - "src": "1740:21:30" + "src": "1464:21:41" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8064, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8050, - "src": "1776:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 8065, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "1791:3:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1776:18:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8077, - "nodeType": "IfStatement", - "src": "1772:101:30", - "trueBody": { - "id": 8076, - "nodeType": "Block", - "src": "1796:77:30", - "statements": [ + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10631, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10619, + "src": "1504:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1832:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8068, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1824:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8070, + "hexValue": "30", + "id": 10633, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "typeConversion", + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1824:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8071, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8046, - "src": "1836:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8072, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8050, - "src": "1841:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 8073, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "1855:6:30", + "nodeType": "Literal", + "src": "1518:1:41", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 8067, - "name": "_addToVesting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8469, - "src": "1810:13:30", + "id": 10632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1510:7:41", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 8074, + "id": 10634, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1810:52:30", + "src": "1510:10:41", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 8075, - "nodeType": "ExpressionStatement", - "src": "1810:52:30" + "src": "1504:16:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } } - ] - } - }, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10630, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1496:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1496:25:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10637, + "nodeType": "ExpressionStatement", + "src": "1496:25:41" + }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 8079, - "name": "msg", + "id": 10639, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1904:3:30", + "referencedDeclaration": 10621, + "src": "1539:5:41", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 8080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1904:10:30", + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10641, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10617, + "src": "1563:4:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10640, + "name": "accountBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 11007 + ], + "referencedDeclaration": 11007, + "src": "1548:14:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1548:20:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1539:29:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10638, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1531:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1531:38:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10645, + "nodeType": "ExpressionStatement", + "src": "1531:38:41" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "id": 8081, - "name": "_to", + "id": 10648, + "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8046, - "src": "1916:3:30", + "referencedDeclaration": 10617, + "src": "1606:4:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2812,28 +2591,28 @@ }, { "argumentTypes": null, - "id": 8082, - "name": "_value", + "id": 10649, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "1921:6:30", + "referencedDeclaration": 10619, + "src": "1612:2:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "id": 8083, - "name": "_vestingTime", + "id": 10650, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8050, - "src": "1929:12:30", + "referencedDeclaration": 10621, + "src": "1616:5:41", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], @@ -2850,24 +2629,36 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" } ], - "id": 8078, - "name": "VestingTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7943, - "src": "1888:15:30", + "expression": { + "argumentTypes": null, + "id": 10646, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13493, + "src": "1587:5:41", + "typeDescriptions": { + "typeIdentifier": "t_super$_WToken_$11048", + "typeString": "contract super WToken" + } + }, + "id": 10647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 12613, + "src": "1587:18:41", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 8084, + "id": 10651, "isConstant": false, "isLValue": false, "isPure": false, @@ -2875,111 +2666,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1888:54:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8085, - "nodeType": "EmitStatement", - "src": "1883:59:30" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1960:4:30", - "subdenomination": null, + "src": "1587:35:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" - }, - "value": "true" + } }, - "functionReturnParameters": 8058, - "id": 8087, + "functionReturnParameters": 10625, + "id": 10652, "nodeType": "Return", - "src": "1953:11:30" + "src": "1580:42:41" } ] }, "documentation": null, - "id": 8089, + "id": 10654, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8053, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1703:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1703:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 8055, - "modifierName": { - "argumentTypes": null, - "id": 8052, - "name": "onlyTrusted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8749, - "src": "1691:11:30", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1691:23:30" - } - ], - "name": "vestingTransfer", + "modifiers": [], + "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 8051, + "id": 10622, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8046, - "name": "_to", + "id": 10617, + "name": "from", "nodeType": "VariableDeclaration", - "scope": 8089, - "src": "1632:11:30", + "scope": 10654, + "src": "1391:12:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2987,10 +2705,10 @@ "typeString": "address" }, "typeName": { - "id": 8045, + "id": 10616, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1632:7:30", + "src": "1391:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3001,25 +2719,25 @@ }, { "constant": false, - "id": 8048, - "name": "_value", + "id": 10619, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 8089, - "src": "1645:14:30", + "scope": 10654, + "src": "1405:10:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 8047, - "name": "uint256", + "id": 10618, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "1645:7:30", + "src": "1405:7:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, @@ -3027,45 +2745,45 @@ }, { "constant": false, - "id": 8050, - "name": "_vestingTime", + "id": 10621, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 8089, - "src": "1661:19:30", + "scope": 10654, + "src": "1417:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 8049, - "name": "uint32", + "id": 10620, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1661:6:30", + "src": "1417:7:41", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "1631:50:30" + "src": "1390:41:41" }, "payable": false, "returnParameters": { - "id": 8058, + "id": 10625, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8057, + "id": 10624, "name": "", "nodeType": "VariableDeclaration", - "scope": 8089, - "src": "1724:4:30", + "scope": 10654, + "src": "1448:4:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3073,10 +2791,10 @@ "typeString": "bool" }, "typeName": { - "id": 8056, + "id": 10623, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1724:4:30", + "src": "1448:4:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3086,87 +2804,113 @@ "visibility": "internal" } ], - "src": "1723:6:30" + "src": "1447:6:41" }, - "scope": 8750, - "src": "1607:364:30", + "scope": 11048, + "src": "1369:260:41", "stateMutability": "nonpayable", - "superFunction": 7835, - "visibility": "external" + "superFunction": 12613, + "visibility": "public" }, { "body": { - "id": 8100, + "id": 10668, "nodeType": "Block", - "src": "2258:40:30", + "src": "1717:62:41", "statements": [ { "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8096, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "2275:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8098, - "indexExpression": { - "argumentTypes": null, - "id": 8097, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8091, - "src": "2284:6:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "arguments": [ + { + "argumentTypes": null, + "id": 10664, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10656, + "src": "1752:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10665, + "name": "addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10658, + "src": "1761:10:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10663, + "name": "increaseAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12663, + "src": "1734:17:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" } }, + "id": 10666, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2275:16:30", + "names": [], + "nodeType": "FunctionCall", + "src": "1734:38:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "functionReturnParameters": 8095, - "id": 8099, + "functionReturnParameters": 10662, + "id": 10667, "nodeType": "Return", - "src": "2268:23:30" + "src": "1727:45:41" } ] }, - "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", - "id": 8101, + "documentation": null, + "id": 10669, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "balanceOf", + "name": "increaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 8092, + "id": 10659, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8091, - "name": "_owner", + "id": 10656, + "name": "spender", "nodeType": "VariableDeclaration", - "scope": 8101, - "src": "2204:14:30", + "scope": 10669, + "src": "1661:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3174,10 +2918,10 @@ "typeString": "address" }, "typeName": { - "id": 8090, + "id": 10655, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2204:7:30", + "src": "1661:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3185,55 +2929,81 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 10658, + "name": "addedValue", + "nodeType": "VariableDeclaration", + "scope": 10669, + "src": "1678:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10657, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1678:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "2203:16:30" + "src": "1660:34:41" }, "payable": false, "returnParameters": { - "id": 8095, + "id": 10662, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8094, - "name": "balance", + "id": 10661, + "name": "", "nodeType": "VariableDeclaration", - "scope": 8101, - "src": "2241:15:30", + "scope": 10669, + "src": "1711:4:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "id": 8093, - "name": "uint256", + "id": 10660, + "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2241:7:30", + "src": "1711:4:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "value": null, "visibility": "internal" } ], - "src": "2240:17:30" + "src": "1710:6:41" }, - "scope": 8750, - "src": "2185:113:30", - "stateMutability": "view", - "superFunction": 10225, + "scope": 11048, + "src": "1635:144:41", + "stateMutability": "nonpayable", + "superFunction": 10430, "visibility": "public" }, { "body": { - "id": 8190, + "id": 10683, "nodeType": "Block", - "src": "2670:430:30", + "src": "1872:67:41", "statements": [ { "expression": { @@ -3241,16 +3011,29 @@ "arguments": [ { "argumentTypes": null, - "id": 8113, - "name": "_from", + "id": 10679, + "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2696:5:30", + "referencedDeclaration": 10671, + "src": "1907:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } + }, + { + "argumentTypes": null, + "id": 10680, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10673, + "src": "1916:15:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { @@ -3258,20 +3041,24 @@ { "typeIdentifier": "t_address", "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 8112, - "name": "_checkMyVesting", + "id": 10678, + "name": "decreaseAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8647, - "src": "2680:15:30", + "referencedDeclaration": 12713, + "src": "1889:17:41", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" } }, - "id": 8114, + "id": 10681, "isConstant": false, "isLValue": false, "isPure": false, @@ -3279,131 +3066,186 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2680:22:30", + "src": "1889:43:41", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 8115, - "nodeType": "ExpressionStatement", - "src": "2680:22:30" + "functionReturnParameters": 10677, + "id": 10682, + "nodeType": "Return", + "src": "1882:50:41" + } + ] + }, + "documentation": null, + "id": 10684, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decreaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10671, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 10684, + "src": "1811:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1811:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 10673, + "name": "subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 10684, + "src": "1828:20:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10672, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1828:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1810:39:41" + }, + "payable": false, + "returnParameters": { + "id": 10677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10676, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10684, + "src": "1866:4:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10675, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1866:4:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1865:6:41" + }, + "scope": 11048, + "src": "1785:154:41", + "stateMutability": "nonpayable", + "superFunction": 10439, + "visibility": "public" + }, + { + "body": { + "id": 10718, + "nodeType": "Block", + "src": "2038:164:41", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 10698, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10686, + "src": "2054:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10699, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10688, + "src": "2058:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 8121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8117, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8105, - "src": "2721:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2736:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2728:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2728:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2721:17:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 8116, - "name": "require", + "id": 10697, + "name": "_mint", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2713:7:30", + "overloadedDeclarations": [], + "referencedDeclaration": 12807, + "src": "2048:5:41", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "id": 8122, + "id": 10700, "isConstant": false, "isLValue": false, "isPure": false, @@ -3411,61 +3253,169 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2713:26:30", + "src": "2048:17:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8123, + "id": 10701, "nodeType": "ExpressionStatement", - "src": "2713:26:30" + "src": "2048:17:41" }, { - "expression": { + "condition": { "argumentTypes": null, - "arguments": [ + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10702, + "name": "vestingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10690, + "src": "2080:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 10703, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "2094:3:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2080:17:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10715, + "nodeType": "IfStatement", + "src": "2076:98:41", + "trueBody": { + "id": 10714, + "nodeType": "Block", + "src": "2099:75:41", + "statements": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8125, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8107, - "src": "2757:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 8127, - "name": "_from", + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2135:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2127:7:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2127:10:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10709, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2782:5:30", + "referencedDeclaration": 10686, + "src": "2139:2:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } + }, + { + "argumentTypes": null, + "id": 10710, + "name": "vestingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10690, + "src": "2143:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 10711, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10688, + "src": "2156:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { @@ -3473,22 +3423,32 @@ { "typeIdentifier": "t_address", "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 8126, - "name": "accountBalance", + "id": 10705, + "name": "_addToVesting", "nodeType": "Identifier", - "overloadedDeclarations": [ - 8709 - ], - "referencedDeclaration": 8709, - "src": "2767:14:30", + "overloadedDeclarations": [], + "referencedDeclaration": 10784, + "src": "2113:13:41", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" } }, - "id": 8128, + "id": 10712, "isConstant": false, "isLValue": false, "isPure": false, @@ -3496,114 +3456,336 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2767:21:30", + "src": "2113:50:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "src": "2757:31:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8124, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2749:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "id": 10713, + "nodeType": "ExpressionStatement", + "src": "2113:50:41" } - }, - "id": 8130, + ] + } + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 10716, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "bool", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2749:40:30", + "nodeType": "Literal", + "src": "2191:4:41", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" }, - "id": 8131, - "nodeType": "ExpressionStatement", - "src": "2749:40:30" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "functionReturnParameters": 10696, + "id": 10717, + "nodeType": "Return", + "src": "2184:11:41" + } + ] + }, + "documentation": null, + "id": 10719, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 10693, + "modifierName": { + "argumentTypes": null, + "id": 10692, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "2013:9:41", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2013:9:41" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10686, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 10719, + "src": "1959:10:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10685, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1959:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10688, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 10719, + "src": "1971:11:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10687, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1971:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10690, + "name": "vestingTime", + "nodeType": "VariableDeclaration", + "scope": 10719, + "src": "1984:18:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 10689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1984:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1958:45:41" + }, + "payable": false, + "returnParameters": { + "id": 10696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10695, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10719, + "src": "2032:4:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10694, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2032:4:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2031:6:41" + }, + "scope": 11048, + "src": "1945:257:41", + "stateMutability": "nonpayable", + "superFunction": 10450, + "visibility": "external" + }, + { + "body": { + "id": 10783, + "nodeType": "Block", + "src": "2303:353:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10730, + "name": "_vestingBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10513, + "src": "2313:17:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 10733, + "indexExpression": { + "argumentTypes": null, + "id": 10731, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10723, + "src": "2331:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "id": 8140, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "leftExpression": { + "nodeType": "IndexAccess", + "src": "2313:21:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 10734, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2335:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2313:24:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 8133, - "name": "_value", + "id": 10741, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8107, - "src": "2807:6:30", + "referencedDeclaration": 10727, + "src": "2369:6:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8134, - "name": "allowed", + "id": 10735, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "2817:7:30", + "referencedDeclaration": 10513, + "src": "2340:17:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8136, + "id": 10737, "indexExpression": { "argumentTypes": null, - "id": 8135, - "name": "_from", + "id": 10736, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2825:5:30", + "referencedDeclaration": 10723, + "src": "2358:2:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3614,103 +3796,298 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2817:14:30", + "src": "2340:21:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" } }, - "id": 8139, + "id": 10739, "indexExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8137, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "2832:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8138, + "hexValue": "30", + "id": 10738, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2832:10:30", + "nodeType": "Literal", + "src": "2362:1:41", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2817:26:30", + "src": "2340:24:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2807:36:30", + "id": 10740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12367, + "src": "2340:28:41", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } + }, + "id": 10742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2340:36:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8132, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2799:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } }, - "id": 8141, + "src": "2313:63:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10744, + "nodeType": "ExpressionStatement", + "src": "2313:63:41" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10751, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2799:45:30", + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10745, + "name": "_vestingBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10513, + "src": "2390:17:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 10747, + "indexExpression": { + "argumentTypes": null, + "id": 10746, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10723, + "src": "2408:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2390:21:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 10749, + "indexExpression": { + "argumentTypes": null, + "id": 10748, + "name": "vestingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10725, + "src": "2412:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2390:34:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2428:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2390:39:41", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 8142, - "nodeType": "ExpressionStatement", - "src": "2799:45:30" + "falseBody": null, + "id": 10760, + "nodeType": "IfStatement", + "src": "2387:104:41", + "trueBody": { + "id": 10759, + "nodeType": "Block", + "src": "2431:60:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10756, + "name": "vestingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10725, + "src": "2468:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10752, + "name": "_vestingTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10518, + "src": "2445:13:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 10754, + "indexExpression": { + "argumentTypes": null, + "id": 10753, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10723, + "src": "2459:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2445:17:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 10755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2445:22:41", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) returns (uint256)" + } + }, + "id": 10757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2445:35:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10758, + "nodeType": "ExpressionStatement", + "src": "2445:35:41" + } + ] + } }, { "expression": { "argumentTypes": null, - "id": 8152, + "id": 10774, "isConstant": false, "isLValue": false, "isPure": false, @@ -3719,29 +4096,56 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8143, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "2855:8:30", + "baseExpression": { + "argumentTypes": null, + "id": 10761, + "name": "_vestingBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10513, + "src": "2501:17:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 10764, + "indexExpression": { + "argumentTypes": null, + "id": 10762, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10723, + "src": "2519:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2501:21:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" } }, - "id": 8145, + "id": 10765, "indexExpression": { "argumentTypes": null, - "id": 8144, - "name": "_from", + "id": 10763, + "name": "vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2864:5:30", + "referencedDeclaration": 10725, + "src": "2523:11:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "isConstant": false, @@ -3749,7 +4153,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2855:15:30", + "src": "2501:34:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3762,12 +4166,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8150, - "name": "_value", + "id": 10772, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8107, - "src": "2893:6:30", + "referencedDeclaration": 10727, + "src": "2577:6:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3785,29 +4189,56 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8146, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "2873:8:30", + "baseExpression": { + "argumentTypes": null, + "id": 10766, + "name": "_vestingBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10513, + "src": "2538:17:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 10768, + "indexExpression": { + "argumentTypes": null, + "id": 10767, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10723, + "src": "2556:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2538:21:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" } }, - "id": 8148, + "id": 10770, "indexExpression": { "argumentTypes": null, - "id": 8147, - "name": "_from", + "id": 10769, + "name": "vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2882:5:30", + "referencedDeclaration": 10725, + "src": "2560:11:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "isConstant": false, @@ -3815,27 +4246,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2873:15:30", + "src": "2538:34:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8149, + "id": 10771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sub", + "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "2873:19:30", + "referencedDeclaration": 12367, + "src": "2538:38:41", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 8151, + "id": 10773, "isConstant": false, "isLValue": false, "isPure": false, @@ -3843,241 +4274,287 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2873:27:30", + "src": "2538:46:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2855:45:30", + "src": "2501:83:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8153, + "id": 10775, "nodeType": "ExpressionStatement", - "src": "2855:45:30" + "src": "2501:83:41" }, { - "expression": { + "eventCall": { "argumentTypes": null, - "id": 8163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 8154, - "name": "balances", + "id": 10777, + "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "2910:8:30", + "referencedDeclaration": 10721, + "src": "2619:4:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 8156, - "indexExpression": { + { "argumentTypes": null, - "id": 8155, - "name": "_to", + "id": 10778, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8105, - "src": "2919:3:30", + "referencedDeclaration": 10723, + "src": "2625:2:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2910:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "argumentTypes": null, + "id": 10779, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10727, + "src": "2629:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10780, + "name": "vestingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10725, + "src": "2637:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 8161, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8107, - "src": "2944:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8157, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "2926:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8159, - "indexExpression": { - "argumentTypes": null, - "id": 8158, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8105, - "src": "2935:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2926:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 8160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "2926:17:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 8162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2926:25:30", + ], + "id": 10776, + "name": "VestingTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10528, + "src": "2600:18:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" } }, - "src": "2910:41:30", + "id": 10781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2600:49:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10782, + "nodeType": "EmitStatement", + "src": "2595:54:41" + } + ] + }, + "documentation": null, + "id": 10784, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addToVesting", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10728, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10721, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 10784, + "src": "2231:12:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2231:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10723, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 10784, + "src": "2245:10:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2245:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10725, + "name": "vestingTime", + "nodeType": "VariableDeclaration", + "scope": 10784, + "src": "2257:19:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2257:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8164, - "nodeType": "ExpressionStatement", - "src": "2910:41:30" + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 10727, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 10784, + "src": "2278:14:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10726, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2278:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2230:63:41" + }, + "payable": false, + "returnParameters": { + "id": 10729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2303:0:41" + }, + "scope": 11048, + "src": "2208:448:41", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10795, + "nodeType": "Block", + "src": "2698:41:41", + "statements": [ { "expression": { "argumentTypes": null, - "id": 8180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "id": 8165, - "name": "allowed", + "id": 10790, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "2961:7:30", + "referencedDeclaration": 13441, + "src": "2714:3:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 8169, - "indexExpression": { - "argumentTypes": null, - "id": 8166, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2969:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2961:14:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8170, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8167, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "2976:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8168, + "id": 10791, "isConstant": false, "isLValue": false, "isPure": false, @@ -4085,195 +4562,142 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2976:10:30", + "src": "2714:10:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2961:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "argumentTypes": null, + "id": 10792, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10786, + "src": "2726:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 8178, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8107, - "src": "3021:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8171, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "2990:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8173, - "indexExpression": { - "argumentTypes": null, - "id": 8172, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2998:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2990:14:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8176, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8174, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "3005:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3005:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2990:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 8177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "2990:30:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 8179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2990:38:30", + ], + "id": 10789, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10863 + ], + "referencedDeclaration": 10863, + "src": "2708:5:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "src": "2961:67:30", + "id": 10793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2708:24:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10794, + "nodeType": "ExpressionStatement", + "src": "2708:24:41" + } + ] + }, + "documentation": null, + "id": 10796, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10786, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 10796, + "src": "2676:13:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2676:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8181, - "nodeType": "ExpressionStatement", - "src": "2961:67:30" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "2675:15:41" + }, + "payable": false, + "returnParameters": { + "id": 10788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2698:0:41" + }, + "scope": 11048, + "src": "2662:77:41", + "stateMutability": "nonpayable", + "superFunction": 10455, + "visibility": "public" + }, + { + "body": { + "id": 10808, + "nodeType": "Block", + "src": "2799:39:41", + "statements": [ { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 8183, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "3053:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8184, - "name": "_to", + "id": 10804, + "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8105, - "src": "3060:3:30", + "referencedDeclaration": 10798, + "src": "2819:4:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4281,12 +4705,12 @@ }, { "argumentTypes": null, - "id": 8185, - "name": "_value", + "id": 10805, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8107, - "src": "3065:6:30", + "referencedDeclaration": 10800, + "src": "2825:5:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4295,10 +4719,6 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_address", "typeString": "address" @@ -4308,18 +4728,20 @@ "typeString": "uint256" } ], - "id": 8182, - "name": "Transfer", + "id": 10803, + "name": "_burnFrom", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10242, - "src": "3044:8:30", + "overloadedDeclarations": [ + 10836 + ], + "referencedDeclaration": 10836, + "src": "2809:9:41", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "id": 8186, + "id": 10806, "isConstant": false, "isLValue": false, "isPure": false, @@ -4327,61 +4749,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3044:28:30", + "src": "2809:22:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8187, - "nodeType": "EmitStatement", - "src": "3039:33:30" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3089:4:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 8111, - "id": 8189, - "nodeType": "Return", - "src": "3082:11:30" + "id": 10807, + "nodeType": "ExpressionStatement", + "src": "2809:22:41" } ] }, - "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", - "id": 8191, + "documentation": null, + "id": 10809, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "transferFrom", + "name": "burnFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 8108, + "id": 10801, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8103, - "name": "_from", + "id": 10798, + "name": "from", "nodeType": "VariableDeclaration", - "scope": 8191, - "src": "2604:13:30", + "scope": 10809, + "src": "2763:12:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4389,10 +4787,10 @@ "typeString": "address" }, "typeName": { - "id": 8102, + "id": 10797, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2604:7:30", + "src": "2763:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4403,37 +4801,11 @@ }, { "constant": false, - "id": 8105, - "name": "_to", + "id": 10800, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 8191, - "src": "2619:11:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2619:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8107, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 8191, - "src": "2632:14:30", + "scope": 10809, + "src": "2777:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4441,10 +4813,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8106, + "id": 10799, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2632:7:30", + "src": "2777:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4454,211 +4826,220 @@ "visibility": "internal" } ], - "src": "2603:44:30" + "src": "2762:29:41" }, "payable": false, "returnParameters": { - "id": 8111, + "id": 10802, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8191, - "src": "2664:4:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2664:4:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2663:6:30" + "parameters": [], + "src": "2799:0:41" }, - "scope": 8750, - "src": "2582:518:30", + "scope": 11048, + "src": "2745:93:41", "stateMutability": "nonpayable", - "superFunction": 10193, + "superFunction": 10462, "visibility": "public" }, { "body": { - "id": 8218, + "id": 10835, "nodeType": "Block", - "src": "3809:130:30", + "src": "2904:135:41", "statements": [ { "expression": { "argumentTypes": null, - "id": 8207, + "arguments": [ + { + "argumentTypes": null, + "id": 10817, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10811, + "src": "2930:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10816, + "name": "_checkMyVesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10945, + "src": "2914:15:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10818, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "names": [], + "nodeType": "FunctionCall", + "src": "2914:24:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10819, + "nodeType": "ExpressionStatement", + "src": "2914:24:41" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "baseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 8200, - "name": "allowed", + "id": 10821, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "3819:7:30", + "referencedDeclaration": 10813, + "src": "2957:5:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 8204, - "indexExpression": { + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10823, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10811, + "src": "2981:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "argumentTypes": null, - "id": 8201, - "name": "msg", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10822, + "name": "accountBalance", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "3827:3:30", + "overloadedDeclarations": [ + 11007 + ], + "referencedDeclaration": 11007, + "src": "2966:14:41", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" } }, - "id": 8202, + "id": 10824, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3827:10:30", + "names": [], + "nodeType": "FunctionCall", + "src": "2966:23:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3819:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8205, - "indexExpression": { - "argumentTypes": null, - "id": 8203, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8193, - "src": "3839:8:30", + "src": "2957:32:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3819:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8206, - "name": "_value", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10820, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8195, - "src": "3851:6:30", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2949:7:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "src": "3819:38:30", + "id": 10826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2949:41:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 8208, + "id": 10827, "nodeType": "ExpressionStatement", - "src": "3819:38:30" + "src": "2949:41:41" }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8210, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "3881:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3881:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8212, - "name": "_spender", + "id": 10831, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8193, - "src": "3893:8:30", + "referencedDeclaration": 10811, + "src": "3017:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4666,12 +5047,12 @@ }, { "argumentTypes": null, - "id": 8213, - "name": "_value", + "id": 10832, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8195, - "src": "3903:6:30", + "referencedDeclaration": 10813, + "src": "3026:5:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4680,10 +5061,6 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_address", "typeString": "address" @@ -4693,18 +5070,34 @@ "typeString": "uint256" } ], - "id": 8209, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10210, - "src": "3872:8:30", + "expression": { + "argumentTypes": null, + "id": 10828, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13493, + "src": "3001:5:41", + "typeDescriptions": { + "typeIdentifier": "t_super$_WToken_$11048", + "typeString": "contract super WToken" + } + }, + "id": 10830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burnFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 12896, + "src": "3001:15:41", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "id": 8214, + "id": 10833, "isConstant": false, "isLValue": false, "isPure": false, @@ -4712,61 +5105,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3872:38:30", + "src": "3001:31:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8215, - "nodeType": "EmitStatement", - "src": "3867:43:30" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3928:4:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 8199, - "id": 8217, - "nodeType": "Return", - "src": "3921:11:30" - } - ] - }, - "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", - "id": 8219, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8196, - "nodeType": "ParameterList", - "parameters": [ + "id": 10834, + "nodeType": "ExpressionStatement", + "src": "3001:31:41" + } + ] + }, + "documentation": null, + "id": 10836, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_burnFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10814, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 8193, - "name": "_spender", + "id": 10811, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 8219, - "src": "3753:16:30", + "scope": 10836, + "src": "2863:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4774,10 +5143,10 @@ "typeString": "address" }, "typeName": { - "id": 8192, + "id": 10810, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3753:7:30", + "src": "2863:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4788,11 +5157,11 @@ }, { "constant": false, - "id": 8195, - "name": "_value", + "id": 10813, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 8219, - "src": "3771:14:30", + "scope": 10836, + "src": "2880:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4800,10 +5169,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8194, + "id": 10812, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3771:7:30", + "src": "2880:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4813,148 +5182,316 @@ "visibility": "internal" } ], - "src": "3752:34:30" + "src": "2862:32:41" }, "payable": false, "returnParameters": { - "id": 8199, + "id": 10815, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8198, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8219, - "src": "3803:4:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8197, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3803:4:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3802:6:30" + "parameters": [], + "src": "2904:0:41" }, - "scope": 8750, - "src": "3736:203:30", + "scope": 11048, + "src": "2844:195:41", "stateMutability": "nonpayable", - "superFunction": 10202, - "visibility": "public" + "superFunction": 12896, + "visibility": "internal" }, { "body": { - "id": 8234, + "id": 10862, "nodeType": "Block", - "src": "4350:49:30", + "src": "3101:131:41", "statements": [ { "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { + "argumentTypes": null, + "id": 10844, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10838, + "src": "3127:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10843, + "name": "_checkMyVesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10945, + "src": "3111:15:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3111:24:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10846, + "nodeType": "ExpressionStatement", + "src": "3111:24:41" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10848, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10840, + "src": "3154:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10850, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10838, + "src": "3178:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10849, + "name": "accountBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 11007 + ], + "referencedDeclaration": 11007, + "src": "3163:14:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3163:23:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3154:32:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10847, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3146:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3146:41:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10854, + "nodeType": "ExpressionStatement", + "src": "3146:41:41" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 8228, - "name": "allowed", + "id": 10858, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "4367:7:30", + "referencedDeclaration": 10838, + "src": "3210:7:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 8230, - "indexExpression": { + { "argumentTypes": null, - "id": 8229, - "name": "_owner", + "id": 10859, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8221, - "src": "4375:6:30", + "referencedDeclaration": 10840, + "src": "3219:5:41", "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_address", "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10855, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13493, + "src": "3198:5:41", + "typeDescriptions": { + "typeIdentifier": "t_super$_WToken_$11048", + "typeString": "contract super WToken" } }, + "id": 10857, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4367:15:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8232, - "indexExpression": { - "argumentTypes": null, - "id": 8231, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8223, - "src": "4383:8:30", + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 12855, + "src": "3198:11:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, + "id": 10860, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4367:25:30", + "names": [], + "nodeType": "FunctionCall", + "src": "3198:27:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 8227, - "id": 8233, - "nodeType": "Return", - "src": "4360:32:30" + "id": 10861, + "nodeType": "ExpressionStatement", + "src": "3198:27:41" } ] }, - "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", - "id": 8235, + "documentation": null, + "id": 10863, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "allowance", + "name": "_burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 8224, + "id": 10841, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8221, - "name": "_owner", + "id": 10838, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 8235, - "src": "4286:14:30", + "scope": 10863, + "src": "3060:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4962,10 +5499,10 @@ "typeString": "address" }, "typeName": { - "id": 8220, + "id": 10837, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4286:7:30", + "src": "3060:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4976,45 +5513,11 @@ }, { "constant": false, - "id": 8223, - "name": "_spender", + "id": 10840, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 8235, - "src": "4302:16:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8222, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4302:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4285:34:30" - }, - "payable": false, - "returnParameters": { - "id": 8227, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8226, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8235, - "src": "4341:7:30", + "scope": 10863, + "src": "3077:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5022,10 +5525,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8225, + "id": 10839, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4341:7:30", + "src": "3077:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5035,70 +5538,197 @@ "visibility": "internal" } ], - "src": "4340:9:30" + "src": "3059:32:41" }, - "scope": 8750, - "src": "4267:132:30", - "stateMutability": "view", - "superFunction": 10182, - "visibility": "public" + "payable": false, + "returnParameters": { + "id": 10842, + "nodeType": "ParameterList", + "parameters": [], + "src": "3101:0:41" + }, + "scope": 11048, + "src": "3045:187:41", + "stateMutability": "nonpayable", + "superFunction": 12855, + "visibility": "internal" }, { "body": { - "id": 8275, + "id": 10944, "nodeType": "Block", - "src": "4953:193:30", + "src": "3289:484:41", "statements": [ { "expression": { "argumentTypes": null, - "id": 8259, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10869, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10865, + "src": "3307:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3326:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3318:7:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3318:10:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3307:21:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10868, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3299:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3299:30:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10875, + "nodeType": "ExpressionStatement", + "src": "3299:30:41" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10882, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8244, - "name": "allowed", + "id": 10876, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "4963:7:30", + "referencedDeclaration": 10513, + "src": "3344:17:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8248, + "id": 10878, "indexExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8245, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "4971:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4971:10:30", + "id": 10877, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10865, + "src": "3362:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5109,108 +5739,152 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4963:19:30", + "src": "3344:26:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" } }, - "id": 8249, + "id": 10880, "indexExpression": { "argumentTypes": null, - "id": 8247, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8237, - "src": "4983:8:30", + "hexValue": "30", + "id": 10879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3371:1:41", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": true, + "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4963:29:30", + "src": "3344:29:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "arguments": [ - { + "hexValue": "30", + "id": 10881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3377:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3344:34:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10884, + "nodeType": "IfStatement", + "src": "3340:47:41", + "trueBody": { + "expression": null, + "functionReturnParameters": 10867, + "id": 10883, + "nodeType": "Return", + "src": "3380:7:41" + } + }, + { + "body": { + "id": 10942, + "nodeType": "Block", + "src": "3457:310:41", + "statements": [ + { + "condition": { "argumentTypes": null, - "id": 8257, - "name": "_addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8239, - "src": "5029:11:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { + }, + "id": 10904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8250, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "4995:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8253, - "indexExpression": { - "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "id": 8251, - "name": "msg", + "id": 10898, + "name": "_vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5003:3:30", + "referencedDeclaration": 10518, + "src": "3475:13:41", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 10900, + "indexExpression": { + "argumentTypes": null, + "id": 10899, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10865, + "src": "3489:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 8252, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5003:10:30", + "nodeType": "IndexAccess", + "src": "3475:22:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 10902, + "indexExpression": { + "argumentTypes": null, + "id": 10901, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10886, + "src": "3498:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "isConstant": false, @@ -5218,9851 +5892,788 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4995:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8255, - "indexExpression": { - "argumentTypes": null, - "id": 8254, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8237, - "src": "5015:8:30", + "src": "3475:25:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4995:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "4995:33:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4995:46:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4963:78:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8260, - "nodeType": "ExpressionStatement", - "src": "4963:78:30" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8262, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5065:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5065:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8264, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8237, - "src": "5077:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { "argumentTypes": null, - "id": 8265, - "name": "allowed", + "id": 10903, + "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "5087:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8268, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8266, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5095:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5095:10:30", + "referencedDeclaration": 13443, + "src": "3503:3:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5087:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8270, - "indexExpression": { - "argumentTypes": null, - "id": 8269, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8237, - "src": "5107:8:30", + "src": "3475:31:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5087:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8261, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10210, - "src": "5056:8:30", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5056:61:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8272, - "nodeType": "EmitStatement", - "src": "5051:66:30" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5135:4:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 8243, - "id": 8274, - "nodeType": "Return", - "src": "5128:11:30" - } - ] - }, - "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.", - "id": 8276, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "increaseApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8240, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8237, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 8276, - "src": "4895:16:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8236, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4895:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8239, - "name": "_addedValue", - "nodeType": "VariableDeclaration", - "scope": 8276, - "src": "4913:16:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8238, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4913:4:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4894:36:30" - }, - "payable": false, - "returnParameters": { - "id": 8243, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8242, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8276, - "src": "4947:4:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8241, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4947:4:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4946:6:30" - }, - "scope": 8750, - "src": "4869:277:30", - "stateMutability": "nonpayable", - "superFunction": 7844, - "visibility": "public" - }, - { - "body": { - "id": 8335, - "nodeType": "Block", - "src": "5710:354:30", - "statements": [ - { - "assignments": [ - 8286 - ], - "declarations": [ - { - "constant": false, - "id": 8286, - "name": "oldValue", - "nodeType": "VariableDeclaration", - "scope": 8336, - "src": "5720:13:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8285, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5720:4:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8293, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8287, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "5736:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8290, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8288, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5744:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5744:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5736:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8292, - "indexExpression": { - "argumentTypes": null, - "id": 8291, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8278, - "src": "5756:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5736:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5720:45:30" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8294, - "name": "_subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8280, - "src": "5779:16:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8295, - "name": "oldValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8286, - "src": "5799:8:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5779:28:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8319, - "nodeType": "Block", - "src": "5873:87:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8307, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "5887:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8311, - "indexExpression": { + "falseBody": null, + "id": 10941, + "nodeType": "IfStatement", + "src": "3471:286:41", + "trueBody": { + "id": 10940, + "nodeType": "Block", + "src": "3508:249:41", + "statements": [ + { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8308, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5895:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8309, + "id": 10926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5895:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5887:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8312, - "indexExpression": { - "argumentTypes": null, - "id": 8310, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8278, - "src": "5907:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5887:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8315, - "name": "_subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8280, - "src": "5932:16:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8313, - "name": "oldValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8286, - "src": "5919:8:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "5919:12:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5919:30:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5887:62:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8318, - "nodeType": "ExpressionStatement", - "src": "5887:62:30" - } - ] - }, - "id": 8320, - "nodeType": "IfStatement", - "src": "5775:185:30", - "trueBody": { - "id": 8306, - "nodeType": "Block", - "src": "5809:58:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8297, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "5823:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8301, - "indexExpression": { - "argumentTypes": null, - "expression": { + "leftHandSide": { "argumentTypes": null, - "id": 8298, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5831:3:30", + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10905, + "name": "_vestingBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10513, + "src": "3526:17:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 10908, + "indexExpression": { + "argumentTypes": null, + "id": 10906, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10865, + "src": "3544:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3526:26:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 10909, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3553:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3526:29:41", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 8299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5831:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5823:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8302, - "indexExpression": { - "argumentTypes": null, - "id": 8300, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8278, - "src": "5843:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5823:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 8303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5855:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5823:33:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8305, - "nodeType": "ExpressionStatement", - "src": "5823:33:30" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8322, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5983:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5983:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8324, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8278, - "src": "5995:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8325, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "6005:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8328, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8326, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6013:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6013:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6005:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8330, - "indexExpression": { - "argumentTypes": null, - "id": 8329, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8278, - "src": "6025:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6005:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8321, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10210, - "src": "5974:8:30", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5974:61:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8332, - "nodeType": "EmitStatement", - "src": "5969:66:30" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6053:4:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 8284, - "id": 8334, - "nodeType": "Return", - "src": "6046:11:30" - } - ] - }, - "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.", - "id": 8336, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "decreaseApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8278, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 8336, - "src": "5647:16:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8277, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5647:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8280, - "name": "_subtractedValue", - "nodeType": "VariableDeclaration", - "scope": 8336, - "src": "5665:21:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8279, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5665:4:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5646:41:30" - }, - "payable": false, - "returnParameters": { - "id": 8284, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8283, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8336, - "src": "5704:4:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8282, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5704:4:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5703:6:30" - }, - "scope": 8750, - "src": "5621:443:30", - "stateMutability": "nonpayable", - "superFunction": 7853, - "visibility": "public" - }, - { - "body": { - "id": 8411, - "nodeType": "Block", - "src": "6180:422:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8354, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8340, - "src": "6215:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8352, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "6198:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6198:16:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6198:25:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 8356, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "6226:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6198:40:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8351, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "6190:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 8358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6190:49:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8359, - "nodeType": "ExpressionStatement", - "src": "6190:49:30" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8360, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8342, - "src": "6254:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 8361, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "6269:3:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6254:18:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8373, - "nodeType": "IfStatement", - "src": "6250:102:30", - "trueBody": { - "id": 8372, - "nodeType": "Block", - "src": "6274:78:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8365, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6310:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8364, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6302:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8366, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6302:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8367, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "6314:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8368, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8342, - "src": "6319:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 8369, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8340, - "src": "6333:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8363, - "name": "_addToVesting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8469, - "src": "6288:13:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 8370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6288:53:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8371, - "nodeType": "ExpressionStatement", - "src": "6288:53:30" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 8383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8374, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "6362:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8376, - "indexExpression": { - "argumentTypes": null, - "id": 8375, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "6371:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6362:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8381, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8340, - "src": "6396:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8377, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "6378:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8379, - "indexExpression": { - "argumentTypes": null, - "id": 8378, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "6387:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6378:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6378:17:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6378:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6362:42:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8384, - "nodeType": "ExpressionStatement", - "src": "6362:42:30" - }, - { - "expression": { - "argumentTypes": null, - "id": 8390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8385, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "6414:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8388, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8340, - "src": "6446:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8386, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "6429:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6429:16:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6429:25:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6414:40:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8391, - "nodeType": "ExpressionStatement", - "src": "6414:40:30" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6486:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6478:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8395, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6478:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "6490:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8397, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8340, - "src": "6495:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8392, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10242, - "src": "6469:8:30", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6469:34:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8399, - "nodeType": "EmitStatement", - "src": "6464:39:30" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6542:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8401, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6534:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6534:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8404, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "6546:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8405, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8340, - "src": "6551:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8406, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8342, - "src": "6560:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 8400, - "name": "VestingTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7943, - "src": "6518:15:30", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 8407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6518:55:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8408, - "nodeType": "EmitStatement", - "src": "6513:60:30" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6591:4:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 8350, - "id": 8410, - "nodeType": "Return", - "src": "6584:11:30" - } - ] - }, - "documentation": null, - "id": 8412, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8345, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6153:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6153:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 8347, - "modifierName": { - "argumentTypes": null, - "id": 8344, - "name": "onlyTrusted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8749, - "src": "6141:11:30", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6141:23:30" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8343, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8338, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 8412, - "src": "6084:11:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8337, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6084:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8340, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 8412, - "src": "6097:12:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8339, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6097:4:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8342, - "name": "_vestingTime", - "nodeType": "VariableDeclaration", - "scope": 8412, - "src": "6111:19:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8341, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6111:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6083:48:30" - }, - "payable": false, - "returnParameters": { - "id": 8350, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8349, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8412, - "src": "6174:4:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8348, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6174:4:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6173:6:30" - }, - "scope": 8750, - "src": "6070:532:30", - "stateMutability": "nonpayable", - "superFunction": 7864, - "visibility": "external" - }, - { - "body": { - "id": 8468, - "nodeType": "Block", - "src": "6707:282:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8423, - "name": "vestingBalanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "6717:16:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8426, - "indexExpression": { - "argumentTypes": null, - "id": 8424, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8416, - "src": "6734:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6717:21:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8427, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6739:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6717:24:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8434, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8420, - "src": "6773:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8428, - "name": "vestingBalanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "6744:16:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8430, - "indexExpression": { - "argumentTypes": null, - "id": 8429, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8416, - "src": "6761:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6744:21:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8432, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6766:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6744:24:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6744:28:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6744:37:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6717:64:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8437, - "nodeType": "ExpressionStatement", - "src": "6717:64:30" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8438, - "name": "vestingBalanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "6795:16:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8440, - "indexExpression": { - "argumentTypes": null, - "id": 8439, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8416, - "src": "6812:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6795:21:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8442, - "indexExpression": { - "argumentTypes": null, - "id": 8441, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8418, - "src": "6817:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6795:35:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6834:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6795:40:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8452, - "nodeType": "IfStatement", - "src": "6792:93:30", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8449, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8418, - "src": "6872:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8445, - "name": "vestingTimes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "6849:12:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 8447, - "indexExpression": { - "argumentTypes": null, - "id": 8446, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8416, - "src": "6862:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6849:17:30", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6849:22:30", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 8450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6849:36:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8451, - "nodeType": "ExpressionStatement", - "src": "6849:36:30" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 8466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8453, - "name": "vestingBalanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "6896:16:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8456, - "indexExpression": { - "argumentTypes": null, - "id": 8454, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8416, - "src": "6913:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6896:21:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8457, - "indexExpression": { - "argumentTypes": null, - "id": 8455, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8418, - "src": "6918:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6896:35:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8464, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8420, - "src": "6974:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8458, - "name": "vestingBalanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "6934:16:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8460, - "indexExpression": { - "argumentTypes": null, - "id": 8459, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8416, - "src": "6951:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6934:21:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8462, - "indexExpression": { - "argumentTypes": null, - "id": 8461, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8418, - "src": "6956:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6934:35:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6934:39:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6934:48:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6896:86:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8467, - "nodeType": "ExpressionStatement", - "src": "6896:86:30" - } - ] - }, - "documentation": null, - "id": 8469, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_addToVesting", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8414, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 8469, - "src": "6631:13:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8413, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6631:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8416, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 8469, - "src": "6646:11:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8415, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6646:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8418, - "name": "_vestingTime", - "nodeType": "VariableDeclaration", - "scope": 8469, - "src": "6659:20:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8417, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6659:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8420, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 8469, - "src": "6681:15:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8419, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6681:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6630:67:30" - }, - "payable": false, - "returnParameters": { - "id": 8422, - "nodeType": "ParameterList", - "parameters": [], - "src": "6707:0:30" - }, - "scope": 8750, - "src": "6608:381:30", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8480, - "nodeType": "Block", - "src": "7153:42:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8475, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7169:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7169:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8477, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8471, - "src": "7181:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8474, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8573, - "src": "7163:5:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 8478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7163:25:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8479, - "nodeType": "ExpressionStatement", - "src": "7163:25:30" - } - ] - }, - "documentation": "@dev Burns a specific amount of tokens.\n@param _value The amount of token to be burned.", - "id": 8481, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8472, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8471, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 8481, - "src": "7130:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8470, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7130:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7129:16:30" - }, - "payable": false, - "returnParameters": { - "id": 8473, - "nodeType": "ParameterList", - "parameters": [], - "src": "7153:0:30" - }, - "scope": 8750, - "src": "7116:79:30", - "stateMutability": "nonpayable", - "superFunction": 7869, - "visibility": "public" - }, - { - "body": { - "id": 8521, - "nodeType": "Block", - "src": "7505:336:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8489, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8485, - "src": "7523:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8490, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "7533:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8492, - "indexExpression": { - "argumentTypes": null, - "id": 8491, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8483, - "src": "7541:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7533:14:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8495, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8493, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7548:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7548:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7533:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7523:36:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8488, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7515:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 8497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7515:45:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8498, - "nodeType": "ExpressionStatement", - "src": "7515:45:30" - }, - { - "expression": { - "argumentTypes": null, - "id": 8514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8499, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "7737:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8503, - "indexExpression": { - "argumentTypes": null, - "id": 8500, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8483, - "src": "7745:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7737:14:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8504, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7752:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7752:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7737:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8512, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8485, - "src": "7797:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8505, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "7766:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8507, - "indexExpression": { - "argumentTypes": null, - "id": 8506, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8483, - "src": "7774:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7766:14:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8510, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8508, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7781:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7781:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7766:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "7766:30:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7766:38:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7737:67:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8515, - "nodeType": "ExpressionStatement", - "src": "7737:67:30" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8517, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8483, - "src": "7820:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8518, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8485, - "src": "7827:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8516, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8573, - "src": "7814:5:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 8519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7814:20:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8520, - "nodeType": "ExpressionStatement", - "src": "7814:20:30" - } - ] - }, - "documentation": "@dev Burns a specific amount of tokens from the target address and decrements allowance\n@param _from address The address which you want to send tokens from\n@param _value uint256 The amount of token to be burned", - "id": 8522, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "burnFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8486, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8483, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 8522, - "src": "7467:13:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8482, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7467:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8485, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 8522, - "src": "7482:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8484, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7482:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7466:31:30" - }, - "payable": false, - "returnParameters": { - "id": 8487, - "nodeType": "ParameterList", - "parameters": [], - "src": "7505:0:30" - }, - "scope": 8750, - "src": "7449:392:30", - "stateMutability": "nonpayable", - "superFunction": 7876, - "visibility": "public" - }, - { - "body": { - "id": 8572, - "nodeType": "Block", - "src": "7901:452:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8530, - "name": "_who", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "7927:4:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8529, - "name": "_checkMyVesting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8647, - "src": "7911:15:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 8531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7911:21:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8532, - "nodeType": "ExpressionStatement", - "src": "7911:21:30" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8534, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "7951:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8536, - "name": "_who", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "7976:4:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8535, - "name": "accountBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8709 - ], - "referencedDeclaration": 8709, - "src": "7961:14:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 8537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7961:20:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7951:30:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8533, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7943:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 8539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7943:39:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8540, - "nodeType": "ExpressionStatement", - "src": "7943:39:30" - }, - { - "expression": { - "argumentTypes": null, - "id": 8550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8541, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "8172:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8543, - "indexExpression": { - "argumentTypes": null, - "id": 8542, - "name": "_who", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "8181:4:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8172:14:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8548, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "8208:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8544, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "8189:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8546, - "indexExpression": { - "argumentTypes": null, - "id": 8545, - "name": "_who", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "8198:4:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8189:14:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8189:18:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8189:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8172:43:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8551, - "nodeType": "ExpressionStatement", - "src": "8172:43:30" - }, - { - "expression": { - "argumentTypes": null, - "id": 8557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8552, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "8225:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8555, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "8257:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8553, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "8240:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8240:16:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8240:24:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8225:39:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8558, - "nodeType": "ExpressionStatement", - "src": "8225:39:30" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8560, - "name": "_who", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "8284:4:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8561, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "8290:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8559, - "name": "Burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7949, - "src": "8279:4:30", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 8562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8279:18:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8563, - "nodeType": "EmitStatement", - "src": "8274:23:30" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8565, - "name": "_who", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "8321:4:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8567, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8335:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8327:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8327:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8569, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "8339:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8564, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10242, - "src": "8312:8:30", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8312:34:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8571, - "nodeType": "EmitStatement", - "src": "8307:39:30" - } - ] - }, - "documentation": null, - "id": 8573, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8527, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8524, - "name": "_who", - "nodeType": "VariableDeclaration", - "scope": 8573, - "src": "7862:12:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8523, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7862:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8526, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 8573, - "src": "7876:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8525, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7876:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7861:30:30" - }, - "payable": false, - "returnParameters": { - "id": 8528, - "nodeType": "ParameterList", - "parameters": [], - "src": "7901:0:30" - }, - "scope": 8750, - "src": "7847:506:30", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8646, - "nodeType": "Block", - "src": "8408:416:30", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8578, - "name": "vestingBalanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "8422:16:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8580, - "indexExpression": { - "argumentTypes": null, - "id": 8579, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8439:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8422:23:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8582, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8446:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8422:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8452:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8422:31:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8586, - "nodeType": "IfStatement", - "src": "8418:44:30", - "trueBody": { - "expression": null, - "functionReturnParameters": 8577, - "id": 8585, - "nodeType": "Return", - "src": "8455:7:30" - } - }, - { - "body": { - "id": 8644, - "nodeType": "Block", - "src": "8529:289:30", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8600, - "name": "vestingTimes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "8547:12:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 8602, - "indexExpression": { - "argumentTypes": null, - "id": 8601, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8560:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8547:19:30", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8604, - "indexExpression": { - "argumentTypes": null, - "id": 8603, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8588, - "src": "8567:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8547:22:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 8605, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "8572:3:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8547:28:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8643, - "nodeType": "IfStatement", - "src": "8543:265:30", - "trueBody": { - "id": 8642, - "nodeType": "Block", - "src": "8577:231:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8607, - "name": "vestingBalanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "8595:16:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8610, - "indexExpression": { - "argumentTypes": null, - "id": 8608, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8612:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8595:23:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8611, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8619:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8595:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8618, - "name": "vestingBalanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "8676:16:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8620, - "indexExpression": { - "argumentTypes": null, - "id": 8619, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8693:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8676:23:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8626, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8621, - "name": "vestingTimes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "8700:12:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 8623, - "indexExpression": { - "argumentTypes": null, - "id": 8622, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8713:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8700:19:30", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8625, - "indexExpression": { - "argumentTypes": null, - "id": 8624, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8588, - "src": "8720:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8700:22:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8676:47:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8612, - "name": "vestingBalanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "8624:16:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8614, - "indexExpression": { - "argumentTypes": null, - "id": 8613, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8641:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8624:23:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8616, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8648:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8624:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8624:51:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8624:100:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8595:129:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8629, - "nodeType": "ExpressionStatement", - "src": "8595:129:30" - }, - { - "expression": { - "argumentTypes": null, - "id": 8640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8630, - "name": "vestingBalanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "8742:16:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8637, - "indexExpression": { - "argumentTypes": null, - "id": 8631, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8759:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8742:23:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8638, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8632, - "name": "vestingTimes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "8766:12:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 8634, - "indexExpression": { - "argumentTypes": null, - "id": 8633, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8779:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8766:19:30", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8636, - "indexExpression": { - "argumentTypes": null, - "id": 8635, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8588, - "src": "8786:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8766:22:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8742:47:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 8639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8792:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8742:51:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8641, - "nodeType": "ExpressionStatement", - "src": "8742:51:30" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8591, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8588, - "src": "8492:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8592, - "name": "vestingTimes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "8496:12:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 8594, - "indexExpression": { - "argumentTypes": null, - "id": 8593, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8509:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8496:19:30", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8595, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8496:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8492:30:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8645, - "initializationExpression": { - "assignments": [ - 8588 - ], - "declarations": [ - { - "constant": false, - "id": 8588, - "name": "k", - "nodeType": "VariableDeclaration", - "scope": 8647, - "src": "8477:9:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8587, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8477:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8590, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 8589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8489:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8477:13:30" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 8598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8524:3:30", - "subExpression": { - "argumentTypes": null, - "id": 8597, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8588, - "src": "8524:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8599, - "nodeType": "ExpressionStatement", - "src": "8524:3:30" - }, - "nodeType": "ForStatement", - "src": "8472:346:30" - } - ] - }, - "documentation": null, - "id": 8647, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_checkMyVesting", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8576, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8575, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 8647, - "src": "8384:13:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8574, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8384:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8383:15:30" - }, - "payable": false, - "returnParameters": { - "id": 8577, - "nodeType": "ParameterList", - "parameters": [], - "src": "8408:0:30" - }, - "scope": 8750, - "src": "8359:465:30", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8708, - "nodeType": "Block", - "src": "8910:343:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8654, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8652, - "src": "8920:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8655, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "8930:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8657, - "indexExpression": { - "argumentTypes": null, - "id": 8656, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8649, - "src": "8939:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8930:18:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8920:28:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8659, - "nodeType": "ExpressionStatement", - "src": "8920:28:30" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8660, - "name": "vestingBalanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "8963:16:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8662, - "indexExpression": { - "argumentTypes": null, - "id": 8661, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8649, - "src": "8980:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8963:26:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8664, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8663, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8990:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8963:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8996:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8963:34:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8668, - "nodeType": "IfStatement", - "src": "8959:47:30", - "trueBody": { - "expression": null, - "functionReturnParameters": 8653, - "id": 8667, - "nodeType": "Return", - "src": "8999:7:30" - } - }, - { - "body": { - "id": 8706, - "nodeType": "Block", - "src": "9076:171:30", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8682, - "name": "vestingTimes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "9094:12:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 8684, - "indexExpression": { - "argumentTypes": null, - "id": 8683, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8649, - "src": "9107:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9094:22:30", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8686, - "indexExpression": { - "argumentTypes": null, - "id": 8685, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8670, - "src": "9117:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9094:25:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8687, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "9123:3:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9094:32:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8705, - "nodeType": "IfStatement", - "src": "9090:147:30", - "trueBody": { - "id": 8704, - "nodeType": "Block", - "src": "9128:109:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8689, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8652, - "src": "9146:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8692, - "name": "vestingBalanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "9168:16:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8694, - "indexExpression": { - "argumentTypes": null, - "id": 8693, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8649, - "src": "9185:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9168:26:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8700, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8695, - "name": "vestingTimes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "9195:12:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 8697, - "indexExpression": { - "argumentTypes": null, - "id": 8696, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8649, - "src": "9208:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9195:22:30", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8699, - "indexExpression": { - "argumentTypes": null, - "id": 8698, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8670, - "src": "9218:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9195:25:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9168:53:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8690, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8652, - "src": "9156:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "9156:11:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9156:66:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9146:76:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8703, - "nodeType": "ExpressionStatement", - "src": "9146:76:30" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8673, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8670, - "src": "9036:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8674, - "name": "vestingTimes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "9040:12:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 8676, - "indexExpression": { - "argumentTypes": null, - "id": 8675, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8649, - "src": "9053:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9040:22:30", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8677, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9040:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9036:33:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8707, - "initializationExpression": { - "assignments": [ - 8670 - ], - "declarations": [ - { - "constant": false, - "id": 8670, - "name": "k", - "nodeType": "VariableDeclaration", - "scope": 8709, - "src": "9021:9:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8669, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9021:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8672, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 8671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9033:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "9021:13:30" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 8680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9071:3:30", - "subExpression": { - "argumentTypes": null, - "id": 8679, - "name": "k", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8670, - "src": "9071:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8681, - "nodeType": "ExpressionStatement", - "src": "9071:3:30" - }, - "nodeType": "ForStatement", - "src": "9016:231:30" - } - ] - }, - "documentation": null, - "id": 8709, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "accountBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8650, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8649, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 8709, - "src": "8854:16:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8648, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8854:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8853:18:30" - }, - "payable": false, - "returnParameters": { - "id": 8653, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8652, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 8709, - "src": "8893:15:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8651, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8893:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8892:17:30" - }, - "scope": 8750, - "src": "8830:423:30", - "stateMutability": "view", - "superFunction": 7883, - "visibility": "public" - }, - { - "body": { - "id": 8722, - "nodeType": "Block", - "src": "9321:47:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8716, - "name": "trustedAccounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7933, - "src": "9331:15:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 8718, - "indexExpression": { - "argumentTypes": null, - "id": 8717, - "name": "caller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8711, - "src": "9347:6:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9331:23:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9357:4:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "9331:30:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8721, - "nodeType": "ExpressionStatement", - "src": "9331:30:30" - } - ] - }, - "documentation": null, - "id": 8723, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 8714, - "modifierName": { - "argumentTypes": null, - "id": 8713, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "9311:9:30", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9311:9:30" - } - ], - "name": "addTrustedAccount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8712, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8711, - "name": "caller", - "nodeType": "VariableDeclaration", - "scope": 8723, - "src": "9286:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8710, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9286:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9285:16:30" - }, - "payable": false, - "returnParameters": { - "id": 8715, - "nodeType": "ParameterList", - "parameters": [], - "src": "9321:0:30" - }, - "scope": 8750, - "src": "9259:109:30", - "stateMutability": "nonpayable", - "superFunction": 7888, - "visibility": "external" - }, - { - "body": { - "id": 8736, - "nodeType": "Block", - "src": "9439:48:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8730, - "name": "trustedAccounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7933, - "src": "9449:15:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 8732, - "indexExpression": { - "argumentTypes": null, - "id": 8731, - "name": "caller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8725, - "src": "9465:6:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9449:23:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 8733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9475:5:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "9449:31:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8735, - "nodeType": "ExpressionStatement", - "src": "9449:31:30" - } - ] - }, - "documentation": null, - "id": 8737, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 8728, - "modifierName": { - "argumentTypes": null, - "id": 8727, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "9429:9:30", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9429:9:30" - } - ], - "name": "removeTrustedAccount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8726, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8725, - "name": "caller", - "nodeType": "VariableDeclaration", - "scope": 8737, - "src": "9404:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9404:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9403:16:30" - }, - "payable": false, - "returnParameters": { - "id": 8729, - "nodeType": "ParameterList", - "parameters": [], - "src": "9439:0:30" - }, - "scope": 8750, - "src": "9374:113:30", - "stateMutability": "nonpayable", - "superFunction": 7893, - "visibility": "external" - }, - { - "body": { - "id": 8748, - "nodeType": "Block", - "src": "9530:60:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8742, - "name": "trustedAccounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7933, - "src": "9548:15:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 8744, - "indexExpression": { - "argumentTypes": null, - "id": 8743, - "name": "caller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8739, - "src": "9564:6:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9548:23:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8741, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9540:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 8745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9540:32:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8746, - "nodeType": "ExpressionStatement", - "src": "9540:32:30" - }, - { - "id": 8747, - "nodeType": "PlaceholderStatement", - "src": "9582:1:30" - } - ] - }, - "documentation": null, - "id": 8749, - "name": "onlyTrusted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 8740, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8739, - "name": "caller", - "nodeType": "VariableDeclaration", - "scope": 8749, - "src": "9514:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8738, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9514:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9513:16:30" - }, - "src": "9493:97:30", - "visibility": "internal" - } - ], - "scope": 8751, - "src": "176:9416:30" - } - ], - "src": "0:9593:30" - }, - "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "exportedSymbols": { - "WToken": [ - 8750 - ] - }, - "id": 8751, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7896, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:30" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 7897, - "nodeType": "ImportDirective", - "scope": 8751, - "sourceUnit": 10135, - "src": "26:63:30", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 7898, - "nodeType": "ImportDirective", - "scope": 8751, - "sourceUnit": 10049, - "src": "90:59:30", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", - "file": "./IWToken.sol", - "id": 7899, - "nodeType": "ImportDirective", - "scope": 8751, - "sourceUnit": 7895, - "src": "150:23:30", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7900, - "name": "IWToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7894, - "src": "195:7:30", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWToken_$7894", - "typeString": "contract IWToken" - } - }, - "id": 7901, - "nodeType": "InheritanceSpecifier", - "src": "195:7:30" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7902, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "204:7:30", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" - } - }, - "id": 7903, - "nodeType": "InheritanceSpecifier", - "src": "204:7:30" - } - ], - "contractDependencies": [ - 7894, - 10134, - 10168, - 10211, - 10243 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8750, - "linearizedBaseContracts": [ - 8750, - 10134, - 7894, - 10168, - 10211, - 10243 - ], - "name": "WToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 7906, - "libraryName": { - "contractScope": null, - "id": 7904, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10048, - "src": "224:8:30", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$10048", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "218:27:30", - "typeName": { - "id": 7905, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "237:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 7912, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 8750, - "src": "251:66:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 7911, - "keyType": { - "id": 7907, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "260:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "251:49:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 7910, - "keyType": { - "id": 7908, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "280:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "271:28:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 7909, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "291:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7916, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 8750, - "src": "324:43:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 7915, - "keyType": { - "id": 7913, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "332:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "324:27:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 7914, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "343:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7918, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 8750, - "src": "374:28:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "374:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 7924, - "name": "vestingBalanceOf", - "nodeType": "VariableDeclaration", - "scope": 8750, - "src": "409:73:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - }, - "typeName": { - "id": 7923, - "keyType": { - "id": 7919, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "418:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "409:49:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - }, - "valueType": { - "id": 7922, - "keyType": { - "id": 7920, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "438:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "429:28:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 7921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "449:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7929, - "name": "vestingTimes", - "nodeType": "VariableDeclaration", - "scope": 8750, - "src": "489:40:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 7928, - "keyType": { - "id": 7925, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "498:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "489:27:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 7926, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "509:4:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7927, - "length": null, - "nodeType": "ArrayTypeName", - "src": "509:6:30", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7933, - "name": "trustedAccounts", - "nodeType": "VariableDeclaration", - "scope": 8750, - "src": "536:41:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 7932, - "keyType": { - "id": 7930, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "545:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "536:25:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 7931, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "556:4:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 7943, - "name": "VestingTransfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 7942, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7935, - "indexed": false, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "606:12:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7934, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "606:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7937, - "indexed": false, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "620:10:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7936, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "620:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7939, - "indexed": false, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "632:13:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7938, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "632:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7941, - "indexed": false, - "name": "agingTime", - "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "647:17:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7940, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "647:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "605:60:30" - }, - "src": "584:82:30" - }, - { - "anonymous": false, - "documentation": null, - "id": 7949, - "name": "Burn", - "nodeType": "EventDefinition", - "parameters": { - "id": 7948, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7945, - "indexed": true, - "name": "burner", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "682:22:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7944, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "682:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7947, - "indexed": false, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "706:13:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7946, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "706:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "681:39:30" - }, - "src": "671:50:30" - }, - { - "body": { - "id": 7956, - "nodeType": "Block", - "src": "842:36:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7954, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "859:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7953, - "id": 7955, - "nodeType": "Return", - "src": "852:19:30" - } - ] - }, - "documentation": "@dev total number of tokens in existence", - "id": 7957, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7950, - "nodeType": "ParameterList", - "parameters": [], - "src": "809:2:30" - }, - "payable": false, - "returnParameters": { - "id": 7953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7952, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7957, - "src": "833:7:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7951, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "833:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "832:9:30" - }, - "scope": 8750, - "src": "789:89:30", - "stateMutability": "view", - "superFunction": 10218, - "visibility": "public" - }, - { - "body": { - "id": 7978, - "nodeType": "Block", - "src": "991:51:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7971, - "name": "trustedAccounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7933, - "src": "1001:15:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 7974, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7972, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1017:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1017:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1001:27:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 7975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1031:4:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1001:34:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7977, - "nodeType": "ExpressionStatement", - "src": "1001:34:30" - } - ] - }, - "documentation": null, - "id": 7979, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 7966, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7959, - "src": "957:5:30", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 7967, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7961, - "src": "964:7:30", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 7968, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7963, - "src": "973:9:30", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 7969, - "modifierName": { - "argumentTypes": null, - "id": 7965, - "name": "DetailedERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10168, - "src": "943:13:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$10168_$", - "typeString": "type(contract DetailedERC20)" - } - }, - "nodeType": "ModifierInvocation", - "src": "943:40:30" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7959, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 7979, - "src": "896:12:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 7958, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "896:6:30", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7961, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 7979, - "src": "910:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 7960, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "910:6:30", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7963, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 7979, - "src": "926:15:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 7962, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "926:5:30", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "895:47:30" - }, - "payable": false, - "returnParameters": { - "id": 7970, - "nodeType": "ParameterList", - "parameters": [], - "src": "991:0:30" - }, - "scope": 8750, - "src": "884:158:30", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8043, - "nodeType": "Block", - "src": "1277:324:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7989, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1303:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1303:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7988, - "name": "_checkMyVesting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8647, - "src": "1287:15:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 7991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1287:27:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7992, - "nodeType": "ExpressionStatement", - "src": "1287:27:30" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7994, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7981, - "src": "1332:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 7996, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1347:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 7995, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1339:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 7997, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1339:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1332:17:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7993, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "1324:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 7999, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1324:26:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8000, - "nodeType": "ExpressionStatement", - "src": "1324:26:30" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8002, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7983, - "src": "1368:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8004, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1393:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1393:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8003, - "name": "accountBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8709 - ], - "referencedDeclaration": 8709, - "src": "1378:14:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 8006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1378:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1368:36:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8001, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "1360:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 8008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1360:45:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8009, - "nodeType": "ExpressionStatement", - "src": "1360:45:30" - }, - { - "expression": { - "argumentTypes": null, - "id": 8021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8010, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "1416:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8013, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8011, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1425:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1425:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1416:20:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8019, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7983, - "src": "1464:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8014, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "1439:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8017, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8015, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1448:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1448:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1439:20:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "1439:24:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1439:32:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1416:55:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8022, - "nodeType": "ExpressionStatement", - "src": "1416:55:30" - }, - { - "expression": { - "argumentTypes": null, - "id": 8032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8023, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "1482:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8025, - "indexExpression": { - "argumentTypes": null, - "id": 8024, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7981, - "src": "1491:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1482:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8030, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7983, - "src": "1516:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8026, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "1498:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8028, - "indexExpression": { - "argumentTypes": null, - "id": 8027, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7981, - "src": "1507:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1498:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "1498:17:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1498:25:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1482:41:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8033, - "nodeType": "ExpressionStatement", - "src": "1482:41:30" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8035, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1548:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1548:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8037, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7981, - "src": "1560:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8038, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7983, - "src": "1565:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8034, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10242, - "src": "1539:8:30", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1539:33:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8040, - "nodeType": "EmitStatement", - "src": "1534:38:30" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1590:4:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 7987, - "id": 8042, - "nodeType": "Return", - "src": "1583:11:30" - } - ] - }, - "documentation": "@dev transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", - "id": 8044, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7981, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 8044, - "src": "1226:11:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7980, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1226:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7983, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 8044, - "src": "1239:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1239:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1225:29:30" - }, - "payable": false, - "returnParameters": { - "id": 7987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7986, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8044, - "src": "1271:4:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7985, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1271:4:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1270:6:30" - }, - "scope": 8750, - "src": "1208:393:30", - "stateMutability": "nonpayable", - "superFunction": 10234, - "visibility": "public" - }, - { - "body": { - "id": 8088, - "nodeType": "Block", - "src": "1730:241:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8060, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8046, - "src": "1749:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8061, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "1754:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8059, - "name": "transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8044 - ], - "referencedDeclaration": 8044, - "src": "1740:8:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 8062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1740:21:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8063, - "nodeType": "ExpressionStatement", - "src": "1740:21:30" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8064, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8050, - "src": "1776:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 8065, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "1791:3:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1776:18:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8077, - "nodeType": "IfStatement", - "src": "1772:101:30", - "trueBody": { - "id": 8076, - "nodeType": "Block", - "src": "1796:77:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1832:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8068, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1824:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8070, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1824:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8071, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8046, - "src": "1836:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8072, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8050, - "src": "1841:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 8073, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "1855:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8067, - "name": "_addToVesting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8469, - "src": "1810:13:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 8074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1810:52:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8075, - "nodeType": "ExpressionStatement", - "src": "1810:52:30" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8079, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1904:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1904:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8081, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8046, - "src": "1916:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8082, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "1921:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8083, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8050, - "src": "1929:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 8078, - "name": "VestingTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7943, - "src": "1888:15:30", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 8084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1888:54:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8085, - "nodeType": "EmitStatement", - "src": "1883:59:30" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1960:4:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 8058, - "id": 8087, - "nodeType": "Return", - "src": "1953:11:30" - } - ] - }, - "documentation": null, - "id": 8089, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8053, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "1703:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1703:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 8055, - "modifierName": { - "argumentTypes": null, - "id": 8052, - "name": "onlyTrusted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8749, - "src": "1691:11:30", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1691:23:30" - } - ], - "name": "vestingTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8051, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8046, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 8089, - "src": "1632:11:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1632:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8048, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 8089, - "src": "1645:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8047, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1645:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8050, - "name": "_vestingTime", - "nodeType": "VariableDeclaration", - "scope": 8089, - "src": "1661:19:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8049, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1661:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1631:50:30" - }, - "payable": false, - "returnParameters": { - "id": 8058, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8057, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8089, - "src": "1724:4:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8056, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1724:4:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1723:6:30" - }, - "scope": 8750, - "src": "1607:364:30", - "stateMutability": "nonpayable", - "superFunction": 7835, - "visibility": "external" - }, - { - "body": { - "id": 8100, - "nodeType": "Block", - "src": "2258:40:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8096, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "2275:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8098, - "indexExpression": { - "argumentTypes": null, - "id": 8097, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8091, - "src": "2284:6:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2275:16:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8095, - "id": 8099, - "nodeType": "Return", - "src": "2268:23:30" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", - "id": 8101, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8092, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8091, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 8101, - "src": "2204:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8090, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2204:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2203:16:30" - }, - "payable": false, - "returnParameters": { - "id": 8095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8094, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 8101, - "src": "2241:15:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8093, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2241:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2240:17:30" - }, - "scope": 8750, - "src": "2185:113:30", - "stateMutability": "view", - "superFunction": 10225, - "visibility": "public" - }, - { - "body": { - "id": 8190, - "nodeType": "Block", - "src": "2670:430:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8113, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2696:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8112, - "name": "_checkMyVesting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8647, - "src": "2680:15:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 8114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2680:22:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8115, - "nodeType": "ExpressionStatement", - "src": "2680:22:30" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8117, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8105, - "src": "2721:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2736:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10916, + "name": "_vestingBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10513, + "src": "3613:17:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 10918, + "indexExpression": { + "argumentTypes": null, + "id": 10917, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10865, + "src": "3631:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3613:26:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 10924, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10919, + "name": "_vestingTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10518, + "src": "3640:13:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 10921, + "indexExpression": { + "argumentTypes": null, + "id": 10920, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10865, + "src": "3654:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3640:22:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 10923, + "indexExpression": { + "argumentTypes": null, + "id": 10922, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10886, + "src": "3663:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3640:25:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3613:53:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10910, + "name": "_vestingBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10513, + "src": "3558:17:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 10912, + "indexExpression": { + "argumentTypes": null, + "id": 10911, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10865, + "src": "3576:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3558:26:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 10914, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3585:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3558:29:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "3558:54:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3558:109:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3526:141:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2728:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" + "id": 10927, + "nodeType": "ExpressionStatement", + "src": "3526:141:41" }, - "typeName": "address" - }, - "id": 8120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2728:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2721:17:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8116, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2713:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + { + "expression": { + "argumentTypes": null, + "id": 10938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10928, + "name": "_vestingBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10513, + "src": "3685:17:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 10935, + "indexExpression": { + "argumentTypes": null, + "id": 10929, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10865, + "src": "3703:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3685:26:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 10936, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10930, + "name": "_vestingTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10518, + "src": "3712:13:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 10932, + "indexExpression": { + "argumentTypes": null, + "id": 10931, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10865, + "src": "3726:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3712:22:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 10934, + "indexExpression": { + "argumentTypes": null, + "id": 10933, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10886, + "src": "3735:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3712:25:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3685:53:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10937, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3741:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3685:57:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10939, + "nodeType": "ExpressionStatement", + "src": "3685:57:41" + } + ] + } } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 8122, + "id": 10894, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2713:26:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8123, - "nodeType": "ExpressionStatement", - "src": "2713:26:30" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { + "leftExpression": { + "argumentTypes": null, + "id": 10889, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10886, + "src": "3417:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "baseExpression": { "argumentTypes": null, - "id": 8125, - "name": "_value", + "id": 10890, + "name": "_vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8107, - "src": "2757:6:30", + "referencedDeclaration": 10518, + "src": "3421:13:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" } }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { + "id": 10892, + "indexExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8127, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2782:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8126, - "name": "accountBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8709 - ], - "referencedDeclaration": 8709, - "src": "2767:14:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 8128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2767:21:30", + "id": 10891, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10865, + "src": "3435:7:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "2757:31:30", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3421:22:41", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } - ], - "id": 8124, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2749:7:30", + }, + "id": 10893, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3421:29:41", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 8130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2749:40:30", + "src": "3417:33:41", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 8131, - "nodeType": "ExpressionStatement", - "src": "2749:40:30" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 10943, + "initializationExpression": { + "assignments": [ + 10886 + ], + "declarations": [ { - "argumentTypes": null, - "commonType": { + "constant": false, + "id": 10886, + "name": "k", + "nodeType": "VariableDeclaration", + "scope": 10945, + "src": "3402:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8133, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8107, - "src": "2807:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8134, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "2817:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8136, - "indexExpression": { - "argumentTypes": null, - "id": 8135, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2825:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2817:14:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8139, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8137, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "2832:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2832:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2817:26:30", + "typeName": { + "id": 10885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3402:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2807:36:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "value": null, + "visibility": "internal" } ], + "id": 10888, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 10887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3414:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3402:13:41" + }, + "loopExpression": { "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "argumentTypes": null, + "id": 10896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3452:3:41", + "subExpression": { + "argumentTypes": null, + "id": 10895, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10886, + "src": "3452:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 8132, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "2799:7:30", + }, "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 8141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2799:45:30", + "id": 10897, + "nodeType": "ExpressionStatement", + "src": "3452:3:41" + }, + "nodeType": "ForStatement", + "src": "3397:370:41" + } + ] + }, + "documentation": null, + "id": 10945, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_checkMyVesting", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10865, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 10945, + "src": "3263:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3263:7:41", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 8142, - "nodeType": "ExpressionStatement", - "src": "2799:45:30" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "3262:17:41" + }, + "payable": false, + "returnParameters": { + "id": 10867, + "nodeType": "ParameterList", + "parameters": [], + "src": "3289:0:41" + }, + "scope": 11048, + "src": "3238:535:41", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 11006, + "nodeType": "Block", + "src": "3858:343:41", + "statements": [ { "expression": { "argumentTypes": null, - "id": 8152, + "id": 10956, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8143, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "2855:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8145, - "indexExpression": { - "argumentTypes": null, - "id": 8144, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2864:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2855:15:30", + "id": 10952, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10950, + "src": "3868:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15075,80 +6686,37 @@ "arguments": [ { "argumentTypes": null, - "id": 8150, - "name": "_value", + "id": 10954, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8107, - "src": "2893:6:30", + "referencedDeclaration": 10947, + "src": "3888:7:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8146, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "2873:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8148, - "indexExpression": { - "argumentTypes": null, - "id": 8147, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2882:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2873:15:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "2873:19:30", + "id": 10953, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12494, + "src": "3878:9:41", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" } }, - "id": 8151, + "id": 10955, "isConstant": false, "isLValue": false, "isPure": false, @@ -15156,208 +6724,522 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2873:27:30", + "src": "3878:18:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2855:45:30", + "src": "3868:28:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8153, + "id": 10957, "nodeType": "ExpressionStatement", - "src": "2855:45:30" + "src": "3868:28:41" }, { - "expression": { + "condition": { "argumentTypes": null, - "id": 8163, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10964, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8154, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "2910:8:30", + "baseExpression": { + "argumentTypes": null, + "id": 10958, + "name": "_vestingBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10513, + "src": "3911:17:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 10960, + "indexExpression": { + "argumentTypes": null, + "id": 10959, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10947, + "src": "3929:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3911:26:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" } }, - "id": 8156, + "id": 10962, "indexExpression": { "argumentTypes": null, - "id": 8155, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8105, - "src": "2919:3:30", + "hexValue": "30", + "id": 10961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3938:1:41", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": true, + "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2910:13:30", + "src": "3911:29:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8161, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8107, - "src": "2944:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { + "hexValue": "30", + "id": 10963, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3944:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3911:34:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10966, + "nodeType": "IfStatement", + "src": "3907:47:41", + "trueBody": { + "expression": null, + "functionReturnParameters": 10951, + "id": 10965, + "nodeType": "Return", + "src": "3947:7:41" + } + }, + { + "body": { + "id": 11004, + "nodeType": "Block", + "src": "4024:171:41", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { + }, + "id": 10986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 8157, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "2926:8:30", + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10980, + "name": "_vestingTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10518, + "src": "4042:13:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 10982, + "indexExpression": { + "argumentTypes": null, + "id": 10981, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10947, + "src": "4056:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4042:22:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 10984, + "indexExpression": { + "argumentTypes": null, + "id": 10983, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10968, + "src": "4065:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4042:25:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 8159, - "indexExpression": { + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { "argumentTypes": null, - "id": 8158, - "name": "_to", + "id": 10985, + "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8105, - "src": "2935:3:30", + "referencedDeclaration": 13443, + "src": "4071:3:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2926:13:30", + "src": "4042:32:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 8160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "2926:17:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "falseBody": null, + "id": 11003, + "nodeType": "IfStatement", + "src": "4038:147:41", + "trueBody": { + "id": 11002, + "nodeType": "Block", + "src": "4076:109:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10987, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10950, + "src": "4094:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10990, + "name": "_vestingBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10513, + "src": "4116:17:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 10992, + "indexExpression": { + "argumentTypes": null, + "id": 10991, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10947, + "src": "4134:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4116:26:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 10998, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10993, + "name": "_vestingTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10518, + "src": "4143:13:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 10995, + "indexExpression": { + "argumentTypes": null, + "id": 10994, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10947, + "src": "4157:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4143:22:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 10997, + "indexExpression": { + "argumentTypes": null, + "id": 10996, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10968, + "src": "4166:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4143:25:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4116:53:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10988, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10950, + "src": "4104:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 12343, + "src": "4104:11:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4104:66:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4094:76:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11001, + "nodeType": "ExpressionStatement", + "src": "4094:76:41" + } + ] } - }, - "id": 8162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2926:25:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "src": "2910:41:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ] }, - "id": 8164, - "nodeType": "ExpressionStatement", - "src": "2910:41:30" - }, - { - "expression": { + "condition": { "argumentTypes": null, - "id": 8180, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "baseExpression": { + "id": 10971, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10968, + "src": "3984:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8165, - "name": "allowed", + "id": 10972, + "name": "_vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "2961:7:30", + "referencedDeclaration": 10518, + "src": "3988:13:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 8169, + "id": 10974, "indexExpression": { "argumentTypes": null, - "id": 8166, - "name": "_from", + "id": 10973, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2969:5:30", + "referencedDeclaration": 10947, + "src": "4002:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15368,359 +7250,307 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2961:14:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8170, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8167, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "2976:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2976:10:30", + "src": "3988:22:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } }, + "id": 10975, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2961:26:30", + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3988:29:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8178, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8107, - "src": "3021:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8171, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "2990:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8173, - "indexExpression": { - "argumentTypes": null, - "id": 8172, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "2998:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2990:14:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8176, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8174, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "3005:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3005:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2990:26:30", + "src": "3984:33:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11005, + "initializationExpression": { + "assignments": [ + 10968 + ], + "declarations": [ + { + "constant": false, + "id": 10968, + "name": "k", + "nodeType": "VariableDeclaration", + "scope": 11007, + "src": "3969:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10967, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3969:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "2990:30:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } + "value": null, + "visibility": "internal" + } + ], + "id": 10970, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 10969, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3981:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "id": 8179, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3969:13:41" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 10978, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2990:38:30", + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4019:3:41", + "subExpression": { + "argumentTypes": null, + "id": 10977, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10968, + "src": "4019:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2961:67:30", + "id": 10979, + "nodeType": "ExpressionStatement", + "src": "4019:3:41" + }, + "nodeType": "ForStatement", + "src": "3964:231:41" + } + ] + }, + "documentation": null, + "id": 11007, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "accountBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10947, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 11007, + "src": "3803:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10946, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3803:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3802:17:41" + }, + "payable": false, + "returnParameters": { + "id": 10951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10950, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 11007, + "src": "3841:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10949, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3841:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8181, - "nodeType": "ExpressionStatement", - "src": "2961:67:30" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "3840:17:41" + }, + "scope": 11048, + "src": "3779:422:41", + "stateMutability": "view", + "superFunction": 10469, + "visibility": "public" + }, + { + "body": { + "id": 11022, + "nodeType": "Block", + "src": "4288:56:41", + "statements": [ { - "eventCall": { + "expression": { "argumentTypes": null, - "arguments": [ - { + "baseExpression": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 8183, - "name": "_from", + "id": 11016, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "3053:5:30", + "referencedDeclaration": 10513, + "src": "4305:17:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - { + "id": 11018, + "indexExpression": { "argumentTypes": null, - "id": 8184, - "name": "_to", + "id": 11017, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8105, - "src": "3060:3:30", + "referencedDeclaration": 11009, + "src": "4323:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - { - "argumentTypes": null, - "id": 8185, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8107, - "src": "3065:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4305:26:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8182, - "name": "Transfer", + }, + "id": 11020, + "indexExpression": { + "argumentTypes": null, + "id": 11019, + "name": "date", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10242, - "src": "3044:8:30", + "referencedDeclaration": 11011, + "src": "4332:4:41", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 8186, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3044:28:30", + "nodeType": "IndexAccess", + "src": "4305:32:41", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 8187, - "nodeType": "EmitStatement", - "src": "3039:33:30" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3089:4:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 8111, - "id": 8189, + "functionReturnParameters": 11015, + "id": 11021, "nodeType": "Return", - "src": "3082:11:30" + "src": "4298:39:41" } ] }, - "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", - "id": 8191, + "documentation": null, + "id": 11023, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "transferFrom", + "name": "vestingBalanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 8108, + "id": 11012, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8103, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 8191, - "src": "2604:13:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8102, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2604:7:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8105, - "name": "_to", + "id": 11009, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 8191, - "src": "2619:11:30", + "scope": 11023, + "src": "4233:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15728,10 +7558,10 @@ "typeString": "address" }, "typeName": { - "id": 8104, + "id": 11008, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2619:7:30", + "src": "4233:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15742,11 +7572,11 @@ }, { "constant": false, - "id": 8107, - "name": "_value", + "id": 11011, + "name": "date", "nodeType": "VariableDeclaration", - "scope": 8191, - "src": "2632:14:30", + "scope": 11023, + "src": "4250:9:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15754,10 +7584,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8106, - "name": "uint256", + "id": 11010, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2632:7:30", + "src": "4250:4:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15767,228 +7597,206 @@ "visibility": "internal" } ], - "src": "2603:44:30" + "src": "4232:28:41" }, "payable": false, "returnParameters": { - "id": 8111, + "id": 11015, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8110, + "id": 11014, "name": "", "nodeType": "VariableDeclaration", - "scope": 8191, - "src": "2664:4:30", + "scope": 11023, + "src": "4282:4:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 8109, - "name": "bool", + "id": 11013, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2664:4:30", + "src": "4282:4:41", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "2663:6:30" + "src": "4281:6:41" }, - "scope": 8750, - "src": "2582:518:30", - "stateMutability": "nonpayable", - "superFunction": 10193, + "scope": 11048, + "src": "4207:137:41", + "stateMutability": "view", + "superFunction": 10410, "visibility": "public" }, { "body": { - "id": 8218, + "id": 11034, "nodeType": "Block", - "src": "3809:130:30", + "src": "4404:35:41", "statements": [ { "expression": { "argumentTypes": null, - "id": 8207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8200, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "3819:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8204, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8201, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "3827:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3827:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3819:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8205, - "indexExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 8203, - "name": "_spender", + "id": 11031, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8193, - "src": "3839:8:30", + "referencedDeclaration": 11025, + "src": "4424:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3819:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8206, - "name": "_value", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11030, + "name": "_addAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8195, - "src": "3851:6:30", + "referencedDeclaration": 1335, + "src": "4414:9:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "src": "3819:38:30", + "id": 11032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4414:18:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11033, + "nodeType": "ExpressionStatement", + "src": "4414:18:41" + } + ] + }, + "documentation": null, + "id": 11035, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 11028, + "modifierName": { + "argumentTypes": null, + "id": 11027, + "name": "onlyPrimary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12420, + "src": "4392:11:41", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4392:11:41" + } + ], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11026, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11025, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 11035, + "src": "4368:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11024, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4368:7:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 8208, - "nodeType": "ExpressionStatement", - "src": "3819:38:30" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "4367:17:41" + }, + "payable": false, + "returnParameters": { + "id": 11029, + "nodeType": "ParameterList", + "parameters": [], + "src": "4404:0:41" + }, + "scope": 11048, + "src": "4350:89:41", + "stateMutability": "nonpayable", + "superFunction": 1366, + "visibility": "public" + }, + { + "body": { + "id": 11046, + "nodeType": "Block", + "src": "4502:38:41", + "statements": [ { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8210, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "3881:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3881:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8212, - "name": "_spender", + "id": 11043, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8193, - "src": "3893:8:30", + "referencedDeclaration": 11037, + "src": "4525:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 8213, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8195, - "src": "3903:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } } ], "expression": { @@ -15996,28 +7804,20 @@ { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], - "id": 8209, - "name": "Approval", + "id": 11042, + "name": "_removeAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10210, - "src": "3872:8:30", + "referencedDeclaration": 1351, + "src": "4512:12:41", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 8214, + "id": 11044, "isConstant": false, "isLValue": false, "isPure": false, @@ -16025,61 +7825,507 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3872:38:30", + "src": "4512:21:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8215, - "nodeType": "EmitStatement", - "src": "3867:43:30" + "id": 11045, + "nodeType": "ExpressionStatement", + "src": "4512:21:41" + } + ] + }, + "documentation": null, + "id": 11047, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 11040, + "modifierName": { + "argumentTypes": null, + "id": 11039, + "name": "onlyPrimary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12420, + "src": "4490:11:41", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4490:11:41" + } + ], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11037, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 11047, + "src": "4466:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4466:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4465:17:41" + }, + "payable": false, + "returnParameters": { + "id": 11041, + "nodeType": "ParameterList", + "parameters": [], + "src": "4502:0:41" + }, + "scope": 11048, + "src": "4445:95:41", + "stateMutability": "nonpayable", + "superFunction": 1374, + "visibility": "public" + } + ], + "scope": 11049, + "src": "394:4148:41" + } + ], + "src": "0:4543:41" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", + "exportedSymbols": { + "WToken": [ + 11048 + ] + }, + "id": 11049, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10487, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:41" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 10488, + "nodeType": "ImportDirective", + "scope": 11049, + "sourceUnit": 12454, + "src": "26:65:41", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "id": 10489, + "nodeType": "ImportDirective", + "scope": 11049, + "sourceUnit": 12987, + "src": "92:71:41", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 10490, + "nodeType": "ImportDirective", + "scope": 11049, + "sourceUnit": 12898, + "src": "164:63:41", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 10491, + "nodeType": "ImportDirective", + "scope": 11049, + "sourceUnit": 12389, + "src": "228:59:41", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "./IWToken.sol", + "id": 10492, + "nodeType": "ImportDirective", + "scope": 11049, + "sourceUnit": 10486, + "src": "288:23:41", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/AdminRole.sol", + "file": "../access/roles/AdminRole.sol", + "id": 10493, + "nodeType": "ImportDirective", + "scope": 11049, + "sourceUnit": 1353, + "src": "312:39:41", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/access/roles/IAdminRole.sol", + "file": "../access/roles/IAdminRole.sol", + "id": 10494, + "nodeType": "ImportDirective", + "scope": 11049, + "sourceUnit": 1376, + "src": "352:40:41", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10495, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10485, + "src": "413:7:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$10485", + "typeString": "contract IWToken" + } + }, + "id": 10496, + "nodeType": "InheritanceSpecifier", + "src": "413:7:41" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10497, + "name": "AdminRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1352, + "src": "422:9:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AdminRole_$1352", + "typeString": "contract AdminRole" + } + }, + "id": 10498, + "nodeType": "InheritanceSpecifier", + "src": "422:9:41" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10499, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12986, + "src": "433:13:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$12986", + "typeString": "contract ERC20Detailed" + } + }, + "id": 10500, + "nodeType": "InheritanceSpecifier", + "src": "433:13:41" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10501, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12897, + "src": "448:5:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$12897", + "typeString": "contract ERC20" + } + }, + "id": 10502, + "nodeType": "InheritanceSpecifier", + "src": "448:5:41" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10503, + "name": "Secondary", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12453, + "src": "455:9:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" + } + }, + "id": 10504, + "nodeType": "InheritanceSpecifier", + "src": "455:9:41" + } + ], + "contractDependencies": [ + 1352, + 1375, + 10485, + 12453, + 12897, + 12986, + 13083 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 11048, + "linearizedBaseContracts": [ + 11048, + 12453, + 12897, + 12986, + 1352, + 10485, + 1375, + 13083 + ], + "name": "WToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 10507, + "libraryName": { + "contractScope": null, + "id": 10505, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12388, + "src": "477:8:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$12388", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "471:27:41", + "typeName": { + "id": 10506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "490:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 10513, + "name": "_vestingBalanceOf", + "nodeType": "VariableDeclaration", + "scope": 11048, + "src": "504:75:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + }, + "typeName": { + "id": 10512, + "keyType": { + "id": 10508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "513:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "504:49:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + }, + "valueType": { + "id": 10511, + "keyType": { + "id": 10509, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "533:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3928:4:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 8199, - "id": 8217, - "nodeType": "Return", - "src": "3921:11:30" + "nodeType": "Mapping", + "src": "524:28:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 10510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "544:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - ] + } }, - "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", - "id": 8219, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 10518, + "name": "_vestingTimes", + "nodeType": "VariableDeclaration", + "scope": 11048, + "src": "586:49:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[])" + }, + "typeName": { + "id": 10517, + "keyType": { + "id": 10514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "595:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "586:27:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[])" + }, + "valueType": { + "baseType": { + "id": 10515, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "606:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10516, + "length": null, + "nodeType": "ArrayTypeName", + "src": "606:6:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 10528, + "name": "VestingTransferred", + "nodeType": "EventDefinition", "parameters": { - "id": 8196, + "id": 10527, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8193, - "name": "_spender", + "id": 10520, + "indexed": false, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 10528, + "src": "667:12:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10519, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "667:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10522, + "indexed": false, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 8219, - "src": "3753:16:30", + "scope": 10528, + "src": "681:10:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16087,10 +8333,10 @@ "typeString": "address" }, "typeName": { - "id": 8192, + "id": 10521, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3753:7:30", + "src": "681:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16101,11 +8347,12 @@ }, { "constant": false, - "id": 8195, - "name": "_value", + "id": 10524, + "indexed": false, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 8219, - "src": "3771:14:30", + "scope": 10528, + "src": "693:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16113,10 +8360,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8194, + "id": 10523, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3771:7:30", + "src": "693:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16124,164 +8371,139 @@ }, "value": null, "visibility": "internal" - } - ], - "src": "3752:34:30" - }, - "payable": false, - "returnParameters": { - "id": 8199, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 8198, - "name": "", + "id": 10526, + "indexed": false, + "name": "agingTime", "nodeType": "VariableDeclaration", - "scope": 8219, - "src": "3803:4:30", + "scope": 10528, + "src": "708:17:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 8197, - "name": "bool", + "id": 10525, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3803:4:30", + "src": "708:7:41", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "3802:6:30" + "src": "666:60:41" }, - "scope": 8750, - "src": "3736:203:30", - "stateMutability": "nonpayable", - "superFunction": 10202, - "visibility": "public" + "src": "642:85:41" }, { "body": { - "id": 8234, + "id": 10542, "nodeType": "Block", - "src": "4350:49:30", - "statements": [ - { - "expression": { + "src": "834:2:41", + "statements": [] + }, + "documentation": null, + "id": 10543, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8228, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "4367:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8230, - "indexExpression": { - "argumentTypes": null, - "id": 8229, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8221, - "src": "4375:6:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4367:15:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8232, - "indexExpression": { - "argumentTypes": null, - "id": 8231, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8223, - "src": "4383:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4367:25:30", + "id": 10537, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10530, + "src": "803:4:41", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 10538, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10532, + "src": "809:6:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, - "functionReturnParameters": 8227, - "id": 8233, - "nodeType": "Return", - "src": "4360:32:30" - } - ] - }, - "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", - "id": 8235, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", + { + "argumentTypes": null, + "id": 10539, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10534, + "src": "817:8:41", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 10540, + "modifierName": { + "argumentTypes": null, + "id": 10536, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "789:13:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$12986_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "789:37:41" + } + ], + "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 8224, + "id": 10535, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8221, - "name": "_owner", + "id": 10530, + "name": "name", "nodeType": "VariableDeclaration", - "scope": 8235, - "src": "4286:14:30", + "scope": 10543, + "src": "745:11:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 8220, - "name": "address", + "id": 10529, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "4286:7:30", + "src": "745:6:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, @@ -16289,230 +8511,329 @@ }, { "constant": false, - "id": 8223, - "name": "_spender", + "id": 10532, + "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 8235, - "src": "4302:16:30", + "scope": 10543, + "src": "758:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 8222, - "name": "address", + "id": 10531, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "4302:7:30", + "src": "758:6:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" - } - ], - "src": "4285:34:30" - }, - "payable": false, - "returnParameters": { - "id": 8227, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 8226, - "name": "", + "id": 10534, + "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 8235, - "src": "4341:7:30", + "scope": 10543, + "src": "773:14:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" }, "typeName": { - "id": 8225, - "name": "uint256", + "id": 10533, + "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4341:7:30", + "src": "773:5:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "value": null, "visibility": "internal" } ], - "src": "4340:9:30" + "src": "744:44:41" }, - "scope": 8750, - "src": "4267:132:30", - "stateMutability": "view", - "superFunction": 10182, + "payable": false, + "returnParameters": { + "id": 10541, + "nodeType": "ParameterList", + "parameters": [], + "src": "834:0:41" + }, + "scope": 11048, + "src": "733:103:41", + "stateMutability": "nonpayable", + "superFunction": null, "visibility": "public" }, { "body": { - "id": 8275, + "id": 10580, "nodeType": "Block", - "src": "4953:193:30", + "src": "909:177:41", "statements": [ { "expression": { "argumentTypes": null, - "id": 8259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10553, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13441, + "src": "935:3:41", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "935:10:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10552, + "name": "_checkMyVesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10945, + "src": "919:15:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "919:27:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10556, + "nodeType": "ExpressionStatement", + "src": "919:27:41" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10558, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10545, + "src": "965:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "979:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "971:7:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "971:10:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "965:16:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10557, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "957:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "957:25:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10564, + "nodeType": "ExpressionStatement", + "src": "957:25:41" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8244, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "4963:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8248, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8245, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "4971:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4971:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, + "id": 10571, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4963:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8249, - "indexExpression": { - "argumentTypes": null, - "id": 8247, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8237, - "src": "4983:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4963:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + "leftExpression": { "argumentTypes": null, - "id": 8257, - "name": "_addedValue", + "id": 10566, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8239, - "src": "5029:11:30", + "referencedDeclaration": 10547, + "src": "1000:5:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8250, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "4995:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8253, - "indexExpression": { + "arguments": [ + { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 8251, + "id": 10568, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5003:3:30", + "referencedDeclaration": 13441, + "src": "1024:3:41", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 8252, + "id": 10569, "isConstant": false, "isLValue": false, "isPure": false, @@ -16520,127 +8841,105 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5003:10:30", + "src": "1024:10:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4995:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" } - }, - "id": 8255, - "indexExpression": { - "argumentTypes": null, - "id": 8254, - "name": "_spender", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10567, + "name": "accountBalance", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8237, - "src": "5015:8:30", + "overloadedDeclarations": [ + 11007 + ], + "referencedDeclaration": 11007, + "src": "1009:14:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" } }, + "id": 10570, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4995:29:30", + "names": [], + "nodeType": "FunctionCall", + "src": "1009:26:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "4995:33:30", + "src": "1000:35:41", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 8258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4995:46:30", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10565, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "992:7:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "src": "4963:78:30", + "id": 10572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "992:44:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 8260, + "id": 10573, "nodeType": "ExpressionStatement", - "src": "4963:78:30" + "src": "992:44:41" }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8262, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5065:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5065:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8264, - "name": "_spender", + "id": 10576, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8237, - "src": "5077:8:30", + "referencedDeclaration": 10545, + "src": "1069:2:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16648,82 +8947,12 @@ }, { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8265, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "5087:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8268, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8266, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5095:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5095:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5087:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8270, - "indexExpression": { - "argumentTypes": null, - "id": 8269, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8237, - "src": "5107:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5087:29:30", + "id": 10577, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10547, + "src": "1073:5:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16732,10 +8961,6 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_address", "typeString": "address" @@ -16744,19 +8969,35 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 8261, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10210, - "src": "5056:8:30", + ], + "expression": { + "argumentTypes": null, + "id": 10574, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13493, + "src": "1054:5:41", + "typeDescriptions": { + "typeIdentifier": "t_super$_WToken_$11048", + "typeString": "contract super WToken" + } + }, + "id": 10575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 12529, + "src": "1054:14:41", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" } }, - "id": 8271, + "id": 10578, "isConstant": false, "isLValue": false, "isPure": false, @@ -16764,61 +9005,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5056:61:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8272, - "nodeType": "EmitStatement", - "src": "5051:66:30" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5135:4:30", - "subdenomination": null, + "src": "1054:25:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" - }, - "value": "true" + } }, - "functionReturnParameters": 8243, - "id": 8274, + "functionReturnParameters": 10551, + "id": 10579, "nodeType": "Return", - "src": "5128:11:30" + "src": "1047:32:41" } ] }, - "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.", - "id": 8276, + "documentation": null, + "id": 10581, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "increaseApproval", + "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 8240, + "id": 10548, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8237, - "name": "_spender", + "id": 10545, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 8276, - "src": "4895:16:30", + "scope": 10581, + "src": "860:10:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16826,10 +9044,10 @@ "typeString": "address" }, "typeName": { - "id": 8236, + "id": 10544, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4895:7:30", + "src": "860:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16840,11 +9058,11 @@ }, { "constant": false, - "id": 8239, - "name": "_addedValue", + "id": 10547, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 8276, - "src": "4913:16:30", + "scope": 10581, + "src": "872:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16852,10 +9070,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8238, - "name": "uint", + "id": 10546, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4913:4:30", + "src": "872:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16865,20 +9083,20 @@ "visibility": "internal" } ], - "src": "4894:36:30" + "src": "859:27:41" }, "payable": false, "returnParameters": { - "id": 8243, + "id": 10551, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8242, + "id": 10550, "name": "", "nodeType": "VariableDeclaration", - "scope": 8276, - "src": "4947:4:30", + "scope": 10581, + "src": "903:4:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16886,10 +9104,10 @@ "typeString": "bool" }, "typeName": { - "id": 8241, + "id": 10549, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4947:4:30", + "src": "903:4:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16899,138 +9117,92 @@ "visibility": "internal" } ], - "src": "4946:6:30" + "src": "902:6:41" }, - "scope": 8750, - "src": "4869:277:30", + "scope": 11048, + "src": "842:244:41", "stateMutability": "nonpayable", - "superFunction": 7844, + "superFunction": 12529, "visibility": "public" }, { "body": { - "id": 8335, + "id": 10614, "nodeType": "Block", - "src": "5710:354:30", + "src": "1198:165:41", "statements": [ { - "assignments": [ - 8286 - ], - "declarations": [ - { - "constant": false, - "id": 8286, - "name": "oldValue", - "nodeType": "VariableDeclaration", - "scope": 8336, - "src": "5720:13:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8285, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5720:4:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8293, - "initialValue": { + "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 8287, - "name": "allowed", + "id": 10595, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "5736:7:30", + "referencedDeclaration": 10583, + "src": "1217:2:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 8290, - "indexExpression": { + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8288, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5744:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5744:10:30", + "id": 10596, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10585, + "src": "1221:5:41", "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_address", "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5736:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8292, - "indexExpression": { - "argumentTypes": null, - "id": 8291, - "name": "_spender", + ], + "id": 10594, + "name": "transfer", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8278, - "src": "5756:8:30", + "overloadedDeclarations": [ + 10581 + ], + "referencedDeclaration": 10581, + "src": "1208:8:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" } }, + "id": 10597, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5736:29:30", + "names": [], + "nodeType": "FunctionCall", + "src": "1208:19:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5720:45:30" + "id": 10598, + "nodeType": "ExpressionStatement", + "src": "1208:19:41" }, { "condition": { @@ -17039,538 +9211,190 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8296, + "id": 10601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 8294, - "name": "_subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8280, - "src": "5779:16:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8295, - "name": "oldValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8286, - "src": "5799:8:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5779:28:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8319, - "nodeType": "Block", - "src": "5873:87:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8307, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "5887:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8311, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8308, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5895:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5895:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5887:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8312, - "indexExpression": { - "argumentTypes": null, - "id": 8310, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8278, - "src": "5907:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5887:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8315, - "name": "_subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8280, - "src": "5932:16:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8313, - "name": "oldValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8286, - "src": "5919:8:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "5919:12:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5919:30:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5887:62:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8318, - "nodeType": "ExpressionStatement", - "src": "5887:62:30" + "argumentTypes": null, + "id": 10599, + "name": "vestingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10587, + "src": "1242:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" } - ] + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 10600, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "1256:3:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1242:17:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, - "id": 8320, + "falseBody": null, + "id": 10611, "nodeType": "IfStatement", - "src": "5775:185:30", + "src": "1238:97:41", "trueBody": { - "id": 8306, + "id": 10610, "nodeType": "Block", - "src": "5809:58:30", + "src": "1261:74:41", "statements": [ { "expression": { "argumentTypes": null, - "id": 8304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "id": 8297, - "name": "allowed", + "id": 10603, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "5823:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8301, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8298, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5831:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5831:10:30", + "referencedDeclaration": 13441, + "src": "1289:3:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, + "id": 10604, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5823:19:30", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1289:10:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 8302, - "indexExpression": { + { "argumentTypes": null, - "id": 8300, - "name": "_spender", + "id": 10605, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8278, - "src": "5843:8:30", + "referencedDeclaration": 10583, + "src": "1301:2:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5823:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 8303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5855:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5823:33:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8305, - "nodeType": "ExpressionStatement", - "src": "5823:33:30" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8322, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "5983:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5983:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8324, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8278, - "src": "5995:8:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8325, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "6005:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8328, - "indexExpression": { - "argumentTypes": null, - "expression": { + { "argumentTypes": null, - "id": 8326, - "name": "msg", + "id": 10606, + "name": "vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6013:3:30", + "referencedDeclaration": 10587, + "src": "1305:11:41", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, - "id": 8327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6013:10:30", + { + "argumentTypes": null, + "id": 10607, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10585, + "src": "1318:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10602, + "name": "_addToVesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10784, + "src": "1275:13:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" } }, + "id": 10608, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6005:19:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8330, - "indexExpression": { - "argumentTypes": null, - "id": 8329, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8278, - "src": "6025:8:30", + "names": [], + "nodeType": "FunctionCall", + "src": "1275:49:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6005:29:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8321, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10210, - "src": "5974:8:30", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "id": 10609, + "nodeType": "ExpressionStatement", + "src": "1275:49:41" } - }, - "id": 8331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5974:61:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8332, - "nodeType": "EmitStatement", - "src": "5969:66:30" + ] + } }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 8333, + "id": 10612, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6053:4:30", + "src": "1352:4:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -17578,32 +9402,52 @@ }, "value": "true" }, - "functionReturnParameters": 8284, - "id": 8334, + "functionReturnParameters": 10593, + "id": 10613, "nodeType": "Return", - "src": "6046:11:30" + "src": "1345:11:41" } ] }, - "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.", - "id": 8336, + "documentation": null, + "id": 10615, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [], - "name": "decreaseApproval", + "modifiers": [ + { + "arguments": null, + "id": 10590, + "modifierName": { + "argumentTypes": null, + "id": 10589, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "1173:9:41", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1173:9:41" + } + ], + "name": "vestingTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 8281, + "id": 10588, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8278, - "name": "_spender", + "id": 10583, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 8336, - "src": "5647:16:30", + "scope": 10615, + "src": "1117:10:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17611,10 +9455,10 @@ "typeString": "address" }, "typeName": { - "id": 8277, + "id": 10582, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5647:7:30", + "src": "1117:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17625,11 +9469,11 @@ }, { "constant": false, - "id": 8280, - "name": "_subtractedValue", + "id": 10585, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 8336, - "src": "5665:21:30", + "scope": 10615, + "src": "1129:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17637,10 +9481,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8279, - "name": "uint", + "id": 10584, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5665:4:30", + "src": "1129:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17648,22 +9492,48 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 10587, + "name": "vestingTime", + "nodeType": "VariableDeclaration", + "scope": 10615, + "src": "1144:18:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 10586, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1144:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "5646:41:30" + "src": "1116:47:41" }, "payable": false, "returnParameters": { - "id": 8284, + "id": 10593, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8283, + "id": 10592, "name": "", "nodeType": "VariableDeclaration", - "scope": 8336, - "src": "5704:4:30", + "scope": 10615, + "src": "1192:4:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17671,10 +9541,10 @@ "typeString": "bool" }, "typeName": { - "id": 8282, + "id": 10591, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5704:4:30", + "src": "1192:4:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17684,20 +9554,74 @@ "visibility": "internal" } ], - "src": "5703:6:30" + "src": "1191:6:41" }, - "scope": 8750, - "src": "5621:443:30", + "scope": 11048, + "src": "1092:271:41", "stateMutability": "nonpayable", - "superFunction": 7853, - "visibility": "public" + "superFunction": 10421, + "visibility": "external" }, { "body": { - "id": 8411, + "id": 10653, "nodeType": "Block", - "src": "6180:422:30", + "src": "1454:175:41", "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10627, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10617, + "src": "1480:4:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10626, + "name": "_checkMyVesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10945, + "src": "1464:15:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1464:21:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10629, + "nodeType": "ExpressionStatement", + "src": "1464:21:41" + }, { "expression": { "argumentTypes": null, @@ -17705,95 +9629,86 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 8357, + "id": 10635, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { + "argumentTypes": null, + "id": 10631, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10619, + "src": "1504:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 8354, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8340, - "src": "6215:7:30", + "hexValue": "30", + "id": 10633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1518:1:41", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "expression": { - "argumentTypes": null, - "id": 8352, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "6198:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8353, + "id": 10632, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6198:16:30", + "nodeType": "ElementaryTypeNameExpression", + "src": "1510:7:41", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 8355, + "id": 10634, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6198:25:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 8356, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "6226:12:30", + "src": "1510:10:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "6198:40:30", + "src": "1504:16:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17807,21 +9722,21 @@ "typeString": "bool" } ], - "id": 8351, + "id": 10630, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "6190:7:30", + "referencedDeclaration": 13444, + "src": "1496:7:41", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8358, + "id": 10636, "isConstant": false, "isLValue": false, "isPure": false, @@ -17829,169 +9744,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6190:49:30", + "src": "1496:25:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8359, + "id": 10637, "nodeType": "ExpressionStatement", - "src": "6190:49:30" + "src": "1496:25:41" }, { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8360, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8342, - "src": "6254:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 8361, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "6269:3:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6254:18:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8373, - "nodeType": "IfStatement", - "src": "6250:102:30", - "trueBody": { - "id": 8372, - "nodeType": "Block", - "src": "6274:78:30", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8365, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6310:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8364, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6302:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8366, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6302:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10639, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10621, + "src": "1539:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "id": 8367, - "name": "_to", + "id": 10641, + "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "6314:3:30", + "referencedDeclaration": 10617, + "src": "1563:4:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 8368, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8342, - "src": "6319:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 8369, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8340, - "src": "6333:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } } ], "expression": { @@ -17999,32 +9806,22 @@ { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], - "id": 8363, - "name": "_addToVesting", + "id": 10640, + "name": "accountBalance", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8469, - "src": "6288:13:30", + "overloadedDeclarations": [ + 11007 + ], + "referencedDeclaration": 11007, + "src": "1548:14:41", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" } }, - "id": 8370, + "id": 10642, "isConstant": false, "isLValue": false, "isPure": false, @@ -18032,337 +9829,503 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6288:53:30", + "src": "1548:20:41", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 8371, - "nodeType": "ExpressionStatement", - "src": "6288:53:30" + "src": "1539:29:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } } - ] - } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10638, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "1531:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1531:38:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10645, + "nodeType": "ExpressionStatement", + "src": "1531:38:41" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10648, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10617, + "src": "1606:4:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10649, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10619, + "src": "1612:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10621, + "src": "1616:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10646, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13493, + "src": "1587:5:41", + "typeDescriptions": { + "typeIdentifier": "t_super$_WToken_$11048", + "typeString": "contract super WToken" + } + }, + "id": 10647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 12613, + "src": "1587:18:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 10651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1587:35:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10625, + "id": 10652, + "nodeType": "Return", + "src": "1580:42:41" + } + ] + }, + "documentation": null, + "id": 10654, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10617, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 10654, + "src": "1391:12:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10616, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1391:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10619, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 10654, + "src": "1405:10:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1405:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 10621, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 10654, + "src": "1417:13:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10620, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1417:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1390:41:41" + }, + "payable": false, + "returnParameters": { + "id": 10625, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10624, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10654, + "src": "1448:4:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10623, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1448:4:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1447:6:41" + }, + "scope": 11048, + "src": "1369:260:41", + "stateMutability": "nonpayable", + "superFunction": 12613, + "visibility": "public" + }, + { + "body": { + "id": 10668, + "nodeType": "Block", + "src": "1717:62:41", + "statements": [ { "expression": { "argumentTypes": null, - "id": 8383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 8374, - "name": "balances", + "id": 10664, + "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "6362:8:30", + "referencedDeclaration": 10656, + "src": "1752:7:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 8376, - "indexExpression": { + { "argumentTypes": null, - "id": 8375, - "name": "_to", + "id": 10665, + "name": "addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "6371:3:30", + "referencedDeclaration": 10658, + "src": "1761:10:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6362:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 8381, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8340, - "src": "6396:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8377, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "6378:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8379, - "indexExpression": { - "argumentTypes": null, - "id": 8378, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "6387:3:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6378:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 8380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6378:17:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 8382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6378:26:30", + ], + "id": 10663, + "name": "increaseAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12663, + "src": "1734:17:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" } }, - "src": "6362:42:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8384, - "nodeType": "ExpressionStatement", - "src": "6362:42:30" - }, - { - "expression": { - "argumentTypes": null, - "id": 8390, + "id": 10666, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8385, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "6414:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8388, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8340, - "src": "6446:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8386, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "6429:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6429:16:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6429:25:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6414:40:30", + "names": [], + "nodeType": "FunctionCall", + "src": "1734:38:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10662, + "id": 10667, + "nodeType": "Return", + "src": "1727:45:41" + } + ] + }, + "documentation": null, + "id": 10669, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "increaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10656, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 10669, + "src": "1661:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10655, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1661:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10658, + "name": "addedValue", + "nodeType": "VariableDeclaration", + "scope": 10669, + "src": "1678:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10657, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1678:4:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8391, - "nodeType": "ExpressionStatement", - "src": "6414:40:30" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "1660:34:41" + }, + "payable": false, + "returnParameters": { + "id": 10662, + "nodeType": "ParameterList", + "parameters": [ { - "eventCall": { + "constant": false, + "id": 10661, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10669, + "src": "1711:4:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10660, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1711:4:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1710:6:41" + }, + "scope": 11048, + "src": "1635:144:41", + "stateMutability": "nonpayable", + "superFunction": 10430, + "visibility": "public" + }, + { + "body": { + "id": 10683, + "nodeType": "Block", + "src": "1872:67:41", + "statements": [ + { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6486:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6478:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8395, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6478:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8396, - "name": "_to", + "id": 10679, + "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "6490:3:30", + "referencedDeclaration": 10671, + "src": "1907:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18370,12 +10333,12 @@ }, { "argumentTypes": null, - "id": 8397, - "name": "_amount", + "id": 10680, + "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8340, - "src": "6495:7:30", + "referencedDeclaration": 10673, + "src": "1916:15:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18384,10 +10347,6 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_address", "typeString": "address" @@ -18397,18 +10356,18 @@ "typeString": "uint256" } ], - "id": 8392, - "name": "Transfer", + "id": 10678, + "name": "decreaseAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10242, - "src": "6469:8:30", + "referencedDeclaration": 12713, + "src": "1889:17:41", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" } }, - "id": 8398, + "id": 10681, "isConstant": false, "isLValue": false, "isPure": false, @@ -18416,84 +10375,144 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6469:34:30", + "src": "1889:43:41", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 8399, - "nodeType": "EmitStatement", - "src": "6464:39:30" + "functionReturnParameters": 10677, + "id": 10682, + "nodeType": "Return", + "src": "1882:50:41" + } + ] + }, + "documentation": null, + "id": 10684, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decreaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10671, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 10684, + "src": "1811:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1811:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, { - "eventCall": { + "constant": false, + "id": 10673, + "name": "subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 10684, + "src": "1828:20:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10672, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1828:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1810:39:41" + }, + "payable": false, + "returnParameters": { + "id": 10677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10676, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10684, + "src": "1866:4:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10675, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1866:4:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1865:6:41" + }, + "scope": 11048, + "src": "1785:154:41", + "stateMutability": "nonpayable", + "superFunction": 10439, + "visibility": "public" + }, + { + "body": { + "id": 10718, + "nodeType": "Block", + "src": "2038:164:41", + "statements": [ + { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6542:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8401, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6534:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6534:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8404, - "name": "_to", + "id": 10698, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "6546:3:30", + "referencedDeclaration": 10686, + "src": "2054:2:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18501,37 +10520,20 @@ }, { "argumentTypes": null, - "id": 8405, - "name": "_amount", + "id": 10699, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8340, - "src": "6551:7:30", + "referencedDeclaration": 10688, + "src": "2058:6:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - { - "argumentTypes": null, - "id": 8406, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8342, - "src": "6560:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_address", "typeString": "address" @@ -18539,24 +10541,20 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" } ], - "id": 8400, - "name": "VestingTransfer", + "id": 10697, + "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7943, - "src": "6518:15:30", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" + "referencedDeclaration": 12807, + "src": "2048:5:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "id": 8407, + "id": 10700, "isConstant": false, "isLValue": false, "isPure": false, @@ -18564,28 +10562,234 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6518:55:30", + "src": "2048:17:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8408, - "nodeType": "EmitStatement", - "src": "6513:60:30" + "id": 10701, + "nodeType": "ExpressionStatement", + "src": "2048:17:41" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10702, + "name": "vestingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10690, + "src": "2080:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 10703, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13443, + "src": "2094:3:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2080:17:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10715, + "nodeType": "IfStatement", + "src": "2076:98:41", + "trueBody": { + "id": 10714, + "nodeType": "Block", + "src": "2099:75:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2135:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2127:7:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2127:10:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10709, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10686, + "src": "2139:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10710, + "name": "vestingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10690, + "src": "2143:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 10711, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10688, + "src": "2156:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10705, + "name": "_addToVesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10784, + "src": "2113:13:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 10712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2113:50:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10713, + "nodeType": "ExpressionStatement", + "src": "2113:50:41" + } + ] + } }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 8409, + "id": 10716, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6591:4:30", + "src": "2191:4:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -18593,82 +10797,52 @@ }, "value": "true" }, - "functionReturnParameters": 8350, - "id": 8410, + "functionReturnParameters": 10696, + "id": 10717, "nodeType": "Return", - "src": "6584:11:30" + "src": "2184:11:41" } ] }, "documentation": null, - "id": 8412, + "id": 10719, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8345, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "6153:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6153:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 8347, + "arguments": null, + "id": 10693, "modifierName": { "argumentTypes": null, - "id": 8344, - "name": "onlyTrusted", + "id": 10692, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8749, - "src": "6141:11:30", + "referencedDeclaration": 1297, + "src": "2013:9:41", "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6141:23:30" + "src": "2013:9:41" } ], "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 8343, + "id": 10691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8338, - "name": "_to", + "id": 10686, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 8412, - "src": "6084:11:30", + "scope": 10719, + "src": "1959:10:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18676,10 +10850,10 @@ "typeString": "address" }, "typeName": { - "id": 8337, + "id": 10685, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6084:7:30", + "src": "1959:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18690,11 +10864,11 @@ }, { "constant": false, - "id": 8340, - "name": "_amount", + "id": 10688, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 8412, - "src": "6097:12:30", + "scope": 10719, + "src": "1971:11:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18702,10 +10876,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8339, + "id": 10687, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6097:4:30", + "src": "1971:4:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18716,11 +10890,11 @@ }, { "constant": false, - "id": 8342, - "name": "_vestingTime", + "id": 10690, + "name": "vestingTime", "nodeType": "VariableDeclaration", - "scope": 8412, - "src": "6111:19:30", + "scope": 10719, + "src": "1984:18:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18728,10 +10902,10 @@ "typeString": "uint32" }, "typeName": { - "id": 8341, + "id": 10689, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6111:6:30", + "src": "1984:6:41", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18741,20 +10915,20 @@ "visibility": "internal" } ], - "src": "6083:48:30" + "src": "1958:45:41" }, "payable": false, "returnParameters": { - "id": 8350, + "id": 10696, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8349, + "id": 10695, "name": "", "nodeType": "VariableDeclaration", - "scope": 8412, - "src": "6174:4:30", + "scope": 10719, + "src": "2032:4:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18762,10 +10936,10 @@ "typeString": "bool" }, "typeName": { - "id": 8348, + "id": 10694, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6174:4:30", + "src": "2032:4:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18775,24 +10949,24 @@ "visibility": "internal" } ], - "src": "6173:6:30" + "src": "2031:6:41" }, - "scope": 8750, - "src": "6070:532:30", + "scope": 11048, + "src": "1945:257:41", "stateMutability": "nonpayable", - "superFunction": 7864, + "superFunction": 10450, "visibility": "external" }, { "body": { - "id": 8468, + "id": 10783, "nodeType": "Block", - "src": "6707:282:30", + "src": "2303:353:41", "statements": [ { "expression": { "argumentTypes": null, - "id": 8436, + "id": 10743, "isConstant": false, "isLValue": false, "isPure": false, @@ -18803,26 +10977,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8423, - "name": "vestingBalanceOf", + "id": 10730, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "6717:16:30", + "referencedDeclaration": 10513, + "src": "2313:17:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8426, + "id": 10733, "indexExpression": { "argumentTypes": null, - "id": 8424, - "name": "_to", + "id": 10731, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8416, - "src": "6734:3:30", + "referencedDeclaration": 10723, + "src": "2331:2:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18833,24 +11007,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6717:21:30", + "src": "2313:21:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 8427, + "id": 10734, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 8425, + "id": 10732, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6739:1:30", + "src": "2335:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18863,7 +11037,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6717:24:30", + "src": "2313:24:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18876,12 +11050,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8434, - "name": "_amount", + "id": 10741, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8420, - "src": "6773:7:30", + "referencedDeclaration": 10727, + "src": "2369:6:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18901,26 +11075,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8428, - "name": "vestingBalanceOf", + "id": 10735, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "6744:16:30", + "referencedDeclaration": 10513, + "src": "2340:17:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8430, + "id": 10737, "indexExpression": { "argumentTypes": null, - "id": 8429, - "name": "_to", + "id": 10736, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8416, - "src": "6761:3:30", + "referencedDeclaration": 10723, + "src": "2358:2:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18931,24 +11105,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6744:21:30", + "src": "2340:21:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 8432, + "id": 10739, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 8431, + "id": 10738, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6766:1:30", + "src": "2362:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18961,27 +11135,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6744:24:30", + "src": "2340:24:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8433, + "id": 10740, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6744:28:30", + "referencedDeclaration": 12367, + "src": "2340:28:41", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 8435, + "id": 10742, "isConstant": false, "isLValue": false, "isPure": false, @@ -18989,21 +11163,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6744:37:30", + "src": "2340:36:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6717:64:30", + "src": "2313:63:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8437, + "id": 10744, "nodeType": "ExpressionStatement", - "src": "6717:64:30" + "src": "2313:63:41" }, { "condition": { @@ -19012,7 +11186,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8444, + "id": 10751, "isConstant": false, "isLValue": false, "isPure": false, @@ -19023,26 +11197,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8438, - "name": "vestingBalanceOf", + "id": 10745, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "6795:16:30", + "referencedDeclaration": 10513, + "src": "2390:17:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8440, + "id": 10747, "indexExpression": { "argumentTypes": null, - "id": 8439, - "name": "_to", + "id": 10746, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8416, - "src": "6812:3:30", + "referencedDeclaration": 10723, + "src": "2408:2:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19053,21 +11227,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6795:21:30", + "src": "2390:21:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 8442, + "id": 10749, "indexExpression": { "argumentTypes": null, - "id": 8441, - "name": "_vestingTime", + "id": 10748, + "name": "vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8418, - "src": "6817:12:30", + "referencedDeclaration": 10725, + "src": "2412:11:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19078,7 +11252,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6795:35:30", + "src": "2390:34:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19089,14 +11263,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 8443, + "id": 10750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6834:1:30", + "src": "2428:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -19104,118 +11278,125 @@ }, "value": "0" }, - "src": "6795:40:30", + "src": "2390:39:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 8452, + "id": 10760, "nodeType": "IfStatement", - "src": "6792:93:30", + "src": "2387:104:41", "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8449, - "name": "_vestingTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8418, - "src": "6872:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + "id": 10759, + "nodeType": "Block", + "src": "2431:60:41", + "statements": [ + { "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8445, - "name": "vestingTimes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "6849:12:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" + "arguments": [ + { + "argumentTypes": null, + "id": 10756, + "name": "vestingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10725, + "src": "2468:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "id": 8447, - "indexExpression": { - "argumentTypes": null, - "id": 8446, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8416, - "src": "6862:3:30", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10752, + "name": "_vestingTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10518, + "src": "2445:13:41", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 10754, + "indexExpression": { + "argumentTypes": null, + "id": 10753, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10723, + "src": "2459:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2445:17:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 10755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2445:22:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) returns (uint256)" } }, + "id": 10757, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6849:17:30", + "names": [], + "nodeType": "FunctionCall", + "src": "2445:35:41", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 8448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6849:22:30", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 8450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6849:36:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 10758, + "nodeType": "ExpressionStatement", + "src": "2445:35:41" } - }, - "id": 8451, - "nodeType": "ExpressionStatement", - "src": "6849:36:30" + ] } }, { "expression": { "argumentTypes": null, - "id": 8466, + "id": 10774, "isConstant": false, "isLValue": false, "isPure": false, @@ -19226,26 +11407,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8453, - "name": "vestingBalanceOf", + "id": 10761, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "6896:16:30", + "referencedDeclaration": 10513, + "src": "2501:17:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8456, + "id": 10764, "indexExpression": { "argumentTypes": null, - "id": 8454, - "name": "_to", + "id": 10762, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8416, - "src": "6913:3:30", + "referencedDeclaration": 10723, + "src": "2519:2:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19256,21 +11437,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6896:21:30", + "src": "2501:21:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 8457, + "id": 10765, "indexExpression": { "argumentTypes": null, - "id": 8455, - "name": "_vestingTime", + "id": 10763, + "name": "vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8418, - "src": "6918:12:30", + "referencedDeclaration": 10725, + "src": "2523:11:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19281,7 +11462,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6896:35:30", + "src": "2501:34:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19294,12 +11475,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8464, - "name": "_amount", + "id": 10772, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8420, - "src": "6974:7:30", + "referencedDeclaration": 10727, + "src": "2577:6:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19319,26 +11500,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8458, - "name": "vestingBalanceOf", + "id": 10766, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "6934:16:30", + "referencedDeclaration": 10513, + "src": "2538:17:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8460, + "id": 10768, "indexExpression": { "argumentTypes": null, - "id": 8459, - "name": "_to", + "id": 10767, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8416, - "src": "6951:3:30", + "referencedDeclaration": 10723, + "src": "2556:2:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19349,21 +11530,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6934:21:30", + "src": "2538:21:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 8462, + "id": 10770, "indexExpression": { "argumentTypes": null, - "id": 8461, - "name": "_vestingTime", + "id": 10769, + "name": "vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8418, - "src": "6956:12:30", + "referencedDeclaration": 10725, + "src": "2560:11:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19374,27 +11555,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6934:35:30", + "src": "2538:34:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8463, + "id": 10771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 10047, - "src": "6934:39:30", + "referencedDeclaration": 12367, + "src": "2538:38:41", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 8465, + "id": 10773, "isConstant": false, "isLValue": false, "isPure": false, @@ -19402,26 +11583,131 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6934:48:30", + "src": "2538:46:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6896:86:30", + "src": "2501:83:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8467, + "id": 10775, "nodeType": "ExpressionStatement", - "src": "6896:86:30" + "src": "2501:83:41" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10777, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10721, + "src": "2619:4:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10778, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10723, + "src": "2625:2:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10779, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10727, + "src": "2629:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10780, + "name": "vestingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10725, + "src": "2637:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10776, + "name": "VestingTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10528, + "src": "2600:18:41", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 10781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2600:49:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10782, + "nodeType": "EmitStatement", + "src": "2595:54:41" } ] }, "documentation": null, - "id": 8469, + "id": 10784, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -19429,16 +11715,16 @@ "name": "_addToVesting", "nodeType": "FunctionDefinition", "parameters": { - "id": 8421, + "id": 10728, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8414, - "name": "_from", + "id": 10721, + "name": "from", "nodeType": "VariableDeclaration", - "scope": 8469, - "src": "6631:13:30", + "scope": 10784, + "src": "2231:12:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19446,10 +11732,10 @@ "typeString": "address" }, "typeName": { - "id": 8413, + "id": 10720, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6631:7:30", + "src": "2231:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19460,11 +11746,11 @@ }, { "constant": false, - "id": 8416, - "name": "_to", + "id": 10723, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 8469, - "src": "6646:11:30", + "scope": 10784, + "src": "2245:10:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19472,10 +11758,10 @@ "typeString": "address" }, "typeName": { - "id": 8415, + "id": 10722, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6646:7:30", + "src": "2245:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19486,11 +11772,11 @@ }, { "constant": false, - "id": 8418, - "name": "_vestingTime", + "id": 10725, + "name": "vestingTime", "nodeType": "VariableDeclaration", - "scope": 8469, - "src": "6659:20:30", + "scope": 10784, + "src": "2257:19:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19498,10 +11784,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8417, + "id": 10724, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6659:7:30", + "src": "2257:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19512,11 +11798,11 @@ }, { "constant": false, - "id": 8420, - "name": "_amount", + "id": 10727, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 8469, - "src": "6681:15:30", + "scope": 10784, + "src": "2278:14:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19524,10 +11810,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8419, + "id": 10726, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6681:7:30", + "src": "2278:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19537,26 +11823,26 @@ "visibility": "internal" } ], - "src": "6630:67:30" + "src": "2230:63:41" }, "payable": false, "returnParameters": { - "id": 8422, + "id": 10729, "nodeType": "ParameterList", "parameters": [], - "src": "6707:0:30" + "src": "2303:0:41" }, - "scope": 8750, - "src": "6608:381:30", + "scope": 11048, + "src": "2208:448:41", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 8480, + "id": 10795, "nodeType": "Block", - "src": "7153:42:30", + "src": "2698:41:41", "statements": [ { "expression": { @@ -19566,18 +11852,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 8475, + "id": 10790, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7169:3:30", + "referencedDeclaration": 13441, + "src": "2714:3:41", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 8476, + "id": 10791, "isConstant": false, "isLValue": false, "isPure": false, @@ -19585,7 +11871,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7169:10:30", + "src": "2714:10:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19593,12 +11879,12 @@ }, { "argumentTypes": null, - "id": 8477, - "name": "_value", + "id": 10792, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8471, - "src": "7181:6:30", + "referencedDeclaration": 10786, + "src": "2726:5:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19616,18 +11902,20 @@ "typeString": "uint256" } ], - "id": 8474, + "id": 10789, "name": "_burn", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8573, - "src": "7163:5:30", + "overloadedDeclarations": [ + 10863 + ], + "referencedDeclaration": 10863, + "src": "2708:5:41", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 8478, + "id": 10793, "isConstant": false, "isLValue": false, "isPure": false, @@ -19635,20 +11923,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7163:25:30", + "src": "2708:24:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8479, + "id": 10794, "nodeType": "ExpressionStatement", - "src": "7163:25:30" + "src": "2708:24:41" } ] }, - "documentation": "@dev Burns a specific amount of tokens.\n@param _value The amount of token to be burned.", - "id": 8481, + "documentation": null, + "id": 10796, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -19656,16 +11944,177 @@ "name": "burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 8472, + "id": 10787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10786, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 10796, + "src": "2676:13:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2676:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2675:15:41" + }, + "payable": false, + "returnParameters": { + "id": 10788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2698:0:41" + }, + "scope": 11048, + "src": "2662:77:41", + "stateMutability": "nonpayable", + "superFunction": 10455, + "visibility": "public" + }, + { + "body": { + "id": 10808, + "nodeType": "Block", + "src": "2799:39:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10804, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10798, + "src": "2819:4:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10805, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10800, + "src": "2825:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10803, + "name": "_burnFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10836 + ], + "referencedDeclaration": 10836, + "src": "2809:9:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2809:22:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10807, + "nodeType": "ExpressionStatement", + "src": "2809:22:41" + } + ] + }, + "documentation": null, + "id": 10809, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burnFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10801, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8471, - "name": "_value", + "id": 10798, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 10809, + "src": "2763:12:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10797, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2763:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10800, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 8481, - "src": "7130:14:30", + "scope": 10809, + "src": "2777:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19673,10 +12122,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8470, + "id": 10799, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7130:7:30", + "src": "2777:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19686,26 +12135,26 @@ "visibility": "internal" } ], - "src": "7129:16:30" + "src": "2762:29:41" }, "payable": false, "returnParameters": { - "id": 8473, + "id": 10802, "nodeType": "ParameterList", "parameters": [], - "src": "7153:0:30" + "src": "2799:0:41" }, - "scope": 8750, - "src": "7116:79:30", + "scope": 11048, + "src": "2745:93:41", "stateMutability": "nonpayable", - "superFunction": 7869, + "superFunction": 10462, "visibility": "public" }, { "body": { - "id": 8521, + "id": 10835, "nodeType": "Block", - "src": "7505:336:30", + "src": "2904:135:41", "statements": [ { "expression": { @@ -19713,142 +12162,37 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8489, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8485, - "src": "7523:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8490, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "7533:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8492, - "indexExpression": { - "argumentTypes": null, - "id": 8491, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8483, - "src": "7541:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7533:14:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8495, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8493, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7548:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7548:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7533:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7523:36:30", + "id": 10817, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10811, + "src": "2930:7:41", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 8488, - "name": "require", + "id": 10816, + "name": "_checkMyVesting", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7515:7:30", + "overloadedDeclarations": [], + "referencedDeclaration": 10945, + "src": "2914:15:41", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 8497, + "id": 10818, "isConstant": false, "isLValue": false, "isPure": false, @@ -19856,253 +12200,142 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7515:45:30", + "src": "2914:24:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8498, + "id": 10819, "nodeType": "ExpressionStatement", - "src": "7515:45:30" + "src": "2914:24:41" }, { "expression": { "argumentTypes": null, - "id": 8514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8499, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "7737:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8503, - "indexExpression": { - "argumentTypes": null, - "id": 8500, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8483, - "src": "7745:5:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7737:14:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8504, - "indexExpression": { + "arguments": [ + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7752:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 8502, + "id": 10825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7752:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7737:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + "leftExpression": { "argumentTypes": null, - "id": 8512, - "name": "_value", + "id": 10821, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8485, - "src": "7797:6:30", + "referencedDeclaration": 10813, + "src": "2957:5:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8505, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7912, - "src": "7766:7:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 8507, - "indexExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 8506, - "name": "_from", + "id": 10823, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8483, - "src": "7774:5:30", + "referencedDeclaration": 10811, + "src": "2981:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7766:14:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" } - }, - "id": 8510, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8508, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "7781:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 8509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7781:10:30", + ], + "id": 10822, + "name": "accountBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 11007 + ], + "referencedDeclaration": 11007, + "src": "2966:14:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" } }, + "id": 10824, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7766:26:30", + "names": [], + "nodeType": "FunctionCall", + "src": "2966:23:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "7766:30:30", + "src": "2957:32:41", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 8513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7766:38:30", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10820, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "2949:7:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "src": "7737:67:30", + "id": 10826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2949:41:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 8515, + "id": 10827, "nodeType": "ExpressionStatement", - "src": "7737:67:30" + "src": "2949:41:41" }, { "expression": { @@ -20110,12 +12343,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8517, - "name": "_from", + "id": 10831, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8483, - "src": "7820:5:30", + "referencedDeclaration": 10811, + "src": "3017:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20123,12 +12356,12 @@ }, { "argumentTypes": null, - "id": 8518, - "name": "_value", + "id": 10832, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8485, - "src": "7827:6:30", + "referencedDeclaration": 10813, + "src": "3026:5:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20146,18 +12379,34 @@ "typeString": "uint256" } ], - "id": 8516, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8573, - "src": "7814:5:30", + "expression": { + "argumentTypes": null, + "id": 10828, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13493, + "src": "3001:5:41", + "typeDescriptions": { + "typeIdentifier": "t_super$_WToken_$11048", + "typeString": "contract super WToken" + } + }, + "id": 10830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burnFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 12896, + "src": "3001:15:41", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 8519, + "id": 10833, "isConstant": false, "isLValue": false, "isPure": false, @@ -20165,37 +12414,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7814:20:30", + "src": "3001:31:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8520, + "id": 10834, "nodeType": "ExpressionStatement", - "src": "7814:20:30" + "src": "3001:31:41" } ] }, - "documentation": "@dev Burns a specific amount of tokens from the target address and decrements allowance\n@param _from address The address which you want to send tokens from\n@param _value uint256 The amount of token to be burned", - "id": 8522, + "documentation": null, + "id": 10836, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "burnFrom", + "name": "_burnFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 8486, + "id": 10814, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8483, - "name": "_from", + "id": 10811, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 8522, - "src": "7467:13:30", + "scope": 10836, + "src": "2863:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20203,10 +12452,10 @@ "typeString": "address" }, "typeName": { - "id": 8482, + "id": 10810, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7467:7:30", + "src": "2863:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20217,11 +12466,11 @@ }, { "constant": false, - "id": 8485, - "name": "_value", + "id": 10813, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 8522, - "src": "7482:14:30", + "scope": 10836, + "src": "2880:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20229,10 +12478,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8484, + "id": 10812, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7482:7:30", + "src": "2880:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20242,26 +12491,26 @@ "visibility": "internal" } ], - "src": "7466:31:30" + "src": "2862:32:41" }, "payable": false, "returnParameters": { - "id": 8487, + "id": 10815, "nodeType": "ParameterList", "parameters": [], - "src": "7505:0:30" + "src": "2904:0:41" }, - "scope": 8750, - "src": "7449:392:30", + "scope": 11048, + "src": "2844:195:41", "stateMutability": "nonpayable", - "superFunction": 7876, - "visibility": "public" + "superFunction": 12896, + "visibility": "internal" }, { "body": { - "id": 8572, + "id": 10862, "nodeType": "Block", - "src": "7901:452:30", + "src": "3101:131:41", "statements": [ { "expression": { @@ -20269,12 +12518,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8530, - "name": "_who", + "id": 10844, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "7927:4:30", + "referencedDeclaration": 10838, + "src": "3127:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20288,18 +12537,18 @@ "typeString": "address" } ], - "id": 8529, + "id": 10843, "name": "_checkMyVesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8647, - "src": "7911:15:30", + "referencedDeclaration": 10945, + "src": "3111:15:41", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 8531, + "id": 10845, "isConstant": false, "isLValue": false, "isPure": false, @@ -20307,15 +12556,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7911:21:30", + "src": "3111:24:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8532, + "id": 10846, "nodeType": "ExpressionStatement", - "src": "7911:21:30" + "src": "3111:24:41" }, { "expression": { @@ -20327,19 +12576,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8538, + "id": 10852, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8534, - "name": "_value", + "id": 10848, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "7951:6:30", + "referencedDeclaration": 10840, + "src": "3154:5:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20352,12 +12601,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8536, - "name": "_who", + "id": 10850, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "7976:4:30", + "referencedDeclaration": 10838, + "src": "3178:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20371,383 +12620,62 @@ "typeString": "address" } ], - "id": 8535, + "id": 10849, "name": "accountBalance", "nodeType": "Identifier", "overloadedDeclarations": [ - 8709 + 11007 ], - "referencedDeclaration": 8709, - "src": "7961:14:30", + "referencedDeclaration": 11007, + "src": "3163:14:41", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 8537, + "id": 10851, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7961:20:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7951:30:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8533, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "7943:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 8539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7943:39:30", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8540, - "nodeType": "ExpressionStatement", - "src": "7943:39:30" - }, - { - "expression": { - "argumentTypes": null, - "id": 8550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8541, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "8172:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8543, - "indexExpression": { - "argumentTypes": null, - "id": 8542, - "name": "_who", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "8181:4:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8172:14:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8548, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "8208:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8544, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "8189:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 8546, - "indexExpression": { - "argumentTypes": null, - "id": 8545, - "name": "_who", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "8198:4:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8189:14:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8189:18:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8189:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8172:43:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8551, - "nodeType": "ExpressionStatement", - "src": "8172:43:30" - }, - { - "expression": { - "argumentTypes": null, - "id": 8557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8552, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "8225:12:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8555, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "8257:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8553, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7918, - "src": "8240:12:30", + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3163:23:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8240:16:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8240:24:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8225:39:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8558, - "nodeType": "ExpressionStatement", - "src": "8225:39:30" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8560, - "name": "_who", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "8284:4:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8561, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "8290:6:30", + "src": "3154:32:41", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "id": 8559, - "name": "Burn", + "id": 10847, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7949, - "src": "8279:4:30", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3146:7:41", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 8562, + "id": 10853, "isConstant": false, "isLValue": false, "isPure": false, @@ -20755,84 +12683,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8279:18:30", + "src": "3146:41:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8563, - "nodeType": "EmitStatement", - "src": "8274:23:30" + "id": 10854, + "nodeType": "ExpressionStatement", + "src": "3146:41:41" }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 8565, - "name": "_who", + "id": 10858, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "8321:4:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8567, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8335:1:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8327:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8327:10:30", + "referencedDeclaration": 10838, + "src": "3210:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20840,12 +12712,12 @@ }, { "argumentTypes": null, - "id": 8569, - "name": "_value", + "id": 10859, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "8339:6:30", + "referencedDeclaration": 10840, + "src": "3219:5:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20854,10 +12726,6 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_address", "typeString": "address" @@ -20867,18 +12735,34 @@ "typeString": "uint256" } ], - "id": 8564, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10242, - "src": "8312:8:30", + "expression": { + "argumentTypes": null, + "id": 10855, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13493, + "src": "3198:5:41", + "typeDescriptions": { + "typeIdentifier": "t_super$_WToken_$11048", + "typeString": "contract super WToken" + } + }, + "id": 10857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 12855, + "src": "3198:11:41", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "id": 8570, + "id": 10860, "isConstant": false, "isLValue": false, "isPure": false, @@ -20886,20 +12770,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8312:34:30", + "src": "3198:27:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8571, - "nodeType": "EmitStatement", - "src": "8307:39:30" + "id": 10861, + "nodeType": "ExpressionStatement", + "src": "3198:27:41" } ] }, "documentation": null, - "id": 8573, + "id": 10863, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -20907,16 +12791,16 @@ "name": "_burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 8527, + "id": 10841, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8524, - "name": "_who", + "id": 10838, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 8573, - "src": "7862:12:30", + "scope": 10863, + "src": "3060:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20924,10 +12808,10 @@ "typeString": "address" }, "typeName": { - "id": 8523, + "id": 10837, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7862:7:30", + "src": "3060:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20938,11 +12822,11 @@ }, { "constant": false, - "id": 8526, - "name": "_value", + "id": 10840, + "name": "value", "nodeType": "VariableDeclaration", - "scope": 8573, - "src": "7876:14:30", + "scope": 10863, + "src": "3077:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20950,10 +12834,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8525, + "id": 10839, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7876:7:30", + "src": "3077:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20963,27 +12847,159 @@ "visibility": "internal" } ], - "src": "7861:30:30" + "src": "3059:32:41" }, "payable": false, "returnParameters": { - "id": 8528, + "id": 10842, "nodeType": "ParameterList", "parameters": [], - "src": "7901:0:30" + "src": "3101:0:41" }, - "scope": 8750, - "src": "7847:506:30", + "scope": 11048, + "src": "3045:187:41", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 12855, "visibility": "internal" }, { "body": { - "id": 8646, + "id": 10944, "nodeType": "Block", - "src": "8408:416:30", + "src": "3289:484:41", "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10869, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10865, + "src": "3307:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3326:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3318:7:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3318:10:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3307:21:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10868, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13444, + 13445 + ], + "referencedDeclaration": 13444, + "src": "3299:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3299:30:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10875, + "nodeType": "ExpressionStatement", + "src": "3299:30:41" + }, { "condition": { "argumentTypes": null, @@ -20991,7 +13007,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8584, + "id": 10882, "isConstant": false, "isLValue": false, "isPure": false, @@ -21002,26 +13018,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8578, - "name": "vestingBalanceOf", + "id": 10876, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "8422:16:30", + "referencedDeclaration": 10513, + "src": "3344:17:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8580, + "id": 10878, "indexExpression": { "argumentTypes": null, - "id": 8579, - "name": "_from", + "id": 10877, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8439:5:30", + "referencedDeclaration": 10865, + "src": "3362:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21032,24 +13048,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8422:23:30", + "src": "3344:26:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 8582, + "id": 10880, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 8581, + "id": 10879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8446:1:30", + "src": "3371:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21062,7 +13078,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8422:26:30", + "src": "3344:29:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21073,14 +13089,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 8583, + "id": 10881, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8452:1:30", + "src": "3377:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21088,29 +13104,29 @@ }, "value": "0" }, - "src": "8422:31:30", + "src": "3344:34:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 8586, + "id": 10884, "nodeType": "IfStatement", - "src": "8418:44:30", + "src": "3340:47:41", "trueBody": { "expression": null, - "functionReturnParameters": 8577, - "id": 8585, + "functionReturnParameters": 10867, + "id": 10883, "nodeType": "Return", - "src": "8455:7:30" + "src": "3380:7:41" } }, { "body": { - "id": 8644, + "id": 10942, "nodeType": "Block", - "src": "8529:289:30", + "src": "3457:310:41", "statements": [ { "condition": { @@ -21119,7 +13135,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8606, + "id": 10904, "isConstant": false, "isLValue": false, "isPure": false, @@ -21130,26 +13146,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8600, - "name": "vestingTimes", + "id": 10898, + "name": "_vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "8547:12:30", + "referencedDeclaration": 10518, + "src": "3475:13:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 8602, + "id": 10900, "indexExpression": { "argumentTypes": null, - "id": 8601, - "name": "_from", + "id": 10899, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8560:5:30", + "referencedDeclaration": 10865, + "src": "3489:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21160,21 +13176,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8547:19:30", + "src": "3475:22:41", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 8604, + "id": 10902, "indexExpression": { "argumentTypes": null, - "id": 8603, + "id": 10901, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8588, - "src": "8567:1:30", + "referencedDeclaration": 10886, + "src": "3498:1:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21185,7 +13201,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8547:22:30", + "src": "3475:25:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21195,36 +13211,36 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 8605, + "id": 10903, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "8572:3:30", + "referencedDeclaration": 13443, + "src": "3503:3:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8547:28:30", + "src": "3475:31:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 8643, + "id": 10941, "nodeType": "IfStatement", - "src": "8543:265:30", + "src": "3471:286:41", "trueBody": { - "id": 8642, + "id": 10940, "nodeType": "Block", - "src": "8577:231:30", + "src": "3508:249:41", "statements": [ { "expression": { "argumentTypes": null, - "id": 8628, + "id": 10926, "isConstant": false, "isLValue": false, "isPure": false, @@ -21235,26 +13251,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8607, - "name": "vestingBalanceOf", + "id": 10905, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "8595:16:30", + "referencedDeclaration": 10513, + "src": "3526:17:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8610, + "id": 10908, "indexExpression": { "argumentTypes": null, - "id": 8608, - "name": "_from", + "id": 10906, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8612:5:30", + "referencedDeclaration": 10865, + "src": "3544:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21265,24 +13281,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8595:23:30", + "src": "3526:26:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 8611, + "id": 10909, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 8609, + "id": 10907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8619:1:30", + "src": "3553:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21295,7 +13311,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8595:26:30", + "src": "3526:29:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21312,26 +13328,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8618, - "name": "vestingBalanceOf", + "id": 10916, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "8676:16:30", + "referencedDeclaration": 10513, + "src": "3613:17:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8620, + "id": 10918, "indexExpression": { "argumentTypes": null, - "id": 8619, - "name": "_from", + "id": 10917, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8693:5:30", + "referencedDeclaration": 10865, + "src": "3631:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21342,39 +13358,39 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8676:23:30", + "src": "3613:26:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 8626, + "id": 10924, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8621, - "name": "vestingTimes", + "id": 10919, + "name": "_vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "8700:12:30", + "referencedDeclaration": 10518, + "src": "3640:13:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 8623, + "id": 10921, "indexExpression": { "argumentTypes": null, - "id": 8622, - "name": "_from", + "id": 10920, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8713:5:30", + "referencedDeclaration": 10865, + "src": "3654:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21385,21 +13401,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8700:19:30", + "src": "3640:22:41", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 8625, + "id": 10923, "indexExpression": { "argumentTypes": null, - "id": 8624, + "id": 10922, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8588, - "src": "8720:1:30", + "referencedDeclaration": 10886, + "src": "3663:1:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21410,7 +13426,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8700:22:30", + "src": "3640:25:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21421,7 +13437,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8676:47:30", + "src": "3613:53:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21441,26 +13457,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8612, - "name": "vestingBalanceOf", + "id": 10910, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "8624:16:30", + "referencedDeclaration": 10513, + "src": "3558:17:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8614, + "id": 10912, "indexExpression": { "argumentTypes": null, - "id": 8613, - "name": "_from", + "id": 10911, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8641:5:30", + "referencedDeclaration": 10865, + "src": "3576:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21471,24 +13487,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8624:23:30", + "src": "3558:26:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 8616, + "id": 10914, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 8615, + "id": 10913, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8648:1:30", + "src": "3585:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21501,27 +13517,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8624:26:30", + "src": "3558:29:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8617, + "id": 10915, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "8624:51:30", + "referencedDeclaration": 12343, + "src": "3558:54:41", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 8627, + "id": 10925, "isConstant": false, "isLValue": false, "isPure": false, @@ -21529,26 +13545,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8624:100:30", + "src": "3558:109:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8595:129:30", + "src": "3526:141:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8629, + "id": 10927, "nodeType": "ExpressionStatement", - "src": "8595:129:30" + "src": "3526:141:41" }, { "expression": { "argumentTypes": null, - "id": 8640, + "id": 10938, "isConstant": false, "isLValue": false, "isPure": false, @@ -21559,26 +13575,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8630, - "name": "vestingBalanceOf", + "id": 10928, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "8742:16:30", + "referencedDeclaration": 10513, + "src": "3685:17:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8637, + "id": 10935, "indexExpression": { "argumentTypes": null, - "id": 8631, - "name": "_from", + "id": 10929, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8759:5:30", + "referencedDeclaration": 10865, + "src": "3703:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21589,39 +13605,39 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8742:23:30", + "src": "3685:26:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 8638, + "id": 10936, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8632, - "name": "vestingTimes", + "id": 10930, + "name": "_vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "8766:12:30", + "referencedDeclaration": 10518, + "src": "3712:13:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 8634, + "id": 10932, "indexExpression": { "argumentTypes": null, - "id": 8633, - "name": "_from", + "id": 10931, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8779:5:30", + "referencedDeclaration": 10865, + "src": "3726:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21632,21 +13648,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8766:19:30", + "src": "3712:22:41", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 8636, + "id": 10934, "indexExpression": { "argumentTypes": null, - "id": 8635, + "id": 10933, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8588, - "src": "8786:1:30", + "referencedDeclaration": 10886, + "src": "3735:1:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21657,7 +13673,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8766:22:30", + "src": "3712:25:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21668,7 +13684,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8742:47:30", + "src": "3685:53:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21679,14 +13695,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 8639, + "id": 10937, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8792:1:30", + "src": "3741:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21694,15 +13710,15 @@ }, "value": "0" }, - "src": "8742:51:30", + "src": "3685:57:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8641, + "id": 10939, "nodeType": "ExpressionStatement", - "src": "8742:51:30" + "src": "3685:57:41" } ] } @@ -21715,19 +13731,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8596, + "id": 10894, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8591, + "id": 10889, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8588, - "src": "8492:1:30", + "referencedDeclaration": 10886, + "src": "3417:1:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21741,26 +13757,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8592, - "name": "vestingTimes", + "id": 10890, + "name": "_vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "8496:12:30", + "referencedDeclaration": 10518, + "src": "3421:13:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 8594, + "id": 10892, "indexExpression": { "argumentTypes": null, - "id": 8593, - "name": "_from", + "id": 10891, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8575, - "src": "8509:5:30", + "referencedDeclaration": 10865, + "src": "3435:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21771,13 +13787,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8496:19:30", + "src": "3421:22:41", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 8595, + "id": 10893, "isConstant": false, "isLValue": true, "isPure": false, @@ -21785,31 +13801,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8496:26:30", + "src": "3421:29:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8492:30:30", + "src": "3417:33:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 8645, + "id": 10943, "initializationExpression": { "assignments": [ - 8588 + 10886 ], "declarations": [ { "constant": false, - "id": 8588, + "id": 10886, "name": "k", "nodeType": "VariableDeclaration", - "scope": 8647, - "src": "8477:9:30", + "scope": 10945, + "src": "3402:9:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21817,10 +13833,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8587, + "id": 10885, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8477:7:30", + "src": "3402:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21830,18 +13846,18 @@ "visibility": "internal" } ], - "id": 8590, + "id": 10888, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 8589, + "id": 10887, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8489:1:30", + "src": "3414:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21850,12 +13866,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "8477:13:30" + "src": "3402:13:41" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 8598, + "id": 10896, "isConstant": false, "isLValue": false, "isPure": false, @@ -21863,15 +13879,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "8524:3:30", + "src": "3452:3:41", "subExpression": { "argumentTypes": null, - "id": 8597, + "id": 10895, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8588, - "src": "8524:1:30", + "referencedDeclaration": 10886, + "src": "3452:1:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21882,17 +13898,17 @@ "typeString": "uint256" } }, - "id": 8599, + "id": 10897, "nodeType": "ExpressionStatement", - "src": "8524:3:30" + "src": "3452:3:41" }, "nodeType": "ForStatement", - "src": "8472:346:30" + "src": "3397:370:41" } ] }, "documentation": null, - "id": 8647, + "id": 10945, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -21900,16 +13916,16 @@ "name": "_checkMyVesting", "nodeType": "FunctionDefinition", "parameters": { - "id": 8576, + "id": 10866, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8575, - "name": "_from", + "id": 10865, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 8647, - "src": "8384:13:30", + "scope": 10945, + "src": "3263:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21917,10 +13933,10 @@ "typeString": "address" }, "typeName": { - "id": 8574, + "id": 10864, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8384:7:30", + "src": "3263:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21930,43 +13946,43 @@ "visibility": "internal" } ], - "src": "8383:15:30" + "src": "3262:17:41" }, "payable": false, "returnParameters": { - "id": 8577, + "id": 10867, "nodeType": "ParameterList", "parameters": [], - "src": "8408:0:30" + "src": "3289:0:41" }, - "scope": 8750, - "src": "8359:465:30", + "scope": 11048, + "src": "3238:535:41", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 8708, + "id": 11006, "nodeType": "Block", - "src": "8910:343:30", + "src": "3858:343:41", "statements": [ { "expression": { "argumentTypes": null, - "id": 8658, + "id": 10956, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 8654, + "id": 10952, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8652, - "src": "8920:7:30", + "referencedDeclaration": 10950, + "src": "3868:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21976,53 +13992,62 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8655, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7916, - "src": "8930:8:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "arguments": [ + { + "argumentTypes": null, + "id": 10954, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10947, + "src": "3888:7:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "id": 8657, - "indexExpression": { - "argumentTypes": null, - "id": 8656, - "name": "_address", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10953, + "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8649, - "src": "8939:8:30", + "referencedDeclaration": 12494, + "src": "3878:9:41", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" } }, + "id": 10955, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8930:18:30", + "names": [], + "nodeType": "FunctionCall", + "src": "3878:18:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8920:28:30", + "src": "3868:28:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8659, + "id": 10957, "nodeType": "ExpressionStatement", - "src": "8920:28:30" + "src": "3868:28:41" }, { "condition": { @@ -22031,7 +14056,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8666, + "id": 10964, "isConstant": false, "isLValue": false, "isPure": false, @@ -22042,26 +14067,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8660, - "name": "vestingBalanceOf", + "id": 10958, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "8963:16:30", + "referencedDeclaration": 10513, + "src": "3911:17:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8662, + "id": 10960, "indexExpression": { "argumentTypes": null, - "id": 8661, - "name": "_address", + "id": 10959, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8649, - "src": "8980:8:30", + "referencedDeclaration": 10947, + "src": "3929:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22072,24 +14097,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8963:26:30", + "src": "3911:26:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 8664, + "id": 10962, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 8663, + "id": 10961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8990:1:30", + "src": "3938:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -22102,7 +14127,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8963:29:30", + "src": "3911:29:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22113,14 +14138,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 8665, + "id": 10963, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8996:1:30", + "src": "3944:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -22128,29 +14153,29 @@ }, "value": "0" }, - "src": "8963:34:30", + "src": "3911:34:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 8668, + "id": 10966, "nodeType": "IfStatement", - "src": "8959:47:30", + "src": "3907:47:41", "trueBody": { "expression": null, - "functionReturnParameters": 8653, - "id": 8667, + "functionReturnParameters": 10951, + "id": 10965, "nodeType": "Return", - "src": "8999:7:30" + "src": "3947:7:41" } }, { "body": { - "id": 8706, + "id": 11004, "nodeType": "Block", - "src": "9076:171:30", + "src": "4024:171:41", "statements": [ { "condition": { @@ -22159,7 +14184,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8688, + "id": 10986, "isConstant": false, "isLValue": false, "isPure": false, @@ -22170,26 +14195,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8682, - "name": "vestingTimes", + "id": 10980, + "name": "_vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "9094:12:30", + "referencedDeclaration": 10518, + "src": "4042:13:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 8684, + "id": 10982, "indexExpression": { "argumentTypes": null, - "id": 8683, - "name": "_address", + "id": 10981, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8649, - "src": "9107:8:30", + "referencedDeclaration": 10947, + "src": "4056:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22200,21 +14225,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9094:22:30", + "src": "4042:22:41", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 8686, + "id": 10984, "indexExpression": { "argumentTypes": null, - "id": 8685, + "id": 10983, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8670, - "src": "9117:1:30", + "referencedDeclaration": 10968, + "src": "4065:1:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22225,7 +14250,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9094:25:30", + "src": "4042:25:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22235,48 +14260,48 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 8687, + "id": 10985, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "9123:3:30", + "referencedDeclaration": 13443, + "src": "4071:3:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9094:32:30", + "src": "4042:32:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 8705, + "id": 11003, "nodeType": "IfStatement", - "src": "9090:147:30", + "src": "4038:147:41", "trueBody": { - "id": 8704, + "id": 11002, "nodeType": "Block", - "src": "9128:109:30", + "src": "4076:109:41", "statements": [ { "expression": { "argumentTypes": null, - "id": 8702, + "id": 11000, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 8689, + "id": 10987, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8652, - "src": "9146:7:30", + "referencedDeclaration": 10950, + "src": "4094:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22293,26 +14318,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8692, - "name": "vestingBalanceOf", + "id": 10990, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7924, - "src": "9168:16:30", + "referencedDeclaration": 10513, + "src": "4116:17:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8694, + "id": 10992, "indexExpression": { "argumentTypes": null, - "id": 8693, - "name": "_address", + "id": 10991, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8649, - "src": "9185:8:30", + "referencedDeclaration": 10947, + "src": "4134:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22323,39 +14348,39 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9168:26:30", + "src": "4116:26:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 8700, + "id": 10998, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8695, - "name": "vestingTimes", + "id": 10993, + "name": "_vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "9195:12:30", + "referencedDeclaration": 10518, + "src": "4143:13:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 8697, + "id": 10995, "indexExpression": { "argumentTypes": null, - "id": 8696, - "name": "_address", + "id": 10994, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8649, - "src": "9208:8:30", + "referencedDeclaration": 10947, + "src": "4157:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22366,21 +14391,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9195:22:30", + "src": "4143:22:41", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 8699, + "id": 10997, "indexExpression": { "argumentTypes": null, - "id": 8698, + "id": 10996, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8670, - "src": "9218:1:30", + "referencedDeclaration": 10968, + "src": "4166:1:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22391,7 +14416,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9195:25:30", + "src": "4143:25:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22402,7 +14427,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9168:53:30", + "src": "4116:53:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22418,32 +14443,32 @@ ], "expression": { "argumentTypes": null, - "id": 8690, + "id": 10988, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8652, - "src": "9156:7:30", + "referencedDeclaration": 10950, + "src": "4104:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8691, + "id": 10989, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 10023, - "src": "9156:11:30", + "referencedDeclaration": 12343, + "src": "4104:11:41", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 8701, + "id": 10999, "isConstant": false, "isLValue": false, "isPure": false, @@ -22451,21 +14476,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9156:66:30", + "src": "4104:66:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9146:76:30", + "src": "4094:76:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8703, + "id": 11001, "nodeType": "ExpressionStatement", - "src": "9146:76:30" + "src": "4094:76:41" } ] } @@ -22478,19 +14503,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8678, + "id": 10976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8673, + "id": 10971, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8670, - "src": "9036:1:30", + "referencedDeclaration": 10968, + "src": "3984:1:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22504,26 +14529,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8674, - "name": "vestingTimes", + "id": 10972, + "name": "_vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "9040:12:30", + "referencedDeclaration": 10518, + "src": "3988:13:41", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 8676, + "id": 10974, "indexExpression": { "argumentTypes": null, - "id": 8675, - "name": "_address", + "id": 10973, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8649, - "src": "9053:8:30", + "referencedDeclaration": 10947, + "src": "4002:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22534,13 +14559,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9040:22:30", + "src": "3988:22:41", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 8677, + "id": 10975, "isConstant": false, "isLValue": true, "isPure": false, @@ -22548,31 +14573,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9040:29:30", + "src": "3988:29:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9036:33:30", + "src": "3984:33:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 8707, + "id": 11005, "initializationExpression": { "assignments": [ - 8670 + 10968 ], "declarations": [ { "constant": false, - "id": 8670, + "id": 10968, "name": "k", "nodeType": "VariableDeclaration", - "scope": 8709, - "src": "9021:9:30", + "scope": 11007, + "src": "3969:9:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22580,10 +14605,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8669, + "id": 10967, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9021:7:30", + "src": "3969:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22593,18 +14618,18 @@ "visibility": "internal" } ], - "id": 8672, + "id": 10970, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 8671, + "id": 10969, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9033:1:30", + "src": "3981:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -22613,12 +14638,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9021:13:30" + "src": "3969:13:41" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 8680, + "id": 10978, "isConstant": false, "isLValue": false, "isPure": false, @@ -22626,15 +14651,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9071:3:30", + "src": "4019:3:41", "subExpression": { "argumentTypes": null, - "id": 8679, + "id": 10977, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8670, - "src": "9071:1:30", + "referencedDeclaration": 10968, + "src": "4019:1:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22645,17 +14670,17 @@ "typeString": "uint256" } }, - "id": 8681, + "id": 10979, "nodeType": "ExpressionStatement", - "src": "9071:3:30" + "src": "4019:3:41" }, "nodeType": "ForStatement", - "src": "9016:231:30" + "src": "3964:231:41" } ] }, "documentation": null, - "id": 8709, + "id": 11007, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -22663,16 +14688,16 @@ "name": "accountBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 8650, + "id": 10948, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8649, - "name": "_address", + "id": 10947, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 8709, - "src": "8854:16:30", + "scope": 11007, + "src": "3803:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22680,10 +14705,10 @@ "typeString": "address" }, "typeName": { - "id": 8648, + "id": 10946, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8854:7:30", + "src": "3803:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22693,20 +14718,20 @@ "visibility": "internal" } ], - "src": "8853:18:30" + "src": "3802:17:41" }, "payable": false, "returnParameters": { - "id": 8653, + "id": 10951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8652, + "id": 10950, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 8709, - "src": "8893:15:30", + "scope": 11007, + "src": "3841:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22714,10 +14739,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8651, + "id": 10949, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8893:7:30", + "src": "3841:7:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22727,52 +14752,47 @@ "visibility": "internal" } ], - "src": "8892:17:30" + "src": "3840:17:41" }, - "scope": 8750, - "src": "8830:423:30", + "scope": 11048, + "src": "3779:422:41", "stateMutability": "view", - "superFunction": 7883, + "superFunction": 10469, "visibility": "public" }, { "body": { - "id": 8722, + "id": 11022, "nodeType": "Block", - "src": "9321:47:30", + "src": "4288:56:41", "statements": [ { "expression": { "argumentTypes": null, - "id": 8720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8716, - "name": "trustedAccounts", + "id": 11016, + "name": "_vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7933, - "src": "9331:15:30", + "referencedDeclaration": 10513, + "src": "4305:17:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 8718, + "id": 11018, "indexExpression": { "argumentTypes": null, - "id": 8717, - "name": "caller", + "id": 11017, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8711, - "src": "9347:6:30", + "referencedDeclaration": 11009, + "src": "4323:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22781,85 +14801,65 @@ "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": true, + "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9331:23:30", + "src": "4305:26:41", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 11020, + "indexExpression": { "argumentTypes": null, - "hexValue": "74727565", - "id": 8719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9357:4:30", - "subdenomination": null, + "id": 11019, + "name": "date", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11011, + "src": "4332:4:41", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "9331:30:30", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4305:32:41", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 8721, - "nodeType": "ExpressionStatement", - "src": "9331:30:30" + "functionReturnParameters": 11015, + "id": 11021, + "nodeType": "Return", + "src": "4298:39:41" } ] }, "documentation": null, - "id": 8723, + "id": 11023, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 8714, - "modifierName": { - "argumentTypes": null, - "id": 8713, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "9311:9:30", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9311:9:30" - } - ], - "name": "addTrustedAccount", + "isDeclaredConst": true, + "modifiers": [], + "name": "vestingBalanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 8712, + "id": 11012, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8711, - "name": "caller", + "id": 11009, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 8723, - "src": "9286:14:30", + "scope": 11023, + "src": "4233:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22867,10 +14867,10 @@ "typeString": "address" }, "typeName": { - "id": 8710, + "id": 11008, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9286:7:30", + "src": "4233:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22878,148 +14878,177 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 11011, + "name": "date", + "nodeType": "VariableDeclaration", + "scope": 11023, + "src": "4250:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11010, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4250:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "9285:16:30" + "src": "4232:28:41" }, "payable": false, "returnParameters": { - "id": 8715, + "id": 11015, "nodeType": "ParameterList", - "parameters": [], - "src": "9321:0:30" + "parameters": [ + { + "constant": false, + "id": 11014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11023, + "src": "4282:4:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11013, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4282:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4281:6:41" }, - "scope": 8750, - "src": "9259:109:30", - "stateMutability": "nonpayable", - "superFunction": 7888, - "visibility": "external" + "scope": 11048, + "src": "4207:137:41", + "stateMutability": "view", + "superFunction": 10410, + "visibility": "public" }, { "body": { - "id": 8736, + "id": 11034, "nodeType": "Block", - "src": "9439:48:30", + "src": "4404:35:41", "statements": [ { "expression": { "argumentTypes": null, - "id": 8734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 8730, - "name": "trustedAccounts", + "id": 11031, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7933, - "src": "9449:15:30", + "referencedDeclaration": 11025, + "src": "4424:7:41", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 8732, - "indexExpression": { - "argumentTypes": null, - "id": 8731, - "name": "caller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8725, - "src": "9465:6:30", - "typeDescriptions": { + } + ], + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_address", "typeString": "address" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9449:23:30", + ], + "id": 11030, + "name": "_addAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "4414:9:41", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 8733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9475:5:30", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "9449:31:30", + "id": 11032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4414:18:41", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 8735, + "id": 11033, "nodeType": "ExpressionStatement", - "src": "9449:31:30" + "src": "4414:18:41" } ] }, "documentation": null, - "id": 8737, + "id": 11035, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 8728, + "id": 11028, "modifierName": { "argumentTypes": null, - "id": 8727, - "name": "onlyOwner", + "id": 11027, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "9429:9:30", + "referencedDeclaration": 12420, + "src": "4392:11:41", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "9429:9:30" + "src": "4392:11:41" } ], - "name": "removeTrustedAccount", + "name": "addAdmin", "nodeType": "FunctionDefinition", "parameters": { - "id": 8726, + "id": 11026, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8725, - "name": "caller", + "id": 11025, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 8737, - "src": "9404:14:30", + "scope": 11035, + "src": "4368:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23027,10 +15056,10 @@ "typeString": "address" }, "typeName": { - "id": 8724, + "id": 11024, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9404:7:30", + "src": "4368:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23040,26 +15069,26 @@ "visibility": "internal" } ], - "src": "9403:16:30" + "src": "4367:17:41" }, "payable": false, "returnParameters": { - "id": 8729, + "id": 11029, "nodeType": "ParameterList", "parameters": [], - "src": "9439:0:30" + "src": "4404:0:41" }, - "scope": 8750, - "src": "9374:113:30", + "scope": 11048, + "src": "4350:89:41", "stateMutability": "nonpayable", - "superFunction": 7893, - "visibility": "external" + "superFunction": 1366, + "visibility": "public" }, { "body": { - "id": 8748, + "id": 11046, "nodeType": "Block", - "src": "9530:60:30", + "src": "4502:38:41", "statements": [ { "expression": { @@ -23067,67 +15096,37 @@ "arguments": [ { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8742, - "name": "trustedAccounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7933, - "src": "9548:15:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 8744, - "indexExpression": { - "argumentTypes": null, - "id": 8743, - "name": "caller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8739, - "src": "9564:6:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9548:23:30", + "id": 11043, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11037, + "src": "4525:7:41", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 8741, - "name": "require", + "id": 11042, + "name": "_removeAdmin", "nodeType": "Identifier", - "overloadedDeclarations": [ - 10491, - 10492 - ], - "referencedDeclaration": 10491, - "src": "9540:7:30", + "overloadedDeclarations": [], + "referencedDeclaration": 1351, + "src": "4512:12:41", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 8745, + "id": 11044, "isConstant": false, "isLValue": false, "isPure": false, @@ -23135,38 +15134,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9540:32:30", + "src": "4512:21:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8746, + "id": 11045, "nodeType": "ExpressionStatement", - "src": "9540:32:30" - }, - { - "id": 8747, - "nodeType": "PlaceholderStatement", - "src": "9582:1:30" + "src": "4512:21:41" } ] }, "documentation": null, - "id": 8749, - "name": "onlyTrusted", - "nodeType": "ModifierDefinition", + "id": 11047, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 11040, + "modifierName": { + "argumentTypes": null, + "id": 11039, + "name": "onlyPrimary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12420, + "src": "4490:11:41", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4490:11:41" + } + ], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", "parameters": { - "id": 8740, + "id": 11038, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8739, - "name": "caller", + "id": 11037, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 8749, - "src": "9514:14:30", + "scope": 11047, + "src": "4466:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23174,10 +15192,10 @@ "typeString": "address" }, "typeName": { - "id": 8738, + "id": 11036, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9514:7:30", + "src": "4466:7:41", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23187,17 +15205,27 @@ "visibility": "internal" } ], - "src": "9513:16:30" + "src": "4465:17:41" }, - "src": "9493:97:30", - "visibility": "internal" + "payable": false, + "returnParameters": { + "id": 11041, + "nodeType": "ParameterList", + "parameters": [], + "src": "4502:0:41" + }, + "scope": 11048, + "src": "4445:95:41", + "stateMutability": "nonpayable", + "superFunction": 1374, + "visibility": "public" } ], - "scope": 8751, - "src": "176:9416:30" + "scope": 11049, + "src": "394:4148:41" } ], - "src": "0:9593:30" + "src": "0:4543:41" }, "compiler": { "name": "solc", @@ -23205,5 +15233,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:51:45.366Z" + "updatedAt": "2018-12-06T13:14:33.252Z" } \ No newline at end of file diff --git a/build/contracts/WTokenStub.json b/build/contracts/WTokenStub.json index f93dfadb..ea2b6964 100644 --- a/build/contracts/WTokenStub.json +++ b/build/contracts/WTokenStub.json @@ -19,11 +19,11 @@ "constant": false, "inputs": [ { - "name": "_spender", + "name": "spender", "type": "address" }, { - "name": "_value", + "name": "value", "type": "uint256" } ], @@ -38,6 +38,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -56,15 +70,29 @@ "constant": false, "inputs": [ { - "name": "_from", + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", "type": "address" }, { - "name": "_to", + "name": "to", "type": "address" }, { - "name": "_value", + "name": "value", "type": "uint256" } ], @@ -83,15 +111,15 @@ "constant": true, "inputs": [ { - "name": "", + "name": "account", "type": "address" } ], - "name": "balances", + "name": "isAdmin", "outputs": [ { "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, @@ -116,7 +144,30 @@ "constant": false, "inputs": [ { - "name": "_value", + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "value", "type": "uint256" } ], @@ -130,11 +181,11 @@ "constant": true, "inputs": [ { - "name": "", + "name": "account", "type": "address" }, { - "name": "", + "name": "date", "type": "uint256" } ], @@ -153,11 +204,11 @@ "constant": false, "inputs": [ { - "name": "_spender", + "name": "spender", "type": "address" }, { - "name": "_subtractedValue", + "name": "subtractedValue", "type": "uint256" } ], @@ -172,18 +223,32 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [ { - "name": "_owner", + "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { - "name": "balance", + "name": "", "type": "uint256" } ], @@ -191,24 +256,15 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": false, "inputs": [ { - "name": "_from", + "name": "from", "type": "address" }, { - "name": "_value", + "name": "value", "type": "uint256" } ], @@ -219,17 +275,12 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], + "name": "renounceAdmin", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { @@ -250,15 +301,15 @@ "constant": false, "inputs": [ { - "name": "_to", + "name": "to", "type": "address" }, { - "name": "_value", + "name": "value", "type": "uint256" }, { - "name": "_vestingTime", + "name": "vestingTime", "type": "uint32" } ], @@ -277,15 +328,15 @@ "constant": false, "inputs": [ { - "name": "_to", + "name": "spender", "type": "address" }, { - "name": "_value", + "name": "subtractedValue", "type": "uint256" } ], - "name": "transfer", + "name": "decreaseAllowance", "outputs": [ { "name": "", @@ -300,29 +351,52 @@ "constant": false, "inputs": [ { - "name": "caller", + "name": "to", "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" } ], - "name": "removeTrustedAccount", - "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "primary", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ { - "name": "_to", + "name": "to", "type": "address" }, { - "name": "_amount", + "name": "amount", "type": "uint256" }, { - "name": "_vestingTime", + "name": "vestingTime", "type": "uint32" } ], @@ -341,7 +415,7 @@ "constant": true, "inputs": [ { - "name": "_address", + "name": "account", "type": "address" } ], @@ -360,11 +434,11 @@ "constant": false, "inputs": [ { - "name": "_spender", + "name": "spender", "type": "address" }, { - "name": "_addedValue", + "name": "addedValue", "type": "uint256" } ], @@ -379,29 +453,15 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "addTrustedAccount", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [ { - "name": "_owner", + "name": "owner", "type": "address" }, { - "name": "_spender", + "name": "spender", "type": "address" } ], @@ -416,20 +476,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -473,24 +519,19 @@ "type": "uint256" } ], - "name": "VestingTransfer", + "name": "VestingTransferred", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "name": "burner", - "type": "address" - }, { "indexed": false, - "name": "value", - "type": "uint256" + "name": "recipient", + "type": "address" } ], - "name": "Burn", + "name": "PrimaryTransferred", "type": "event" }, { @@ -498,11 +539,11 @@ "inputs": [ { "indexed": true, - "name": "previousOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipRenounced", + "name": "AdminAdded", "type": "event" }, { @@ -510,16 +551,11 @@ "inputs": [ { "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "AdminRemoved", "type": "event" }, { @@ -527,12 +563,12 @@ "inputs": [ { "indexed": true, - "name": "owner", + "name": "from", "type": "address" }, { "indexed": true, - "name": "spender", + "name": "to", "type": "address" }, { @@ -541,7 +577,7 @@ "type": "uint256" } ], - "name": "Approval", + "name": "Transfer", "type": "event" }, { @@ -549,12 +585,12 @@ "inputs": [ { "indexed": true, - "name": "from", + "name": "owner", "type": "address" }, { "indexed": true, - "name": "to", + "name": "spender", "type": "address" }, { @@ -563,28 +599,28 @@ "type": "uint256" } ], - "name": "Transfer", + "name": "Approval", "type": "event" } ], - "bytecode": "0x60806040523480156200001157600080fd5b506040516200143a3803806200143a8339810160409081528151602080840151928401519184018051909493909301928491849184918491849184916200005f9160009190860190620000c4565b50815162000075906001906020850190620000c4565b506002805460ff90921660ff1992831617905560058054600160a060020a031916339081179091556000908152600b602052604090208054909116600117905550620001699650505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010757805160ff191683800117855562000137565b8280016001018555821562000137579182015b82811115620001375782518255916020019190600101906200011a565b506200014592915062000149565b5090565b6200016691905b8082111562000145576000815560010162000150565b90565b6112c180620001796000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108e5565b34801561035e57600080fd5b5061036761097b565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c61098a565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109e4565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610a72565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b45565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610b66565b34801561044357600080fd5b5061020e600160a060020a0360043516610c90565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610d95565b34801561048857600080fd5b506102ae600160a060020a0360043516610e2e565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610e52565b3480156104d057600080fd5b506102ae600160a060020a0360043516610e7d565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085490565b60006105ea84610e86565b600160a060020a03831615156105ff57600080fd5b61060884610c90565b82111561061457600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526007602052604090205461066d908363ffffffff610ff516565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106a2908363ffffffff61100716565b600160a060020a0380851660009081526007602090815260408083209490945591871681526006825282812033825290915220546106e6908363ffffffff610ff516565b600160a060020a0380861660008181526006602090815260408083203384528252918290209490945580518681529051928716939192600080516020611276833981519152929181900390910190a35060019392505050565b60076020526000908152604090205481565b60025460ff1681565b610764338261101a565b50565b600960209081526000928352604080842090915290825290205481565b336000908152600660209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600660209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff610ff516565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526007602052604090205490565b600554604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038216600090815260066020908152604080832033845290915290205481111561091557600080fd5b600160a060020a0382166000908152600660209081526040808320338452909152902054610949908263ffffffff610ff516565b600160a060020a0383166000908152600660209081526040808320338452909152902055610977828261101a565b5050565b600554600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b6000336109f18585610a72565b50428363ffffffff161115610a1357610a136000868563ffffffff1687611102565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610a7d33610e86565b600160a060020a0383161515610a9257600080fd5b610a9b33610c90565b821115610aa757600080fd5b33600090815260076020526040902054610ac7908363ffffffff610ff516565b3360009081526007602052604080822092909255600160a060020a03851681522054610af9908363ffffffff61100716565b600160a060020a0384166000818152600760209081526040918290209390935580518581529051919233926000805160206112768339815191529281900390910190a350600192915050565b600160a060020a03166000908152600b60205260409020805460ff19169055565b6008546000903390610b7e818663ffffffff61100716565b11610b8857600080fd5b428363ffffffff161115610ba957610ba96000868563ffffffff1687611102565b600160a060020a038516600090815260076020526040902054610bd2908563ffffffff61100716565b600160a060020a038616600090815260076020526040902055600854610bfe908563ffffffff61100716565b600855604080518581529051600160a060020a038716916000916000805160206112768339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260076020908152604080832054600983528184208480529092528220549091901515610cca57610d8f565b5060005b600160a060020a0383166000908152600a6020526040902054811015610d8f57600160a060020a0383166000908152600a60205260409020805442919083908110610d1557fe5b9060005260206000200154101515610d8757600160a060020a0383166000908152600960209081526040808320600a90925282208054610d8493919085908110610d5b57fe5b906000526020600020015481526020019081526020016000205483610ff590919063ffffffff16565b91505b600101610cce565b50919050565b336000908152600660209081526040808320600160a060020a0386168452909152812054610dc9908363ffffffff61100716565b336000818152600660209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b610764816111f7565b600160a060020a03811660009081526009602090815260408083208380529091528120541515610eb557610977565b5060005b600160a060020a0382166000908152600a602052604090205481101561097757600160a060020a0382166000908152600a60205260409020805442919083908110610f0057fe5b90600052602060002001541015610fed57600160a060020a0382166000908152600960209081526040808320600a90925282208054610f8b93919085908110610f4557fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526009845282822082805290935220549063ffffffff610ff516565b600160a060020a038316600081815260096020908152604080832083805280835281842095909555928252600a9052908120805491929183919085908110610fcf57fe5b90600052602060002001548152602001908152602001600020819055505b600101610eb9565b60008282111561100157fe5b50900390565b8181018281101561101457fe5b92915050565b61102382610e86565b61102c82610c90565b81111561103857600080fd5b600160a060020a038216600090815260076020526040902054611061908263ffffffff610ff516565b600160a060020a03831660009081526007602052604090205560085461108d908263ffffffff610ff516565b600855604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206112768339815191529181900360200190a35050565b600160a060020a0383166000908152600960209081526040808320838052909152902054611136908263ffffffff61100716565b600160a060020a0384166000908152600960209081526040808320838052909152808220929092558381522054151561119557600160a060020a0383166000908152600a60209081526040822080546001810182559083529120018290555b600160a060020a03831660009081526009602090815260408083208584529091529020546111c9908263ffffffff61100716565b600160a060020a03909316600090815260096020908152604080832094835293905291909120919091555050565b600160a060020a038116151561120c57600080fd5b600554604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820070088417817dd59f1b3fe5e0f282bbf8dd9245c38e64586f0632a0509b243150029", - "deployedBytecode": "0x6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108e5565b34801561035e57600080fd5b5061036761097b565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c61098a565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109e4565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610a72565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b45565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610b66565b34801561044357600080fd5b5061020e600160a060020a0360043516610c90565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610d95565b34801561048857600080fd5b506102ae600160a060020a0360043516610e2e565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610e52565b3480156104d057600080fd5b506102ae600160a060020a0360043516610e7d565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085490565b60006105ea84610e86565b600160a060020a03831615156105ff57600080fd5b61060884610c90565b82111561061457600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526007602052604090205461066d908363ffffffff610ff516565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106a2908363ffffffff61100716565b600160a060020a0380851660009081526007602090815260408083209490945591871681526006825282812033825290915220546106e6908363ffffffff610ff516565b600160a060020a0380861660008181526006602090815260408083203384528252918290209490945580518681529051928716939192600080516020611276833981519152929181900390910190a35060019392505050565b60076020526000908152604090205481565b60025460ff1681565b610764338261101a565b50565b600960209081526000928352604080842090915290825290205481565b336000908152600660209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600660209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff610ff516565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526007602052604090205490565b600554604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038216600090815260066020908152604080832033845290915290205481111561091557600080fd5b600160a060020a0382166000908152600660209081526040808320338452909152902054610949908263ffffffff610ff516565b600160a060020a0383166000908152600660209081526040808320338452909152902055610977828261101a565b5050565b600554600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b6000336109f18585610a72565b50428363ffffffff161115610a1357610a136000868563ffffffff1687611102565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610a7d33610e86565b600160a060020a0383161515610a9257600080fd5b610a9b33610c90565b821115610aa757600080fd5b33600090815260076020526040902054610ac7908363ffffffff610ff516565b3360009081526007602052604080822092909255600160a060020a03851681522054610af9908363ffffffff61100716565b600160a060020a0384166000818152600760209081526040918290209390935580518581529051919233926000805160206112768339815191529281900390910190a350600192915050565b600160a060020a03166000908152600b60205260409020805460ff19169055565b6008546000903390610b7e818663ffffffff61100716565b11610b8857600080fd5b428363ffffffff161115610ba957610ba96000868563ffffffff1687611102565b600160a060020a038516600090815260076020526040902054610bd2908563ffffffff61100716565b600160a060020a038616600090815260076020526040902055600854610bfe908563ffffffff61100716565b600855604080518581529051600160a060020a038716916000916000805160206112768339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260076020908152604080832054600983528184208480529092528220549091901515610cca57610d8f565b5060005b600160a060020a0383166000908152600a6020526040902054811015610d8f57600160a060020a0383166000908152600a60205260409020805442919083908110610d1557fe5b9060005260206000200154101515610d8757600160a060020a0383166000908152600960209081526040808320600a90925282208054610d8493919085908110610d5b57fe5b906000526020600020015481526020019081526020016000205483610ff590919063ffffffff16565b91505b600101610cce565b50919050565b336000908152600660209081526040808320600160a060020a0386168452909152812054610dc9908363ffffffff61100716565b336000818152600660209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b610764816111f7565b600160a060020a03811660009081526009602090815260408083208380529091528120541515610eb557610977565b5060005b600160a060020a0382166000908152600a602052604090205481101561097757600160a060020a0382166000908152600a60205260409020805442919083908110610f0057fe5b90600052602060002001541015610fed57600160a060020a0382166000908152600960209081526040808320600a90925282208054610f8b93919085908110610f4557fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526009845282822082805290935220549063ffffffff610ff516565b600160a060020a038316600081815260096020908152604080832083805280835281842095909555928252600a9052908120805491929183919085908110610fcf57fe5b90600052602060002001548152602001908152602001600020819055505b600101610eb9565b60008282111561100157fe5b50900390565b8181018281101561101457fe5b92915050565b61102382610e86565b61102c82610c90565b81111561103857600080fd5b600160a060020a038216600090815260076020526040902054611061908263ffffffff610ff516565b600160a060020a03831660009081526007602052604090205560085461108d908263ffffffff610ff516565b600855604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206112768339815191529181900360200190a35050565b600160a060020a0383166000908152600960209081526040808320838052909152902054611136908263ffffffff61100716565b600160a060020a0384166000908152600960209081526040808320838052909152808220929092558381522054151561119557600160a060020a0383166000908152600a60209081526040822080546001810182559083529120018290555b600160a060020a03831660009081526009602090815260408083208584529091529020546111c9908263ffffffff61100716565b600160a060020a03909316600090815260096020908152604080832094835293905291909120919091555050565b600160a060020a038116151561120c57600080fd5b600554604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820070088417817dd59f1b3fe5e0f282bbf8dd9245c38e64586f0632a0509b243150029", - "sourceMap": "51:316:31:-;;;262:103;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:103:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;463:12:46;;262:103:31;;;;;;;;;;;;;;;;;;;463:12:46;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;481:16:46;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;503:8:46;:20;;;;;;-1:-1:-1;;503:20:46;;;;;;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;;;;503:8:46;1001:27:30;;;:15;:27;;;;;:34;;;;;503:20:46;1001:34:30;;;-1:-1:-1;51:316:31;;-1:-1:-1;;;;;;;51:316:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;51:316:31;;;-1:-1:-1;51:316:31;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "51:316:31:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;319:18:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;319:18:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;319:18:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3736:203:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3736:203:30;-1:-1:-1;;;;;3736:203:30;;;;;;;;;;;;;;;;;;;;;;;;;789:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;789:89:30;;;;;;;;;;;;;;;;;;;;2582:518;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2582:518:30;-1:-1:-1;;;;;2582:518:30;;;;;;;;;;;;324:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;324:43:30;-1:-1:-1;;;;;324:43:30;;;;;365:21:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;365:21:46;;;;;;;;;;;;;;;;;;;;;;;7116:79:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7116:79:30;;;;;;;409:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;409:73:30;-1:-1:-1;;;;;409:73:30;;;;;;;5621:443;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5621:443:30;-1:-1:-1;;;;;5621:443:30;;;;;;;2185:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2185:113:30;-1:-1:-1;;;;;2185:113:30;;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;7449:392:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7449:392:30;-1:-1:-1;;;;;7449:392:30;;;;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;;;;;-1:-1:-1;;;;;238:20:45;;;;;;;;;;;;;;341::46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;341:20:46;;;;1607:364:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1607:364:30;-1:-1:-1;;;;;1607:364:30;;;;;;;;;;;1208:393;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1208:393:30;-1:-1:-1;;;;;1208:393:30;;;;;;;9374:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9374:113:30;-1:-1:-1;;;;;9374:113:30;;;;;6070:532;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6070:532:30;-1:-1:-1;;;;;6070:532:30;;;;;;;;;;;8830:423;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8830:423:30;-1:-1:-1;;;;;8830:423:30;;;;;4869:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4869:277:30;-1:-1:-1;;;;;4869:277:30;;;;;;;9259:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9259:109:30;-1:-1:-1;;;;;9259:109:30;;;;;4267:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4267:132:30;-1:-1:-1;;;;;4267:132:30;;;;;;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;-1:-1:-1;;;;;1274:103:45;;;;;319:18:46;;;;;;;;;;;;;;;-1:-1:-1;;319:18:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3736:203:30:-;3827:10;3803:4;3819:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3819:29:30;;;;;;;;;;;:38;;;3872;;;;;;;3803:4;;3819:29;;3827:10;;3872:38;;;;;;;;-1:-1:-1;3928:4:30;3736:203;;;;:::o;789:89::-;859:12;;789:89;:::o;2582:518::-;2664:4;2680:22;2696:5;2680:15;:22::i;:::-;-1:-1:-1;;;;;2721:17:30;;;;2713:26;;;;;;2767:21;2782:5;2767:14;:21::i;:::-;2757:31;;;2749:40;;;;;;-1:-1:-1;;;;;2817:14:30;;;;;;:7;:14;;;;;;;;2832:10;2817:26;;;;;;;;2807:36;;;2799:45;;;;;;-1:-1:-1;;;;;2873:15:30;;;;;;:8;:15;;;;;;:27;;2893:6;2873:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;2855:15:30;;;;;;;:8;:15;;;;;;:45;;;;2926:13;;;;;;;:25;;2944:6;2926:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;2910:13:30;;;;;;;:8;:13;;;;;;;;:41;;;;2990:14;;;;;:7;:14;;;;;3005:10;2990:26;;;;;;;:38;;3021:6;2990:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;2961:14:30;;;;;;;:7;:14;;;;;;;;2976:10;2961:26;;;;;;;;:67;;;;3044:28;;;;;;;;;;;2961:14;;-1:-1:-1;;;;;;;;;;;3044:28:30;;;;;;;;;;-1:-1:-1;3089:4:30;2582:518;;;;;:::o;324:43::-;;;;;;;;;;;;;:::o;365:21:46:-;;;;;;:::o;7116:79:30:-;7163:25;7169:10;7181:6;7163:5;:25::i;:::-;7116:79;:::o;409:73::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;5621:443::-;5744:10;5704:4;5736:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5736:29:30;;;;;;;;;;5779:28;;;5775:185;;5831:10;5855:1;5823:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5823:29:30;;;;;;;;;:33;5775:185;;;5919:30;:8;5932:16;5919:30;:12;:30;:::i;:::-;5895:10;5887:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5887:29:30;;;;;;;;;:62;5775:185;5983:10;6005:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5974:61:30;;6005:29;;;;;;;;;;;5974:61;;;;;;;;;5983:10;5974:61;;;;;;;;;;;-1:-1:-1;6053:4:30;;5621:443;-1:-1:-1;;;5621:443:30:o;2185:113::-;-1:-1:-1;;;;;2275:16:30;2241:15;2275:16;;;:8;:16;;;;;;;2185:113::o;1001:111:45:-;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;7449:392:30:-;-1:-1:-1;;;;;7533:14:30;;;;;;:7;:14;;;;;;;;7548:10;7533:26;;;;;;;;7523:36;;;7515:45;;;;;;-1:-1:-1;;;;;7766:14:30;;;;;;:7;:14;;;;;;;;7781:10;7766:26;;;;;;;;:38;;7797:6;7766:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;7737:14:30;;;;;;:7;:14;;;;;;;;7752:10;7737:26;;;;;;;:67;7814:20;7745:5;7827:6;7814:5;:20::i;:::-;7449:392;;:::o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;341::46:-;;;;;;;;;;;;;;;-1:-1:-1;;341:20:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1607:364:30;1724:4;1703:10;1740:21;1749:3;1754:6;1740:8;:21::i;:::-;;1791:3;1776:12;:18;;;1772:101;;;1810:52;1832:1;1836:3;1841:12;1810:52;;1855:6;1810:13;:52::i;:::-;1888:54;;;1904:10;1888:54;;-1:-1:-1;;;;;1888:54:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1960:4:30;;1607:364;-1:-1:-1;;;;1607:364:30:o;1208:393::-;1271:4;1287:27;1303:10;1287:15;:27::i;:::-;-1:-1:-1;;;;;1332:17:30;;;;1324:26;;;;;;1378;1393:10;1378:14;:26::i;:::-;1368:36;;;1360:45;;;;;;1448:10;1439:20;;;;:8;:20;;;;;;:32;;1464:6;1439:32;:24;:32;:::i;:::-;1425:10;1416:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;1498:13:30;;;;;;:25;;1516:6;1498:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;1482:13:30;;;;;;:8;:13;;;;;;;;;:41;;;;1539:33;;;;;;;1482:13;;1548:10;;-1:-1:-1;;;;;;;;;;;1539:33:30;;;;;;;;;-1:-1:-1;1590:4:30;1208:393;;;;:::o;9374:113::-;-1:-1:-1;;;;;9449:23:30;9475:5;9449:23;;;:15;:23;;;;;:31;;-1:-1:-1;;9449:31:30;;;9374:113::o;6070:532::-;6226:12;;6174:4;;6153:10;;6198:25;6226:12;6215:7;6198:25;:16;:25;:::i;:::-;:40;6190:49;;;;;;6269:3;6254:12;:18;;;6250:102;;;6288:53;6310:1;6314:3;6319:12;6288:53;;6333:7;6288:13;:53::i;:::-;-1:-1:-1;;;;;6378:13:30;;;;;;:8;:13;;;;;;:26;;6396:7;6378:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;6362:13:30;;;;;;:8;:13;;;;;:42;6429:12;;:25;;6446:7;6429:25;:16;:25;:::i;:::-;6414:12;:40;6469:34;;;;;;;;-1:-1:-1;;;;;6469:34:30;;;6486:1;;-1:-1:-1;;;;;;;;;;;6469:34:30;;;;;;;;6518:55;;;6542:1;6518:55;;-1:-1:-1;;;;;6518:55:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6591:4:30;;6070:532;-1:-1:-1;;;;6070:532:30:o;8830:423::-;-1:-1:-1;;;;;8930:18:30;;8893:15;8930:18;;;:8;:18;;;;;;;;;8963:16;:26;;;;;:29;;;;;;;;;8930:18;;8893:15;8963:34;8959:47;;;8999:7;;8959:47;-1:-1:-1;9033:1:30;9016:231;-1:-1:-1;;;;;9040:22:30;;;;;;:12;:22;;;;;:29;9036:33;;9016:231;;;-1:-1:-1;;;;;9094:22:30;;;;;;:12;:22;;;;;:25;;9123:3;;9094:22;9117:1;;9094:25;;;;;;;;;;;;;;:32;;9090:147;;;-1:-1:-1;;;;;9168:26:30;;;;;;:16;:26;;;;;;;;9195:12;:22;;;;;:25;;9156:66;;9168:26;9195:22;9218:1;;9195:25;;;;;;;;;;;;;;9168:53;;;;;;;;;;;;9156:7;:11;;:66;;;;:::i;:::-;9146:76;;9090:147;9071:3;;9016:231;;;8830:423;;;;:::o;4869:277::-;5003:10;4947:4;4995:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;4995:29:30;;;;;;;;;;:46;;5029:11;4995:46;:33;:46;:::i;:::-;4971:10;4963:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;4963:29:30;;;;;;;;;;;;:78;;;5056:61;;;;;;4963:29;;5056:61;;;;;;;;;;;-1:-1:-1;5135:4:30;4869:277;;;;:::o;9259:109::-;-1:-1:-1;;;;;9331:23:30;;;;;:15;:23;;;;;:30;;-1:-1:-1;;9331:30:30;9357:4;9331:30;;;9259:109::o;4267:132::-;-1:-1:-1;;;;;4367:15:30;;;4341:7;4367:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;4267:132::o;1274:103:45:-;1343:29;1362:9;1343:18;:29::i;8359:465:30:-;-1:-1:-1;;;;;8422:23:30;;8477:9;8422:23;;;:16;:23;;;;;;;;:26;;;;;;;;;:31;8418:44;;;8455:7;;8418:44;-1:-1:-1;8489:1:30;8472:346;-1:-1:-1;;;;;8496:19:30;;;;;;:12;:19;;;;;:26;8492:30;;8472:346;;;-1:-1:-1;;;;;8547:19:30;;;;;;:12;:19;;;;;:22;;8572:3;;8547:19;8567:1;;8547:22;;;;;;;;;;;;;;:28;8543:265;;;-1:-1:-1;;;;;8676:23:30;;;;;;:16;:23;;;;;;;;8700:12;:19;;;;;:22;;8624:100;;8676:23;8700:19;8720:1;;8700:22;;;;;;;;;;;;;;;;;;8676:47;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8624:23:30;;;;:16;:23;;;;;:26;;;;;;;;;:100;:51;:100;:::i;:::-;-1:-1:-1;;;;;8595:23:30;;;;;;:16;:23;;;;;;;;:26;;;;;;;;;:129;;;;8742:23;;;8766:12;:19;;;;;:22;;8595:23;;;;;8766:19;8786:1;;8766:22;;;;;;;;;;;;;;8742:47;;;;;;;;;;;:51;;;;8543:265;8524:3;;8472:346;;1060:116:44;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:44;;;1060:116::o;1238:128::-;1319:7;;;1339;;;;1332:15;;;;1238:128;;;;:::o;7847:506:30:-;7911:21;7927:4;7911:15;:21::i;:::-;7961:20;7976:4;7961:14;:20::i;:::-;7951:30;;;7943:39;;;;;;-1:-1:-1;;;;;8189:14:30;;;;;;:8;:14;;;;;;:26;;8208:6;8189:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;8172:14:30;;;;;;:8;:14;;;;;:43;8240:12;;:24;;8257:6;8240:24;:16;:24;:::i;:::-;8225:12;:39;8279:18;;;;;;;;-1:-1:-1;;;;;8279:18:30;;;;;;;;;;;;;8312:34;;;;;;;;8335:1;;-1:-1:-1;;;;;8312:34:30;;;-1:-1:-1;;;;;;;;;;;8312:34:30;;;;;;;;7847:506;;:::o;6608:381::-;-1:-1:-1;;;;;6744:21:30;;;;;;:16;:21;;;;;;;;:24;;;;;;;;;:37;;6773:7;6744:37;:28;:37;:::i;:::-;-1:-1:-1;;;;;6717:21:30;;;;;;:16;:21;;;;;;;;:24;;;;;;;;;:64;;;;6795:35;;;;;:40;6792:93;;;-1:-1:-1;;;;;6849:17:30;;;;;;:12;:17;;;;;;;27:10:-1;;39:1;23:18;;45:23;;6849:36:30;;;;;;;;;6792:93;-1:-1:-1;;;;;6934:21:30;;;;;;:16;:21;;;;;;;;:35;;;;;;;;;:48;;6974:7;6934:48;:39;:48;:::i;:::-;-1:-1:-1;;;;;6896:21:30;;;;;;;:16;:21;;;;;;;;:35;;;;;;;;;;:86;;;;-1:-1:-1;;6608:381:30:o;1512:171:45:-;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"./WToken.sol\";\n\n\ncontract WTokenStub is WToken {\n\n /**\n * @dev Allows for any account besides the owner.\n */\n modifier onlyOwner() {\n _;\n }\n\n modifier onlyTrusted(address caller) {\n _;\n }\n\n constructor(string _name, string _symbol, uint8 _decimals) WToken(_name, _symbol, _decimals) public { }\n}\n", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200161c3803806200161c83398101604090815281516020830151918301519083019291909101908282828282826200005733640100000000620000f7810204565b82516200006c906001906020860190620001dc565b50815162000082906002906020850190620001dc565b506003805460ff90921660ff19909216919091179055505060078054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a150505050505062000281565b620001126000826401000000006200127f6200014982021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b600160a060020a03811615156200015f57600080fd5b620001748282640100000000620001a4810204565b156200017f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001bc57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021f57805160ff19168380011785556200024f565b828001600101855582156200024f579182015b828111156200024f57825182559160200191906001019062000232565b506200025d92915062000261565b5090565b6200027e91905b808211156200025d576000815560010162000268565b90565b61138b80620002916000396000f3006080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d75780631785f53c1461020f57806318160ddd146102325780632348238c1461025957806323b872dd1461027a57806324d7806c146102a4578063313ce567146102c557806339509351146102f057806342966c68146103145780634afbf5ee1461032c5780636618846314610350578063704802751461037457806370a082311461039557806379cc6790146103b65780638bad0c0a146103da57806395d89b41146103ef5780639d2e477714610404578063a457c2d714610431578063a9059cbb14610455578063c6dbdf6114610479578063d0047acf146104aa578063d294cb0f146104d7578063d73dd623146104f8578063dd62ed3e1461051c575b600080fd5b34801561015957600080fd5b50610162610543565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019c578181015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e357600080fd5b506101fb600160a060020a03600435166024356105d8565b604080519115158252519081900360200190f35b34801561021b57600080fd5b50610230600160a060020a0360043516610656565b005b34801561023e57600080fd5b50610247610662565b60408051918252519081900360200190f35b34801561026557600080fd5b50610230600160a060020a0360043516610668565b34801561028657600080fd5b506101fb600160a060020a03600435811690602435166044356106e4565b3480156102b057600080fd5b506101fb600160a060020a036004351661072c565b3480156102d157600080fd5b506102da610744565b6040805160ff9092168252519081900360200190f35b3480156102fc57600080fd5b506101fb600160a060020a036004351660243561074d565b34801561032057600080fd5b506102306004356107fd565b34801561033857600080fd5b50610247600160a060020a0360043516602435610807565b34801561035c57600080fd5b506101fb600160a060020a036004351660243561082f565b34801561038057600080fd5b50610230600160a060020a0360043516610842565b3480156103a157600080fd5b50610247600160a060020a036004351661084b565b3480156103c257600080fd5b50610230600160a060020a0360043516602435610866565b3480156103e657600080fd5b50610230610874565b3480156103fb57600080fd5b5061016261087f565b34801561041057600080fd5b506101fb600160a060020a036004351660243563ffffffff604435166108dd565b34801561043d57600080fd5b506101fb600160a060020a0360043516602435610914565b34801561046157600080fd5b506101fb600160a060020a036004351660243561095f565b34801561048557600080fd5b5061048e61099e565b60408051600160a060020a039092168252519081900360200190f35b3480156104b657600080fd5b506101fb600160a060020a036004351660243563ffffffff604435166109ad565b3480156104e357600080fd5b50610247600160a060020a03600435166109da565b34801561050457600080fd5b506101fb600160a060020a0360043516602435610ae3565b34801561052857600080fd5b50610247600160a060020a0360043581169060243516610aef565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b820191906000526020600020905b8154815290600101906020018083116105b157829003601f168201915b5050505050905090565b6000600160a060020a03831615156105ef57600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b61065f81610b1a565b50565b60065490565b600160a060020a038116151561067d57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b60006106ef84610b62565b600160a060020a038316151561070457600080fd5b61070d846109da565b82111561071957600080fd5b610724848484610ce8565b949350505050565b600061073e818363ffffffff610d7b16565b92915050565b60035460ff1690565b6000600160a060020a038316151561076457600080fd5b336000908152600560209081526040808320600160a060020a0387168452909152902054610798908363ffffffff610db216565b336000818152600560209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b61065f3382610dc4565b600160a060020a03919091166000908152600860209081526040808320938352929052205490565b600061083b8383610914565b9392505050565b61065f81610dec565b600160a060020a031660009081526004602052604090205490565b6108708282610e34565b5050565b61087d33610b1a565b565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b60006108e9848461095f565b50428263ffffffff16111561090a5761090a33858463ffffffff1686610e5c565b5060019392505050565b6000600160a060020a038316151561092b57600080fd5b336000908152600560209081526040808320600160a060020a0387168452909152902054610798908363ffffffff610f9616565b600061096a33610b62565b600160a060020a038316151561097f57600080fd5b610988336109da565b82111561099457600080fd5b61083b8383610fad565b600754600160a060020a031690565b60006109b98484610fc3565b428263ffffffff16111561090a5761090a6000858463ffffffff1686610e5c565b6000806109e68361084b565b600160a060020a03841660009081526008602090815260408083208380529091529020549092501515610a1857610add565b5060005b600160a060020a038316600090815260096020526040902054811015610add57600160a060020a0383166000908152600960205260409020805442919083908110610a6357fe5b9060005260206000200154101515610ad557600160a060020a0383166000908152600860209081526040808320600990925282208054610ad293919085908110610aa957fe5b906000526020600020015481526020019081526020016000205483610f9690919063ffffffff16565b91505b600101610a1c565b50919050565b600061083b838361074d565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610b2b60008263ffffffff61106f16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515610b7957600080fd5b600160a060020a03821660009081526008602090815260408083208380529091529020541515610ba857610870565b5060005b600160a060020a03821660009081526009602052604090205481101561087057600160a060020a0382166000908152600960205260409020805442919083908110610bf357fe5b90600052602060002001541015610ce057600160a060020a0382166000908152600860209081526040808320600990925282208054610c7e93919085908110610c3857fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526008845282822082805290935220549063ffffffff610f9616565b600160a060020a03831660008181526008602090815260408083208380528083528184209590955592825260099052908120805491929183919085908110610cc257fe5b90600052602060002001548152602001908152602001600020819055505b600101610bac565b600160a060020a0383166000908152600560209081526040808320338452909152812054821115610d1857600080fd5b600160a060020a0384166000908152600560209081526040808320338452909152902054610d4c908363ffffffff610f9616565b600160a060020a038516600090815260056020908152604080832033845290915290205561090a8484846110bb565b6000600160a060020a0382161515610d9257600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b60008282018381101561083b57600080fd5b610dcd82610b62565b610dd6826109da565b811115610de257600080fd5b61087082826111af565b610dfd60008263ffffffff61127f16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b610e3d82610b62565b610e46826109da565b811115610e5257600080fd5b61087082826112cd565b600160a060020a0383166000908152600860209081526040808320838052909152902054610e90908263ffffffff610db216565b600160a060020a03841660009081526008602090815260408083208380529091528082209290925583815220541515610eef57600160a060020a0383166000908152600960209081526040822080546001810182559083529120018290555b600160a060020a0383166000908152600860209081526040808320858452909152902054610f23908263ffffffff610db216565b600160a060020a0380851660008181526008602090815260408083208884528252918290209490945580519288168352928201528082018390526060810184905290517f4dd99b63a45b55ac0b6999b9307251132e130b3e3f06c04c92b946c0f9e0dc279181900360800190a150505050565b60008083831115610fa657600080fd5b5050900390565b6000610fba3384846110bb565b50600192915050565b600160a060020a0382161515610fd857600080fd5b600654610feb908263ffffffff610db216565b600655600160a060020a038216600090815260046020526040902054611017908263ffffffff610db216565b600160a060020a03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a038116151561108457600080fd5b61108e8282610d7b565b151561109957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0383166000908152600460205260409020548111156110e057600080fd5b600160a060020a03821615156110f557600080fd5b600160a060020a03831660009081526004602052604090205461111e908263ffffffff610f9616565b600160a060020a038085166000908152600460205260408082209390935590841681522054611153908263ffffffff610db216565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a03821615156111c457600080fd5b600160a060020a0382166000908152600460205260409020548111156111e957600080fd5b6006546111fc908263ffffffff610f9616565b600655600160a060020a038216600090815260046020526040902054611228908263ffffffff610f9616565b600160a060020a0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a038116151561129457600080fd5b61129e8282610d7b565b156112a857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a03821660009081526005602090815260408083203384529091529020548111156112fd57600080fd5b600160a060020a0382166000908152600560209081526040808320338452909152902054611331908263ffffffff610f9616565b600160a060020a03831660009081526005602090815260408083203384529091529020556108708282610dc45600a165627a7a723058208d49b644e3dafc09a051bf019df01ff62215851f5d2055987aff8f25a8a951040029", + "deployedBytecode": "0x6080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d75780631785f53c1461020f57806318160ddd146102325780632348238c1461025957806323b872dd1461027a57806324d7806c146102a4578063313ce567146102c557806339509351146102f057806342966c68146103145780634afbf5ee1461032c5780636618846314610350578063704802751461037457806370a082311461039557806379cc6790146103b65780638bad0c0a146103da57806395d89b41146103ef5780639d2e477714610404578063a457c2d714610431578063a9059cbb14610455578063c6dbdf6114610479578063d0047acf146104aa578063d294cb0f146104d7578063d73dd623146104f8578063dd62ed3e1461051c575b600080fd5b34801561015957600080fd5b50610162610543565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019c578181015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e357600080fd5b506101fb600160a060020a03600435166024356105d8565b604080519115158252519081900360200190f35b34801561021b57600080fd5b50610230600160a060020a0360043516610656565b005b34801561023e57600080fd5b50610247610662565b60408051918252519081900360200190f35b34801561026557600080fd5b50610230600160a060020a0360043516610668565b34801561028657600080fd5b506101fb600160a060020a03600435811690602435166044356106e4565b3480156102b057600080fd5b506101fb600160a060020a036004351661072c565b3480156102d157600080fd5b506102da610744565b6040805160ff9092168252519081900360200190f35b3480156102fc57600080fd5b506101fb600160a060020a036004351660243561074d565b34801561032057600080fd5b506102306004356107fd565b34801561033857600080fd5b50610247600160a060020a0360043516602435610807565b34801561035c57600080fd5b506101fb600160a060020a036004351660243561082f565b34801561038057600080fd5b50610230600160a060020a0360043516610842565b3480156103a157600080fd5b50610247600160a060020a036004351661084b565b3480156103c257600080fd5b50610230600160a060020a0360043516602435610866565b3480156103e657600080fd5b50610230610874565b3480156103fb57600080fd5b5061016261087f565b34801561041057600080fd5b506101fb600160a060020a036004351660243563ffffffff604435166108dd565b34801561043d57600080fd5b506101fb600160a060020a0360043516602435610914565b34801561046157600080fd5b506101fb600160a060020a036004351660243561095f565b34801561048557600080fd5b5061048e61099e565b60408051600160a060020a039092168252519081900360200190f35b3480156104b657600080fd5b506101fb600160a060020a036004351660243563ffffffff604435166109ad565b3480156104e357600080fd5b50610247600160a060020a03600435166109da565b34801561050457600080fd5b506101fb600160a060020a0360043516602435610ae3565b34801561052857600080fd5b50610247600160a060020a0360043581169060243516610aef565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b820191906000526020600020905b8154815290600101906020018083116105b157829003601f168201915b5050505050905090565b6000600160a060020a03831615156105ef57600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b61065f81610b1a565b50565b60065490565b600160a060020a038116151561067d57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b60006106ef84610b62565b600160a060020a038316151561070457600080fd5b61070d846109da565b82111561071957600080fd5b610724848484610ce8565b949350505050565b600061073e818363ffffffff610d7b16565b92915050565b60035460ff1690565b6000600160a060020a038316151561076457600080fd5b336000908152600560209081526040808320600160a060020a0387168452909152902054610798908363ffffffff610db216565b336000818152600560209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b61065f3382610dc4565b600160a060020a03919091166000908152600860209081526040808320938352929052205490565b600061083b8383610914565b9392505050565b61065f81610dec565b600160a060020a031660009081526004602052604090205490565b6108708282610e34565b5050565b61087d33610b1a565b565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b60006108e9848461095f565b50428263ffffffff16111561090a5761090a33858463ffffffff1686610e5c565b5060019392505050565b6000600160a060020a038316151561092b57600080fd5b336000908152600560209081526040808320600160a060020a0387168452909152902054610798908363ffffffff610f9616565b600061096a33610b62565b600160a060020a038316151561097f57600080fd5b610988336109da565b82111561099457600080fd5b61083b8383610fad565b600754600160a060020a031690565b60006109b98484610fc3565b428263ffffffff16111561090a5761090a6000858463ffffffff1686610e5c565b6000806109e68361084b565b600160a060020a03841660009081526008602090815260408083208380529091529020549092501515610a1857610add565b5060005b600160a060020a038316600090815260096020526040902054811015610add57600160a060020a0383166000908152600960205260409020805442919083908110610a6357fe5b9060005260206000200154101515610ad557600160a060020a0383166000908152600860209081526040808320600990925282208054610ad293919085908110610aa957fe5b906000526020600020015481526020019081526020016000205483610f9690919063ffffffff16565b91505b600101610a1c565b50919050565b600061083b838361074d565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610b2b60008263ffffffff61106f16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515610b7957600080fd5b600160a060020a03821660009081526008602090815260408083208380529091529020541515610ba857610870565b5060005b600160a060020a03821660009081526009602052604090205481101561087057600160a060020a0382166000908152600960205260409020805442919083908110610bf357fe5b90600052602060002001541015610ce057600160a060020a0382166000908152600860209081526040808320600990925282208054610c7e93919085908110610c3857fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526008845282822082805290935220549063ffffffff610f9616565b600160a060020a03831660008181526008602090815260408083208380528083528184209590955592825260099052908120805491929183919085908110610cc257fe5b90600052602060002001548152602001908152602001600020819055505b600101610bac565b600160a060020a0383166000908152600560209081526040808320338452909152812054821115610d1857600080fd5b600160a060020a0384166000908152600560209081526040808320338452909152902054610d4c908363ffffffff610f9616565b600160a060020a038516600090815260056020908152604080832033845290915290205561090a8484846110bb565b6000600160a060020a0382161515610d9257600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b60008282018381101561083b57600080fd5b610dcd82610b62565b610dd6826109da565b811115610de257600080fd5b61087082826111af565b610dfd60008263ffffffff61127f16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b610e3d82610b62565b610e46826109da565b811115610e5257600080fd5b61087082826112cd565b600160a060020a0383166000908152600860209081526040808320838052909152902054610e90908263ffffffff610db216565b600160a060020a03841660009081526008602090815260408083208380529091528082209290925583815220541515610eef57600160a060020a0383166000908152600960209081526040822080546001810182559083529120018290555b600160a060020a0383166000908152600860209081526040808320858452909152902054610f23908263ffffffff610db216565b600160a060020a0380851660008181526008602090815260408083208884528252918290209490945580519288168352928201528082018390526060810184905290517f4dd99b63a45b55ac0b6999b9307251132e130b3e3f06c04c92b946c0f9e0dc279181900360800190a150505050565b60008083831115610fa657600080fd5b5050900390565b6000610fba3384846110bb565b50600192915050565b600160a060020a0382161515610fd857600080fd5b600654610feb908263ffffffff610db216565b600655600160a060020a038216600090815260046020526040902054611017908263ffffffff610db216565b600160a060020a03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a038116151561108457600080fd5b61108e8282610d7b565b151561109957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0383166000908152600460205260409020548111156110e057600080fd5b600160a060020a03821615156110f557600080fd5b600160a060020a03831660009081526004602052604090205461111e908263ffffffff610f9616565b600160a060020a038085166000908152600460205260408082209390935590841681522054611153908263ffffffff610db216565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a03821615156111c457600080fd5b600160a060020a0382166000908152600460205260409020548111156111e957600080fd5b6006546111fc908263ffffffff610f9616565b600655600160a060020a038216600090815260046020526040902054611228908263ffffffff610f9616565b600160a060020a0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a038116151561129457600080fd5b61129e8282610d7b565b156112a857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a03821660009081526005602090815260408083203384529091529020548111156112fd57600080fd5b600160a060020a0382166000908152600560209081526040808320338452909152902054611331908263ffffffff610f9616565b600160a060020a03831660009081526005602090815260408083203384529091529020556108708282610dc45600a165627a7a723058208d49b644e3dafc09a051bf019df01ff62215851f5d2055987aff8f25a8a951040029", + "sourceMap": "50:300:42:-;;;245:103;8:9:-1;5:2;;;30:1;27;20:12;5:2;245:103:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;306:21:3;316:10;306:9;;;;:21;:::i;:::-;467:12:58;;;;:5;;:12;;;;;:::i;:::-;-1:-1:-1;485:16:58;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;507:9:58;:20;;;;;;-1:-1:-1;;507:20:58;;;;;;;;;-1:-1:-1;;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;417:28;;;-1:-1:-1;;;;;436:8:55;;;;417:28;;;;;;;;;;;;733:103:41;;;245::42;;;50:300;;612:115:3;667:19;:6;678:7;667:10;;;;;;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;50:300:42:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;50:300:42;;;-1:-1:-1;50:300:42;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "50:300:42:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;584:67:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;584:67:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:220:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2380:220:56;-1:-1:-1;;;;;2380:220:56;;;;;;;;;;;;;;;;;;;;;;;;;4445:95:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4445:95:41;-1:-1:-1;;;;;4445:95:41;;;;;;;640:83:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:83:56;;;;;;;;;;;;;;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;-1:-1:-1;;;;;855:171:55;;;;;1369:260:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1369:260:41;-1:-1:-1;;;;;1369:260:41;;;;;;;;;;;;423:104:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;423:104:3;-1:-1:-1;;;;;423:104:3;;;;;842:74:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;842:74:58;;;;;;;;;;;;;;;;;;;;;;;3611:330:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3611:330:56;-1:-1:-1;;;;;3611:330:56;;;;;;;2662:77:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2662:77:41;;;;;4207:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4207:137:41;-1:-1:-1;;;;;4207:137:41;;;;;;;1785:154;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1785:154:41;-1:-1:-1;;;;;1785:154:41;;;;;;;4350:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4350:89:41;-1:-1:-1;;;;;4350:89:41;;;;;920:98:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;920:98:56;-1:-1:-1;;;;;920:98:56;;;;;2745:93:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2745:93:41;-1:-1:-1;;;;;2745:93:41;;;;;;;533:73:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;533:73:3;;;;705:71:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;705:71:58;;;;1092:271:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1092:271:41;-1:-1:-1;;;;;1092:271:41;;;;;;;;;;;4397:340:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4397:340:56;-1:-1:-1;;;;;4397:340:56;;;;;;;842:244:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;842:244:41;-1:-1:-1;;;;;842:244:41;;;;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;;;;;-1:-1:-1;;;;;664:75:55;;;;;;;;;;;;;;1945:257:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1945:257:41;-1:-1:-1;;;;;1945:257:41;;;;;;;;;;;3779:422;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3779:422:41;-1:-1:-1;;;;;3779:422:41;;;;;1635:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1635:144:41;-1:-1:-1;;;;;1635:144:41;;;;;;;1335:150:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1335:150:56;-1:-1:-1;;;;;1335:150:56;;;;;;;;;;584:67:58;641:5;634:12;;;;;;;;-1:-1:-1;;634:12:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;620:6;;634:12;;641:5;;634:12;;641:5;634:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67;:::o;2380:220:56:-;2445:4;-1:-1:-1;;;;;2465:21:56;;;;2457:30;;;;;;2503:10;2494:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;2494:29:56;;;;;;;;;;;;:37;;;2542:36;;;;;;;2494:29;;2503:10;2542:36;;;;;;;;;;;-1:-1:-1;2591:4:56;2380:220;;;;:::o;4445:95:41:-;4512:21;4525:7;4512:12;:21::i;:::-;4445:95;:::o;640:83:56:-;706:12;;640:83;:::o;855:171:55:-;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;1369:260:41:-;1448:4;1464:21;1480:4;1464:15;:21::i;:::-;-1:-1:-1;;;;;1504:16:41;;;;1496:25;;;;;;1548:20;1563:4;1548:14;:20::i;:::-;1539:29;;;1531:38;;;;;;1587:35;1606:4;1612:2;1616:5;1587:18;:35::i;:::-;1580:42;1369:260;-1:-1:-1;;;;1369:260:41:o;423:104:3:-;478:4;501:19;478:4;512:7;501:19;:10;:19;:::i;:::-;494:26;423:104;-1:-1:-1;;423:104:3:o;842:74:58:-;902:9;;;;842:74;:::o;3611:330:56:-;3711:4;-1:-1:-1;;;;;3733:21:56;;;;3725:30;;;;;;3811:10;3802:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3802:29:56;;;;;;;;;;:45;;3836:10;3802:45;:33;:45;:::i;:::-;3771:10;3762:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3762:29:56;;;;;;;;;;;;:86;;;3859:60;;;;;;3762:29;;3859:60;;;;;;;;;;;-1:-1:-1;3932:4:56;3611:330;;;;:::o;2662:77:41:-;2708:24;2714:10;2726:5;2708;:24::i;4207:137::-;-1:-1:-1;;;;;4305:26:41;;;;4282:4;4305:26;;;:17;:26;;;;;;;;:32;;;;;;;;;4207:137::o;1785:154::-;1866:4;1889:43;1907:7;1916:15;1889:17;:43::i;:::-;1882:50;1785:154;-1:-1:-1;;;1785:154:41:o;4350:89::-;4414:18;4424:7;4414:9;:18::i;920:98:56:-;-1:-1:-1;;;;;997:16:56;975:7;997:16;;;:9;:16;;;;;;;920:98::o;2745:93:41:-;2809:22;2819:4;2825:5;2809:9;:22::i;:::-;2745:93;;:::o;533:73:3:-;575:24;588:10;575:12;:24::i;:::-;533:73::o;705:71:58:-;764:7;757:14;;;;;;;-1:-1:-1;;757:14:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;743:6;;757:14;;764:7;;757:14;;764:7;757:14;;;;;;;;;;;;;;;;;;;;;;;;1092:271:41;1192:4;1208:19;1217:2;1221:5;1208:8;:19::i;:::-;;1256:3;1242:11;:17;;;1238:97;;;1275:49;1289:10;1301:2;1305:11;1275:49;;1318:5;1275:13;:49::i;:::-;-1:-1:-1;1352:4:41;1092:271;;;;;:::o;4397:340:56:-;4502:4;-1:-1:-1;;;;;4524:21:56;;;;4516:30;;;;;;4602:10;4593:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4593:29:56;;;;;;;;;;:50;;4627:15;4593:50;:33;:50;:::i;842:244:41:-;903:4;919:27;935:10;919:15;:27::i;:::-;-1:-1:-1;;;;;965:16:41;;;;957:25;;;;;;1009:26;1024:10;1009:14;:26::i;:::-;1000:35;;;992:44;;;;;;1054:25;1069:2;1073:5;1054:14;:25::i;664:75:55:-;726:8;;-1:-1:-1;;;;;726:8:55;664:75;:::o;1945:257:41:-;2032:4;2048:17;2054:2;2058:6;2048:5;:17::i;:::-;2094:3;2080:11;:17;;;2076:98;;;2113:50;2135:1;2139:2;2143:11;2113:50;;2156:6;2113:13;:50::i;3779:422::-;3841:15;3969:9;3878:18;3888:7;3878:9;:18::i;:::-;-1:-1:-1;;;;;3911:26:41;;;;;;:17;:26;;;;;;;;:29;;;;;;;;;3868:28;;-1:-1:-1;3911:34:41;3907:47;;;3947:7;;3907:47;-1:-1:-1;3981:1:41;3964:231;-1:-1:-1;;;;;3988:22:41;;;;;;:13;:22;;;;;:29;3984:33;;3964:231;;;-1:-1:-1;;;;;4042:22:41;;;;;;:13;:22;;;;;:25;;4071:3;;4042:22;4065:1;;4042:25;;;;;;;;;;;;;;:32;;4038:147;;;-1:-1:-1;;;;;4116:26:41;;;;;;:17;:26;;;;;;;;4143:13;:22;;;;;:25;;4104:66;;4116:26;4143:22;4166:1;;4143:25;;;;;;;;;;;;;;4116:53;;;;;;;;;;;;4104:7;:11;;:66;;;;:::i;:::-;4094:76;;4038:147;4019:3;;3964:231;;;3779:422;;;;:::o;1635:144::-;1711:4;1734:38;1752:7;1761:10;1734:17;:38::i;1335:150:56:-;-1:-1:-1;;;;;1456:15:56;;;1432:7;1456:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1335:150::o;733:123:3:-;791:22;:6;805:7;791:22;:13;:22;:::i;:::-;828:21;;-1:-1:-1;;;;;828:21:3;;;;;;;;733:123;:::o;3238:535:41:-;3402:9;-1:-1:-1;;;;;3307:21:41;;;;3299:30;;;;;;-1:-1:-1;;;;;3344:26:41;;;;;;:17;:26;;;;;;;;:29;;;;;;;;;:34;3340:47;;;3380:7;;3340:47;-1:-1:-1;3414:1:41;3397:370;-1:-1:-1;;;;;3421:22:41;;;;;;:13;:22;;;;;:29;3417:33;;3397:370;;;-1:-1:-1;;;;;3475:22:41;;;;;;:13;:22;;;;;:25;;3503:3;;3475:22;3498:1;;3475:25;;;;;;;;;;;;;;:31;3471:286;;;-1:-1:-1;;;;;3613:26:41;;;;;;:17;:26;;;;;;;;3640:13;:22;;;;;:25;;3558:109;;3613:26;3640:22;3663:1;;3640:25;;;;;;;;;;;;;;;;;;3613:53;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3558:26:41;;;;:17;:26;;;;;:29;;;;;;;;;:109;:54;:109;:::i;:::-;-1:-1:-1;;;;;3526:26:41;;;;;;:17;:26;;;;;;;;:29;;;;;;;;;:141;;;;3685:26;;;3712:13;:22;;;;;:25;;3526:26;;;;;3712:22;3735:1;;3712:25;;;;;;;;;;;;;;3685:53;;;;;;;;;;;:57;;;;3471:286;3452:3;;3397:370;;2872:288:56;-1:-1:-1;;;;;3006:14:56;;2975:4;3006:14;;;:8;:14;;;;;;;;3021:10;3006:26;;;;;;;;2997:35;;;2989:44;;;;;;-1:-1:-1;;;;;3069:14:56;;;;;;:8;:14;;;;;;;;3084:10;3069:26;;;;;;;;:37;;3100:5;3069:37;:30;:37;:::i;:::-;-1:-1:-1;;;;;3040:14:56;;;;;;:8;:14;;;;;;;;3055:10;3040:26;;;;;;;:66;3112:26;3049:4;3128:2;3132:5;3112:9;:26::i;725:166:52:-;809:4;-1:-1:-1;;;;;831:21:52;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:52;:11;:20;;;;;;;;;;;;;;;725:166::o;1272:131:54:-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;3045:187:41;3111:24;3127:7;3111:15;:24::i;:::-;3163:23;3178:7;3163:14;:23::i;:::-;3154:32;;;3146:41;;;;;;3198:27;3210:7;3219:5;3198:11;:27::i;612:115:3:-;667:19;:6;678:7;667:19;:10;:19;:::i;:::-;701;;-1:-1:-1;;;;;701:19:3;;;;;;;;612:115;:::o;2844:195:41:-;2914:24;2930:7;2914:15;:24::i;:::-;2966:23;2981:7;2966:14;:23::i;:::-;2957:32;;;2949:41;;;;;;3001:31;3017:7;3026:5;3001:15;:31::i;2208:448::-;-1:-1:-1;;;;;2340:21:41;;;;;;:17;:21;;;;;;;;:24;;;;;;;;;:36;;2369:6;2340:36;:28;:36;:::i;:::-;-1:-1:-1;;;;;2313:21:41;;;;;;:17;:21;;;;;;;;:24;;;;;;;;;:63;;;;2390:34;;;;;:39;2387:104;;;-1:-1:-1;;;;;2445:17:41;;;;;;:13;:17;;;;;;;27:10:-1;;39:1;23:18;;45:23;;2445:35:41;;;;;;;;;2387:104;-1:-1:-1;;;;;2538:21:41;;;;;;:17;:21;;;;;;;;:34;;;;;;;;;:46;;2577:6;2538:46;:38;:46;:::i;:::-;-1:-1:-1;;;;;2501:21:41;;;;;;;:17;:21;;;;;;;;:34;;;;;;;;;:83;;;;2600:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2208:448;;;;:::o;1078:131:54:-;1136:7;;1159:6;;;;1151:15;;;;;;-1:-1:-1;;1184:5:54;;;1078:131::o;1637:127:56:-;1698:4;1710:32;1720:10;1732:2;1736:5;1710:9;:32::i;:::-;-1:-1:-1;1755:4:56;1637:127;;;;:::o;5541:235::-;-1:-1:-1;;;;;5611:12:56;;;;5603:21;;;;;;5645:12;;:23;;5662:5;5645:23;:16;:23;:::i;:::-;5630:12;:38;-1:-1:-1;;;;;5695:18:56;;;;;;:9;:18;;;;;;:29;;5718:5;5695:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;5674:18:56;;;;;;:9;:18;;;;;;;;:50;;;;5735:36;;;;;;;5674:18;;;;5735:36;;;;;;;;;;5541:235;;:::o;477:170:52:-;-1:-1:-1;;;;;552:21:52;;;;544:30;;;;;;588:18;592:4;598:7;588:3;:18::i;:::-;580:27;;;;;;;;-1:-1:-1;;;;;614:20:52;637:5;614:20;;;;;;;;;;;:28;;-1:-1:-1;;614:28:52;;;477:170::o;4937:277:56:-;-1:-1:-1;;;;;5029:15:56;;;;;;:9;:15;;;;;;5020:24;;;5012:33;;;;;;-1:-1:-1;;;;;5059:16:56;;;;5051:25;;;;;;-1:-1:-1;;;;;5101:15:56;;;;;;:9;:15;;;;;;:26;;5121:5;5101:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5083:15:56;;;;;;;:9;:15;;;;;;:44;;;;5149:13;;;;;;;:24;;5167:5;5149:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5133:13:56;;;;;;;:9;:13;;;;;;;;;:40;;;;5184:25;;;;;;;5133:13;;5184:25;;;;;;;;;;;;;4937:277;;;:::o;5988:278::-;-1:-1:-1;;;;;6058:12:56;;;;6050:21;;;;;;-1:-1:-1;;;;;6094:18:56;;;;;;:9;:18;;;;;;6085:27;;;6077:36;;;;;;6135:12;;:23;;6152:5;6135:23;:16;:23;:::i;:::-;6120:12;:38;-1:-1:-1;;;;;6185:18:56;;;;;;:9;:18;;;;;;:29;;6208:5;6185:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6164:18:56;;;;;;:9;:18;;;;;;;;:50;;;;6225:36;;;;;;;6164:18;;6225:36;;;;;;;;;;;5988:278;;:::o;244:167:52:-;-1:-1:-1;;;;;316:21:52;;;;308:30;;;;;;353:18;357:4;363:7;353:3;:18::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:52;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:52;402:4;379:27;;;244:167::o;6572:390:56:-;-1:-1:-1;;;;;6655:17:56;;;;;;:8;:17;;;;;;;;6673:10;6655:29;;;;;;;;6646:38;;;6638:47;;;;;;-1:-1:-1;;;;;6883:17:56;;;;;;:8;:17;;;;;;;;6901:10;6883:29;;;;;;;;:47;;6924:5;6883:47;:33;:47;:::i;:::-;-1:-1:-1;;;;;6851:17:56;;;;;;:8;:17;;;;;;;;6869:10;6851:29;;;;;;;:79;6936:21;6860:7;6951:5;6936;:21::i", + "source": "pragma solidity ^0.4.24;\n\nimport \"./WToken.sol\";\n\ncontract WTokenStub is WToken {\n\n /**\n * @dev Allows for any account besides the owner.\n */\n modifier onlyPrimary() {\n _;\n }\n\n modifier onlyAdmin {\n _;\n }\n\n constructor(string _name, string _symbol, uint8 _decimals) WToken(_name, _symbol, _decimals) public { }\n}\n", "sourcePath": "/home/circleci/code/contracts/token/WTokenStub.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/token/WTokenStub.sol", "exportedSymbols": { "WTokenStub": [ - 8781 + 11077 ] }, - "id": 8782, + "id": 11078, "nodeType": "SourceUnit", "nodes": [ { - "id": 8752, + "id": 11050, "literals": [ "solidity", "^", @@ -592,16 +628,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:31" + "src": "0:24:42" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "./WToken.sol", - "id": 8753, + "id": 11051, "nodeType": "ImportDirective", - "scope": 8782, - "sourceUnit": 8751, - "src": "26:22:31", + "scope": 11078, + "sourceUnit": 11049, + "src": "26:22:42", "symbolAliases": [], "unitAlias": "" }, @@ -611,133 +647,110 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 8754, + "id": 11052, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "74:6:31", + "referencedDeclaration": 11048, + "src": "73:6:42", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 8755, + "id": 11053, "nodeType": "InheritanceSpecifier", - "src": "74:6:31" + "src": "73:6:42" } ], "contractDependencies": [ - 7894, - 8750, - 10134, - 10168, - 10211, - 10243 + 1352, + 1375, + 10485, + 11048, + 12453, + 12897, + 12986, + 13083 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 8781, + "id": 11077, "linearizedBaseContracts": [ - 8781, - 8750, - 10134, - 7894, - 10168, - 10211, - 10243 + 11077, + 11048, + 12453, + 12897, + 12986, + 1352, + 10485, + 1375, + 13083 ], "name": "WTokenStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 8758, + "id": 11056, "nodeType": "Block", - "src": "177:18:31", + "src": "178:18:42", "statements": [ { - "id": 8757, + "id": 11055, "nodeType": "PlaceholderStatement", - "src": "187:1:31" + "src": "188:1:42" } ] }, "documentation": "@dev Allows for any account besides the owner.", - "id": 8759, - "name": "onlyOwner", + "id": 11057, + "name": "onlyPrimary", "nodeType": "ModifierDefinition", "parameters": { - "id": 8756, + "id": 11054, "nodeType": "ParameterList", "parameters": [], - "src": "174:2:31" + "src": "175:2:42" }, - "src": "156:39:31", + "src": "155:41:42", "visibility": "internal" }, { "body": { - "id": 8764, + "id": 11060, "nodeType": "Block", - "src": "238:18:31", + "src": "221:18:42", "statements": [ { - "id": 8763, + "id": 11059, "nodeType": "PlaceholderStatement", - "src": "248:1:31" + "src": "231:1:42" } ] }, "documentation": null, - "id": 8765, - "name": "onlyTrusted", + "id": 11061, + "name": "onlyAdmin", "nodeType": "ModifierDefinition", "parameters": { - "id": 8762, + "id": 11058, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8761, - "name": "caller", - "nodeType": "VariableDeclaration", - "scope": 8765, - "src": "222:14:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8760, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "222:7:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "221:16:31" + "parameters": [], + "src": "221:0:42" }, - "src": "201:55:31", + "src": "202:37:42", "visibility": "internal" }, { "body": { - "id": 8779, + "id": 11075, "nodeType": "Block", - "src": "362:3:31", + "src": "345:3:42", "statements": [] }, "documentation": null, - "id": 8780, + "id": 11076, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -746,12 +759,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8774, + "id": 11070, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8767, - "src": "328:5:31", + "referencedDeclaration": 11063, + "src": "311:5:42", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -759,12 +772,12 @@ }, { "argumentTypes": null, - "id": 8775, + "id": 11071, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8769, - "src": "335:7:31", + "referencedDeclaration": 11065, + "src": "318:7:42", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -772,49 +785,49 @@ }, { "argumentTypes": null, - "id": 8776, + "id": 11072, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8771, - "src": "344:9:31", + "referencedDeclaration": 11067, + "src": "327:9:42", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], - "id": 8777, + "id": 11073, "modifierName": { "argumentTypes": null, - "id": 8773, + "id": 11069, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8750, - "src": "321:6:31", + "referencedDeclaration": 11048, + "src": "304:6:42", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$8750_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$11048_$", "typeString": "type(contract WToken)" } }, "nodeType": "ModifierInvocation", - "src": "321:33:31" + "src": "304:33:42" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 8772, + "id": 11068, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8767, + "id": 11063, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 8780, - "src": "274:12:31", + "scope": 11076, + "src": "257:12:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -822,10 +835,10 @@ "typeString": "string" }, "typeName": { - "id": 8766, + "id": 11062, "name": "string", "nodeType": "ElementaryTypeName", - "src": "274:6:31", + "src": "257:6:42", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -836,11 +849,11 @@ }, { "constant": false, - "id": 8769, + "id": 11065, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 8780, - "src": "288:14:31", + "scope": 11076, + "src": "271:14:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -848,10 +861,10 @@ "typeString": "string" }, "typeName": { - "id": 8768, + "id": 11064, "name": "string", "nodeType": "ElementaryTypeName", - "src": "288:6:31", + "src": "271:6:42", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -862,11 +875,11 @@ }, { "constant": false, - "id": 8771, + "id": 11067, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 8780, - "src": "304:15:31", + "scope": 11076, + "src": "287:15:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -874,10 +887,10 @@ "typeString": "uint8" }, "typeName": { - "id": 8770, + "id": 11066, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "304:5:31", + "src": "287:5:42", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -887,40 +900,40 @@ "visibility": "internal" } ], - "src": "273:47:31" + "src": "256:47:42" }, "payable": false, "returnParameters": { - "id": 8778, + "id": 11074, "nodeType": "ParameterList", "parameters": [], - "src": "362:0:31" + "src": "345:0:42" }, - "scope": 8781, - "src": "262:103:31", + "scope": 11077, + "src": "245:103:42", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 8782, - "src": "51:316:31" + "scope": 11078, + "src": "50:300:42" } ], - "src": "0:368:31" + "src": "0:351:42" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/WTokenStub.sol", "exportedSymbols": { "WTokenStub": [ - 8781 + 11077 ] }, - "id": 8782, + "id": 11078, "nodeType": "SourceUnit", "nodes": [ { - "id": 8752, + "id": 11050, "literals": [ "solidity", "^", @@ -928,16 +941,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:31" + "src": "0:24:42" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "./WToken.sol", - "id": 8753, + "id": 11051, "nodeType": "ImportDirective", - "scope": 8782, - "sourceUnit": 8751, - "src": "26:22:31", + "scope": 11078, + "sourceUnit": 11049, + "src": "26:22:42", "symbolAliases": [], "unitAlias": "" }, @@ -947,133 +960,110 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 8754, + "id": 11052, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "74:6:31", + "referencedDeclaration": 11048, + "src": "73:6:42", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 8755, + "id": 11053, "nodeType": "InheritanceSpecifier", - "src": "74:6:31" + "src": "73:6:42" } ], "contractDependencies": [ - 7894, - 8750, - 10134, - 10168, - 10211, - 10243 + 1352, + 1375, + 10485, + 11048, + 12453, + 12897, + 12986, + 13083 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 8781, + "id": 11077, "linearizedBaseContracts": [ - 8781, - 8750, - 10134, - 7894, - 10168, - 10211, - 10243 + 11077, + 11048, + 12453, + 12897, + 12986, + 1352, + 10485, + 1375, + 13083 ], "name": "WTokenStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 8758, + "id": 11056, "nodeType": "Block", - "src": "177:18:31", + "src": "178:18:42", "statements": [ { - "id": 8757, + "id": 11055, "nodeType": "PlaceholderStatement", - "src": "187:1:31" + "src": "188:1:42" } ] }, "documentation": "@dev Allows for any account besides the owner.", - "id": 8759, - "name": "onlyOwner", + "id": 11057, + "name": "onlyPrimary", "nodeType": "ModifierDefinition", "parameters": { - "id": 8756, + "id": 11054, "nodeType": "ParameterList", "parameters": [], - "src": "174:2:31" + "src": "175:2:42" }, - "src": "156:39:31", + "src": "155:41:42", "visibility": "internal" }, { "body": { - "id": 8764, + "id": 11060, "nodeType": "Block", - "src": "238:18:31", + "src": "221:18:42", "statements": [ { - "id": 8763, + "id": 11059, "nodeType": "PlaceholderStatement", - "src": "248:1:31" + "src": "231:1:42" } ] }, "documentation": null, - "id": 8765, - "name": "onlyTrusted", + "id": 11061, + "name": "onlyAdmin", "nodeType": "ModifierDefinition", "parameters": { - "id": 8762, + "id": 11058, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8761, - "name": "caller", - "nodeType": "VariableDeclaration", - "scope": 8765, - "src": "222:14:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8760, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "222:7:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "221:16:31" + "parameters": [], + "src": "221:0:42" }, - "src": "201:55:31", + "src": "202:37:42", "visibility": "internal" }, { "body": { - "id": 8779, + "id": 11075, "nodeType": "Block", - "src": "362:3:31", + "src": "345:3:42", "statements": [] }, "documentation": null, - "id": 8780, + "id": 11076, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1082,12 +1072,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8774, + "id": 11070, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8767, - "src": "328:5:31", + "referencedDeclaration": 11063, + "src": "311:5:42", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1095,12 +1085,12 @@ }, { "argumentTypes": null, - "id": 8775, + "id": 11071, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8769, - "src": "335:7:31", + "referencedDeclaration": 11065, + "src": "318:7:42", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1108,49 +1098,49 @@ }, { "argumentTypes": null, - "id": 8776, + "id": 11072, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8771, - "src": "344:9:31", + "referencedDeclaration": 11067, + "src": "327:9:42", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], - "id": 8777, + "id": 11073, "modifierName": { "argumentTypes": null, - "id": 8773, + "id": 11069, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8750, - "src": "321:6:31", + "referencedDeclaration": 11048, + "src": "304:6:42", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$8750_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$11048_$", "typeString": "type(contract WToken)" } }, "nodeType": "ModifierInvocation", - "src": "321:33:31" + "src": "304:33:42" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 8772, + "id": 11068, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8767, + "id": 11063, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 8780, - "src": "274:12:31", + "scope": 11076, + "src": "257:12:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1158,10 +1148,10 @@ "typeString": "string" }, "typeName": { - "id": 8766, + "id": 11062, "name": "string", "nodeType": "ElementaryTypeName", - "src": "274:6:31", + "src": "257:6:42", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1172,11 +1162,11 @@ }, { "constant": false, - "id": 8769, + "id": 11065, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 8780, - "src": "288:14:31", + "scope": 11076, + "src": "271:14:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1184,10 +1174,10 @@ "typeString": "string" }, "typeName": { - "id": 8768, + "id": 11064, "name": "string", "nodeType": "ElementaryTypeName", - "src": "288:6:31", + "src": "271:6:42", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1198,11 +1188,11 @@ }, { "constant": false, - "id": 8771, + "id": 11067, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 8780, - "src": "304:15:31", + "scope": 11076, + "src": "287:15:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1210,10 +1200,10 @@ "typeString": "uint8" }, "typeName": { - "id": 8770, + "id": 11066, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "304:5:31", + "src": "287:5:42", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1223,27 +1213,27 @@ "visibility": "internal" } ], - "src": "273:47:31" + "src": "256:47:42" }, "payable": false, "returnParameters": { - "id": 8778, + "id": 11074, "nodeType": "ParameterList", "parameters": [], - "src": "362:0:31" + "src": "345:0:42" }, - "scope": 8781, - "src": "262:103:31", + "scope": 11077, + "src": "245:103:42", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 8782, - "src": "51:316:31" + "scope": 11078, + "src": "50:300:42" } ], - "src": "0:368:31" + "src": "0:351:42" }, "compiler": { "name": "solc", @@ -1253,10 +1243,10 @@ "4": { "events": {}, "links": {}, - "address": "0xd81220c55421bd1f539ae4520c54b1b7e7ca9d7e", - "transactionHash": "0xf552c17e174471118ca6df27a99df4797d5a6c9e4b085c9983ee726143d9483f" + "address": "0x34d3dbe4a053c079d469a8691bee42fdc82bf5a7", + "transactionHash": "0x3187c256e926ab74f2556241224d63243666cfed0cd4fc8743fe493a530854ac" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:53:22.105Z" + "updatedAt": "2018-12-06T13:15:33.736Z" } \ No newline at end of file diff --git a/build/contracts/WTokenTestHelper.json b/build/contracts/WTokenTestHelper.json index c3f3ebdd..f404ca94 100644 --- a/build/contracts/WTokenTestHelper.json +++ b/build/contracts/WTokenTestHelper.json @@ -189,24 +189,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50612185806100206000396000f3006080604052600436106100745763ffffffff60e060020a60003504166304bc3b1c8114610079578063210f5dda146100ac5780634f64b2be1461016a5780639bb0f59914610182578063a4fa9bbd146101b7578063bd5dc202146101ea578063e4dc2aa41461024f578063f7888aec14610270575b600080fd5b34801561008557600080fd5b5061009a600160a060020a0360043516610297565b60408051918252519081900360200190f35b3480156100b857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261014e94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050833560ff169450505060209091013590506102a9565b60408051600160a060020a039092168252519081900360200190f35b34801561017657600080fd5b5061014e6004356105df565b34801561018e57600080fd5b506101a3600160a060020a0360043516610607565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101a3600160a060020a036004358116906024351660443563ffffffff60643516610654565b3480156101f657600080fd5b506101ff61077d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561023b578181015183820152602001610223565b505050509050019250505060405180910390f35b34801561025b57600080fd5b5061009a600160a060020a03600435166107df565b34801561027c57600080fd5b5061009a600160a060020a0360043581169060243516610865565b60016020526000908152604090205481565b60006102b88560056032610909565b15156102c357600080fd5b6102d08460036005610909565b15156102db57600080fd5b600160ff84161180156102f15750601360ff8416105b15156102fc57600080fd5b60638211801561031f57508260ff16600a0a60001981151561031a57fe5b048211155b151561032a57600080fd5b848484610335610c83565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b83811015610379578181015183820152602001610361565b50505050905090810190601f1680156103a65780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156103d95781810151838201526020016103c1565b50505050905090810190601f1680156104065780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801561042a573d6000803e3d6000fd5b50604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a0383169163f2fde38b9160248082019260009290919082900301818387803b15801561048f57600080fd5b505af11580156104a3573d6000803e3d6000fd5b505060008054600160a060020a03851680835260016020818152604080862085905591840185558480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563909301805473ffffffffffffffffffffffffffffffffffffffff19168317905580517fd0047acf00000000000000000000000000000000000000000000000000000000815233600482015260ff8a16600a0a8902602482015260448101859052905191955063d0047acf9450606480820194918390030190829087803b15801561057757600080fd5b505af115801561058b573d6000803e3d6000fd5b505050506040513d60208110156105a157600080fd5b5050604051600160a060020a038216907f0f53e2a811b6fd2d6cd965fd6c27b44fb924ca39f7a7f321115705c22366d62390600090a2949350505050565b60008054829081106105ed57fe5b600091825260209091200154600160a060020a0316905081565b600080548110801561064e5750600160a060020a0382166000818152600160205260408120548154811061063757fe5b600091825260209091200154600160a060020a0316145b92915050565b60008061066086610607565b151561066b57600080fd5b85905080600160a060020a031663d0047acf8683600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106bc57600080fd5b505af11580156106d0573d6000803e3d6000fd5b505050506040513d60208110156106e657600080fd5b50516040805163ffffffff85811660e060020a028252600160a060020a0394909416600482015260ff909216600a0a890260248301529187166044820152905160648083019260209291908290030181600087803b15801561074757600080fd5b505af115801561075b573d6000803e3d6000fd5b505050506040513d602081101561077157600080fd5b50519695505050505050565b606060008054806020026020016040519081016040528092919081815260200182805480156107d557602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116107b7575b5050505050905090565b60006107ea82610607565b15156107f557600080fd5b81600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561083357600080fd5b505af1158015610847573d6000803e3d6000fd5b505050506040513d602081101561085d57600080fd5b505192915050565b600061087083610607565b151561087b57600080fd5b82600160a060020a03166370a08231836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156108d657600080fd5b505af11580156108ea573d6000803e3d6000fd5b505050506040513d602081101561090057600080fd5b50519392505050565b60006060818484101561091b57600080fd5b855186925015801561092b575084155b156109395760019250610c7a565b84825110806109485750838251115b1561095257610c7a565b81600081518110151561096157fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214806109c6575081518290600019810190811061099f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02145b156109d057610c7a565b5060005b8151811015610c755781818151811015156109eb57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02148015610a5157508181600101815181101515610a2957fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214155b158015610b01575081517f300000000000000000000000000000000000000000000000000000000000000090839083908110610a8957fe5b90602001015160f860020a900460f860020a02600160f860020a03191610158015610aff575081517f390000000000000000000000000000000000000000000000000000000000000090839083908110610adf57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b155b8015610bb0575081517f410000000000000000000000000000000000000000000000000000000000000090839083908110610b3857fe5b90602001015160f860020a900460f860020a02600160f860020a03191610158015610bae575081517f5a0000000000000000000000000000000000000000000000000000000000000090839083908110610b8e57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b155b8015610c5f575081517f610000000000000000000000000000000000000000000000000000000000000090839083908110610be757fe5b90602001015160f860020a900460f860020a02600160f860020a03191610158015610c5d575081517f7a0000000000000000000000000000000000000000000000000000000000000090839083908110610c3d57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b155b15610c6d5760009250610c7a565b6001016109d4565b600192505b50509392505050565b6040516114c680610c9483390190560060806040523480156200001157600080fd5b50604051620014c6380380620014c68339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000ba565b5081516200006e906001906020850190620000ba565b506002805460ff90921660ff1992831617905560058054600160a060020a031916339081179091556000908152600b6020526040902080549091166001179055506200015f9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000fd57805160ff19168380011785556200012d565b828001600101855582156200012d579182015b828111156200012d57825182559160200191906001019062000110565b506200013b9291506200013f565b5090565b6200015c91905b808211156200013b576000815560010162000146565b90565b611357806200016f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108fc565b34801561035e57600080fd5b50610367610992565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109a1565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109fb565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610aa7565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b7a565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bb2565b34801561044357600080fd5b5061020e600160a060020a0360043516610cf8565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610dfd565b34801561048857600080fd5b506102ae600160a060020a0360043516610e96565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610ed1565b3480156104d057600080fd5b506102ae600160a060020a0360043516610efc565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085490565b60006105ea84610f1c565b600160a060020a03831615156105ff57600080fd5b61060884610cf8565b82111561061457600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526007602052604090205461066d908363ffffffff61108b16565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106a2908363ffffffff61109d16565b600160a060020a0380851660009081526007602090815260408083209490945591871681526006825282812033825290915220546106e6908363ffffffff61108b16565b600160a060020a038086166000818152600660209081526040808320338452825291829020949094558051868152905192871693919260008051602061130c833981519152929181900390910190a35060019392505050565b60076020526000908152604090205481565b60025460ff1681565b61076433826110b0565b50565b600960209081526000928352604080842090915290825290205481565b336000908152600660209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600660209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff61108b16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526007602052604090205490565b600554600160a060020a031633146108a557600080fd5b600554604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038216600090815260066020908152604080832033845290915290205481111561092c57600080fd5b600160a060020a0382166000908152600660209081526040808320338452909152902054610960908263ffffffff61108b16565b600160a060020a038316600090815260066020908152604080832033845290915290205561098e82826110b0565b5050565b600554600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b336000818152600b602052604081205490919060ff161515610a1c57600080fd5b610a268585610aa7565b50428363ffffffff161115610a4857610a486000868563ffffffff1687611198565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ab233610f1c565b600160a060020a0383161515610ac757600080fd5b610ad033610cf8565b821115610adc57600080fd5b33600090815260076020526040902054610afc908363ffffffff61108b16565b3360009081526007602052604080822092909255600160a060020a03851681522054610b2e908363ffffffff61109d16565b600160a060020a03841660008181526007602090815260409182902093909355805185815290519192339260008051602061130c8339815191529281900390910190a350600192915050565b600554600160a060020a03163314610b9157600080fd5b600160a060020a03166000908152600b60205260409020805460ff19169055565b336000818152600b602052604081205490919060ff161515610bd357600080fd5b600854610be6818663ffffffff61109d16565b11610bf057600080fd5b428363ffffffff161115610c1157610c116000868563ffffffff1687611198565b600160a060020a038516600090815260076020526040902054610c3a908563ffffffff61109d16565b600160a060020a038616600090815260076020526040902055600854610c66908563ffffffff61109d16565b600855604080518581529051600160a060020a0387169160009160008051602061130c8339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260076020908152604080832054600983528184208480529092528220549091901515610d3257610df7565b5060005b600160a060020a0383166000908152600a6020526040902054811015610df757600160a060020a0383166000908152600a60205260409020805442919083908110610d7d57fe5b9060005260206000200154101515610def57600160a060020a0383166000908152600960209081526040808320600a90925282208054610dec93919085908110610dc357fe5b90600052602060002001548152602001908152602001600020548361108b90919063ffffffff16565b91505b600101610d36565b50919050565b336000908152600660209081526040808320600160a060020a0386168452909152812054610e31908363ffffffff61109d16565b336000818152600660209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600554600160a060020a03163314610ead57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600554600160a060020a03163314610f1357600080fd5b6107648161128d565b600160a060020a03811660009081526009602090815260408083208380529091528120541515610f4b5761098e565b5060005b600160a060020a0382166000908152600a602052604090205481101561098e57600160a060020a0382166000908152600a60205260409020805442919083908110610f9657fe5b9060005260206000200154101561108357600160a060020a0382166000908152600960209081526040808320600a9092528220805461102193919085908110610fdb57fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526009845282822082805290935220549063ffffffff61108b16565b600160a060020a038316600081815260096020908152604080832083805280835281842095909555928252600a905290812080549192918391908590811061106557fe5b90600052602060002001548152602001908152602001600020819055505b600101610f4f565b60008282111561109757fe5b50900390565b818101828110156110aa57fe5b92915050565b6110b982610f1c565b6110c282610cf8565b8111156110ce57600080fd5b600160a060020a0382166000908152600760205260409020546110f7908263ffffffff61108b16565b600160a060020a038316600090815260076020526040902055600854611123908263ffffffff61108b16565b600855604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061130c8339815191529181900360200190a35050565b600160a060020a03831660009081526009602090815260408083208380529091529020546111cc908263ffffffff61109d16565b600160a060020a0384166000908152600960209081526040808320838052909152808220929092558381522054151561122b57600160a060020a0383166000908152600a60209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260096020908152604080832085845290915290205461125f908263ffffffff61109d16565b600160a060020a03909316600090815260096020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112a257600080fd5b600554604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582001f3b8ffebfc578122646c111958154798ff2fde3bc58f72b8cbe911bdfe9e600029a165627a7a72305820e99f660a9a91d3deb74178fbbb6474194f9afe88683421fbff62c3b467ba8de20029", - "deployedBytecode": "0x6080604052600436106100745763ffffffff60e060020a60003504166304bc3b1c8114610079578063210f5dda146100ac5780634f64b2be1461016a5780639bb0f59914610182578063a4fa9bbd146101b7578063bd5dc202146101ea578063e4dc2aa41461024f578063f7888aec14610270575b600080fd5b34801561008557600080fd5b5061009a600160a060020a0360043516610297565b60408051918252519081900360200190f35b3480156100b857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261014e94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050833560ff169450505060209091013590506102a9565b60408051600160a060020a039092168252519081900360200190f35b34801561017657600080fd5b5061014e6004356105df565b34801561018e57600080fd5b506101a3600160a060020a0360043516610607565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101a3600160a060020a036004358116906024351660443563ffffffff60643516610654565b3480156101f657600080fd5b506101ff61077d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561023b578181015183820152602001610223565b505050509050019250505060405180910390f35b34801561025b57600080fd5b5061009a600160a060020a03600435166107df565b34801561027c57600080fd5b5061009a600160a060020a0360043581169060243516610865565b60016020526000908152604090205481565b60006102b88560056032610909565b15156102c357600080fd5b6102d08460036005610909565b15156102db57600080fd5b600160ff84161180156102f15750601360ff8416105b15156102fc57600080fd5b60638211801561031f57508260ff16600a0a60001981151561031a57fe5b048211155b151561032a57600080fd5b848484610335610c83565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b83811015610379578181015183820152602001610361565b50505050905090810190601f1680156103a65780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156103d95781810151838201526020016103c1565b50505050905090810190601f1680156104065780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801561042a573d6000803e3d6000fd5b50604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a0383169163f2fde38b9160248082019260009290919082900301818387803b15801561048f57600080fd5b505af11580156104a3573d6000803e3d6000fd5b505060008054600160a060020a03851680835260016020818152604080862085905591840185558480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563909301805473ffffffffffffffffffffffffffffffffffffffff19168317905580517fd0047acf00000000000000000000000000000000000000000000000000000000815233600482015260ff8a16600a0a8902602482015260448101859052905191955063d0047acf9450606480820194918390030190829087803b15801561057757600080fd5b505af115801561058b573d6000803e3d6000fd5b505050506040513d60208110156105a157600080fd5b5050604051600160a060020a038216907f0f53e2a811b6fd2d6cd965fd6c27b44fb924ca39f7a7f321115705c22366d62390600090a2949350505050565b60008054829081106105ed57fe5b600091825260209091200154600160a060020a0316905081565b600080548110801561064e5750600160a060020a0382166000818152600160205260408120548154811061063757fe5b600091825260209091200154600160a060020a0316145b92915050565b60008061066086610607565b151561066b57600080fd5b85905080600160a060020a031663d0047acf8683600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106bc57600080fd5b505af11580156106d0573d6000803e3d6000fd5b505050506040513d60208110156106e657600080fd5b50516040805163ffffffff85811660e060020a028252600160a060020a0394909416600482015260ff909216600a0a890260248301529187166044820152905160648083019260209291908290030181600087803b15801561074757600080fd5b505af115801561075b573d6000803e3d6000fd5b505050506040513d602081101561077157600080fd5b50519695505050505050565b606060008054806020026020016040519081016040528092919081815260200182805480156107d557602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116107b7575b5050505050905090565b60006107ea82610607565b15156107f557600080fd5b81600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561083357600080fd5b505af1158015610847573d6000803e3d6000fd5b505050506040513d602081101561085d57600080fd5b505192915050565b600061087083610607565b151561087b57600080fd5b82600160a060020a03166370a08231836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156108d657600080fd5b505af11580156108ea573d6000803e3d6000fd5b505050506040513d602081101561090057600080fd5b50519392505050565b60006060818484101561091b57600080fd5b855186925015801561092b575084155b156109395760019250610c7a565b84825110806109485750838251115b1561095257610c7a565b81600081518110151561096157fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214806109c6575081518290600019810190811061099f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02145b156109d057610c7a565b5060005b8151811015610c755781818151811015156109eb57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02148015610a5157508181600101815181101515610a2957fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214155b158015610b01575081517f300000000000000000000000000000000000000000000000000000000000000090839083908110610a8957fe5b90602001015160f860020a900460f860020a02600160f860020a03191610158015610aff575081517f390000000000000000000000000000000000000000000000000000000000000090839083908110610adf57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b155b8015610bb0575081517f410000000000000000000000000000000000000000000000000000000000000090839083908110610b3857fe5b90602001015160f860020a900460f860020a02600160f860020a03191610158015610bae575081517f5a0000000000000000000000000000000000000000000000000000000000000090839083908110610b8e57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b155b8015610c5f575081517f610000000000000000000000000000000000000000000000000000000000000090839083908110610be757fe5b90602001015160f860020a900460f860020a02600160f860020a03191610158015610c5d575081517f7a0000000000000000000000000000000000000000000000000000000000000090839083908110610c3d57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b155b15610c6d5760009250610c7a565b6001016109d4565b600192505b50509392505050565b6040516114c680610c9483390190560060806040523480156200001157600080fd5b50604051620014c6380380620014c68339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000ba565b5081516200006e906001906020850190620000ba565b506002805460ff90921660ff1992831617905560058054600160a060020a031916339081179091556000908152600b6020526040902080549091166001179055506200015f9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000fd57805160ff19168380011785556200012d565b828001600101855582156200012d579182015b828111156200012d57825182559160200191906001019062000110565b506200013b9291506200013f565b5090565b6200015c91905b808211156200013b576000815560010162000146565b90565b611357806200016f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108fc565b34801561035e57600080fd5b50610367610992565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109a1565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109fb565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610aa7565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b7a565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bb2565b34801561044357600080fd5b5061020e600160a060020a0360043516610cf8565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610dfd565b34801561048857600080fd5b506102ae600160a060020a0360043516610e96565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610ed1565b3480156104d057600080fd5b506102ae600160a060020a0360043516610efc565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085490565b60006105ea84610f1c565b600160a060020a03831615156105ff57600080fd5b61060884610cf8565b82111561061457600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526007602052604090205461066d908363ffffffff61108b16565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106a2908363ffffffff61109d16565b600160a060020a0380851660009081526007602090815260408083209490945591871681526006825282812033825290915220546106e6908363ffffffff61108b16565b600160a060020a038086166000818152600660209081526040808320338452825291829020949094558051868152905192871693919260008051602061130c833981519152929181900390910190a35060019392505050565b60076020526000908152604090205481565b60025460ff1681565b61076433826110b0565b50565b600960209081526000928352604080842090915290825290205481565b336000908152600660209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600660209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff61108b16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526007602052604090205490565b600554600160a060020a031633146108a557600080fd5b600554604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038216600090815260066020908152604080832033845290915290205481111561092c57600080fd5b600160a060020a0382166000908152600660209081526040808320338452909152902054610960908263ffffffff61108b16565b600160a060020a038316600090815260066020908152604080832033845290915290205561098e82826110b0565b5050565b600554600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b336000818152600b602052604081205490919060ff161515610a1c57600080fd5b610a268585610aa7565b50428363ffffffff161115610a4857610a486000868563ffffffff1687611198565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ab233610f1c565b600160a060020a0383161515610ac757600080fd5b610ad033610cf8565b821115610adc57600080fd5b33600090815260076020526040902054610afc908363ffffffff61108b16565b3360009081526007602052604080822092909255600160a060020a03851681522054610b2e908363ffffffff61109d16565b600160a060020a03841660008181526007602090815260409182902093909355805185815290519192339260008051602061130c8339815191529281900390910190a350600192915050565b600554600160a060020a03163314610b9157600080fd5b600160a060020a03166000908152600b60205260409020805460ff19169055565b336000818152600b602052604081205490919060ff161515610bd357600080fd5b600854610be6818663ffffffff61109d16565b11610bf057600080fd5b428363ffffffff161115610c1157610c116000868563ffffffff1687611198565b600160a060020a038516600090815260076020526040902054610c3a908563ffffffff61109d16565b600160a060020a038616600090815260076020526040902055600854610c66908563ffffffff61109d16565b600855604080518581529051600160a060020a0387169160009160008051602061130c8339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260076020908152604080832054600983528184208480529092528220549091901515610d3257610df7565b5060005b600160a060020a0383166000908152600a6020526040902054811015610df757600160a060020a0383166000908152600a60205260409020805442919083908110610d7d57fe5b9060005260206000200154101515610def57600160a060020a0383166000908152600960209081526040808320600a90925282208054610dec93919085908110610dc357fe5b90600052602060002001548152602001908152602001600020548361108b90919063ffffffff16565b91505b600101610d36565b50919050565b336000908152600660209081526040808320600160a060020a0386168452909152812054610e31908363ffffffff61109d16565b336000818152600660209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600554600160a060020a03163314610ead57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600554600160a060020a03163314610f1357600080fd5b6107648161128d565b600160a060020a03811660009081526009602090815260408083208380529091528120541515610f4b5761098e565b5060005b600160a060020a0382166000908152600a602052604090205481101561098e57600160a060020a0382166000908152600a60205260409020805442919083908110610f9657fe5b9060005260206000200154101561108357600160a060020a0382166000908152600960209081526040808320600a9092528220805461102193919085908110610fdb57fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526009845282822082805290935220549063ffffffff61108b16565b600160a060020a038316600081815260096020908152604080832083805280835281842095909555928252600a905290812080549192918391908590811061106557fe5b90600052602060002001548152602001908152602001600020819055505b600101610f4f565b60008282111561109757fe5b50900390565b818101828110156110aa57fe5b92915050565b6110b982610f1c565b6110c282610cf8565b8111156110ce57600080fd5b600160a060020a0382166000908152600760205260409020546110f7908263ffffffff61108b16565b600160a060020a038316600090815260076020526040902055600854611123908263ffffffff61108b16565b600855604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061130c8339815191529181900360200190a35050565b600160a060020a03831660009081526009602090815260408083208380529091529020546111cc908263ffffffff61109d16565b600160a060020a0384166000908152600960209081526040808320838052909152808220929092558381522054151561122b57600160a060020a0383166000908152600a60209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260096020908152604080832085845290915290205461125f908263ffffffff61109d16565b600160a060020a03909316600090815260096020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112a257600080fd5b600554604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582001f3b8ffebfc578122646c111958154798ff2fde3bc58f72b8cbe911bdfe9e600029a165627a7a72305820e99f660a9a91d3deb74178fbbb6474194f9afe88683421fbff62c3b467ba8de20029", - "sourceMap": "51:2761:32:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:2761:32;;;;;;;", - "deployedSourceMap": "51:2761:32:-;;;;;;;;;-1:-1:-1;;;51:2761:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;112:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;112:47:32;-1:-1:-1;;;;;112:47:32;;;;;;;;;;;;;;;;;;;;;217:674;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;217:674:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;217:674:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;217:674:32;;;;-1:-1:-1;217:674:32;-1:-1:-1;217:674:32;;-1:-1:-1;217:674:32;;;;;;;;-1:-1:-1;217:674:32;;-1:-1:-1;;;217:674:32;;;;;-1:-1:-1;;;217:674:32;;;;;;-1:-1:-1;217:674:32;;;;;;-1:-1:-1;;;;;217:674:32;;;;;;;;;;;;;;83:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;83:23:32;;;;;986:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;986:162:32;-1:-1:-1;;;;;986:162:32;;;;;;;;;;;;;;;;;;;;;;;1154:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1154:281:32;-1:-1:-1;;;;;1154:281:32;;;;;;;;;;;;;;;;897:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;897:83:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;897:83:32;;;;;;;;;;;;;;;;;1635:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1635:170:32;-1:-1:-1;;;;;1635:170:32;;;;;1441:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1441:188:32;-1:-1:-1;;;;;1441:188:32;;;;;;;;;;112:47;;;;;;;;;;;;;:::o;217:674::-;320:12;352:28;367:5;374:1;377:2;352:14;:28::i;:::-;344:37;;;;;;;;399:29;414:7;423:1;426;399:14;:29::i;:::-;391:38;;;;;;;;465:1;447:20;;;;:45;;;;-1:-1:-1;489:2:32;471:21;;;;447:45;439:54;;;;;;;;527:2;511:13;:18;:73;;;;;573:9;568:15;;562:2;:21;-1:-1:-1;;551:32:32;;;;;;;;533:13;:51;;511:73;503:82;;;;;;;;615:5;622:7;631:9;604:37;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;604:37:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;604:37:32;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;604:37:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;651:35:32;;;;;;675:10;651:35;;;;;;596:45;;-1:-1:-1;;;;;;651:23:32;;;;;:35;;;;;-1:-1:-1;;651:35:32;;;;;;;;-1:-1:-1;651:23:32;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;651:35:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;728:6:32;:13;;-1:-1:-1;;;;;697:28:32;;;;;:12;:28;;;;;;;;:44;;;23:18:-1;;;45:23;;751:27:32;;;;;;;;;-1:-1:-1;;751:27:32;;;;;789:64;;;;;800:10;789:64;;;;834:15;;;828:2;:21;812:37;;789:64;;;;;;;;;;;;697:28;;-1:-1:-1;789:10:32;;-1:-1:-1;789:64:32;;;;;;;;;;;;;697:28;789:64;;;5:2:-1;;;;30:1;27;20:12;5:2;789:64:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;789:64:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;869:15:32;;-1:-1:-1;;;;;869:15:32;;;;;;;;217:674;;;;;;:::o;83:23::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;83:23:32;;-1:-1:-1;83:23:32;:::o;986:162::-;1047:4;1070:13;;:17;-1:-1:-1;1070:71:32;;;;-1:-1:-1;;;;;;1091:50:32;;:6;1098:26;;;:12;:26;;;;;;1091:34;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1091:34:32;:50;1070:71;1063:78;986:162;-1:-1:-1;;986:162:32:o;1154:281::-;1251:4;1309:12;1275:22;1284:12;1275:8;:22::i;:::-;1267:31;;;;;;;;1331:12;1309:35;;1362:5;-1:-1:-1;;;;;1362:10:32;;1373:2;1397:5;-1:-1:-1;;;;;1397:14:32;;:16;;;;;-1:-1:-1;;;1397:16:32;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1397:16:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1397:16:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1397:16:32;1362:66;;;;;;;-1:-1:-1;;;1362:66:32;;;-1:-1:-1;;;;;1362:66:32;;;;;;;;1392:22;;;;1386:2;:28;1377:37;;1362:66;;;;;;;;;;;;;;;;;;1397:16;;1362:66;;;;;;;-1:-1:-1;1362:66:32;;;;5:2:-1;;;;30:1;27;20:12;5:2;1362:66:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1362:66:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1362:66:32;;1154:281;-1:-1:-1;;;;;;1154:281:32:o;897:83::-;939:9;967:6;960:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;960:13:32;;;;;;;;;;;;;;;;;;;;;;;897:83;:::o;1635:170::-;1699:4;1723:22;1732:12;1723:8;:22::i;:::-;1715:31;;;;;;;;1771:12;-1:-1:-1;;;;;1764:32:32;;:34;;;;;-1:-1:-1;;;1764:34:32;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1764:34:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1764:34:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1764:34:32;;1635:170;-1:-1:-1;;1635:170:32:o;1441:188::-;1519:4;1543:22;1552:12;1543:8;:22::i;:::-;1535:31;;;;;;;;1591:12;-1:-1:-1;;;;;1584:30:32;;1615:6;1584:38;;;;;-1:-1:-1;;;1584:38:32;;;;;;;-1:-1:-1;;;;;1584:38:32;-1:-1:-1;;;;;1584:38:32;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1584:38:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1584:38:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1584:38:32;;1441:188;-1:-1:-1;;;1441:188:32:o;1811:999::-;1897:4;1947:25;1897:4;1921:14;;;;1913:23;;;;;;2027:19;;1981:7;;-1:-1:-1;2027:24:32;:38;;;;-1:-1:-1;2055:10:32;;2027:38;2023:55;;;2074:4;2067:11;;;;2023:55;2142:5;2120:12;:19;:27;:58;;;;2173:5;2151:12;:19;:27;2120:58;2116:71;;;2180:7;;2116:71;2242:12;2255:1;2242:15;;;;;;;;;;;;;;;-1:-1:-1;;;2242:15:32;;-1:-1:-1;;;2242:15:32;-1:-1:-1;;;;;2242:23:32;;2261:4;-1:-1:-1;;;2242:23:32;;:72;;;-1:-1:-1;2282:19:32;;2269:12;;-1:-1:-1;;2282:23:32;;;2269:37;;;;;;;;;;;-1:-1:-1;;;2269:37:32;;-1:-1:-1;;;2269:37:32;-1:-1:-1;;;;;2269:45:32;;2310:4;-1:-1:-1;;;2269:45:32;;2242:72;2238:85;;;2316:7;;2238:85;-1:-1:-1;2346:1:32;2333:449;2353:12;:19;2349:1;:23;2333:449;;;2416:12;2429:1;2416:15;;;;;;;;;;;;;;;-1:-1:-1;;;2416:15:32;;-1:-1:-1;;;2416:15:32;-1:-1:-1;;;;;2416:23:32;;2435:4;-1:-1:-1;;;2416:23:32;;:54;;;;;2443:12;2456:1;2460;2456:5;2443:19;;;;;;;;;;;;;;;-1:-1:-1;;;2443:19:32;;-1:-1:-1;;;2443:19:32;-1:-1:-1;;;;;2443:27:32;;2466:4;-1:-1:-1;;;2443:27:32;;;2416:54;2414:57;:163;;;;-1:-1:-1;2526:15:32;;:23;;:12;;2539:1;;2526:15;;;;;;;;;;;-1:-1:-1;;;2526:15:32;;-1:-1:-1;;;2526:15:32;-1:-1:-1;;;;;2526:23:32;;;;:50;;;;-1:-1:-1;2553:15:32;;:23;;:12;;2566:1;;2553:15;;;;;;;;;;;-1:-1:-1;;;2553:15:32;;-1:-1:-1;;;2553:15:32;-1:-1:-1;;;;;2553:23:32;;;;2526:50;2524:53;2414:163;:243;;;;-1:-1:-1;2606:15:32;;:23;;:12;;2619:1;;2606:15;;;;;;;;;;;-1:-1:-1;;;2606:15:32;;-1:-1:-1;;;2606:15:32;-1:-1:-1;;;;;2606:23:32;;;;:50;;;;-1:-1:-1;2633:15:32;;:23;;:12;;2646:1;;2633:15;;;;;;;;;;;-1:-1:-1;;;2633:15:32;;-1:-1:-1;;;2633:15:32;-1:-1:-1;;;;;2633:23:32;;;;2606:50;2604:53;2414:243;:323;;;;-1:-1:-1;2686:15:32;;:23;;:12;;2699:1;;2686:15;;;;;;;;;;;-1:-1:-1;;;2686:15:32;;-1:-1:-1;;;2686:15:32;-1:-1:-1;;;;;2686:23:32;;;;:50;;;;-1:-1:-1;2713:15:32;;:23;;:12;;2726:1;;2713:15;;;;;;;;;;;-1:-1:-1;;;2713:15:32;;-1:-1:-1;;;2713:15:32;-1:-1:-1;;;;;2713:23:32;;;;2686:50;2684:53;2414:323;2393:378;;;2766:5;2759:12;;;;2393:378;2374:3;;2333:449;;;2799:4;2792:11;;1811:999;;;;;;;;:::o;51:2761::-;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"./WToken.sol\";\n\n\ncontract WTokenTestHelper {\n address[] public tokens;\n mapping(address => uint256) public tokenIndexes;\n\n event NewToken(address indexed tokenAddress);\n\n function createToken(string _name, string _symbol, uint8 _decimals, uint amountToIssue) public returns(WToken token) {\n require(_isStringValid(_name, 5, 50));\n require(_isStringValid(_symbol, 3, 5));\n require(_decimals > uint8(1) && _decimals < uint8(19));\n require(amountToIssue > 99 && amountToIssue <= (uint(-1) / 10 ** uint(_decimals)));\n\n token = new WToken(_name, _symbol, _decimals);\n token.transferOwnership(msg.sender);\n\n tokenIndexes[address(token)] = tokens.length;\n tokens.push(address(token));\n\n token.mint(msg.sender, amountToIssue * 10 ** uint(_decimals), 0);\n\n emit NewToken(token);\n }\n\n function tokensList() public view returns(address[]) {\n return tokens;\n }\n\n function hasToken(address tokenAddress) public view returns (bool) {\n return tokens.length > 0 && tokens[tokenIndexes[tokenAddress]] == tokenAddress;\n }\n\n function mint(address tokenAddress, address to, uint amount, uint32 vestingTime) public returns (bool) {\n require(hasToken(tokenAddress));\n\n WToken token = WToken(tokenAddress);\n\n return token.mint(to, amount * 10 ** uint(token.decimals()), vestingTime);\n }\n\n function balanceOf(address tokenAddress, address wallet) public view returns (uint) {\n require(hasToken(tokenAddress));\n\n return WToken(tokenAddress).balanceOf(wallet);\n }\n\n function totalSupply(address tokenAddress) public view returns (uint) {\n require(hasToken(tokenAddress));\n\n return WToken(tokenAddress).totalSupply();\n }\n\n function _isStringValid(string _string, uint minLn, uint maxLn) internal pure returns(bool) {\n require(maxLn >= minLn);\n\n bytes memory _stringBytes = bytes(_string);\n\n // allow empty\n if (_stringBytes.length == 0 && minLn == 0) return true;\n // not match length\n if (_stringBytes.length < minLn || _stringBytes.length > maxLn) return;\n // spaces at beginning and ending\n if (_stringBytes[0] == 0x20 || _stringBytes[_stringBytes.length - 1] == 0x20) return;\n\n for(uint i = 0; i < _stringBytes.length; i++) {\n if (\n !(_stringBytes[i] == 0x20 && _stringBytes[i + 1] != 0x20) // space, not followed by space\n && !(_stringBytes[i] >= 0x30 && _stringBytes[i] <= 0x39) // 0-9\n && !(_stringBytes[i] >= 0x41 && _stringBytes[i] <= 0x5a) // A-Z\n && !(_stringBytes[i] >= 0x61 && _stringBytes[i] <= 0x7a) // a-z\n ) return false;\n }\n\n return true;\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b506123b8806100206000396000f3006080604052600436106200007d5763ffffffff60e060020a60003504166304bc3b1c811462000082578063210f5dda14620000b85780634f64b2be14620001795780639bb0f5991462000194578063a4fa9bbd14620001cc578063bd5dc2021462000202578063e4dc2aa4146200026c578063f7888aec1462000290575b600080fd5b3480156200008f57600080fd5b50620000a6600160a060020a0360043516620002ba565b60408051918252519081900360200190f35b348015620000c557600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526200015d94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050833560ff16945050506020909101359050620002cc565b60408051600160a060020a039092168252519081900360200190f35b3480156200018657600080fd5b506200015d6004356200061b565b348015620001a157600080fd5b50620001b8600160a060020a036004351662000644565b604080519115158252519081900360200190f35b348015620001d957600080fd5b50620001b8600160a060020a036004358116906024351660443563ffffffff6064351662000693565b3480156200020f57600080fd5b506200021a620007c5565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620002585781810151838201526020016200023e565b505050509050019250505060405180910390f35b3480156200027957600080fd5b50620000a6600160a060020a036004351662000829565b3480156200029d57600080fd5b50620000a6600160a060020a0360043581169060243516620008b5565b60016020526000908152604090205481565b6000620002dd85600560326200095f565b1515620002e957600080fd5b620002f884600360056200095f565b15156200030457600080fd5b600160ff84161180156200031b5750601360ff8416105b15156200032757600080fd5b6063821180156200034c57508260ff16600a0a6000198115156200034757fe5b048211155b15156200035857600080fd5b8484846200036562000cf8565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b83811015620003ab57818101518382015260200162000391565b50505050905090810190601f168015620003d95780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156200040e578181015183820152602001620003f4565b50505050905090810190601f1680156200043c5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000461573d6000803e3d6000fd5b50604080517f2348238c0000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691632348238c9160248082019260009290919082900301818387803b158015620004c757600080fd5b505af1158015620004dc573d6000803e3d6000fd5b505060008054600160a060020a03851680835260016020818152604080862085905591840185558480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563909301805473ffffffffffffffffffffffffffffffffffffffff19168317905580517fd0047acf00000000000000000000000000000000000000000000000000000000815233600482015260ff8a16600a0a8902602482015260448101859052905191955063d0047acf9450606480820194918390030190829087803b158015620005b157600080fd5b505af1158015620005c6573d6000803e3d6000fd5b505050506040513d6020811015620005dd57600080fd5b5050604051600160a060020a038216907f0f53e2a811b6fd2d6cd965fd6c27b44fb924ca39f7a7f321115705c22366d62390600090a2949350505050565b60008054829081106200062a57fe5b600091825260209091200154600160a060020a0316905081565b60008054811080156200068d5750600160a060020a038216600081815260016020526040812054815481106200067657fe5b600091825260209091200154600160a060020a0316145b92915050565b600080620006a18662000644565b1515620006ad57600080fd5b85905080600160a060020a031663d0047acf8683600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620006ff57600080fd5b505af115801562000714573d6000803e3d6000fd5b505050506040513d60208110156200072b57600080fd5b50516040805163ffffffff85811660e060020a028252600160a060020a0394909416600482015260ff909216600a0a890260248301529187166044820152905160648083019260209291908290030181600087803b1580156200078d57600080fd5b505af1158015620007a2573d6000803e3d6000fd5b505050506040513d6020811015620007b957600080fd5b50519695505050505050565b606060008054806020026020016040519081016040528092919081815260200182805480156200081f57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000800575b5050505050905090565b6000620008368262000644565b15156200084257600080fd5b81600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200088157600080fd5b505af115801562000896573d6000803e3d6000fd5b505050506040513d6020811015620008ad57600080fd5b505192915050565b6000620008c28362000644565b1515620008ce57600080fd5b82600160a060020a03166370a08231836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156200092a57600080fd5b505af11580156200093f573d6000803e3d6000fd5b505050506040513d60208110156200095657600080fd5b50519392505050565b6000606081848410156200097257600080fd5b855186925015801562000983575084155b1562000993576001925062000cef565b8482511080620009a35750838251115b15620009af5762000cef565b816000815181101515620009bf57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02148062000a265750815182906000198101908110620009ff57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02145b1562000a325762000cef565b5060005b815181101562000cea57818181518110151562000a4f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214801562000ab75750818160010181518110151562000a8f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214155b15801562000b6b575081517f30000000000000000000000000000000000000000000000000000000000000009083908390811062000af157fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801562000b69575081517f39000000000000000000000000000000000000000000000000000000000000009083908390811062000b4957fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b155b801562000c1e575081517f41000000000000000000000000000000000000000000000000000000000000009083908390811062000ba457fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801562000c1c575081517f5a000000000000000000000000000000000000000000000000000000000000009083908390811062000bfc57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b155b801562000cd1575081517f61000000000000000000000000000000000000000000000000000000000000009083908390811062000c5757fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801562000ccf575081517f7a000000000000000000000000000000000000000000000000000000000000009083908390811062000caf57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b155b1562000ce1576000925062000cef565b60010162000a36565b600192505b50509392505050565b6040516116838062000d0a83390190560060806040523480156200001157600080fd5b50604051620016833803806200168383398101604090815281516020830151918301519083019291909101908282826200005433640100000000620000f1810204565b825162000069906001906020860190620001d6565b5081516200007f906002906020850190620001d6565b506003805460ff90921660ff19909216919091179055505060078054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a15050506200027b565b6200010c600082640100000000620012ec6200014382021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b600160a060020a03811615156200015957600080fd5b6200016e82826401000000006200019e810204565b156200017957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001b657600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021957805160ff191683800117855562000249565b8280016001018555821562000249579182015b82811115620002495782518255916020019190600101906200022c565b50620002579291506200025b565b5090565b6200027891905b8082111562000257576000815560010162000262565b90565b6113f8806200028b6000396000f3006080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d75780631785f53c1461020f57806318160ddd146102325780632348238c1461025957806323b872dd1461027a57806324d7806c146102a4578063313ce567146102c557806339509351146102f057806342966c68146103145780634afbf5ee1461032c5780636618846314610350578063704802751461037457806370a082311461039557806379cc6790146103b65780638bad0c0a146103da57806395d89b41146103ef5780639d2e477714610404578063a457c2d714610431578063a9059cbb14610455578063c6dbdf6114610479578063d0047acf146104aa578063d294cb0f146104d7578063d73dd623146104f8578063dd62ed3e1461051c575b600080fd5b34801561015957600080fd5b50610162610543565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019c578181015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e357600080fd5b506101fb600160a060020a03600435166024356105d8565b604080519115158252519081900360200190f35b34801561021b57600080fd5b50610230600160a060020a0360043516610656565b005b34801561023e57600080fd5b50610247610679565b60408051918252519081900360200190f35b34801561026557600080fd5b50610230600160a060020a036004351661067f565b34801561028657600080fd5b506101fb600160a060020a0360043581169060243516604435610712565b3480156102b057600080fd5b506101fb600160a060020a036004351661075a565b3480156102d157600080fd5b506102da610772565b6040805160ff9092168252519081900360200190f35b3480156102fc57600080fd5b506101fb600160a060020a036004351660243561077b565b34801561032057600080fd5b5061023060043561082b565b34801561033857600080fd5b50610247600160a060020a0360043516602435610835565b34801561035c57600080fd5b506101fb600160a060020a036004351660243561085d565b34801561038057600080fd5b50610230600160a060020a0360043516610870565b3480156103a157600080fd5b50610247600160a060020a0360043516610890565b3480156103c257600080fd5b50610230600160a060020a03600435166024356108ab565b3480156103e657600080fd5b506102306108b9565b3480156103fb57600080fd5b506101626108c4565b34801561041057600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610922565b34801561043d57600080fd5b506101fb600160a060020a036004351660243561096d565b34801561046157600080fd5b506101fb600160a060020a03600435166024356109b8565b34801561048557600080fd5b5061048e6109f7565b60408051600160a060020a039092168252519081900360200190f35b3480156104b657600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610a06565b3480156104e357600080fd5b50610247600160a060020a0360043516610a47565b34801561050457600080fd5b506101fb600160a060020a0360043516602435610b50565b34801561052857600080fd5b50610247600160a060020a0360043581169060243516610b5c565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b820191906000526020600020905b8154815290600101906020018083116105b157829003601f168201915b5050505050905090565b6000600160a060020a03831615156105ef57600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600754600160a060020a0316331461066d57600080fd5b61067681610b87565b50565b60065490565b600754600160a060020a0316331461069657600080fd5b600160a060020a03811615156106ab57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600061071d84610bcf565b600160a060020a038316151561073257600080fd5b61073b84610a47565b82111561074757600080fd5b610752848484610d55565b949350505050565b600061076c818363ffffffff610de816565b92915050565b60035460ff1690565b6000600160a060020a038316151561079257600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff610e1f16565b336000818152600560209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6106763382610e31565b600160a060020a03919091166000908152600860209081526040808320938352929052205490565b6000610869838361096d565b9392505050565b600754600160a060020a0316331461088757600080fd5b61067681610e59565b600160a060020a031660009081526004602052604090205490565b6108b58282610ea1565b5050565b6108c233610b87565b565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b600061092d3361075a565b151561093857600080fd5b61094284846109b8565b50428263ffffffff1611156109635761096333858463ffffffff1686610ec9565b5060019392505050565b6000600160a060020a038316151561098457600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff61100316565b60006109c333610bcf565b600160a060020a03831615156109d857600080fd5b6109e133610a47565b8211156109ed57600080fd5b610869838361101a565b600754600160a060020a031690565b6000610a113361075a565b1515610a1c57600080fd5b610a268484611030565b428263ffffffff161115610963576109636000858463ffffffff1686610ec9565b600080610a5383610890565b600160a060020a03841660009081526008602090815260408083208380529091529020549092501515610a8557610b4a565b5060005b600160a060020a038316600090815260096020526040902054811015610b4a57600160a060020a0383166000908152600960205260409020805442919083908110610ad057fe5b9060005260206000200154101515610b4257600160a060020a0383166000908152600860209081526040808320600990925282208054610b3f93919085908110610b1657fe5b90600052602060002001548152602001908152602001600020548361100390919063ffffffff16565b91505b600101610a89565b50919050565b6000610869838361077b565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610b9860008263ffffffff6110dc16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515610be657600080fd5b600160a060020a03821660009081526008602090815260408083208380529091529020541515610c15576108b5565b5060005b600160a060020a0382166000908152600960205260409020548110156108b557600160a060020a0382166000908152600960205260409020805442919083908110610c6057fe5b90600052602060002001541015610d4d57600160a060020a0382166000908152600860209081526040808320600990925282208054610ceb93919085908110610ca557fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526008845282822082805290935220549063ffffffff61100316565b600160a060020a03831660008181526008602090815260408083208380528083528184209590955592825260099052908120805491929183919085908110610d2f57fe5b90600052602060002001548152602001908152602001600020819055505b600101610c19565b600160a060020a0383166000908152600560209081526040808320338452909152812054821115610d8557600080fd5b600160a060020a0384166000908152600560209081526040808320338452909152902054610db9908363ffffffff61100316565b600160a060020a0385166000908152600560209081526040808320338452909152902055610963848484611128565b6000600160a060020a0382161515610dff57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b60008282018381101561086957600080fd5b610e3a82610bcf565b610e4382610a47565b811115610e4f57600080fd5b6108b5828261121c565b610e6a60008263ffffffff6112ec16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b610eaa82610bcf565b610eb382610a47565b811115610ebf57600080fd5b6108b5828261133a565b600160a060020a0383166000908152600860209081526040808320838052909152902054610efd908263ffffffff610e1f16565b600160a060020a03841660009081526008602090815260408083208380529091528082209290925583815220541515610f5c57600160a060020a0383166000908152600960209081526040822080546001810182559083529120018290555b600160a060020a0383166000908152600860209081526040808320858452909152902054610f90908263ffffffff610e1f16565b600160a060020a0380851660008181526008602090815260408083208884528252918290209490945580519288168352928201528082018390526060810184905290517f4dd99b63a45b55ac0b6999b9307251132e130b3e3f06c04c92b946c0f9e0dc279181900360800190a150505050565b6000808383111561101357600080fd5b5050900390565b6000611027338484611128565b50600192915050565b600160a060020a038216151561104557600080fd5b600654611058908263ffffffff610e1f16565b600655600160a060020a038216600090815260046020526040902054611084908263ffffffff610e1f16565b600160a060020a03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a03811615156110f157600080fd5b6110fb8282610de8565b151561110657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03831660009081526004602052604090205481111561114d57600080fd5b600160a060020a038216151561116257600080fd5b600160a060020a03831660009081526004602052604090205461118b908263ffffffff61100316565b600160a060020a0380851660009081526004602052604080822093909355908416815220546111c0908263ffffffff610e1f16565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a038216151561123157600080fd5b600160a060020a03821660009081526004602052604090205481111561125657600080fd5b600654611269908263ffffffff61100316565b600655600160a060020a038216600090815260046020526040902054611295908263ffffffff61100316565b600160a060020a0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a038116151561130157600080fd5b61130b8282610de8565b1561131557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038216600090815260056020908152604080832033845290915290205481111561136a57600080fd5b600160a060020a038216600090815260056020908152604080832033845290915290205461139e908263ffffffff61100316565b600160a060020a03831660009081526005602090815260408083203384529091529020556108b58282610e315600a165627a7a72305820062db0e6b0457b0016fe92cec01a2f813c664af8fd4f12281ebacf073384bab80029a165627a7a7230582000bc0f5dae172da53423cdfb79c74e9cde83ab74f4f2c3942053c3646e484b4f0029", + "deployedBytecode": "0x6080604052600436106200007d5763ffffffff60e060020a60003504166304bc3b1c811462000082578063210f5dda14620000b85780634f64b2be14620001795780639bb0f5991462000194578063a4fa9bbd14620001cc578063bd5dc2021462000202578063e4dc2aa4146200026c578063f7888aec1462000290575b600080fd5b3480156200008f57600080fd5b50620000a6600160a060020a0360043516620002ba565b60408051918252519081900360200190f35b348015620000c557600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526200015d94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050833560ff16945050506020909101359050620002cc565b60408051600160a060020a039092168252519081900360200190f35b3480156200018657600080fd5b506200015d6004356200061b565b348015620001a157600080fd5b50620001b8600160a060020a036004351662000644565b604080519115158252519081900360200190f35b348015620001d957600080fd5b50620001b8600160a060020a036004358116906024351660443563ffffffff6064351662000693565b3480156200020f57600080fd5b506200021a620007c5565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620002585781810151838201526020016200023e565b505050509050019250505060405180910390f35b3480156200027957600080fd5b50620000a6600160a060020a036004351662000829565b3480156200029d57600080fd5b50620000a6600160a060020a0360043581169060243516620008b5565b60016020526000908152604090205481565b6000620002dd85600560326200095f565b1515620002e957600080fd5b620002f884600360056200095f565b15156200030457600080fd5b600160ff84161180156200031b5750601360ff8416105b15156200032757600080fd5b6063821180156200034c57508260ff16600a0a6000198115156200034757fe5b048211155b15156200035857600080fd5b8484846200036562000cf8565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b83811015620003ab57818101518382015260200162000391565b50505050905090810190601f168015620003d95780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156200040e578181015183820152602001620003f4565b50505050905090810190601f1680156200043c5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000461573d6000803e3d6000fd5b50604080517f2348238c0000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691632348238c9160248082019260009290919082900301818387803b158015620004c757600080fd5b505af1158015620004dc573d6000803e3d6000fd5b505060008054600160a060020a03851680835260016020818152604080862085905591840185558480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563909301805473ffffffffffffffffffffffffffffffffffffffff19168317905580517fd0047acf00000000000000000000000000000000000000000000000000000000815233600482015260ff8a16600a0a8902602482015260448101859052905191955063d0047acf9450606480820194918390030190829087803b158015620005b157600080fd5b505af1158015620005c6573d6000803e3d6000fd5b505050506040513d6020811015620005dd57600080fd5b5050604051600160a060020a038216907f0f53e2a811b6fd2d6cd965fd6c27b44fb924ca39f7a7f321115705c22366d62390600090a2949350505050565b60008054829081106200062a57fe5b600091825260209091200154600160a060020a0316905081565b60008054811080156200068d5750600160a060020a038216600081815260016020526040812054815481106200067657fe5b600091825260209091200154600160a060020a0316145b92915050565b600080620006a18662000644565b1515620006ad57600080fd5b85905080600160a060020a031663d0047acf8683600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620006ff57600080fd5b505af115801562000714573d6000803e3d6000fd5b505050506040513d60208110156200072b57600080fd5b50516040805163ffffffff85811660e060020a028252600160a060020a0394909416600482015260ff909216600a0a890260248301529187166044820152905160648083019260209291908290030181600087803b1580156200078d57600080fd5b505af1158015620007a2573d6000803e3d6000fd5b505050506040513d6020811015620007b957600080fd5b50519695505050505050565b606060008054806020026020016040519081016040528092919081815260200182805480156200081f57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000800575b5050505050905090565b6000620008368262000644565b15156200084257600080fd5b81600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200088157600080fd5b505af115801562000896573d6000803e3d6000fd5b505050506040513d6020811015620008ad57600080fd5b505192915050565b6000620008c28362000644565b1515620008ce57600080fd5b82600160a060020a03166370a08231836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156200092a57600080fd5b505af11580156200093f573d6000803e3d6000fd5b505050506040513d60208110156200095657600080fd5b50519392505050565b6000606081848410156200097257600080fd5b855186925015801562000983575084155b1562000993576001925062000cef565b8482511080620009a35750838251115b15620009af5762000cef565b816000815181101515620009bf57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02148062000a265750815182906000198101908110620009ff57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02145b1562000a325762000cef565b5060005b815181101562000cea57818181518110151562000a4f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214801562000ab75750818160010181518110151562000a8f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214155b15801562000b6b575081517f30000000000000000000000000000000000000000000000000000000000000009083908390811062000af157fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801562000b69575081517f39000000000000000000000000000000000000000000000000000000000000009083908390811062000b4957fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b155b801562000c1e575081517f41000000000000000000000000000000000000000000000000000000000000009083908390811062000ba457fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801562000c1c575081517f5a000000000000000000000000000000000000000000000000000000000000009083908390811062000bfc57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b155b801562000cd1575081517f61000000000000000000000000000000000000000000000000000000000000009083908390811062000c5757fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801562000ccf575081517f7a000000000000000000000000000000000000000000000000000000000000009083908390811062000caf57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b155b1562000ce1576000925062000cef565b60010162000a36565b600192505b50509392505050565b6040516116838062000d0a83390190560060806040523480156200001157600080fd5b50604051620016833803806200168383398101604090815281516020830151918301519083019291909101908282826200005433640100000000620000f1810204565b825162000069906001906020860190620001d6565b5081516200007f906002906020850190620001d6565b506003805460ff90921660ff19909216919091179055505060078054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a15050506200027b565b6200010c600082640100000000620012ec6200014382021704565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b600160a060020a03811615156200015957600080fd5b6200016e82826401000000006200019e810204565b156200017957600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001b657600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021957805160ff191683800117855562000249565b8280016001018555821562000249579182015b82811115620002495782518255916020019190600101906200022c565b50620002579291506200025b565b5090565b6200027891905b8082111562000257576000815560010162000262565b90565b6113f8806200028b6000396000f3006080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d75780631785f53c1461020f57806318160ddd146102325780632348238c1461025957806323b872dd1461027a57806324d7806c146102a4578063313ce567146102c557806339509351146102f057806342966c68146103145780634afbf5ee1461032c5780636618846314610350578063704802751461037457806370a082311461039557806379cc6790146103b65780638bad0c0a146103da57806395d89b41146103ef5780639d2e477714610404578063a457c2d714610431578063a9059cbb14610455578063c6dbdf6114610479578063d0047acf146104aa578063d294cb0f146104d7578063d73dd623146104f8578063dd62ed3e1461051c575b600080fd5b34801561015957600080fd5b50610162610543565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019c578181015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e357600080fd5b506101fb600160a060020a03600435166024356105d8565b604080519115158252519081900360200190f35b34801561021b57600080fd5b50610230600160a060020a0360043516610656565b005b34801561023e57600080fd5b50610247610679565b60408051918252519081900360200190f35b34801561026557600080fd5b50610230600160a060020a036004351661067f565b34801561028657600080fd5b506101fb600160a060020a0360043581169060243516604435610712565b3480156102b057600080fd5b506101fb600160a060020a036004351661075a565b3480156102d157600080fd5b506102da610772565b6040805160ff9092168252519081900360200190f35b3480156102fc57600080fd5b506101fb600160a060020a036004351660243561077b565b34801561032057600080fd5b5061023060043561082b565b34801561033857600080fd5b50610247600160a060020a0360043516602435610835565b34801561035c57600080fd5b506101fb600160a060020a036004351660243561085d565b34801561038057600080fd5b50610230600160a060020a0360043516610870565b3480156103a157600080fd5b50610247600160a060020a0360043516610890565b3480156103c257600080fd5b50610230600160a060020a03600435166024356108ab565b3480156103e657600080fd5b506102306108b9565b3480156103fb57600080fd5b506101626108c4565b34801561041057600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610922565b34801561043d57600080fd5b506101fb600160a060020a036004351660243561096d565b34801561046157600080fd5b506101fb600160a060020a03600435166024356109b8565b34801561048557600080fd5b5061048e6109f7565b60408051600160a060020a039092168252519081900360200190f35b3480156104b657600080fd5b506101fb600160a060020a036004351660243563ffffffff60443516610a06565b3480156104e357600080fd5b50610247600160a060020a0360043516610a47565b34801561050457600080fd5b506101fb600160a060020a0360043516602435610b50565b34801561052857600080fd5b50610247600160a060020a0360043581169060243516610b5c565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b820191906000526020600020905b8154815290600101906020018083116105b157829003601f168201915b5050505050905090565b6000600160a060020a03831615156105ef57600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600754600160a060020a0316331461066d57600080fd5b61067681610b87565b50565b60065490565b600754600160a060020a0316331461069657600080fd5b600160a060020a03811615156106ab57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600061071d84610bcf565b600160a060020a038316151561073257600080fd5b61073b84610a47565b82111561074757600080fd5b610752848484610d55565b949350505050565b600061076c818363ffffffff610de816565b92915050565b60035460ff1690565b6000600160a060020a038316151561079257600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff610e1f16565b336000818152600560209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6106763382610e31565b600160a060020a03919091166000908152600860209081526040808320938352929052205490565b6000610869838361096d565b9392505050565b600754600160a060020a0316331461088757600080fd5b61067681610e59565b600160a060020a031660009081526004602052604090205490565b6108b58282610ea1565b5050565b6108c233610b87565b565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105ce5780601f106105a3576101008083540402835291602001916105ce565b600061092d3361075a565b151561093857600080fd5b61094284846109b8565b50428263ffffffff1611156109635761096333858463ffffffff1686610ec9565b5060019392505050565b6000600160a060020a038316151561098457600080fd5b336000908152600560209081526040808320600160a060020a03871684529091529020546107c6908363ffffffff61100316565b60006109c333610bcf565b600160a060020a03831615156109d857600080fd5b6109e133610a47565b8211156109ed57600080fd5b610869838361101a565b600754600160a060020a031690565b6000610a113361075a565b1515610a1c57600080fd5b610a268484611030565b428263ffffffff161115610963576109636000858463ffffffff1686610ec9565b600080610a5383610890565b600160a060020a03841660009081526008602090815260408083208380529091529020549092501515610a8557610b4a565b5060005b600160a060020a038316600090815260096020526040902054811015610b4a57600160a060020a0383166000908152600960205260409020805442919083908110610ad057fe5b9060005260206000200154101515610b4257600160a060020a0383166000908152600860209081526040808320600990925282208054610b3f93919085908110610b1657fe5b90600052602060002001548152602001908152602001600020548361100390919063ffffffff16565b91505b600101610a89565b50919050565b6000610869838361077b565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610b9860008263ffffffff6110dc16565b604051600160a060020a038216907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250565b6000600160a060020a0382161515610be657600080fd5b600160a060020a03821660009081526008602090815260408083208380529091529020541515610c15576108b5565b5060005b600160a060020a0382166000908152600960205260409020548110156108b557600160a060020a0382166000908152600960205260409020805442919083908110610c6057fe5b90600052602060002001541015610d4d57600160a060020a0382166000908152600860209081526040808320600990925282208054610ceb93919085908110610ca557fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526008845282822082805290935220549063ffffffff61100316565b600160a060020a03831660008181526008602090815260408083208380528083528184209590955592825260099052908120805491929183919085908110610d2f57fe5b90600052602060002001548152602001908152602001600020819055505b600101610c19565b600160a060020a0383166000908152600560209081526040808320338452909152812054821115610d8557600080fd5b600160a060020a0384166000908152600560209081526040808320338452909152902054610db9908363ffffffff61100316565b600160a060020a0385166000908152600560209081526040808320338452909152902055610963848484611128565b6000600160a060020a0382161515610dff57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b60008282018381101561086957600080fd5b610e3a82610bcf565b610e4382610a47565b811115610e4f57600080fd5b6108b5828261121c565b610e6a60008263ffffffff6112ec16565b604051600160a060020a038216907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a250565b610eaa82610bcf565b610eb382610a47565b811115610ebf57600080fd5b6108b5828261133a565b600160a060020a0383166000908152600860209081526040808320838052909152902054610efd908263ffffffff610e1f16565b600160a060020a03841660009081526008602090815260408083208380529091528082209290925583815220541515610f5c57600160a060020a0383166000908152600960209081526040822080546001810182559083529120018290555b600160a060020a0383166000908152600860209081526040808320858452909152902054610f90908263ffffffff610e1f16565b600160a060020a0380851660008181526008602090815260408083208884528252918290209490945580519288168352928201528082018390526060810184905290517f4dd99b63a45b55ac0b6999b9307251132e130b3e3f06c04c92b946c0f9e0dc279181900360800190a150505050565b6000808383111561101357600080fd5b5050900390565b6000611027338484611128565b50600192915050565b600160a060020a038216151561104557600080fd5b600654611058908263ffffffff610e1f16565b600655600160a060020a038216600090815260046020526040902054611084908263ffffffff610e1f16565b600160a060020a03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a03811615156110f157600080fd5b6110fb8282610de8565b151561110657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03831660009081526004602052604090205481111561114d57600080fd5b600160a060020a038216151561116257600080fd5b600160a060020a03831660009081526004602052604090205461118b908263ffffffff61100316565b600160a060020a0380851660009081526004602052604080822093909355908416815220546111c0908263ffffffff610e1f16565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a038216151561123157600080fd5b600160a060020a03821660009081526004602052604090205481111561125657600080fd5b600654611269908263ffffffff61100316565b600655600160a060020a038216600090815260046020526040902054611295908263ffffffff61100316565b600160a060020a0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a038116151561130157600080fd5b61130b8282610de8565b1561131557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038216600090815260056020908152604080832033845290915290205481111561136a57600080fd5b600160a060020a038216600090815260056020908152604080832033845290915290205461139e908263ffffffff61100316565b600160a060020a03831660009081526005602090815260408083203384529091529020556108b58282610e315600a165627a7a72305820062db0e6b0457b0016fe92cec01a2f813c664af8fd4f12281ebacf073384bab80029a165627a7a7230582000bc0f5dae172da53423cdfb79c74e9cde83ab74f4f2c3942053c3646e484b4f0029", + "sourceMap": "50:2759:43:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50:2759:43;;;;;;;", + "deployedSourceMap": "50:2759:43:-;;;;;;;;;-1:-1:-1;;;50:2759:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;111:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;111:47:43;-1:-1:-1;;;;;111:47:43;;;;;;;;;;;;;;;;;;;;;216:672;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;216:672:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:672:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:672:43;;;;-1:-1:-1;216:672:43;-1:-1:-1;216:672:43;;-1:-1:-1;216:672:43;;;;;;;;-1:-1:-1;216:672:43;;-1:-1:-1;;;216:672:43;;;;;-1:-1:-1;;;216:672:43;;;;;;-1:-1:-1;216:672:43;;;;;;-1:-1:-1;;;;;216:672:43;;;;;;;;;;;;;;82:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;82:23:43;;;;;983:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;983:162:43;-1:-1:-1;;;;;983:162:43;;;;;;;;;;;;;;;;;;;;;;;1151:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1151:281:43;-1:-1:-1;;;;;1151:281:43;;;;;;;;;;;;;;;;894:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;894:83:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;894:83:43;;;;;;;;;;;;;;;;;1632:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1632:170:43;-1:-1:-1;;;;;1632:170:43;;;;;1438:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1438:188:43;-1:-1:-1;;;;;1438:188:43;;;;;;;;;;111:47;;;;;;;;;;;;;:::o;216:672::-;319:12;351:28;366:5;373:1;376:2;351:14;:28::i;:::-;343:37;;;;;;;;398:29;413:7;422:1;425;398:14;:29::i;:::-;390:38;;;;;;;;464:1;446:20;;;;:45;;;;-1:-1:-1;488:2:43;470:21;;;;446:45;438:54;;;;;;;;526:2;510:13;:18;:73;;;;;572:9;567:15;;561:2;:21;-1:-1:-1;;550:32:43;;;;;;;;532:13;:51;;510:73;502:82;;;;;;;;614:5;621:7;630:9;603:37;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;603:37:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;603:37:43;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;603:37:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;650:33:43;;;;;;672:10;650:33;;;;;;595:45;;-1:-1:-1;;;;;;650:21:43;;;;;:33;;;;;-1:-1:-1;;650:33:43;;;;;;;;-1:-1:-1;650:21:43;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;650:33:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;725:6:43;:13;;-1:-1:-1;;;;;694:28:43;;;;;:12;:28;;;;;;;;:44;;;23:18:-1;;;45:23;;748:27:43;;;;;;;;;-1:-1:-1;;748:27:43;;;;;786:64;;;;;797:10;786:64;;;;831:15;;;825:2;:21;809:37;;786:64;;;;;;;;;;;;694:28;;-1:-1:-1;786:10:43;;-1:-1:-1;786:64:43;;;;;;;;;;;;;694:28;786:64;;;5:2:-1;;;;30:1;27;20:12;5:2;786:64:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;786:64:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;866:15:43;;-1:-1:-1;;;;;866:15:43;;;;;;;;216:672;;;;;;:::o;82:23::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;82:23:43;;-1:-1:-1;82:23:43;:::o;983:162::-;1044:4;1067:13;;:17;-1:-1:-1;1067:71:43;;;;-1:-1:-1;;;;;;1088:50:43;;:6;1095:26;;;:12;:26;;;;;;1088:34;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1088:34:43;:50;1067:71;1060:78;983:162;-1:-1:-1;;983:162:43:o;1151:281::-;1248:4;1306:12;1272:22;1281:12;1272:8;:22::i;:::-;1264:31;;;;;;;;1328:12;1306:35;;1359:5;-1:-1:-1;;;;;1359:10:43;;1370:2;1394:5;-1:-1:-1;;;;;1394:14:43;;:16;;;;;-1:-1:-1;;;1394:16:43;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1394:16:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1394:16:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1394:16:43;1359:66;;;;;;;-1:-1:-1;;;1359:66:43;;;-1:-1:-1;;;;;1359:66:43;;;;;;;;1389:22;;;;1383:2;:28;1374:37;;1359:66;;;;;;;;;;;;;;;;;;1394:16;;1359:66;;;;;;;-1:-1:-1;1359:66:43;;;;5:2:-1;;;;30:1;27;20:12;5:2;1359:66:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1359:66:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1359:66:43;;1151:281;-1:-1:-1;;;;;;1151:281:43:o;894:83::-;936:9;964:6;957:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;957:13:43;;;;;;;;;;;;;;;;;;;;;;;894:83;:::o;1632:170::-;1696:4;1720:22;1729:12;1720:8;:22::i;:::-;1712:31;;;;;;;;1768:12;-1:-1:-1;;;;;1761:32:43;;:34;;;;;-1:-1:-1;;;1761:34:43;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1761:34:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1761:34:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1761:34:43;;1632:170;-1:-1:-1;;1632:170:43:o;1438:188::-;1516:4;1540:22;1549:12;1540:8;:22::i;:::-;1532:31;;;;;;;;1588:12;-1:-1:-1;;;;;1581:30:43;;1612:6;1581:38;;;;;-1:-1:-1;;;1581:38:43;;;;;;;-1:-1:-1;;;;;1581:38:43;-1:-1:-1;;;;;1581:38:43;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1581:38:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1581:38:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1581:38:43;;1438:188;-1:-1:-1;;;1438:188:43:o;1808:999::-;1894:4;1944:25;1894:4;1918:14;;;;1910:23;;;;;;2024:19;;1978:7;;-1:-1:-1;2024:24:43;:38;;;;-1:-1:-1;2052:10:43;;2024:38;2020:55;;;2071:4;2064:11;;;;2020:55;2139:5;2117:12;:19;:27;:58;;;;2170:5;2148:12;:19;:27;2117:58;2113:71;;;2177:7;;2113:71;2239:12;2252:1;2239:15;;;;;;;;;;;;;;;-1:-1:-1;;;2239:15:43;;-1:-1:-1;;;2239:15:43;-1:-1:-1;;;;;2239:23:43;;2258:4;-1:-1:-1;;;2239:23:43;;:72;;;-1:-1:-1;2279:19:43;;2266:12;;-1:-1:-1;;2279:23:43;;;2266:37;;;;;;;;;;;-1:-1:-1;;;2266:37:43;;-1:-1:-1;;;2266:37:43;-1:-1:-1;;;;;2266:45:43;;2307:4;-1:-1:-1;;;2266:45:43;;2239:72;2235:85;;;2313:7;;2235:85;-1:-1:-1;2343:1:43;2330:449;2350:12;:19;2346:1;:23;2330:449;;;2413:12;2426:1;2413:15;;;;;;;;;;;;;;;-1:-1:-1;;;2413:15:43;;-1:-1:-1;;;2413:15:43;-1:-1:-1;;;;;2413:23:43;;2432:4;-1:-1:-1;;;2413:23:43;;:54;;;;;2440:12;2453:1;2457;2453:5;2440:19;;;;;;;;;;;;;;;-1:-1:-1;;;2440:19:43;;-1:-1:-1;;;2440:19:43;-1:-1:-1;;;;;2440:27:43;;2463:4;-1:-1:-1;;;2440:27:43;;;2413:54;2411:57;:163;;;;-1:-1:-1;2523:15:43;;:23;;:12;;2536:1;;2523:15;;;;;;;;;;;-1:-1:-1;;;2523:15:43;;-1:-1:-1;;;2523:15:43;-1:-1:-1;;;;;2523:23:43;;;;:50;;;;-1:-1:-1;2550:15:43;;:23;;:12;;2563:1;;2550:15;;;;;;;;;;;-1:-1:-1;;;2550:15:43;;-1:-1:-1;;;2550:15:43;-1:-1:-1;;;;;2550:23:43;;;;2523:50;2521:53;2411:163;:243;;;;-1:-1:-1;2603:15:43;;:23;;:12;;2616:1;;2603:15;;;;;;;;;;;-1:-1:-1;;;2603:15:43;;-1:-1:-1;;;2603:15:43;-1:-1:-1;;;;;2603:23:43;;;;:50;;;;-1:-1:-1;2630:15:43;;:23;;:12;;2643:1;;2630:15;;;;;;;;;;;-1:-1:-1;;;2630:15:43;;-1:-1:-1;;;2630:15:43;-1:-1:-1;;;;;2630:23:43;;;;2603:50;2601:53;2411:243;:323;;;;-1:-1:-1;2683:15:43;;:23;;:12;;2696:1;;2683:15;;;;;;;;;;;-1:-1:-1;;;2683:15:43;;-1:-1:-1;;;2683:15:43;-1:-1:-1;;;;;2683:23:43;;;;:50;;;;-1:-1:-1;2710:15:43;;:23;;:12;;2723:1;;2710:15;;;;;;;;;;;-1:-1:-1;;;2710:15:43;;-1:-1:-1;;;2710:15:43;-1:-1:-1;;;;;2710:23:43;;;;2683:50;2681:53;2411:323;2390:378;;;2763:5;2756:12;;;;2390:378;2371:3;;2330:449;;;2796:4;2789:11;;1808:999;;;;;;;;:::o;50:2759::-;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"./WToken.sol\";\n\ncontract WTokenTestHelper {\n address[] public tokens;\n mapping(address => uint256) public tokenIndexes;\n\n event NewToken(address indexed tokenAddress);\n\n function createToken(string _name, string _symbol, uint8 _decimals, uint amountToIssue) public returns(WToken token) {\n require(_isStringValid(_name, 5, 50));\n require(_isStringValid(_symbol, 3, 5));\n require(_decimals > uint8(1) && _decimals < uint8(19));\n require(amountToIssue > 99 && amountToIssue <= (uint(-1) / 10 ** uint(_decimals)));\n\n token = new WToken(_name, _symbol, _decimals);\n token.transferPrimary(msg.sender);\n\n tokenIndexes[address(token)] = tokens.length;\n tokens.push(address(token));\n\n token.mint(msg.sender, amountToIssue * 10 ** uint(_decimals), 0);\n\n emit NewToken(token);\n }\n\n function tokensList() public view returns(address[]) {\n return tokens;\n }\n\n function hasToken(address tokenAddress) public view returns (bool) {\n return tokens.length > 0 && tokens[tokenIndexes[tokenAddress]] == tokenAddress;\n }\n\n function mint(address tokenAddress, address to, uint amount, uint32 vestingTime) public returns (bool) {\n require(hasToken(tokenAddress));\n\n WToken token = WToken(tokenAddress);\n\n return token.mint(to, amount * 10 ** uint(token.decimals()), vestingTime);\n }\n\n function balanceOf(address tokenAddress, address wallet) public view returns (uint) {\n require(hasToken(tokenAddress));\n\n return WToken(tokenAddress).balanceOf(wallet);\n }\n\n function totalSupply(address tokenAddress) public view returns (uint) {\n require(hasToken(tokenAddress));\n\n return WToken(tokenAddress).totalSupply();\n }\n\n function _isStringValid(string _string, uint minLn, uint maxLn) internal pure returns(bool) {\n require(maxLn >= minLn);\n\n bytes memory _stringBytes = bytes(_string);\n\n // allow empty\n if (_stringBytes.length == 0 && minLn == 0) return true;\n // not match length\n if (_stringBytes.length < minLn || _stringBytes.length > maxLn) return;\n // spaces at beginning and ending\n if (_stringBytes[0] == 0x20 || _stringBytes[_stringBytes.length - 1] == 0x20) return;\n\n for(uint i = 0; i < _stringBytes.length; i++) {\n if (\n !(_stringBytes[i] == 0x20 && _stringBytes[i + 1] != 0x20) // space, not followed by space\n && !(_stringBytes[i] >= 0x30 && _stringBytes[i] <= 0x39) // 0-9\n && !(_stringBytes[i] >= 0x41 && _stringBytes[i] <= 0x5a) // A-Z\n && !(_stringBytes[i] >= 0x61 && _stringBytes[i] <= 0x7a) // a-z\n ) return false;\n }\n\n return true;\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/token/WTokenTestHelper.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/token/WTokenTestHelper.sol", "exportedSymbols": { "WTokenTestHelper": [ - 9163 + 11459 ] }, - "id": 9164, + "id": 11460, "nodeType": "SourceUnit", "nodes": [ { - "id": 8783, + "id": 11079, "literals": [ "solidity", "^", @@ -214,41 +214,41 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:32" + "src": "0:24:43" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "./WToken.sol", - "id": 8784, + "id": 11080, "nodeType": "ImportDirective", - "scope": 9164, - "sourceUnit": 8751, - "src": "26:22:32", + "scope": 11460, + "sourceUnit": 11049, + "src": "26:22:43", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ - 8750 + 11048 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 9163, + "id": 11459, "linearizedBaseContracts": [ - 9163 + 11459 ], "name": "WTokenTestHelper", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 8787, + "id": 11083, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 9163, - "src": "83:23:32", + "scope": 11459, + "src": "82:23:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -257,19 +257,19 @@ }, "typeName": { "baseType": { - "id": 8785, + "id": 11081, "name": "address", "nodeType": "ElementaryTypeName", - "src": "83:7:32", + "src": "82:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 8786, + "id": 11082, "length": null, "nodeType": "ArrayTypeName", - "src": "83:9:32", + "src": "82:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -280,11 +280,11 @@ }, { "constant": false, - "id": 8791, + "id": 11087, "name": "tokenIndexes", "nodeType": "VariableDeclaration", - "scope": 9163, - "src": "112:47:32", + "scope": 11459, + "src": "111:47:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -292,28 +292,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 8790, + "id": 11086, "keyType": { - "id": 8788, + "id": 11084, "name": "address", "nodeType": "ElementaryTypeName", - "src": "120:7:32", + "src": "119:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "112:27:32", + "src": "111:27:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 8789, + "id": 11085, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "131:7:32", + "src": "130:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -326,21 +326,21 @@ { "anonymous": false, "documentation": null, - "id": 8795, + "id": 11091, "name": "NewToken", "nodeType": "EventDefinition", "parameters": { - "id": 8794, + "id": 11090, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8793, + "id": 11089, "indexed": true, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 8795, - "src": "181:28:32", + "scope": 11091, + "src": "180:28:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -348,10 +348,10 @@ "typeString": "address" }, "typeName": { - "id": 8792, + "id": 11088, "name": "address", "nodeType": "ElementaryTypeName", - "src": "181:7:32", + "src": "180:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -361,15 +361,15 @@ "visibility": "internal" } ], - "src": "180:30:32" + "src": "179:30:43" }, - "src": "166:45:32" + "src": "165:45:43" }, { "body": { - "id": 8910, + "id": 11206, "nodeType": "Block", - "src": "334:557:32", + "src": "333:555:43", "statements": [ { "expression": { @@ -380,12 +380,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8810, + "id": 11106, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8797, - "src": "367:5:32", + "referencedDeclaration": 11093, + "src": "366:5:43", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -394,14 +394,14 @@ { "argumentTypes": null, "hexValue": "35", - "id": 8811, + "id": 11107, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "374:1:32", + "src": "373:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -412,14 +412,14 @@ { "argumentTypes": null, "hexValue": "3530", - "id": 8812, + "id": 11108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "377:2:32", + "src": "376:2:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", @@ -443,18 +443,18 @@ "typeString": "int_const 50" } ], - "id": 8809, + "id": 11105, "name": "_isStringValid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9162, - "src": "352:14:32", + "referencedDeclaration": 11458, + "src": "351:14:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (string memory,uint256,uint256) pure returns (bool)" } }, - "id": 8813, + "id": 11109, "isConstant": false, "isLValue": false, "isPure": false, @@ -462,7 +462,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "352:28:32", + "src": "351:28:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -476,21 +476,21 @@ "typeString": "bool" } ], - "id": 8808, + "id": 11104, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "344:7:32", + "referencedDeclaration": 13444, + "src": "343:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8814, + "id": 11110, "isConstant": false, "isLValue": false, "isPure": false, @@ -498,15 +498,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "344:37:32", + "src": "343:37:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8815, + "id": 11111, "nodeType": "ExpressionStatement", - "src": "344:37:32" + "src": "343:37:43" }, { "expression": { @@ -517,12 +517,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8818, + "id": 11114, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8799, - "src": "414:7:32", + "referencedDeclaration": 11095, + "src": "413:7:43", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -531,14 +531,14 @@ { "argumentTypes": null, "hexValue": "33", - "id": 8819, + "id": 11115, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "423:1:32", + "src": "422:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -549,14 +549,14 @@ { "argumentTypes": null, "hexValue": "35", - "id": 8820, + "id": 11116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "426:1:32", + "src": "425:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -580,18 +580,18 @@ "typeString": "int_const 5" } ], - "id": 8817, + "id": 11113, "name": "_isStringValid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9162, - "src": "399:14:32", + "referencedDeclaration": 11458, + "src": "398:14:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (string memory,uint256,uint256) pure returns (bool)" } }, - "id": 8821, + "id": 11117, "isConstant": false, "isLValue": false, "isPure": false, @@ -599,7 +599,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "399:29:32", + "src": "398:29:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -613,21 +613,21 @@ "typeString": "bool" } ], - "id": 8816, + "id": 11112, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "391:7:32", + "referencedDeclaration": 13444, + "src": "390:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8822, + "id": 11118, "isConstant": false, "isLValue": false, "isPure": false, @@ -635,15 +635,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "391:38:32", + "src": "390:38:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8823, + "id": 11119, "nodeType": "ExpressionStatement", - "src": "391:38:32" + "src": "390:38:43" }, { "expression": { @@ -655,7 +655,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 8835, + "id": 11131, "isConstant": false, "isLValue": false, "isPure": false, @@ -666,19 +666,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 8829, + "id": 11125, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8825, + "id": 11121, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "447:9:32", + "referencedDeclaration": 11097, + "src": "446:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -692,14 +692,14 @@ { "argumentTypes": null, "hexValue": "31", - "id": 8827, + "id": 11123, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "465:1:32", + "src": "464:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -715,20 +715,20 @@ "typeString": "int_const 1" } ], - "id": 8826, + "id": 11122, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "459:5:32", + "src": "458:5:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 8828, + "id": 11124, "isConstant": false, "isLValue": false, "isPure": true, @@ -736,13 +736,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "459:8:32", + "src": "458:8:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "447:20:32", + "src": "446:20:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -756,19 +756,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 8834, + "id": 11130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8830, + "id": 11126, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "471:9:32", + "referencedDeclaration": 11097, + "src": "470:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -782,14 +782,14 @@ { "argumentTypes": null, "hexValue": "3139", - "id": 8832, + "id": 11128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "489:2:32", + "src": "488:2:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_19_by_1", @@ -805,20 +805,20 @@ "typeString": "int_const 19" } ], - "id": 8831, + "id": 11127, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "483:5:32", + "src": "482:5:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 8833, + "id": 11129, "isConstant": false, "isLValue": false, "isPure": true, @@ -826,19 +826,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "483:9:32", + "src": "482:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "471:21:32", + "src": "470:21:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "447:45:32", + "src": "446:45:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -852,21 +852,21 @@ "typeString": "bool" } ], - "id": 8824, + "id": 11120, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "439:7:32", + "referencedDeclaration": 13444, + "src": "438:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8836, + "id": 11132, "isConstant": false, "isLValue": false, "isPure": false, @@ -874,15 +874,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "439:54:32", + "src": "438:54:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8837, + "id": 11133, "nodeType": "ExpressionStatement", - "src": "439:54:32" + "src": "438:54:43" }, { "expression": { @@ -894,7 +894,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 8855, + "id": 11151, "isConstant": false, "isLValue": false, "isPure": false, @@ -905,19 +905,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8841, + "id": 11137, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8839, + "id": 11135, "name": "amountToIssue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8803, - "src": "511:13:32", + "referencedDeclaration": 11099, + "src": "510:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -928,14 +928,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3939", - "id": 8840, + "id": 11136, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "527:2:32", + "src": "526:2:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_99_by_1", @@ -943,7 +943,7 @@ }, "value": "99" }, - "src": "511:18:32", + "src": "510:18:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -957,19 +957,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8854, + "id": 11150, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8842, + "id": 11138, "name": "amountToIssue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8803, - "src": "533:13:32", + "referencedDeclaration": 11099, + "src": "532:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -986,7 +986,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8852, + "id": 11148, "isConstant": false, "isLValue": false, "isPure": false, @@ -996,7 +996,7 @@ "arguments": [ { "argumentTypes": null, - "id": 8845, + "id": 11141, "isConstant": false, "isLValue": false, "isPure": true, @@ -1004,18 +1004,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "556:2:32", + "src": "555:2:43", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 8844, + "id": 11140, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "557:1:32", + "src": "556:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1036,20 +1036,20 @@ "typeString": "int_const -1" } ], - "id": 8843, + "id": 11139, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "551:4:32", + "src": "550:4:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 8846, + "id": 11142, "isConstant": false, "isLValue": false, "isPure": true, @@ -1057,7 +1057,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "551:8:32", + "src": "550:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1071,7 +1071,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8851, + "id": 11147, "isConstant": false, "isLValue": false, "isPure": false, @@ -1079,14 +1079,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 8847, + "id": 11143, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "562:2:32", + "src": "561:2:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -1101,12 +1101,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8849, + "id": 11145, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "573:9:32", + "referencedDeclaration": 11097, + "src": "572:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1120,20 +1120,20 @@ "typeString": "uint8" } ], - "id": 8848, + "id": 11144, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "568:4:32", + "src": "567:4:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 8850, + "id": 11146, "isConstant": false, "isLValue": false, "isPure": false, @@ -1141,45 +1141,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "568:15:32", + "src": "567:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "562:21:32", + "src": "561:21:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "551:32:32", + "src": "550:32:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 8853, + "id": 11149, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "550:34:32", + "src": "549:34:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "533:51:32", + "src": "532:51:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "511:73:32", + "src": "510:73:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1193,21 +1193,21 @@ "typeString": "bool" } ], - "id": 8838, + "id": 11134, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "503:7:32", + "referencedDeclaration": 13444, + "src": "502:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8856, + "id": 11152, "isConstant": false, "isLValue": false, "isPure": false, @@ -1215,34 +1215,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "503:82:32", + "src": "502:82:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8857, + "id": 11153, "nodeType": "ExpressionStatement", - "src": "503:82:32" + "src": "502:82:43" }, { "expression": { "argumentTypes": null, - "id": 8865, + "id": 11161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 8858, + "id": 11154, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "596:5:32", + "referencedDeclaration": 11102, + "src": "595:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, @@ -1253,12 +1253,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8861, + "id": 11157, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8797, - "src": "615:5:32", + "referencedDeclaration": 11093, + "src": "614:5:43", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1266,12 +1266,12 @@ }, { "argumentTypes": null, - "id": 8862, + "id": 11158, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8799, - "src": "622:7:32", + "referencedDeclaration": 11095, + "src": "621:7:43", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1279,12 +1279,12 @@ }, { "argumentTypes": null, - "id": 8863, + "id": 11159, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "631:9:32", + "referencedDeclaration": 11097, + "src": "630:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1306,31 +1306,31 @@ "typeString": "uint8" } ], - "id": 8860, + "id": 11156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "604:10:32", + "src": "603:10:43", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$8750_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$11048_$", "typeString": "function (string memory,string memory,uint8) returns (contract WToken)" }, "typeName": { "contractScope": null, - "id": 8859, + "id": 11155, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "608:6:32", + "referencedDeclaration": 11048, + "src": "607:6:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } } }, - "id": 8864, + "id": 11160, "isConstant": false, "isLValue": false, "isPure": false, @@ -1338,21 +1338,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "604:37:32", + "src": "603:37:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "src": "596:45:32", + "src": "595:45:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 8866, + "id": 11162, "nodeType": "ExpressionStatement", - "src": "596:45:32" + "src": "595:45:43" }, { "expression": { @@ -1362,18 +1362,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 8870, + "id": 11166, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "675:3:32", + "referencedDeclaration": 13441, + "src": "672:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 8871, + "id": 11167, "isConstant": false, "isLValue": false, "isPure": false, @@ -1381,7 +1381,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "675:10:32", + "src": "672:10:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1397,32 +1397,32 @@ ], "expression": { "argumentTypes": null, - "id": 8867, + "id": 11163, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "651:5:32", + "referencedDeclaration": 11102, + "src": "650:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 8869, + "id": 11165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transferOwnership", + "memberName": "transferPrimary", "nodeType": "MemberAccess", - "referencedDeclaration": 10110, - "src": "651:23:32", + "referencedDeclaration": 12452, + "src": "650:21:43", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 8872, + "id": 11168, "isConstant": false, "isLValue": false, "isPure": false, @@ -1430,20 +1430,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "651:35:32", + "src": "650:33:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8873, + "id": 11169, "nodeType": "ExpressionStatement", - "src": "651:35:32" + "src": "650:33:43" }, { "expression": { "argumentTypes": null, - "id": 8881, + "id": 11177, "isConstant": false, "isLValue": false, "isPure": false, @@ -1452,31 +1452,31 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8874, + "id": 11170, "name": "tokenIndexes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8791, - "src": "697:12:32", + "referencedDeclaration": 11087, + "src": "694:12:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 8878, + "id": 11174, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 8876, + "id": 11172, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "718:5:32", + "referencedDeclaration": 11102, + "src": "715:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } } @@ -1484,24 +1484,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } ], - "id": 8875, + "id": 11171, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "710:7:32", + "src": "707:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 8877, + "id": 11173, "isConstant": false, "isLValue": false, "isPure": false, @@ -1509,7 +1509,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "710:14:32", + "src": "707:14:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1520,7 +1520,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "697:28:32", + "src": "694:28:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1532,18 +1532,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 8879, + "id": 11175, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8787, - "src": "728:6:32", + "referencedDeclaration": 11083, + "src": "725:6:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 8880, + "id": 11176, "isConstant": false, "isLValue": true, "isPure": false, @@ -1551,21 +1551,21 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "728:13:32", + "src": "725:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "697:44:32", + "src": "694:44:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8882, + "id": 11178, "nodeType": "ExpressionStatement", - "src": "697:44:32" + "src": "694:44:43" }, { "expression": { @@ -1576,14 +1576,14 @@ "arguments": [ { "argumentTypes": null, - "id": 8887, + "id": 11183, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "771:5:32", + "referencedDeclaration": 11102, + "src": "768:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } } @@ -1591,24 +1591,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } ], - "id": 8886, + "id": 11182, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "763:7:32", + "src": "760:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 8888, + "id": 11184, "isConstant": false, "isLValue": false, "isPure": false, @@ -1616,7 +1616,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "763:14:32", + "src": "760:14:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1632,18 +1632,18 @@ ], "expression": { "argumentTypes": null, - "id": 8883, + "id": 11179, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8787, - "src": "751:6:32", + "referencedDeclaration": 11083, + "src": "748:6:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 8885, + "id": 11181, "isConstant": false, "isLValue": false, "isPure": false, @@ -1651,13 +1651,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "751:11:32", + "src": "748:11:43", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, - "id": 8889, + "id": 11185, "isConstant": false, "isLValue": false, "isPure": false, @@ -1665,15 +1665,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "751:27:32", + "src": "748:27:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8890, + "id": 11186, "nodeType": "ExpressionStatement", - "src": "751:27:32" + "src": "748:27:43" }, { "expression": { @@ -1683,18 +1683,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 8894, + "id": 11190, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "800:3:32", + "referencedDeclaration": 13441, + "src": "797:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 8895, + "id": 11191, "isConstant": false, "isLValue": false, "isPure": false, @@ -1702,7 +1702,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "800:10:32", + "src": "797:10:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1714,19 +1714,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8902, + "id": 11198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8896, + "id": 11192, "name": "amountToIssue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8803, - "src": "812:13:32", + "referencedDeclaration": 11099, + "src": "809:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1740,7 +1740,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8901, + "id": 11197, "isConstant": false, "isLValue": false, "isPure": false, @@ -1748,14 +1748,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 8897, + "id": 11193, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "828:2:32", + "src": "825:2:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -1770,12 +1770,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8899, + "id": 11195, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "839:9:32", + "referencedDeclaration": 11097, + "src": "836:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1789,20 +1789,20 @@ "typeString": "uint8" } ], - "id": 8898, + "id": 11194, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "834:4:32", + "src": "831:4:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 8900, + "id": 11196, "isConstant": false, "isLValue": false, "isPure": false, @@ -1810,19 +1810,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "834:15:32", + "src": "831:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "828:21:32", + "src": "825:21:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "812:37:32", + "src": "809:37:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1831,14 +1831,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 8903, + "id": 11199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "851:1:32", + "src": "848:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1864,32 +1864,32 @@ ], "expression": { "argumentTypes": null, - "id": 8891, + "id": 11187, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "789:5:32", + "referencedDeclaration": 11102, + "src": "786:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 8893, + "id": 11189, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 8412, - "src": "789:10:32", + "referencedDeclaration": 10719, + "src": "786:10:43", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 8904, + "id": 11200, "isConstant": false, "isLValue": false, "isPure": false, @@ -1897,15 +1897,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "789:64:32", + "src": "786:64:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 8905, + "id": 11201, "nodeType": "ExpressionStatement", - "src": "789:64:32" + "src": "786:64:43" }, { "eventCall": { @@ -1913,14 +1913,14 @@ "arguments": [ { "argumentTypes": null, - "id": 8907, + "id": 11203, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "878:5:32", + "referencedDeclaration": 11102, + "src": "875:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } } @@ -1928,22 +1928,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } ], - "id": 8906, + "id": 11202, "name": "NewToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8795, - "src": "869:8:32", + "referencedDeclaration": 11091, + "src": "866:8:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 8908, + "id": 11204, "isConstant": false, "isLValue": false, "isPure": false, @@ -1951,20 +1951,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "869:15:32", + "src": "866:15:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8909, + "id": 11205, "nodeType": "EmitStatement", - "src": "864:20:32" + "src": "861:20:43" } ] }, "documentation": null, - "id": 8911, + "id": 11207, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1972,16 +1972,16 @@ "name": "createToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 8804, + "id": 11100, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8797, + "id": 11093, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 8911, - "src": "238:12:32", + "scope": 11207, + "src": "237:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1989,10 +1989,10 @@ "typeString": "string" }, "typeName": { - "id": 8796, + "id": 11092, "name": "string", "nodeType": "ElementaryTypeName", - "src": "238:6:32", + "src": "237:6:43", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2003,11 +2003,11 @@ }, { "constant": false, - "id": 8799, + "id": 11095, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 8911, - "src": "252:14:32", + "scope": 11207, + "src": "251:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2015,10 +2015,10 @@ "typeString": "string" }, "typeName": { - "id": 8798, + "id": 11094, "name": "string", "nodeType": "ElementaryTypeName", - "src": "252:6:32", + "src": "251:6:43", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2029,11 +2029,11 @@ }, { "constant": false, - "id": 8801, + "id": 11097, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 8911, - "src": "268:15:32", + "scope": 11207, + "src": "267:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2041,10 +2041,10 @@ "typeString": "uint8" }, "typeName": { - "id": 8800, + "id": 11096, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "268:5:32", + "src": "267:5:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2055,11 +2055,11 @@ }, { "constant": false, - "id": 8803, + "id": 11099, "name": "amountToIssue", "nodeType": "VariableDeclaration", - "scope": 8911, - "src": "285:18:32", + "scope": 11207, + "src": "284:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2067,10 +2067,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8802, + "id": 11098, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "285:4:32", + "src": "284:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2080,35 +2080,35 @@ "visibility": "internal" } ], - "src": "237:67:32" + "src": "236:67:43" }, "payable": false, "returnParameters": { - "id": 8807, + "id": 11103, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8806, + "id": 11102, "name": "token", "nodeType": "VariableDeclaration", - "scope": 8911, - "src": "320:12:32", + "scope": 11207, + "src": "319:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 8805, + "id": 11101, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "320:6:32", + "referencedDeclaration": 11048, + "src": "319:6:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, @@ -2116,43 +2116,43 @@ "visibility": "internal" } ], - "src": "319:14:32" + "src": "318:14:43" }, - "scope": 9163, - "src": "217:674:32", + "scope": 11459, + "src": "216:672:43", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 8919, + "id": 11215, "nodeType": "Block", - "src": "950:30:32", + "src": "947:30:43", "statements": [ { "expression": { "argumentTypes": null, - "id": 8917, + "id": 11213, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8787, - "src": "967:6:32", + "referencedDeclaration": 11083, + "src": "964:6:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "functionReturnParameters": 8916, - "id": 8918, + "functionReturnParameters": 11212, + "id": 11214, "nodeType": "Return", - "src": "960:13:32" + "src": "957:13:43" } ] }, "documentation": null, - "id": 8920, + "id": 11216, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2160,23 +2160,23 @@ "name": "tokensList", "nodeType": "FunctionDefinition", "parameters": { - "id": 8912, + "id": 11208, "nodeType": "ParameterList", "parameters": [], - "src": "916:2:32" + "src": "913:2:43" }, "payable": false, "returnParameters": { - "id": 8916, + "id": 11212, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8915, + "id": 11211, "name": "", "nodeType": "VariableDeclaration", - "scope": 8920, - "src": "939:9:32", + "scope": 11216, + "src": "936:9:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2185,19 +2185,19 @@ }, "typeName": { "baseType": { - "id": 8913, + "id": 11209, "name": "address", "nodeType": "ElementaryTypeName", - "src": "939:7:32", + "src": "936:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 8914, + "id": 11210, "length": null, "nodeType": "ArrayTypeName", - "src": "939:9:32", + "src": "936:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -2207,19 +2207,19 @@ "visibility": "internal" } ], - "src": "938:11:32" + "src": "935:11:43" }, - "scope": 9163, - "src": "897:83:32", + "scope": 11459, + "src": "894:83:43", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 8940, + "id": 11236, "nodeType": "Block", - "src": "1053:95:32", + "src": "1050:95:43", "statements": [ { "expression": { @@ -2228,7 +2228,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 8938, + "id": 11234, "isConstant": false, "isLValue": false, "isPure": false, @@ -2239,7 +2239,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8930, + "id": 11226, "isConstant": false, "isLValue": false, "isPure": false, @@ -2248,18 +2248,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 8927, + "id": 11223, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8787, - "src": "1070:6:32", + "referencedDeclaration": 11083, + "src": "1067:6:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 8928, + "id": 11224, "isConstant": false, "isLValue": true, "isPure": false, @@ -2267,7 +2267,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1070:13:32", + "src": "1067:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2278,14 +2278,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 8929, + "id": 11225, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1086:1:32", + "src": "1083:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2293,7 +2293,7 @@ }, "value": "0" }, - "src": "1070:17:32", + "src": "1067:17:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2307,7 +2307,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 8937, + "id": 11233, "isConstant": false, "isLValue": false, "isPure": false, @@ -2316,42 +2316,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8931, + "id": 11227, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8787, - "src": "1091:6:32", + "referencedDeclaration": 11083, + "src": "1088:6:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 8935, + "id": 11231, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8932, + "id": 11228, "name": "tokenIndexes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8791, - "src": "1098:12:32", + "referencedDeclaration": 11087, + "src": "1095:12:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 8934, + "id": 11230, "indexExpression": { "argumentTypes": null, - "id": 8933, + "id": 11229, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8922, - "src": "1111:12:32", + "referencedDeclaration": 11218, + "src": "1108:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2362,7 +2362,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1098:26:32", + "src": "1095:26:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2373,7 +2373,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1091:34:32", + "src": "1088:34:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2383,38 +2383,38 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 8936, + "id": 11232, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8922, - "src": "1129:12:32", + "referencedDeclaration": 11218, + "src": "1126:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1091:50:32", + "src": "1088:50:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1070:71:32", + "src": "1067:71:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 8926, - "id": 8939, + "functionReturnParameters": 11222, + "id": 11235, "nodeType": "Return", - "src": "1063:78:32" + "src": "1060:78:43" } ] }, "documentation": null, - "id": 8941, + "id": 11237, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2422,16 +2422,16 @@ "name": "hasToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 8923, + "id": 11219, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8922, + "id": 11218, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 8941, - "src": "1004:20:32", + "scope": 11237, + "src": "1001:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2439,10 +2439,10 @@ "typeString": "address" }, "typeName": { - "id": 8921, + "id": 11217, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1004:7:32", + "src": "1001:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2452,20 +2452,20 @@ "visibility": "internal" } ], - "src": "1003:22:32" + "src": "1000:22:43" }, "payable": false, "returnParameters": { - "id": 8926, + "id": 11222, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8925, + "id": 11221, "name": "", "nodeType": "VariableDeclaration", - "scope": 8941, - "src": "1047:4:32", + "scope": 11237, + "src": "1044:4:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2473,10 +2473,10 @@ "typeString": "bool" }, "typeName": { - "id": 8924, + "id": 11220, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1047:4:32", + "src": "1044:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2486,19 +2486,19 @@ "visibility": "internal" } ], - "src": "1046:6:32" + "src": "1043:6:43" }, - "scope": 9163, - "src": "986:162:32", + "scope": 11459, + "src": "983:162:43", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 8981, + "id": 11277, "nodeType": "Block", - "src": "1257:178:32", + "src": "1254:178:43", "statements": [ { "expression": { @@ -2509,12 +2509,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8956, + "id": 11252, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8943, - "src": "1284:12:32", + "referencedDeclaration": 11239, + "src": "1281:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2528,18 +2528,18 @@ "typeString": "address" } ], - "id": 8955, + "id": 11251, "name": "hasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8941, - "src": "1275:8:32", + "referencedDeclaration": 11237, + "src": "1272:8:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 8957, + "id": 11253, "isConstant": false, "isLValue": false, "isPure": false, @@ -2547,7 +2547,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1275:22:32", + "src": "1272:22:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2561,21 +2561,21 @@ "typeString": "bool" } ], - "id": 8954, + "id": 11250, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1267:7:32", + "referencedDeclaration": 13444, + "src": "1264:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8958, + "id": 11254, "isConstant": false, "isLValue": false, "isPure": false, @@ -2583,43 +2583,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1267:31:32", + "src": "1264:31:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8959, + "id": 11255, "nodeType": "ExpressionStatement", - "src": "1267:31:32" + "src": "1264:31:43" }, { "assignments": [ - 8961 + 11257 ], "declarations": [ { "constant": false, - "id": 8961, + "id": 11257, "name": "token", "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "1309:12:32", + "scope": 11278, + "src": "1306:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 8960, + "id": 11256, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "1309:6:32", + "referencedDeclaration": 11048, + "src": "1306:6:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, @@ -2627,18 +2627,18 @@ "visibility": "internal" } ], - "id": 8965, + "id": 11261, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 8963, + "id": 11259, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8943, - "src": "1331:12:32", + "referencedDeclaration": 11239, + "src": "1328:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2652,18 +2652,18 @@ "typeString": "address" } ], - "id": 8962, + "id": 11258, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8750, - "src": "1324:6:32", + "referencedDeclaration": 11048, + "src": "1321:6:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$8750_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$11048_$", "typeString": "type(contract WToken)" } }, - "id": 8964, + "id": 11260, "isConstant": false, "isLValue": false, "isPure": false, @@ -2671,14 +2671,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1324:20:32", + "src": "1321:20:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "1309:35:32" + "src": "1306:35:43" }, { "expression": { @@ -2686,12 +2686,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8968, + "id": 11264, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8945, - "src": "1373:2:32", + "referencedDeclaration": 11241, + "src": "1370:2:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2703,19 +2703,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8977, + "id": 11273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8969, + "id": 11265, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8947, - "src": "1377:6:32", + "referencedDeclaration": 11243, + "src": "1374:6:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2729,7 +2729,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8976, + "id": 11272, "isConstant": false, "isLValue": false, "isPure": false, @@ -2737,14 +2737,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 8970, + "id": 11266, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1386:2:32", + "src": "1383:2:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -2764,32 +2764,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 8972, + "id": 11268, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8961, - "src": "1397:5:32", + "referencedDeclaration": 11257, + "src": "1394:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 8973, + "id": 11269, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 10145, - "src": "1397:14:32", + "referencedDeclaration": 12985, + "src": "1394:14:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 8974, + "id": 11270, "isConstant": false, "isLValue": false, "isPure": false, @@ -2797,7 +2797,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1397:16:32", + "src": "1394:16:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2811,20 +2811,20 @@ "typeString": "uint8" } ], - "id": 8971, + "id": 11267, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1392:4:32", + "src": "1389:4:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 8975, + "id": 11271, "isConstant": false, "isLValue": false, "isPure": false, @@ -2832,19 +2832,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1392:22:32", + "src": "1389:22:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1386:28:32", + "src": "1383:28:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1377:37:32", + "src": "1374:37:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2852,12 +2852,12 @@ }, { "argumentTypes": null, - "id": 8978, + "id": 11274, "name": "vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8949, - "src": "1416:11:32", + "referencedDeclaration": 11245, + "src": "1413:11:43", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2881,32 +2881,32 @@ ], "expression": { "argumentTypes": null, - "id": 8966, + "id": 11262, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8961, - "src": "1362:5:32", + "referencedDeclaration": 11257, + "src": "1359:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 8967, + "id": 11263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 8412, - "src": "1362:10:32", + "referencedDeclaration": 10719, + "src": "1359:10:43", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 8979, + "id": 11275, "isConstant": false, "isLValue": false, "isPure": false, @@ -2914,21 +2914,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1362:66:32", + "src": "1359:66:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 8953, - "id": 8980, + "functionReturnParameters": 11249, + "id": 11276, "nodeType": "Return", - "src": "1355:73:32" + "src": "1352:73:43" } ] }, "documentation": null, - "id": 8982, + "id": 11278, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2936,16 +2936,16 @@ "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 8950, + "id": 11246, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8943, + "id": 11239, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "1168:20:32", + "scope": 11278, + "src": "1165:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2953,10 +2953,10 @@ "typeString": "address" }, "typeName": { - "id": 8942, + "id": 11238, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1168:7:32", + "src": "1165:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2967,11 +2967,11 @@ }, { "constant": false, - "id": 8945, + "id": 11241, "name": "to", "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "1190:10:32", + "scope": 11278, + "src": "1187:10:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2979,10 +2979,10 @@ "typeString": "address" }, "typeName": { - "id": 8944, + "id": 11240, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1190:7:32", + "src": "1187:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2993,11 +2993,11 @@ }, { "constant": false, - "id": 8947, + "id": 11243, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "1202:11:32", + "scope": 11278, + "src": "1199:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3005,10 +3005,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8946, + "id": 11242, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1202:4:32", + "src": "1199:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3019,11 +3019,11 @@ }, { "constant": false, - "id": 8949, + "id": 11245, "name": "vestingTime", "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "1215:18:32", + "scope": 11278, + "src": "1212:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3031,10 +3031,10 @@ "typeString": "uint32" }, "typeName": { - "id": 8948, + "id": 11244, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1215:6:32", + "src": "1212:6:43", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3044,20 +3044,20 @@ "visibility": "internal" } ], - "src": "1167:67:32" + "src": "1164:67:43" }, "payable": false, "returnParameters": { - "id": 8953, + "id": 11249, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8952, + "id": 11248, "name": "", "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "1251:4:32", + "scope": 11278, + "src": "1248:4:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3065,10 +3065,10 @@ "typeString": "bool" }, "typeName": { - "id": 8951, + "id": 11247, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1251:4:32", + "src": "1248:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3078,19 +3078,19 @@ "visibility": "internal" } ], - "src": "1250:6:32" + "src": "1247:6:43" }, - "scope": 9163, - "src": "1154:281:32", + "scope": 11459, + "src": "1151:281:43", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9004, + "id": 11300, "nodeType": "Block", - "src": "1525:104:32", + "src": "1522:104:43", "statements": [ { "expression": { @@ -3101,12 +3101,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8993, + "id": 11289, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8984, - "src": "1552:12:32", + "referencedDeclaration": 11280, + "src": "1549:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3120,18 +3120,18 @@ "typeString": "address" } ], - "id": 8992, + "id": 11288, "name": "hasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8941, - "src": "1543:8:32", + "referencedDeclaration": 11237, + "src": "1540:8:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 8994, + "id": 11290, "isConstant": false, "isLValue": false, "isPure": false, @@ -3139,7 +3139,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1543:22:32", + "src": "1540:22:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3153,21 +3153,21 @@ "typeString": "bool" } ], - "id": 8991, + "id": 11287, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1535:7:32", + "referencedDeclaration": 13444, + "src": "1532:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8995, + "id": 11291, "isConstant": false, "isLValue": false, "isPure": false, @@ -3175,15 +3175,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1535:31:32", + "src": "1532:31:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8996, + "id": 11292, "nodeType": "ExpressionStatement", - "src": "1535:31:32" + "src": "1532:31:43" }, { "expression": { @@ -3191,12 +3191,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9001, + "id": 11297, "name": "wallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8986, - "src": "1615:6:32", + "referencedDeclaration": 11282, + "src": "1612:6:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3215,12 +3215,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8998, + "id": 11294, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8984, - "src": "1591:12:32", + "referencedDeclaration": 11280, + "src": "1588:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3234,18 +3234,18 @@ "typeString": "address" } ], - "id": 8997, + "id": 11293, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8750, - "src": "1584:6:32", + "referencedDeclaration": 11048, + "src": "1581:6:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$8750_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$11048_$", "typeString": "type(contract WToken)" } }, - "id": 8999, + "id": 11295, "isConstant": false, "isLValue": false, "isPure": false, @@ -3253,27 +3253,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1584:20:32", + "src": "1581:20:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 9000, + "id": 11296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 8101, - "src": "1584:30:32", + "referencedDeclaration": 12494, + "src": "1581:30:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 9002, + "id": 11298, "isConstant": false, "isLValue": false, "isPure": false, @@ -3281,21 +3281,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1584:38:32", + "src": "1581:38:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 8990, - "id": 9003, + "functionReturnParameters": 11286, + "id": 11299, "nodeType": "Return", - "src": "1577:45:32" + "src": "1574:45:43" } ] }, "documentation": null, - "id": 9005, + "id": 11301, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3303,16 +3303,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 8987, + "id": 11283, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8984, + "id": 11280, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 9005, - "src": "1460:20:32", + "scope": 11301, + "src": "1457:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3320,10 +3320,10 @@ "typeString": "address" }, "typeName": { - "id": 8983, + "id": 11279, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1460:7:32", + "src": "1457:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3334,11 +3334,11 @@ }, { "constant": false, - "id": 8986, + "id": 11282, "name": "wallet", "nodeType": "VariableDeclaration", - "scope": 9005, - "src": "1482:14:32", + "scope": 11301, + "src": "1479:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3346,10 +3346,10 @@ "typeString": "address" }, "typeName": { - "id": 8985, + "id": 11281, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1482:7:32", + "src": "1479:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3359,20 +3359,20 @@ "visibility": "internal" } ], - "src": "1459:38:32" + "src": "1456:38:43" }, "payable": false, "returnParameters": { - "id": 8990, + "id": 11286, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8989, + "id": 11285, "name": "", "nodeType": "VariableDeclaration", - "scope": 9005, - "src": "1519:4:32", + "scope": 11301, + "src": "1516:4:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3380,10 +3380,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8988, + "id": 11284, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1519:4:32", + "src": "1516:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3393,19 +3393,19 @@ "visibility": "internal" } ], - "src": "1518:6:32" + "src": "1515:6:43" }, - "scope": 9163, - "src": "1441:188:32", + "scope": 11459, + "src": "1438:188:43", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9024, + "id": 11320, "nodeType": "Block", - "src": "1705:100:32", + "src": "1702:100:43", "statements": [ { "expression": { @@ -3416,12 +3416,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9014, + "id": 11310, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9007, - "src": "1732:12:32", + "referencedDeclaration": 11303, + "src": "1729:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3435,18 +3435,18 @@ "typeString": "address" } ], - "id": 9013, + "id": 11309, "name": "hasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8941, - "src": "1723:8:32", + "referencedDeclaration": 11237, + "src": "1720:8:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 9015, + "id": 11311, "isConstant": false, "isLValue": false, "isPure": false, @@ -3454,7 +3454,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1723:22:32", + "src": "1720:22:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3468,21 +3468,21 @@ "typeString": "bool" } ], - "id": 9012, + "id": 11308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1715:7:32", + "referencedDeclaration": 13444, + "src": "1712:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9016, + "id": 11312, "isConstant": false, "isLValue": false, "isPure": false, @@ -3490,15 +3490,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1715:31:32", + "src": "1712:31:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9017, + "id": 11313, "nodeType": "ExpressionStatement", - "src": "1715:31:32" + "src": "1712:31:43" }, { "expression": { @@ -3511,12 +3511,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9019, + "id": 11315, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9007, - "src": "1771:12:32", + "referencedDeclaration": 11303, + "src": "1768:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3530,18 +3530,18 @@ "typeString": "address" } ], - "id": 9018, + "id": 11314, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8750, - "src": "1764:6:32", + "referencedDeclaration": 11048, + "src": "1761:6:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$8750_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$11048_$", "typeString": "type(contract WToken)" } }, - "id": 9020, + "id": 11316, "isConstant": false, "isLValue": false, "isPure": false, @@ -3549,27 +3549,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1764:20:32", + "src": "1761:20:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 9021, + "id": 11317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", - "referencedDeclaration": 7957, - "src": "1764:32:32", + "referencedDeclaration": 12482, + "src": "1761:32:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 9022, + "id": 11318, "isConstant": false, "isLValue": false, "isPure": false, @@ -3577,21 +3577,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1764:34:32", + "src": "1761:34:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 9011, - "id": 9023, + "functionReturnParameters": 11307, + "id": 11319, "nodeType": "Return", - "src": "1757:41:32" + "src": "1754:41:43" } ] }, "documentation": null, - "id": 9025, + "id": 11321, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3599,16 +3599,16 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 9008, + "id": 11304, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9007, + "id": 11303, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 9025, - "src": "1656:20:32", + "scope": 11321, + "src": "1653:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3616,10 +3616,10 @@ "typeString": "address" }, "typeName": { - "id": 9006, + "id": 11302, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1656:7:32", + "src": "1653:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3629,20 +3629,20 @@ "visibility": "internal" } ], - "src": "1655:22:32" + "src": "1652:22:43" }, "payable": false, "returnParameters": { - "id": 9011, + "id": 11307, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9010, + "id": 11306, "name": "", "nodeType": "VariableDeclaration", - "scope": 9025, - "src": "1699:4:32", + "scope": 11321, + "src": "1696:4:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3650,10 +3650,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9009, + "id": 11305, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:32", + "src": "1696:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3663,19 +3663,19 @@ "visibility": "internal" } ], - "src": "1698:6:32" + "src": "1695:6:43" }, - "scope": 9163, - "src": "1635:170:32", + "scope": 11459, + "src": "1632:170:43", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9161, + "id": 11457, "nodeType": "Block", - "src": "1903:907:32", + "src": "1900:907:43", "statements": [ { "expression": { @@ -3687,19 +3687,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9039, + "id": 11335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9037, + "id": 11333, "name": "maxLn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9031, - "src": "1921:5:32", + "referencedDeclaration": 11327, + "src": "1918:5:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3709,18 +3709,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 9038, + "id": 11334, "name": "minLn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9029, - "src": "1930:5:32", + "referencedDeclaration": 11325, + "src": "1927:5:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1921:14:32", + "src": "1918:14:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3734,21 +3734,21 @@ "typeString": "bool" } ], - "id": 9036, + "id": 11332, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1913:7:32", + "referencedDeclaration": 13444, + "src": "1910:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9040, + "id": 11336, "isConstant": false, "isLValue": false, "isPure": false, @@ -3756,28 +3756,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1913:23:32", + "src": "1910:23:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9041, + "id": 11337, "nodeType": "ExpressionStatement", - "src": "1913:23:32" + "src": "1910:23:43" }, { "assignments": [ - 9043 + 11339 ], "declarations": [ { "constant": false, - "id": 9043, + "id": 11339, "name": "_stringBytes", "nodeType": "VariableDeclaration", - "scope": 9162, - "src": "1947:25:32", + "scope": 11458, + "src": "1944:25:43", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3785,10 +3785,10 @@ "typeString": "bytes" }, "typeName": { - "id": 9042, + "id": 11338, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1947:5:32", + "src": "1944:5:43", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3798,18 +3798,18 @@ "visibility": "internal" } ], - "id": 9047, + "id": 11343, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 9045, + "id": 11341, "name": "_string", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9027, - "src": "1981:7:32", + "referencedDeclaration": 11323, + "src": "1978:7:43", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3823,20 +3823,20 @@ "typeString": "string memory" } ], - "id": 9044, + "id": 11340, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1975:5:32", + "src": "1972:5:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": "bytes" }, - "id": 9046, + "id": 11342, "isConstant": false, "isLValue": false, "isPure": false, @@ -3844,14 +3844,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1975:14:32", + "src": "1972:14:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "1947:42:32" + "src": "1944:42:43" }, { "condition": { @@ -3860,7 +3860,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9055, + "id": 11351, "isConstant": false, "isLValue": false, "isPure": false, @@ -3871,7 +3871,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9051, + "id": 11347, "isConstant": false, "isLValue": false, "isPure": false, @@ -3880,18 +3880,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9048, + "id": 11344, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2027:12:32", + "referencedDeclaration": 11339, + "src": "2024:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9049, + "id": 11345, "isConstant": false, "isLValue": false, "isPure": false, @@ -3899,7 +3899,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2027:19:32", + "src": "2024:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3910,14 +3910,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9050, + "id": 11346, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2050:1:32", + "src": "2047:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3925,7 +3925,7 @@ }, "value": "0" }, - "src": "2027:24:32", + "src": "2024:24:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3939,19 +3939,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9054, + "id": 11350, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9052, + "id": 11348, "name": "minLn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9029, - "src": "2055:5:32", + "referencedDeclaration": 11325, + "src": "2052:5:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3962,14 +3962,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9053, + "id": 11349, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2064:1:32", + "src": "2061:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3977,34 +3977,34 @@ }, "value": "0" }, - "src": "2055:10:32", + "src": "2052:10:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2027:38:32", + "src": "2024:38:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9058, + "id": 11354, "nodeType": "IfStatement", - "src": "2023:55:32", + "src": "2020:55:43", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 9056, + "id": 11352, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2074:4:32", + "src": "2071:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4012,10 +4012,10 @@ }, "value": "true" }, - "functionReturnParameters": 9035, - "id": 9057, + "functionReturnParameters": 11331, + "id": 11353, "nodeType": "Return", - "src": "2067:11:32" + "src": "2064:11:43" } }, { @@ -4025,7 +4025,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9067, + "id": 11363, "isConstant": false, "isLValue": false, "isPure": false, @@ -4036,7 +4036,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9062, + "id": 11358, "isConstant": false, "isLValue": false, "isPure": false, @@ -4045,18 +4045,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9059, + "id": 11355, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2120:12:32", + "referencedDeclaration": 11339, + "src": "2117:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9060, + "id": 11356, "isConstant": false, "isLValue": false, "isPure": false, @@ -4064,7 +4064,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2120:19:32", + "src": "2117:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4074,18 +4074,18 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 9061, + "id": 11357, "name": "minLn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9029, - "src": "2142:5:32", + "referencedDeclaration": 11325, + "src": "2139:5:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2120:27:32", + "src": "2117:27:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4099,7 +4099,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9066, + "id": 11362, "isConstant": false, "isLValue": false, "isPure": false, @@ -4108,18 +4108,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9063, + "id": 11359, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2151:12:32", + "referencedDeclaration": 11339, + "src": "2148:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9064, + "id": 11360, "isConstant": false, "isLValue": false, "isPure": false, @@ -4127,7 +4127,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2151:19:32", + "src": "2148:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4137,39 +4137,39 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 9065, + "id": 11361, "name": "maxLn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9031, - "src": "2173:5:32", + "referencedDeclaration": 11327, + "src": "2170:5:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2151:27:32", + "src": "2148:27:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2120:58:32", + "src": "2117:58:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9069, + "id": 11365, "nodeType": "IfStatement", - "src": "2116:71:32", + "src": "2113:71:43", "trueBody": { "expression": null, - "functionReturnParameters": 9035, - "id": 9068, + "functionReturnParameters": 11331, + "id": 11364, "nodeType": "Return", - "src": "2180:7:32" + "src": "2177:7:43" } }, { @@ -4179,7 +4179,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9083, + "id": 11379, "isConstant": false, "isLValue": false, "isPure": false, @@ -4190,7 +4190,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9074, + "id": 11370, "isConstant": false, "isLValue": false, "isPure": false, @@ -4199,29 +4199,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9070, + "id": 11366, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2242:12:32", + "referencedDeclaration": 11339, + "src": "2239:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9072, + "id": 11368, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9071, + "id": 11367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2255:1:32", + "src": "2252:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4234,7 +4234,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2242:15:32", + "src": "2239:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4245,14 +4245,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783230", - "id": 9073, + "id": 11369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2261:4:32", + "src": "2258:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -4260,7 +4260,7 @@ }, "value": "0x20" }, - "src": "2242:23:32", + "src": "2239:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4274,7 +4274,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9082, + "id": 11378, "isConstant": false, "isLValue": false, "isPure": false, @@ -4283,25 +4283,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9075, + "id": 11371, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2269:12:32", + "referencedDeclaration": 11339, + "src": "2266:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9080, + "id": 11376, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9079, + "id": 11375, "isConstant": false, "isLValue": false, "isPure": false, @@ -4310,18 +4310,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9076, + "id": 11372, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2282:12:32", + "referencedDeclaration": 11339, + "src": "2279:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9077, + "id": 11373, "isConstant": false, "isLValue": false, "isPure": false, @@ -4329,7 +4329,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2282:19:32", + "src": "2279:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4340,14 +4340,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 9078, + "id": 11374, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2304:1:32", + "src": "2301:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4355,7 +4355,7 @@ }, "value": "1" }, - "src": "2282:23:32", + "src": "2279:23:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4366,7 +4366,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2269:37:32", + "src": "2266:37:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4377,14 +4377,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783230", - "id": 9081, + "id": 11377, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2310:4:32", + "src": "2307:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -4392,35 +4392,35 @@ }, "value": "0x20" }, - "src": "2269:45:32", + "src": "2266:45:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2242:72:32", + "src": "2239:72:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9085, + "id": 11381, "nodeType": "IfStatement", - "src": "2238:85:32", + "src": "2235:85:43", "trueBody": { "expression": null, - "functionReturnParameters": 9035, - "id": 9084, + "functionReturnParameters": 11331, + "id": 11380, "nodeType": "Return", - "src": "2316:7:32" + "src": "2313:7:43" } }, { "body": { - "id": 9157, + "id": 11453, "nodeType": "Block", - "src": "2379:403:32", + "src": "2376:403:43", "statements": [ { "condition": { @@ -4429,7 +4429,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9153, + "id": 11449, "isConstant": false, "isLValue": false, "isPure": false, @@ -4440,7 +4440,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9139, + "id": 11435, "isConstant": false, "isLValue": false, "isPure": false, @@ -4451,14 +4451,14 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9125, + "id": 11421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9111, + "id": 11407, "isConstant": false, "isLValue": false, "isPure": false, @@ -4466,7 +4466,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2414:57:32", + "src": "2411:57:43", "subExpression": { "argumentTypes": null, "components": [ @@ -4476,7 +4476,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9109, + "id": 11405, "isConstant": false, "isLValue": false, "isPure": false, @@ -4487,7 +4487,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9101, + "id": 11397, "isConstant": false, "isLValue": false, "isPure": false, @@ -4496,26 +4496,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9097, + "id": 11393, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2416:12:32", + "referencedDeclaration": 11339, + "src": "2413:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9099, + "id": 11395, "indexExpression": { "argumentTypes": null, - "id": 9098, + "id": 11394, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2429:1:32", + "referencedDeclaration": 11383, + "src": "2426:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4526,7 +4526,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2416:15:32", + "src": "2413:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4537,14 +4537,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783230", - "id": 9100, + "id": 11396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2435:4:32", + "src": "2432:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -4552,7 +4552,7 @@ }, "value": "0x20" }, - "src": "2416:23:32", + "src": "2413:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4566,7 +4566,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9108, + "id": 11404, "isConstant": false, "isLValue": false, "isPure": false, @@ -4575,37 +4575,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9102, + "id": 11398, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2443:12:32", + "referencedDeclaration": 11339, + "src": "2440:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9106, + "id": 11402, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9105, + "id": 11401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9103, + "id": 11399, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2456:1:32", + "referencedDeclaration": 11383, + "src": "2453:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4616,14 +4616,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 9104, + "id": 11400, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2460:1:32", + "src": "2457:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4631,7 +4631,7 @@ }, "value": "1" }, - "src": "2456:5:32", + "src": "2453:5:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4642,7 +4642,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2443:19:32", + "src": "2440:19:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4653,14 +4653,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783230", - "id": 9107, + "id": 11403, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2466:4:32", + "src": "2463:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -4668,27 +4668,27 @@ }, "value": "0x20" }, - "src": "2443:27:32", + "src": "2440:27:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2416:54:32", + "src": "2413:54:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 9110, + "id": 11406, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2415:56:32", + "src": "2412:56:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4703,7 +4703,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 9124, + "id": 11420, "isConstant": false, "isLValue": false, "isPure": false, @@ -4711,7 +4711,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2524:53:32", + "src": "2521:53:43", "subExpression": { "argumentTypes": null, "components": [ @@ -4721,7 +4721,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9122, + "id": 11418, "isConstant": false, "isLValue": false, "isPure": false, @@ -4732,7 +4732,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9116, + "id": 11412, "isConstant": false, "isLValue": false, "isPure": false, @@ -4741,26 +4741,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9112, + "id": 11408, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2526:12:32", + "referencedDeclaration": 11339, + "src": "2523:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9114, + "id": 11410, "indexExpression": { "argumentTypes": null, - "id": 9113, + "id": 11409, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2539:1:32", + "referencedDeclaration": 11383, + "src": "2536:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4771,7 +4771,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2526:15:32", + "src": "2523:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4782,14 +4782,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783330", - "id": 9115, + "id": 11411, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2545:4:32", + "src": "2542:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_48_by_1", @@ -4797,7 +4797,7 @@ }, "value": "0x30" }, - "src": "2526:23:32", + "src": "2523:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4811,7 +4811,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9121, + "id": 11417, "isConstant": false, "isLValue": false, "isPure": false, @@ -4820,26 +4820,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9117, + "id": 11413, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2553:12:32", + "referencedDeclaration": 11339, + "src": "2550:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9119, + "id": 11415, "indexExpression": { "argumentTypes": null, - "id": 9118, + "id": 11414, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2566:1:32", + "referencedDeclaration": 11383, + "src": "2563:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4850,7 +4850,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2553:15:32", + "src": "2550:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4861,14 +4861,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783339", - "id": 9120, + "id": 11416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2572:4:32", + "src": "2569:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_57_by_1", @@ -4876,27 +4876,27 @@ }, "value": "0x39" }, - "src": "2553:23:32", + "src": "2550:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2526:50:32", + "src": "2523:50:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 9123, + "id": 11419, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2525:52:32", + "src": "2522:52:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4907,7 +4907,7 @@ "typeString": "bool" } }, - "src": "2414:163:32", + "src": "2411:163:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4917,7 +4917,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 9138, + "id": 11434, "isConstant": false, "isLValue": false, "isPure": false, @@ -4925,7 +4925,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2604:53:32", + "src": "2601:53:43", "subExpression": { "argumentTypes": null, "components": [ @@ -4935,7 +4935,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9136, + "id": 11432, "isConstant": false, "isLValue": false, "isPure": false, @@ -4946,7 +4946,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9130, + "id": 11426, "isConstant": false, "isLValue": false, "isPure": false, @@ -4955,26 +4955,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9126, + "id": 11422, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2606:12:32", + "referencedDeclaration": 11339, + "src": "2603:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9128, + "id": 11424, "indexExpression": { "argumentTypes": null, - "id": 9127, + "id": 11423, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2619:1:32", + "referencedDeclaration": 11383, + "src": "2616:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4985,7 +4985,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2606:15:32", + "src": "2603:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4996,14 +4996,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783431", - "id": 9129, + "id": 11425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2625:4:32", + "src": "2622:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_65_by_1", @@ -5011,7 +5011,7 @@ }, "value": "0x41" }, - "src": "2606:23:32", + "src": "2603:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5025,7 +5025,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9135, + "id": 11431, "isConstant": false, "isLValue": false, "isPure": false, @@ -5034,26 +5034,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9131, + "id": 11427, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2633:12:32", + "referencedDeclaration": 11339, + "src": "2630:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9133, + "id": 11429, "indexExpression": { "argumentTypes": null, - "id": 9132, + "id": 11428, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2646:1:32", + "referencedDeclaration": 11383, + "src": "2643:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5064,7 +5064,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2633:15:32", + "src": "2630:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -5075,14 +5075,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783561", - "id": 9134, + "id": 11430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2652:4:32", + "src": "2649:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_90_by_1", @@ -5090,27 +5090,27 @@ }, "value": "0x5a" }, - "src": "2633:23:32", + "src": "2630:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2606:50:32", + "src": "2603:50:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 9137, + "id": 11433, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2605:52:32", + "src": "2602:52:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5121,7 +5121,7 @@ "typeString": "bool" } }, - "src": "2414:243:32", + "src": "2411:243:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5131,7 +5131,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 9152, + "id": 11448, "isConstant": false, "isLValue": false, "isPure": false, @@ -5139,7 +5139,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2684:53:32", + "src": "2681:53:43", "subExpression": { "argumentTypes": null, "components": [ @@ -5149,7 +5149,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9150, + "id": 11446, "isConstant": false, "isLValue": false, "isPure": false, @@ -5160,7 +5160,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9144, + "id": 11440, "isConstant": false, "isLValue": false, "isPure": false, @@ -5169,26 +5169,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9140, + "id": 11436, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2686:12:32", + "referencedDeclaration": 11339, + "src": "2683:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9142, + "id": 11438, "indexExpression": { "argumentTypes": null, - "id": 9141, + "id": 11437, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2699:1:32", + "referencedDeclaration": 11383, + "src": "2696:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5199,7 +5199,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2686:15:32", + "src": "2683:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -5210,14 +5210,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783631", - "id": 9143, + "id": 11439, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2705:4:32", + "src": "2702:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_97_by_1", @@ -5225,7 +5225,7 @@ }, "value": "0x61" }, - "src": "2686:23:32", + "src": "2683:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5239,7 +5239,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9149, + "id": 11445, "isConstant": false, "isLValue": false, "isPure": false, @@ -5248,26 +5248,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9145, + "id": 11441, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2713:12:32", + "referencedDeclaration": 11339, + "src": "2710:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9147, + "id": 11443, "indexExpression": { "argumentTypes": null, - "id": 9146, + "id": 11442, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2726:1:32", + "referencedDeclaration": 11383, + "src": "2723:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5278,7 +5278,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2713:15:32", + "src": "2710:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -5289,14 +5289,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783761", - "id": 9148, + "id": 11444, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2732:4:32", + "src": "2729:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_122_by_1", @@ -5304,27 +5304,27 @@ }, "value": "0x7a" }, - "src": "2713:23:32", + "src": "2710:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2686:50:32", + "src": "2683:50:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 9151, + "id": 11447, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2685:52:32", + "src": "2682:52:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5335,28 +5335,28 @@ "typeString": "bool" } }, - "src": "2414:323:32", + "src": "2411:323:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9156, + "id": 11452, "nodeType": "IfStatement", - "src": "2393:378:32", + "src": "2390:378:43", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 9154, + "id": 11450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2766:5:32", + "src": "2763:5:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5364,10 +5364,10 @@ }, "value": "false" }, - "functionReturnParameters": 9035, - "id": 9155, + "functionReturnParameters": 11331, + "id": 11451, "nodeType": "Return", - "src": "2759:12:32" + "src": "2756:12:43" } } ] @@ -5378,19 +5378,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9093, + "id": 11389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9090, + "id": 11386, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2349:1:32", + "referencedDeclaration": 11383, + "src": "2346:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5402,18 +5402,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9091, + "id": 11387, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2353:12:32", + "referencedDeclaration": 11339, + "src": "2350:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9092, + "id": 11388, "isConstant": false, "isLValue": false, "isPure": false, @@ -5421,31 +5421,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2353:19:32", + "src": "2350:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2349:23:32", + "src": "2346:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 9158, + "id": 11454, "initializationExpression": { "assignments": [ - 9087 + 11383 ], "declarations": [ { "constant": false, - "id": 9087, + "id": 11383, "name": "i", "nodeType": "VariableDeclaration", - "scope": 9162, - "src": "2337:6:32", + "scope": 11458, + "src": "2334:6:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5453,10 +5453,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9086, + "id": 11382, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2337:4:32", + "src": "2334:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5466,18 +5466,18 @@ "visibility": "internal" } ], - "id": 9089, + "id": 11385, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 9088, + "id": 11384, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2346:1:32", + "src": "2343:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5486,12 +5486,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2337:10:32" + "src": "2334:10:43" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 9095, + "id": 11391, "isConstant": false, "isLValue": false, "isPure": false, @@ -5499,15 +5499,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2374:3:32", + "src": "2371:3:43", "subExpression": { "argumentTypes": null, - "id": 9094, + "id": 11390, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2374:1:32", + "referencedDeclaration": 11383, + "src": "2371:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5518,25 +5518,25 @@ "typeString": "uint256" } }, - "id": 9096, + "id": 11392, "nodeType": "ExpressionStatement", - "src": "2374:3:32" + "src": "2371:3:43" }, "nodeType": "ForStatement", - "src": "2333:449:32" + "src": "2330:449:43" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 9159, + "id": 11455, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2799:4:32", + "src": "2796:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5544,15 +5544,15 @@ }, "value": "true" }, - "functionReturnParameters": 9035, - "id": 9160, + "functionReturnParameters": 11331, + "id": 11456, "nodeType": "Return", - "src": "2792:11:32" + "src": "2789:11:43" } ] }, "documentation": null, - "id": 9162, + "id": 11458, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5560,16 +5560,16 @@ "name": "_isStringValid", "nodeType": "FunctionDefinition", "parameters": { - "id": 9032, + "id": 11328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9027, + "id": 11323, "name": "_string", "nodeType": "VariableDeclaration", - "scope": 9162, - "src": "1835:14:32", + "scope": 11458, + "src": "1832:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5577,10 +5577,10 @@ "typeString": "string" }, "typeName": { - "id": 9026, + "id": 11322, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1835:6:32", + "src": "1832:6:43", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -5591,11 +5591,11 @@ }, { "constant": false, - "id": 9029, + "id": 11325, "name": "minLn", "nodeType": "VariableDeclaration", - "scope": 9162, - "src": "1851:10:32", + "scope": 11458, + "src": "1848:10:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5603,10 +5603,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9028, + "id": 11324, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1851:4:32", + "src": "1848:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5617,11 +5617,11 @@ }, { "constant": false, - "id": 9031, + "id": 11327, "name": "maxLn", "nodeType": "VariableDeclaration", - "scope": 9162, - "src": "1863:10:32", + "scope": 11458, + "src": "1860:10:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5629,10 +5629,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9030, + "id": 11326, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1863:4:32", + "src": "1860:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5642,20 +5642,20 @@ "visibility": "internal" } ], - "src": "1834:40:32" + "src": "1831:40:43" }, "payable": false, "returnParameters": { - "id": 9035, + "id": 11331, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9034, + "id": 11330, "name": "", "nodeType": "VariableDeclaration", - "scope": 9162, - "src": "1897:4:32", + "scope": 11458, + "src": "1894:4:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5663,10 +5663,10 @@ "typeString": "bool" }, "typeName": { - "id": 9033, + "id": 11329, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1897:4:32", + "src": "1894:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5676,33 +5676,33 @@ "visibility": "internal" } ], - "src": "1896:6:32" + "src": "1893:6:43" }, - "scope": 9163, - "src": "1811:999:32", + "scope": 11459, + "src": "1808:999:43", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 9164, - "src": "51:2761:32" + "scope": 11460, + "src": "50:2759:43" } ], - "src": "0:2813:32" + "src": "0:2810:43" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/WTokenTestHelper.sol", "exportedSymbols": { "WTokenTestHelper": [ - 9163 + 11459 ] }, - "id": 9164, + "id": 11460, "nodeType": "SourceUnit", "nodes": [ { - "id": 8783, + "id": 11079, "literals": [ "solidity", "^", @@ -5710,41 +5710,41 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:32" + "src": "0:24:43" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "./WToken.sol", - "id": 8784, + "id": 11080, "nodeType": "ImportDirective", - "scope": 9164, - "sourceUnit": 8751, - "src": "26:22:32", + "scope": 11460, + "sourceUnit": 11049, + "src": "26:22:43", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ - 8750 + 11048 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 9163, + "id": 11459, "linearizedBaseContracts": [ - 9163 + 11459 ], "name": "WTokenTestHelper", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 8787, + "id": 11083, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 9163, - "src": "83:23:32", + "scope": 11459, + "src": "82:23:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5753,19 +5753,19 @@ }, "typeName": { "baseType": { - "id": 8785, + "id": 11081, "name": "address", "nodeType": "ElementaryTypeName", - "src": "83:7:32", + "src": "82:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 8786, + "id": 11082, "length": null, "nodeType": "ArrayTypeName", - "src": "83:9:32", + "src": "82:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -5776,11 +5776,11 @@ }, { "constant": false, - "id": 8791, + "id": 11087, "name": "tokenIndexes", "nodeType": "VariableDeclaration", - "scope": 9163, - "src": "112:47:32", + "scope": 11459, + "src": "111:47:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5788,28 +5788,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 8790, + "id": 11086, "keyType": { - "id": 8788, + "id": 11084, "name": "address", "nodeType": "ElementaryTypeName", - "src": "120:7:32", + "src": "119:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "112:27:32", + "src": "111:27:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 8789, + "id": 11085, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "131:7:32", + "src": "130:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5822,21 +5822,21 @@ { "anonymous": false, "documentation": null, - "id": 8795, + "id": 11091, "name": "NewToken", "nodeType": "EventDefinition", "parameters": { - "id": 8794, + "id": 11090, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8793, + "id": 11089, "indexed": true, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 8795, - "src": "181:28:32", + "scope": 11091, + "src": "180:28:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5844,10 +5844,10 @@ "typeString": "address" }, "typeName": { - "id": 8792, + "id": 11088, "name": "address", "nodeType": "ElementaryTypeName", - "src": "181:7:32", + "src": "180:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5857,15 +5857,15 @@ "visibility": "internal" } ], - "src": "180:30:32" + "src": "179:30:43" }, - "src": "166:45:32" + "src": "165:45:43" }, { "body": { - "id": 8910, + "id": 11206, "nodeType": "Block", - "src": "334:557:32", + "src": "333:555:43", "statements": [ { "expression": { @@ -5876,12 +5876,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8810, + "id": 11106, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8797, - "src": "367:5:32", + "referencedDeclaration": 11093, + "src": "366:5:43", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -5890,14 +5890,14 @@ { "argumentTypes": null, "hexValue": "35", - "id": 8811, + "id": 11107, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "374:1:32", + "src": "373:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -5908,14 +5908,14 @@ { "argumentTypes": null, "hexValue": "3530", - "id": 8812, + "id": 11108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "377:2:32", + "src": "376:2:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", @@ -5939,18 +5939,18 @@ "typeString": "int_const 50" } ], - "id": 8809, + "id": 11105, "name": "_isStringValid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9162, - "src": "352:14:32", + "referencedDeclaration": 11458, + "src": "351:14:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (string memory,uint256,uint256) pure returns (bool)" } }, - "id": 8813, + "id": 11109, "isConstant": false, "isLValue": false, "isPure": false, @@ -5958,7 +5958,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "352:28:32", + "src": "351:28:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5972,21 +5972,21 @@ "typeString": "bool" } ], - "id": 8808, + "id": 11104, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "344:7:32", + "referencedDeclaration": 13444, + "src": "343:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8814, + "id": 11110, "isConstant": false, "isLValue": false, "isPure": false, @@ -5994,15 +5994,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "344:37:32", + "src": "343:37:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8815, + "id": 11111, "nodeType": "ExpressionStatement", - "src": "344:37:32" + "src": "343:37:43" }, { "expression": { @@ -6013,12 +6013,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8818, + "id": 11114, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8799, - "src": "414:7:32", + "referencedDeclaration": 11095, + "src": "413:7:43", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -6027,14 +6027,14 @@ { "argumentTypes": null, "hexValue": "33", - "id": 8819, + "id": 11115, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "423:1:32", + "src": "422:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -6045,14 +6045,14 @@ { "argumentTypes": null, "hexValue": "35", - "id": 8820, + "id": 11116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "426:1:32", + "src": "425:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -6076,18 +6076,18 @@ "typeString": "int_const 5" } ], - "id": 8817, + "id": 11113, "name": "_isStringValid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9162, - "src": "399:14:32", + "referencedDeclaration": 11458, + "src": "398:14:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (string memory,uint256,uint256) pure returns (bool)" } }, - "id": 8821, + "id": 11117, "isConstant": false, "isLValue": false, "isPure": false, @@ -6095,7 +6095,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "399:29:32", + "src": "398:29:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6109,21 +6109,21 @@ "typeString": "bool" } ], - "id": 8816, + "id": 11112, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "391:7:32", + "referencedDeclaration": 13444, + "src": "390:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8822, + "id": 11118, "isConstant": false, "isLValue": false, "isPure": false, @@ -6131,15 +6131,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "391:38:32", + "src": "390:38:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8823, + "id": 11119, "nodeType": "ExpressionStatement", - "src": "391:38:32" + "src": "390:38:43" }, { "expression": { @@ -6151,7 +6151,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 8835, + "id": 11131, "isConstant": false, "isLValue": false, "isPure": false, @@ -6162,19 +6162,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 8829, + "id": 11125, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8825, + "id": 11121, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "447:9:32", + "referencedDeclaration": 11097, + "src": "446:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6188,14 +6188,14 @@ { "argumentTypes": null, "hexValue": "31", - "id": 8827, + "id": 11123, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "465:1:32", + "src": "464:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6211,20 +6211,20 @@ "typeString": "int_const 1" } ], - "id": 8826, + "id": 11122, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "459:5:32", + "src": "458:5:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 8828, + "id": 11124, "isConstant": false, "isLValue": false, "isPure": true, @@ -6232,13 +6232,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "459:8:32", + "src": "458:8:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "447:20:32", + "src": "446:20:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6252,19 +6252,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 8834, + "id": 11130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8830, + "id": 11126, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "471:9:32", + "referencedDeclaration": 11097, + "src": "470:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6278,14 +6278,14 @@ { "argumentTypes": null, "hexValue": "3139", - "id": 8832, + "id": 11128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "489:2:32", + "src": "488:2:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_19_by_1", @@ -6301,20 +6301,20 @@ "typeString": "int_const 19" } ], - "id": 8831, + "id": 11127, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "483:5:32", + "src": "482:5:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 8833, + "id": 11129, "isConstant": false, "isLValue": false, "isPure": true, @@ -6322,19 +6322,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "483:9:32", + "src": "482:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "471:21:32", + "src": "470:21:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "447:45:32", + "src": "446:45:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6348,21 +6348,21 @@ "typeString": "bool" } ], - "id": 8824, + "id": 11120, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "439:7:32", + "referencedDeclaration": 13444, + "src": "438:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8836, + "id": 11132, "isConstant": false, "isLValue": false, "isPure": false, @@ -6370,15 +6370,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "439:54:32", + "src": "438:54:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8837, + "id": 11133, "nodeType": "ExpressionStatement", - "src": "439:54:32" + "src": "438:54:43" }, { "expression": { @@ -6390,7 +6390,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 8855, + "id": 11151, "isConstant": false, "isLValue": false, "isPure": false, @@ -6401,19 +6401,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8841, + "id": 11137, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8839, + "id": 11135, "name": "amountToIssue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8803, - "src": "511:13:32", + "referencedDeclaration": 11099, + "src": "510:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6424,14 +6424,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3939", - "id": 8840, + "id": 11136, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "527:2:32", + "src": "526:2:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_99_by_1", @@ -6439,7 +6439,7 @@ }, "value": "99" }, - "src": "511:18:32", + "src": "510:18:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6453,19 +6453,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8854, + "id": 11150, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8842, + "id": 11138, "name": "amountToIssue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8803, - "src": "533:13:32", + "referencedDeclaration": 11099, + "src": "532:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6482,7 +6482,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8852, + "id": 11148, "isConstant": false, "isLValue": false, "isPure": false, @@ -6492,7 +6492,7 @@ "arguments": [ { "argumentTypes": null, - "id": 8845, + "id": 11141, "isConstant": false, "isLValue": false, "isPure": true, @@ -6500,18 +6500,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "556:2:32", + "src": "555:2:43", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 8844, + "id": 11140, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "557:1:32", + "src": "556:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6532,20 +6532,20 @@ "typeString": "int_const -1" } ], - "id": 8843, + "id": 11139, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "551:4:32", + "src": "550:4:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 8846, + "id": 11142, "isConstant": false, "isLValue": false, "isPure": true, @@ -6553,7 +6553,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "551:8:32", + "src": "550:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6567,7 +6567,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8851, + "id": 11147, "isConstant": false, "isLValue": false, "isPure": false, @@ -6575,14 +6575,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 8847, + "id": 11143, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "562:2:32", + "src": "561:2:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -6597,12 +6597,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8849, + "id": 11145, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "573:9:32", + "referencedDeclaration": 11097, + "src": "572:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6616,20 +6616,20 @@ "typeString": "uint8" } ], - "id": 8848, + "id": 11144, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "568:4:32", + "src": "567:4:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 8850, + "id": 11146, "isConstant": false, "isLValue": false, "isPure": false, @@ -6637,45 +6637,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "568:15:32", + "src": "567:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "562:21:32", + "src": "561:21:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "551:32:32", + "src": "550:32:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 8853, + "id": 11149, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "550:34:32", + "src": "549:34:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "533:51:32", + "src": "532:51:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "511:73:32", + "src": "510:73:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6689,21 +6689,21 @@ "typeString": "bool" } ], - "id": 8838, + "id": 11134, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "503:7:32", + "referencedDeclaration": 13444, + "src": "502:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8856, + "id": 11152, "isConstant": false, "isLValue": false, "isPure": false, @@ -6711,34 +6711,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "503:82:32", + "src": "502:82:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8857, + "id": 11153, "nodeType": "ExpressionStatement", - "src": "503:82:32" + "src": "502:82:43" }, { "expression": { "argumentTypes": null, - "id": 8865, + "id": 11161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 8858, + "id": 11154, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "596:5:32", + "referencedDeclaration": 11102, + "src": "595:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, @@ -6749,12 +6749,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8861, + "id": 11157, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8797, - "src": "615:5:32", + "referencedDeclaration": 11093, + "src": "614:5:43", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -6762,12 +6762,12 @@ }, { "argumentTypes": null, - "id": 8862, + "id": 11158, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8799, - "src": "622:7:32", + "referencedDeclaration": 11095, + "src": "621:7:43", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -6775,12 +6775,12 @@ }, { "argumentTypes": null, - "id": 8863, + "id": 11159, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "631:9:32", + "referencedDeclaration": 11097, + "src": "630:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6802,31 +6802,31 @@ "typeString": "uint8" } ], - "id": 8860, + "id": 11156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "604:10:32", + "src": "603:10:43", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$8750_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$11048_$", "typeString": "function (string memory,string memory,uint8) returns (contract WToken)" }, "typeName": { "contractScope": null, - "id": 8859, + "id": 11155, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "608:6:32", + "referencedDeclaration": 11048, + "src": "607:6:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } } }, - "id": 8864, + "id": 11160, "isConstant": false, "isLValue": false, "isPure": false, @@ -6834,21 +6834,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "604:37:32", + "src": "603:37:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "src": "596:45:32", + "src": "595:45:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 8866, + "id": 11162, "nodeType": "ExpressionStatement", - "src": "596:45:32" + "src": "595:45:43" }, { "expression": { @@ -6858,18 +6858,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 8870, + "id": 11166, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "675:3:32", + "referencedDeclaration": 13441, + "src": "672:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 8871, + "id": 11167, "isConstant": false, "isLValue": false, "isPure": false, @@ -6877,7 +6877,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "675:10:32", + "src": "672:10:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6893,32 +6893,32 @@ ], "expression": { "argumentTypes": null, - "id": 8867, + "id": 11163, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "651:5:32", + "referencedDeclaration": 11102, + "src": "650:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 8869, + "id": 11165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transferOwnership", + "memberName": "transferPrimary", "nodeType": "MemberAccess", - "referencedDeclaration": 10110, - "src": "651:23:32", + "referencedDeclaration": 12452, + "src": "650:21:43", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 8872, + "id": 11168, "isConstant": false, "isLValue": false, "isPure": false, @@ -6926,20 +6926,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "651:35:32", + "src": "650:33:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8873, + "id": 11169, "nodeType": "ExpressionStatement", - "src": "651:35:32" + "src": "650:33:43" }, { "expression": { "argumentTypes": null, - "id": 8881, + "id": 11177, "isConstant": false, "isLValue": false, "isPure": false, @@ -6948,31 +6948,31 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8874, + "id": 11170, "name": "tokenIndexes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8791, - "src": "697:12:32", + "referencedDeclaration": 11087, + "src": "694:12:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 8878, + "id": 11174, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 8876, + "id": 11172, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "718:5:32", + "referencedDeclaration": 11102, + "src": "715:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } } @@ -6980,24 +6980,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } ], - "id": 8875, + "id": 11171, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "710:7:32", + "src": "707:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 8877, + "id": 11173, "isConstant": false, "isLValue": false, "isPure": false, @@ -7005,7 +7005,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "710:14:32", + "src": "707:14:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7016,7 +7016,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "697:28:32", + "src": "694:28:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7028,18 +7028,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 8879, + "id": 11175, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8787, - "src": "728:6:32", + "referencedDeclaration": 11083, + "src": "725:6:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 8880, + "id": 11176, "isConstant": false, "isLValue": true, "isPure": false, @@ -7047,21 +7047,21 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "728:13:32", + "src": "725:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "697:44:32", + "src": "694:44:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8882, + "id": 11178, "nodeType": "ExpressionStatement", - "src": "697:44:32" + "src": "694:44:43" }, { "expression": { @@ -7072,14 +7072,14 @@ "arguments": [ { "argumentTypes": null, - "id": 8887, + "id": 11183, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "771:5:32", + "referencedDeclaration": 11102, + "src": "768:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } } @@ -7087,24 +7087,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } ], - "id": 8886, + "id": 11182, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "763:7:32", + "src": "760:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 8888, + "id": 11184, "isConstant": false, "isLValue": false, "isPure": false, @@ -7112,7 +7112,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "763:14:32", + "src": "760:14:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7128,18 +7128,18 @@ ], "expression": { "argumentTypes": null, - "id": 8883, + "id": 11179, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8787, - "src": "751:6:32", + "referencedDeclaration": 11083, + "src": "748:6:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 8885, + "id": 11181, "isConstant": false, "isLValue": false, "isPure": false, @@ -7147,13 +7147,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "751:11:32", + "src": "748:11:43", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, - "id": 8889, + "id": 11185, "isConstant": false, "isLValue": false, "isPure": false, @@ -7161,15 +7161,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "751:27:32", + "src": "748:27:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 8890, + "id": 11186, "nodeType": "ExpressionStatement", - "src": "751:27:32" + "src": "748:27:43" }, { "expression": { @@ -7179,18 +7179,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 8894, + "id": 11190, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "800:3:32", + "referencedDeclaration": 13441, + "src": "797:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 8895, + "id": 11191, "isConstant": false, "isLValue": false, "isPure": false, @@ -7198,7 +7198,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "800:10:32", + "src": "797:10:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7210,19 +7210,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8902, + "id": 11198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8896, + "id": 11192, "name": "amountToIssue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8803, - "src": "812:13:32", + "referencedDeclaration": 11099, + "src": "809:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7236,7 +7236,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8901, + "id": 11197, "isConstant": false, "isLValue": false, "isPure": false, @@ -7244,14 +7244,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 8897, + "id": 11193, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "828:2:32", + "src": "825:2:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -7266,12 +7266,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8899, + "id": 11195, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "839:9:32", + "referencedDeclaration": 11097, + "src": "836:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7285,20 +7285,20 @@ "typeString": "uint8" } ], - "id": 8898, + "id": 11194, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "834:4:32", + "src": "831:4:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 8900, + "id": 11196, "isConstant": false, "isLValue": false, "isPure": false, @@ -7306,19 +7306,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "834:15:32", + "src": "831:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "828:21:32", + "src": "825:21:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "812:37:32", + "src": "809:37:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7327,14 +7327,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 8903, + "id": 11199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "851:1:32", + "src": "848:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7360,32 +7360,32 @@ ], "expression": { "argumentTypes": null, - "id": 8891, + "id": 11187, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "789:5:32", + "referencedDeclaration": 11102, + "src": "786:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 8893, + "id": 11189, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 8412, - "src": "789:10:32", + "referencedDeclaration": 10719, + "src": "786:10:43", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 8904, + "id": 11200, "isConstant": false, "isLValue": false, "isPure": false, @@ -7393,15 +7393,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "789:64:32", + "src": "786:64:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 8905, + "id": 11201, "nodeType": "ExpressionStatement", - "src": "789:64:32" + "src": "786:64:43" }, { "eventCall": { @@ -7409,14 +7409,14 @@ "arguments": [ { "argumentTypes": null, - "id": 8907, + "id": 11203, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "878:5:32", + "referencedDeclaration": 11102, + "src": "875:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } } @@ -7424,22 +7424,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } ], - "id": 8906, + "id": 11202, "name": "NewToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8795, - "src": "869:8:32", + "referencedDeclaration": 11091, + "src": "866:8:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 8908, + "id": 11204, "isConstant": false, "isLValue": false, "isPure": false, @@ -7447,20 +7447,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "869:15:32", + "src": "866:15:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8909, + "id": 11205, "nodeType": "EmitStatement", - "src": "864:20:32" + "src": "861:20:43" } ] }, "documentation": null, - "id": 8911, + "id": 11207, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7468,16 +7468,16 @@ "name": "createToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 8804, + "id": 11100, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8797, + "id": 11093, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 8911, - "src": "238:12:32", + "scope": 11207, + "src": "237:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7485,10 +7485,10 @@ "typeString": "string" }, "typeName": { - "id": 8796, + "id": 11092, "name": "string", "nodeType": "ElementaryTypeName", - "src": "238:6:32", + "src": "237:6:43", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -7499,11 +7499,11 @@ }, { "constant": false, - "id": 8799, + "id": 11095, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 8911, - "src": "252:14:32", + "scope": 11207, + "src": "251:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7511,10 +7511,10 @@ "typeString": "string" }, "typeName": { - "id": 8798, + "id": 11094, "name": "string", "nodeType": "ElementaryTypeName", - "src": "252:6:32", + "src": "251:6:43", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -7525,11 +7525,11 @@ }, { "constant": false, - "id": 8801, + "id": 11097, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 8911, - "src": "268:15:32", + "scope": 11207, + "src": "267:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7537,10 +7537,10 @@ "typeString": "uint8" }, "typeName": { - "id": 8800, + "id": 11096, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "268:5:32", + "src": "267:5:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7551,11 +7551,11 @@ }, { "constant": false, - "id": 8803, + "id": 11099, "name": "amountToIssue", "nodeType": "VariableDeclaration", - "scope": 8911, - "src": "285:18:32", + "scope": 11207, + "src": "284:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7563,10 +7563,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8802, + "id": 11098, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "285:4:32", + "src": "284:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7576,35 +7576,35 @@ "visibility": "internal" } ], - "src": "237:67:32" + "src": "236:67:43" }, "payable": false, "returnParameters": { - "id": 8807, + "id": 11103, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8806, + "id": 11102, "name": "token", "nodeType": "VariableDeclaration", - "scope": 8911, - "src": "320:12:32", + "scope": 11207, + "src": "319:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 8805, + "id": 11101, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "320:6:32", + "referencedDeclaration": 11048, + "src": "319:6:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, @@ -7612,43 +7612,43 @@ "visibility": "internal" } ], - "src": "319:14:32" + "src": "318:14:43" }, - "scope": 9163, - "src": "217:674:32", + "scope": 11459, + "src": "216:672:43", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 8919, + "id": 11215, "nodeType": "Block", - "src": "950:30:32", + "src": "947:30:43", "statements": [ { "expression": { "argumentTypes": null, - "id": 8917, + "id": 11213, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8787, - "src": "967:6:32", + "referencedDeclaration": 11083, + "src": "964:6:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "functionReturnParameters": 8916, - "id": 8918, + "functionReturnParameters": 11212, + "id": 11214, "nodeType": "Return", - "src": "960:13:32" + "src": "957:13:43" } ] }, "documentation": null, - "id": 8920, + "id": 11216, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7656,23 +7656,23 @@ "name": "tokensList", "nodeType": "FunctionDefinition", "parameters": { - "id": 8912, + "id": 11208, "nodeType": "ParameterList", "parameters": [], - "src": "916:2:32" + "src": "913:2:43" }, "payable": false, "returnParameters": { - "id": 8916, + "id": 11212, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8915, + "id": 11211, "name": "", "nodeType": "VariableDeclaration", - "scope": 8920, - "src": "939:9:32", + "scope": 11216, + "src": "936:9:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7681,19 +7681,19 @@ }, "typeName": { "baseType": { - "id": 8913, + "id": 11209, "name": "address", "nodeType": "ElementaryTypeName", - "src": "939:7:32", + "src": "936:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 8914, + "id": 11210, "length": null, "nodeType": "ArrayTypeName", - "src": "939:9:32", + "src": "936:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -7703,19 +7703,19 @@ "visibility": "internal" } ], - "src": "938:11:32" + "src": "935:11:43" }, - "scope": 9163, - "src": "897:83:32", + "scope": 11459, + "src": "894:83:43", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 8940, + "id": 11236, "nodeType": "Block", - "src": "1053:95:32", + "src": "1050:95:43", "statements": [ { "expression": { @@ -7724,7 +7724,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 8938, + "id": 11234, "isConstant": false, "isLValue": false, "isPure": false, @@ -7735,7 +7735,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8930, + "id": 11226, "isConstant": false, "isLValue": false, "isPure": false, @@ -7744,18 +7744,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 8927, + "id": 11223, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8787, - "src": "1070:6:32", + "referencedDeclaration": 11083, + "src": "1067:6:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 8928, + "id": 11224, "isConstant": false, "isLValue": true, "isPure": false, @@ -7763,7 +7763,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1070:13:32", + "src": "1067:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7774,14 +7774,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 8929, + "id": 11225, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1086:1:32", + "src": "1083:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7789,7 +7789,7 @@ }, "value": "0" }, - "src": "1070:17:32", + "src": "1067:17:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7803,7 +7803,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 8937, + "id": 11233, "isConstant": false, "isLValue": false, "isPure": false, @@ -7812,42 +7812,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8931, + "id": 11227, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8787, - "src": "1091:6:32", + "referencedDeclaration": 11083, + "src": "1088:6:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 8935, + "id": 11231, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 8932, + "id": 11228, "name": "tokenIndexes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8791, - "src": "1098:12:32", + "referencedDeclaration": 11087, + "src": "1095:12:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 8934, + "id": 11230, "indexExpression": { "argumentTypes": null, - "id": 8933, + "id": 11229, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8922, - "src": "1111:12:32", + "referencedDeclaration": 11218, + "src": "1108:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7858,7 +7858,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1098:26:32", + "src": "1095:26:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7869,7 +7869,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1091:34:32", + "src": "1088:34:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7879,38 +7879,38 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 8936, + "id": 11232, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8922, - "src": "1129:12:32", + "referencedDeclaration": 11218, + "src": "1126:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1091:50:32", + "src": "1088:50:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1070:71:32", + "src": "1067:71:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 8926, - "id": 8939, + "functionReturnParameters": 11222, + "id": 11235, "nodeType": "Return", - "src": "1063:78:32" + "src": "1060:78:43" } ] }, "documentation": null, - "id": 8941, + "id": 11237, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7918,16 +7918,16 @@ "name": "hasToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 8923, + "id": 11219, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8922, + "id": 11218, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 8941, - "src": "1004:20:32", + "scope": 11237, + "src": "1001:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7935,10 +7935,10 @@ "typeString": "address" }, "typeName": { - "id": 8921, + "id": 11217, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1004:7:32", + "src": "1001:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7948,20 +7948,20 @@ "visibility": "internal" } ], - "src": "1003:22:32" + "src": "1000:22:43" }, "payable": false, "returnParameters": { - "id": 8926, + "id": 11222, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8925, + "id": 11221, "name": "", "nodeType": "VariableDeclaration", - "scope": 8941, - "src": "1047:4:32", + "scope": 11237, + "src": "1044:4:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7969,10 +7969,10 @@ "typeString": "bool" }, "typeName": { - "id": 8924, + "id": 11220, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1047:4:32", + "src": "1044:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7982,19 +7982,19 @@ "visibility": "internal" } ], - "src": "1046:6:32" + "src": "1043:6:43" }, - "scope": 9163, - "src": "986:162:32", + "scope": 11459, + "src": "983:162:43", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 8981, + "id": 11277, "nodeType": "Block", - "src": "1257:178:32", + "src": "1254:178:43", "statements": [ { "expression": { @@ -8005,12 +8005,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8956, + "id": 11252, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8943, - "src": "1284:12:32", + "referencedDeclaration": 11239, + "src": "1281:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8024,18 +8024,18 @@ "typeString": "address" } ], - "id": 8955, + "id": 11251, "name": "hasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8941, - "src": "1275:8:32", + "referencedDeclaration": 11237, + "src": "1272:8:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 8957, + "id": 11253, "isConstant": false, "isLValue": false, "isPure": false, @@ -8043,7 +8043,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1275:22:32", + "src": "1272:22:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8057,21 +8057,21 @@ "typeString": "bool" } ], - "id": 8954, + "id": 11250, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1267:7:32", + "referencedDeclaration": 13444, + "src": "1264:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8958, + "id": 11254, "isConstant": false, "isLValue": false, "isPure": false, @@ -8079,43 +8079,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1267:31:32", + "src": "1264:31:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8959, + "id": 11255, "nodeType": "ExpressionStatement", - "src": "1267:31:32" + "src": "1264:31:43" }, { "assignments": [ - 8961 + 11257 ], "declarations": [ { "constant": false, - "id": 8961, + "id": 11257, "name": "token", "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "1309:12:32", + "scope": 11278, + "src": "1306:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 8960, + "id": 11256, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8750, - "src": "1309:6:32", + "referencedDeclaration": 11048, + "src": "1306:6:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, @@ -8123,18 +8123,18 @@ "visibility": "internal" } ], - "id": 8965, + "id": 11261, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 8963, + "id": 11259, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8943, - "src": "1331:12:32", + "referencedDeclaration": 11239, + "src": "1328:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8148,18 +8148,18 @@ "typeString": "address" } ], - "id": 8962, + "id": 11258, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8750, - "src": "1324:6:32", + "referencedDeclaration": 11048, + "src": "1321:6:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$8750_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$11048_$", "typeString": "type(contract WToken)" } }, - "id": 8964, + "id": 11260, "isConstant": false, "isLValue": false, "isPure": false, @@ -8167,14 +8167,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1324:20:32", + "src": "1321:20:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "1309:35:32" + "src": "1306:35:43" }, { "expression": { @@ -8182,12 +8182,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8968, + "id": 11264, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8945, - "src": "1373:2:32", + "referencedDeclaration": 11241, + "src": "1370:2:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8199,19 +8199,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8977, + "id": 11273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 8969, + "id": 11265, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8947, - "src": "1377:6:32", + "referencedDeclaration": 11243, + "src": "1374:6:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8225,7 +8225,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 8976, + "id": 11272, "isConstant": false, "isLValue": false, "isPure": false, @@ -8233,14 +8233,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 8970, + "id": 11266, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1386:2:32", + "src": "1383:2:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -8260,32 +8260,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 8972, + "id": 11268, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8961, - "src": "1397:5:32", + "referencedDeclaration": 11257, + "src": "1394:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 8973, + "id": 11269, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 10145, - "src": "1397:14:32", + "referencedDeclaration": 12985, + "src": "1394:14:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 8974, + "id": 11270, "isConstant": false, "isLValue": false, "isPure": false, @@ -8293,7 +8293,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1397:16:32", + "src": "1394:16:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8307,20 +8307,20 @@ "typeString": "uint8" } ], - "id": 8971, + "id": 11267, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1392:4:32", + "src": "1389:4:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 8975, + "id": 11271, "isConstant": false, "isLValue": false, "isPure": false, @@ -8328,19 +8328,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1392:22:32", + "src": "1389:22:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1386:28:32", + "src": "1383:28:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1377:37:32", + "src": "1374:37:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8348,12 +8348,12 @@ }, { "argumentTypes": null, - "id": 8978, + "id": 11274, "name": "vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8949, - "src": "1416:11:32", + "referencedDeclaration": 11245, + "src": "1413:11:43", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -8377,32 +8377,32 @@ ], "expression": { "argumentTypes": null, - "id": 8966, + "id": 11262, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8961, - "src": "1362:5:32", + "referencedDeclaration": 11257, + "src": "1359:5:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 8967, + "id": 11263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 8412, - "src": "1362:10:32", + "referencedDeclaration": 10719, + "src": "1359:10:43", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 8979, + "id": 11275, "isConstant": false, "isLValue": false, "isPure": false, @@ -8410,21 +8410,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1362:66:32", + "src": "1359:66:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 8953, - "id": 8980, + "functionReturnParameters": 11249, + "id": 11276, "nodeType": "Return", - "src": "1355:73:32" + "src": "1352:73:43" } ] }, "documentation": null, - "id": 8982, + "id": 11278, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8432,16 +8432,16 @@ "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 8950, + "id": 11246, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8943, + "id": 11239, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "1168:20:32", + "scope": 11278, + "src": "1165:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8449,10 +8449,10 @@ "typeString": "address" }, "typeName": { - "id": 8942, + "id": 11238, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1168:7:32", + "src": "1165:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8463,11 +8463,11 @@ }, { "constant": false, - "id": 8945, + "id": 11241, "name": "to", "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "1190:10:32", + "scope": 11278, + "src": "1187:10:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8475,10 +8475,10 @@ "typeString": "address" }, "typeName": { - "id": 8944, + "id": 11240, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1190:7:32", + "src": "1187:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8489,11 +8489,11 @@ }, { "constant": false, - "id": 8947, + "id": 11243, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "1202:11:32", + "scope": 11278, + "src": "1199:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8501,10 +8501,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8946, + "id": 11242, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1202:4:32", + "src": "1199:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8515,11 +8515,11 @@ }, { "constant": false, - "id": 8949, + "id": 11245, "name": "vestingTime", "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "1215:18:32", + "scope": 11278, + "src": "1212:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8527,10 +8527,10 @@ "typeString": "uint32" }, "typeName": { - "id": 8948, + "id": 11244, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1215:6:32", + "src": "1212:6:43", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -8540,20 +8540,20 @@ "visibility": "internal" } ], - "src": "1167:67:32" + "src": "1164:67:43" }, "payable": false, "returnParameters": { - "id": 8953, + "id": 11249, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8952, + "id": 11248, "name": "", "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "1251:4:32", + "scope": 11278, + "src": "1248:4:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8561,10 +8561,10 @@ "typeString": "bool" }, "typeName": { - "id": 8951, + "id": 11247, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1251:4:32", + "src": "1248:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8574,19 +8574,19 @@ "visibility": "internal" } ], - "src": "1250:6:32" + "src": "1247:6:43" }, - "scope": 9163, - "src": "1154:281:32", + "scope": 11459, + "src": "1151:281:43", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9004, + "id": 11300, "nodeType": "Block", - "src": "1525:104:32", + "src": "1522:104:43", "statements": [ { "expression": { @@ -8597,12 +8597,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8993, + "id": 11289, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8984, - "src": "1552:12:32", + "referencedDeclaration": 11280, + "src": "1549:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8616,18 +8616,18 @@ "typeString": "address" } ], - "id": 8992, + "id": 11288, "name": "hasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8941, - "src": "1543:8:32", + "referencedDeclaration": 11237, + "src": "1540:8:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 8994, + "id": 11290, "isConstant": false, "isLValue": false, "isPure": false, @@ -8635,7 +8635,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1543:22:32", + "src": "1540:22:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8649,21 +8649,21 @@ "typeString": "bool" } ], - "id": 8991, + "id": 11287, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1535:7:32", + "referencedDeclaration": 13444, + "src": "1532:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 8995, + "id": 11291, "isConstant": false, "isLValue": false, "isPure": false, @@ -8671,15 +8671,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1535:31:32", + "src": "1532:31:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 8996, + "id": 11292, "nodeType": "ExpressionStatement", - "src": "1535:31:32" + "src": "1532:31:43" }, { "expression": { @@ -8687,12 +8687,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9001, + "id": 11297, "name": "wallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8986, - "src": "1615:6:32", + "referencedDeclaration": 11282, + "src": "1612:6:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8711,12 +8711,12 @@ "arguments": [ { "argumentTypes": null, - "id": 8998, + "id": 11294, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8984, - "src": "1591:12:32", + "referencedDeclaration": 11280, + "src": "1588:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8730,18 +8730,18 @@ "typeString": "address" } ], - "id": 8997, + "id": 11293, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8750, - "src": "1584:6:32", + "referencedDeclaration": 11048, + "src": "1581:6:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$8750_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$11048_$", "typeString": "type(contract WToken)" } }, - "id": 8999, + "id": 11295, "isConstant": false, "isLValue": false, "isPure": false, @@ -8749,27 +8749,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1584:20:32", + "src": "1581:20:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 9000, + "id": 11296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 8101, - "src": "1584:30:32", + "referencedDeclaration": 12494, + "src": "1581:30:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 9002, + "id": 11298, "isConstant": false, "isLValue": false, "isPure": false, @@ -8777,21 +8777,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1584:38:32", + "src": "1581:38:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 8990, - "id": 9003, + "functionReturnParameters": 11286, + "id": 11299, "nodeType": "Return", - "src": "1577:45:32" + "src": "1574:45:43" } ] }, "documentation": null, - "id": 9005, + "id": 11301, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8799,16 +8799,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 8987, + "id": 11283, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8984, + "id": 11280, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 9005, - "src": "1460:20:32", + "scope": 11301, + "src": "1457:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8816,10 +8816,10 @@ "typeString": "address" }, "typeName": { - "id": 8983, + "id": 11279, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1460:7:32", + "src": "1457:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8830,11 +8830,11 @@ }, { "constant": false, - "id": 8986, + "id": 11282, "name": "wallet", "nodeType": "VariableDeclaration", - "scope": 9005, - "src": "1482:14:32", + "scope": 11301, + "src": "1479:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8842,10 +8842,10 @@ "typeString": "address" }, "typeName": { - "id": 8985, + "id": 11281, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1482:7:32", + "src": "1479:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8855,20 +8855,20 @@ "visibility": "internal" } ], - "src": "1459:38:32" + "src": "1456:38:43" }, "payable": false, "returnParameters": { - "id": 8990, + "id": 11286, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8989, + "id": 11285, "name": "", "nodeType": "VariableDeclaration", - "scope": 9005, - "src": "1519:4:32", + "scope": 11301, + "src": "1516:4:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8876,10 +8876,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8988, + "id": 11284, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1519:4:32", + "src": "1516:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8889,19 +8889,19 @@ "visibility": "internal" } ], - "src": "1518:6:32" + "src": "1515:6:43" }, - "scope": 9163, - "src": "1441:188:32", + "scope": 11459, + "src": "1438:188:43", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9024, + "id": 11320, "nodeType": "Block", - "src": "1705:100:32", + "src": "1702:100:43", "statements": [ { "expression": { @@ -8912,12 +8912,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9014, + "id": 11310, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9007, - "src": "1732:12:32", + "referencedDeclaration": 11303, + "src": "1729:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8931,18 +8931,18 @@ "typeString": "address" } ], - "id": 9013, + "id": 11309, "name": "hasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8941, - "src": "1723:8:32", + "referencedDeclaration": 11237, + "src": "1720:8:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 9015, + "id": 11311, "isConstant": false, "isLValue": false, "isPure": false, @@ -8950,7 +8950,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1723:22:32", + "src": "1720:22:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8964,21 +8964,21 @@ "typeString": "bool" } ], - "id": 9012, + "id": 11308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1715:7:32", + "referencedDeclaration": 13444, + "src": "1712:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9016, + "id": 11312, "isConstant": false, "isLValue": false, "isPure": false, @@ -8986,15 +8986,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1715:31:32", + "src": "1712:31:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9017, + "id": 11313, "nodeType": "ExpressionStatement", - "src": "1715:31:32" + "src": "1712:31:43" }, { "expression": { @@ -9007,12 +9007,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9019, + "id": 11315, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9007, - "src": "1771:12:32", + "referencedDeclaration": 11303, + "src": "1768:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9026,18 +9026,18 @@ "typeString": "address" } ], - "id": 9018, + "id": 11314, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8750, - "src": "1764:6:32", + "referencedDeclaration": 11048, + "src": "1761:6:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$8750_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$11048_$", "typeString": "type(contract WToken)" } }, - "id": 9020, + "id": 11316, "isConstant": false, "isLValue": false, "isPure": false, @@ -9045,27 +9045,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1764:20:32", + "src": "1761:20:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$8750", + "typeIdentifier": "t_contract$_WToken_$11048", "typeString": "contract WToken" } }, - "id": 9021, + "id": 11317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", - "referencedDeclaration": 7957, - "src": "1764:32:32", + "referencedDeclaration": 12482, + "src": "1761:32:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 9022, + "id": 11318, "isConstant": false, "isLValue": false, "isPure": false, @@ -9073,21 +9073,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1764:34:32", + "src": "1761:34:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 9011, - "id": 9023, + "functionReturnParameters": 11307, + "id": 11319, "nodeType": "Return", - "src": "1757:41:32" + "src": "1754:41:43" } ] }, "documentation": null, - "id": 9025, + "id": 11321, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -9095,16 +9095,16 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 9008, + "id": 11304, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9007, + "id": 11303, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 9025, - "src": "1656:20:32", + "scope": 11321, + "src": "1653:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9112,10 +9112,10 @@ "typeString": "address" }, "typeName": { - "id": 9006, + "id": 11302, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1656:7:32", + "src": "1653:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9125,20 +9125,20 @@ "visibility": "internal" } ], - "src": "1655:22:32" + "src": "1652:22:43" }, "payable": false, "returnParameters": { - "id": 9011, + "id": 11307, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9010, + "id": 11306, "name": "", "nodeType": "VariableDeclaration", - "scope": 9025, - "src": "1699:4:32", + "scope": 11321, + "src": "1696:4:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9146,10 +9146,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9009, + "id": 11305, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:32", + "src": "1696:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9159,19 +9159,19 @@ "visibility": "internal" } ], - "src": "1698:6:32" + "src": "1695:6:43" }, - "scope": 9163, - "src": "1635:170:32", + "scope": 11459, + "src": "1632:170:43", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9161, + "id": 11457, "nodeType": "Block", - "src": "1903:907:32", + "src": "1900:907:43", "statements": [ { "expression": { @@ -9183,19 +9183,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9039, + "id": 11335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9037, + "id": 11333, "name": "maxLn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9031, - "src": "1921:5:32", + "referencedDeclaration": 11327, + "src": "1918:5:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9205,18 +9205,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 9038, + "id": 11334, "name": "minLn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9029, - "src": "1930:5:32", + "referencedDeclaration": 11325, + "src": "1927:5:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1921:14:32", + "src": "1918:14:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9230,21 +9230,21 @@ "typeString": "bool" } ], - "id": 9036, + "id": 11332, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 10491, - 10492 + 13444, + 13445 ], - "referencedDeclaration": 10491, - "src": "1913:7:32", + "referencedDeclaration": 13444, + "src": "1910:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 9040, + "id": 11336, "isConstant": false, "isLValue": false, "isPure": false, @@ -9252,28 +9252,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1913:23:32", + "src": "1910:23:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9041, + "id": 11337, "nodeType": "ExpressionStatement", - "src": "1913:23:32" + "src": "1910:23:43" }, { "assignments": [ - 9043 + 11339 ], "declarations": [ { "constant": false, - "id": 9043, + "id": 11339, "name": "_stringBytes", "nodeType": "VariableDeclaration", - "scope": 9162, - "src": "1947:25:32", + "scope": 11458, + "src": "1944:25:43", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -9281,10 +9281,10 @@ "typeString": "bytes" }, "typeName": { - "id": 9042, + "id": 11338, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1947:5:32", + "src": "1944:5:43", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9294,18 +9294,18 @@ "visibility": "internal" } ], - "id": 9047, + "id": 11343, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 9045, + "id": 11341, "name": "_string", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9027, - "src": "1981:7:32", + "referencedDeclaration": 11323, + "src": "1978:7:43", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -9319,20 +9319,20 @@ "typeString": "string memory" } ], - "id": 9044, + "id": 11340, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1975:5:32", + "src": "1972:5:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": "bytes" }, - "id": 9046, + "id": 11342, "isConstant": false, "isLValue": false, "isPure": false, @@ -9340,14 +9340,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1975:14:32", + "src": "1972:14:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "1947:42:32" + "src": "1944:42:43" }, { "condition": { @@ -9356,7 +9356,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9055, + "id": 11351, "isConstant": false, "isLValue": false, "isPure": false, @@ -9367,7 +9367,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9051, + "id": 11347, "isConstant": false, "isLValue": false, "isPure": false, @@ -9376,18 +9376,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9048, + "id": 11344, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2027:12:32", + "referencedDeclaration": 11339, + "src": "2024:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9049, + "id": 11345, "isConstant": false, "isLValue": false, "isPure": false, @@ -9395,7 +9395,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2027:19:32", + "src": "2024:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9406,14 +9406,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9050, + "id": 11346, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2050:1:32", + "src": "2047:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9421,7 +9421,7 @@ }, "value": "0" }, - "src": "2027:24:32", + "src": "2024:24:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9435,19 +9435,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9054, + "id": 11350, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9052, + "id": 11348, "name": "minLn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9029, - "src": "2055:5:32", + "referencedDeclaration": 11325, + "src": "2052:5:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9458,14 +9458,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9053, + "id": 11349, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2064:1:32", + "src": "2061:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9473,34 +9473,34 @@ }, "value": "0" }, - "src": "2055:10:32", + "src": "2052:10:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2027:38:32", + "src": "2024:38:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9058, + "id": 11354, "nodeType": "IfStatement", - "src": "2023:55:32", + "src": "2020:55:43", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 9056, + "id": 11352, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2074:4:32", + "src": "2071:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9508,10 +9508,10 @@ }, "value": "true" }, - "functionReturnParameters": 9035, - "id": 9057, + "functionReturnParameters": 11331, + "id": 11353, "nodeType": "Return", - "src": "2067:11:32" + "src": "2064:11:43" } }, { @@ -9521,7 +9521,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9067, + "id": 11363, "isConstant": false, "isLValue": false, "isPure": false, @@ -9532,7 +9532,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9062, + "id": 11358, "isConstant": false, "isLValue": false, "isPure": false, @@ -9541,18 +9541,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9059, + "id": 11355, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2120:12:32", + "referencedDeclaration": 11339, + "src": "2117:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9060, + "id": 11356, "isConstant": false, "isLValue": false, "isPure": false, @@ -9560,7 +9560,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2120:19:32", + "src": "2117:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9570,18 +9570,18 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 9061, + "id": 11357, "name": "minLn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9029, - "src": "2142:5:32", + "referencedDeclaration": 11325, + "src": "2139:5:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2120:27:32", + "src": "2117:27:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9595,7 +9595,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9066, + "id": 11362, "isConstant": false, "isLValue": false, "isPure": false, @@ -9604,18 +9604,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9063, + "id": 11359, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2151:12:32", + "referencedDeclaration": 11339, + "src": "2148:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9064, + "id": 11360, "isConstant": false, "isLValue": false, "isPure": false, @@ -9623,7 +9623,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2151:19:32", + "src": "2148:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9633,39 +9633,39 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 9065, + "id": 11361, "name": "maxLn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9031, - "src": "2173:5:32", + "referencedDeclaration": 11327, + "src": "2170:5:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2151:27:32", + "src": "2148:27:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2120:58:32", + "src": "2117:58:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9069, + "id": 11365, "nodeType": "IfStatement", - "src": "2116:71:32", + "src": "2113:71:43", "trueBody": { "expression": null, - "functionReturnParameters": 9035, - "id": 9068, + "functionReturnParameters": 11331, + "id": 11364, "nodeType": "Return", - "src": "2180:7:32" + "src": "2177:7:43" } }, { @@ -9675,7 +9675,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9083, + "id": 11379, "isConstant": false, "isLValue": false, "isPure": false, @@ -9686,7 +9686,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9074, + "id": 11370, "isConstant": false, "isLValue": false, "isPure": false, @@ -9695,29 +9695,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9070, + "id": 11366, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2242:12:32", + "referencedDeclaration": 11339, + "src": "2239:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9072, + "id": 11368, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 9071, + "id": 11367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2255:1:32", + "src": "2252:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9730,7 +9730,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2242:15:32", + "src": "2239:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -9741,14 +9741,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783230", - "id": 9073, + "id": 11369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2261:4:32", + "src": "2258:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -9756,7 +9756,7 @@ }, "value": "0x20" }, - "src": "2242:23:32", + "src": "2239:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9770,7 +9770,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9082, + "id": 11378, "isConstant": false, "isLValue": false, "isPure": false, @@ -9779,25 +9779,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9075, + "id": 11371, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2269:12:32", + "referencedDeclaration": 11339, + "src": "2266:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9080, + "id": 11376, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9079, + "id": 11375, "isConstant": false, "isLValue": false, "isPure": false, @@ -9806,18 +9806,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9076, + "id": 11372, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2282:12:32", + "referencedDeclaration": 11339, + "src": "2279:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9077, + "id": 11373, "isConstant": false, "isLValue": false, "isPure": false, @@ -9825,7 +9825,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2282:19:32", + "src": "2279:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9836,14 +9836,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 9078, + "id": 11374, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2304:1:32", + "src": "2301:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9851,7 +9851,7 @@ }, "value": "1" }, - "src": "2282:23:32", + "src": "2279:23:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9862,7 +9862,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2269:37:32", + "src": "2266:37:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -9873,14 +9873,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783230", - "id": 9081, + "id": 11377, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2310:4:32", + "src": "2307:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -9888,35 +9888,35 @@ }, "value": "0x20" }, - "src": "2269:45:32", + "src": "2266:45:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2242:72:32", + "src": "2239:72:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9085, + "id": 11381, "nodeType": "IfStatement", - "src": "2238:85:32", + "src": "2235:85:43", "trueBody": { "expression": null, - "functionReturnParameters": 9035, - "id": 9084, + "functionReturnParameters": 11331, + "id": 11380, "nodeType": "Return", - "src": "2316:7:32" + "src": "2313:7:43" } }, { "body": { - "id": 9157, + "id": 11453, "nodeType": "Block", - "src": "2379:403:32", + "src": "2376:403:43", "statements": [ { "condition": { @@ -9925,7 +9925,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9153, + "id": 11449, "isConstant": false, "isLValue": false, "isPure": false, @@ -9936,7 +9936,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9139, + "id": 11435, "isConstant": false, "isLValue": false, "isPure": false, @@ -9947,14 +9947,14 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9125, + "id": 11421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9111, + "id": 11407, "isConstant": false, "isLValue": false, "isPure": false, @@ -9962,7 +9962,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2414:57:32", + "src": "2411:57:43", "subExpression": { "argumentTypes": null, "components": [ @@ -9972,7 +9972,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9109, + "id": 11405, "isConstant": false, "isLValue": false, "isPure": false, @@ -9983,7 +9983,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9101, + "id": 11397, "isConstant": false, "isLValue": false, "isPure": false, @@ -9992,26 +9992,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9097, + "id": 11393, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2416:12:32", + "referencedDeclaration": 11339, + "src": "2413:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9099, + "id": 11395, "indexExpression": { "argumentTypes": null, - "id": 9098, + "id": 11394, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2429:1:32", + "referencedDeclaration": 11383, + "src": "2426:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10022,7 +10022,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2416:15:32", + "src": "2413:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -10033,14 +10033,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783230", - "id": 9100, + "id": 11396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2435:4:32", + "src": "2432:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -10048,7 +10048,7 @@ }, "value": "0x20" }, - "src": "2416:23:32", + "src": "2413:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10062,7 +10062,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9108, + "id": 11404, "isConstant": false, "isLValue": false, "isPure": false, @@ -10071,37 +10071,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9102, + "id": 11398, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2443:12:32", + "referencedDeclaration": 11339, + "src": "2440:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9106, + "id": 11402, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9105, + "id": 11401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9103, + "id": 11399, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2456:1:32", + "referencedDeclaration": 11383, + "src": "2453:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10112,14 +10112,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 9104, + "id": 11400, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2460:1:32", + "src": "2457:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -10127,7 +10127,7 @@ }, "value": "1" }, - "src": "2456:5:32", + "src": "2453:5:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10138,7 +10138,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2443:19:32", + "src": "2440:19:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -10149,14 +10149,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783230", - "id": 9107, + "id": 11403, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2466:4:32", + "src": "2463:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -10164,27 +10164,27 @@ }, "value": "0x20" }, - "src": "2443:27:32", + "src": "2440:27:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2416:54:32", + "src": "2413:54:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 9110, + "id": 11406, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2415:56:32", + "src": "2412:56:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10199,7 +10199,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 9124, + "id": 11420, "isConstant": false, "isLValue": false, "isPure": false, @@ -10207,7 +10207,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2524:53:32", + "src": "2521:53:43", "subExpression": { "argumentTypes": null, "components": [ @@ -10217,7 +10217,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9122, + "id": 11418, "isConstant": false, "isLValue": false, "isPure": false, @@ -10228,7 +10228,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9116, + "id": 11412, "isConstant": false, "isLValue": false, "isPure": false, @@ -10237,26 +10237,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9112, + "id": 11408, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2526:12:32", + "referencedDeclaration": 11339, + "src": "2523:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9114, + "id": 11410, "indexExpression": { "argumentTypes": null, - "id": 9113, + "id": 11409, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2539:1:32", + "referencedDeclaration": 11383, + "src": "2536:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10267,7 +10267,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2526:15:32", + "src": "2523:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -10278,14 +10278,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783330", - "id": 9115, + "id": 11411, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2545:4:32", + "src": "2542:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_48_by_1", @@ -10293,7 +10293,7 @@ }, "value": "0x30" }, - "src": "2526:23:32", + "src": "2523:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10307,7 +10307,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9121, + "id": 11417, "isConstant": false, "isLValue": false, "isPure": false, @@ -10316,26 +10316,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9117, + "id": 11413, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2553:12:32", + "referencedDeclaration": 11339, + "src": "2550:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9119, + "id": 11415, "indexExpression": { "argumentTypes": null, - "id": 9118, + "id": 11414, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2566:1:32", + "referencedDeclaration": 11383, + "src": "2563:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10346,7 +10346,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2553:15:32", + "src": "2550:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -10357,14 +10357,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783339", - "id": 9120, + "id": 11416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2572:4:32", + "src": "2569:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_57_by_1", @@ -10372,27 +10372,27 @@ }, "value": "0x39" }, - "src": "2553:23:32", + "src": "2550:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2526:50:32", + "src": "2523:50:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 9123, + "id": 11419, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2525:52:32", + "src": "2522:52:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10403,7 +10403,7 @@ "typeString": "bool" } }, - "src": "2414:163:32", + "src": "2411:163:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10413,7 +10413,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 9138, + "id": 11434, "isConstant": false, "isLValue": false, "isPure": false, @@ -10421,7 +10421,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2604:53:32", + "src": "2601:53:43", "subExpression": { "argumentTypes": null, "components": [ @@ -10431,7 +10431,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9136, + "id": 11432, "isConstant": false, "isLValue": false, "isPure": false, @@ -10442,7 +10442,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9130, + "id": 11426, "isConstant": false, "isLValue": false, "isPure": false, @@ -10451,26 +10451,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9126, + "id": 11422, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2606:12:32", + "referencedDeclaration": 11339, + "src": "2603:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9128, + "id": 11424, "indexExpression": { "argumentTypes": null, - "id": 9127, + "id": 11423, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2619:1:32", + "referencedDeclaration": 11383, + "src": "2616:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10481,7 +10481,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2606:15:32", + "src": "2603:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -10492,14 +10492,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783431", - "id": 9129, + "id": 11425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2625:4:32", + "src": "2622:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_65_by_1", @@ -10507,7 +10507,7 @@ }, "value": "0x41" }, - "src": "2606:23:32", + "src": "2603:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10521,7 +10521,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9135, + "id": 11431, "isConstant": false, "isLValue": false, "isPure": false, @@ -10530,26 +10530,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9131, + "id": 11427, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2633:12:32", + "referencedDeclaration": 11339, + "src": "2630:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9133, + "id": 11429, "indexExpression": { "argumentTypes": null, - "id": 9132, + "id": 11428, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2646:1:32", + "referencedDeclaration": 11383, + "src": "2643:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10560,7 +10560,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2633:15:32", + "src": "2630:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -10571,14 +10571,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783561", - "id": 9134, + "id": 11430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2652:4:32", + "src": "2649:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_90_by_1", @@ -10586,27 +10586,27 @@ }, "value": "0x5a" }, - "src": "2633:23:32", + "src": "2630:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2606:50:32", + "src": "2603:50:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 9137, + "id": 11433, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2605:52:32", + "src": "2602:52:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10617,7 +10617,7 @@ "typeString": "bool" } }, - "src": "2414:243:32", + "src": "2411:243:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10627,7 +10627,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 9152, + "id": 11448, "isConstant": false, "isLValue": false, "isPure": false, @@ -10635,7 +10635,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2684:53:32", + "src": "2681:53:43", "subExpression": { "argumentTypes": null, "components": [ @@ -10645,7 +10645,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 9150, + "id": 11446, "isConstant": false, "isLValue": false, "isPure": false, @@ -10656,7 +10656,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9144, + "id": 11440, "isConstant": false, "isLValue": false, "isPure": false, @@ -10665,26 +10665,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9140, + "id": 11436, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2686:12:32", + "referencedDeclaration": 11339, + "src": "2683:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9142, + "id": 11438, "indexExpression": { "argumentTypes": null, - "id": 9141, + "id": 11437, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2699:1:32", + "referencedDeclaration": 11383, + "src": "2696:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10695,7 +10695,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2686:15:32", + "src": "2683:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -10706,14 +10706,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783631", - "id": 9143, + "id": 11439, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2705:4:32", + "src": "2702:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_97_by_1", @@ -10721,7 +10721,7 @@ }, "value": "0x61" }, - "src": "2686:23:32", + "src": "2683:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10735,7 +10735,7 @@ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 9149, + "id": 11445, "isConstant": false, "isLValue": false, "isPure": false, @@ -10744,26 +10744,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9145, + "id": 11441, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2713:12:32", + "referencedDeclaration": 11339, + "src": "2710:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9147, + "id": 11443, "indexExpression": { "argumentTypes": null, - "id": 9146, + "id": 11442, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2726:1:32", + "referencedDeclaration": 11383, + "src": "2723:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10774,7 +10774,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2713:15:32", + "src": "2710:15:43", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -10785,14 +10785,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783761", - "id": 9148, + "id": 11444, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2732:4:32", + "src": "2729:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_122_by_1", @@ -10800,27 +10800,27 @@ }, "value": "0x7a" }, - "src": "2713:23:32", + "src": "2710:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2686:50:32", + "src": "2683:50:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 9151, + "id": 11447, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2685:52:32", + "src": "2682:52:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10831,28 +10831,28 @@ "typeString": "bool" } }, - "src": "2414:323:32", + "src": "2411:323:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 9156, + "id": 11452, "nodeType": "IfStatement", - "src": "2393:378:32", + "src": "2390:378:43", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 9154, + "id": 11450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2766:5:32", + "src": "2763:5:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10860,10 +10860,10 @@ }, "value": "false" }, - "functionReturnParameters": 9035, - "id": 9155, + "functionReturnParameters": 11331, + "id": 11451, "nodeType": "Return", - "src": "2759:12:32" + "src": "2756:12:43" } } ] @@ -10874,19 +10874,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 9093, + "id": 11389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 9090, + "id": 11386, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2349:1:32", + "referencedDeclaration": 11383, + "src": "2346:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10898,18 +10898,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9091, + "id": 11387, "name": "_stringBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9043, - "src": "2353:12:32", + "referencedDeclaration": 11339, + "src": "2350:12:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 9092, + "id": 11388, "isConstant": false, "isLValue": false, "isPure": false, @@ -10917,31 +10917,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2353:19:32", + "src": "2350:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2349:23:32", + "src": "2346:23:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 9158, + "id": 11454, "initializationExpression": { "assignments": [ - 9087 + 11383 ], "declarations": [ { "constant": false, - "id": 9087, + "id": 11383, "name": "i", "nodeType": "VariableDeclaration", - "scope": 9162, - "src": "2337:6:32", + "scope": 11458, + "src": "2334:6:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10949,10 +10949,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9086, + "id": 11382, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2337:4:32", + "src": "2334:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10962,18 +10962,18 @@ "visibility": "internal" } ], - "id": 9089, + "id": 11385, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 9088, + "id": 11384, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2346:1:32", + "src": "2343:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10982,12 +10982,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2337:10:32" + "src": "2334:10:43" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 9095, + "id": 11391, "isConstant": false, "isLValue": false, "isPure": false, @@ -10995,15 +10995,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2374:3:32", + "src": "2371:3:43", "subExpression": { "argumentTypes": null, - "id": 9094, + "id": 11390, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9087, - "src": "2374:1:32", + "referencedDeclaration": 11383, + "src": "2371:1:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11014,25 +11014,25 @@ "typeString": "uint256" } }, - "id": 9096, + "id": 11392, "nodeType": "ExpressionStatement", - "src": "2374:3:32" + "src": "2371:3:43" }, "nodeType": "ForStatement", - "src": "2333:449:32" + "src": "2330:449:43" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 9159, + "id": 11455, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2799:4:32", + "src": "2796:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11040,15 +11040,15 @@ }, "value": "true" }, - "functionReturnParameters": 9035, - "id": 9160, + "functionReturnParameters": 11331, + "id": 11456, "nodeType": "Return", - "src": "2792:11:32" + "src": "2789:11:43" } ] }, "documentation": null, - "id": 9162, + "id": 11458, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11056,16 +11056,16 @@ "name": "_isStringValid", "nodeType": "FunctionDefinition", "parameters": { - "id": 9032, + "id": 11328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9027, + "id": 11323, "name": "_string", "nodeType": "VariableDeclaration", - "scope": 9162, - "src": "1835:14:32", + "scope": 11458, + "src": "1832:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11073,10 +11073,10 @@ "typeString": "string" }, "typeName": { - "id": 9026, + "id": 11322, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1835:6:32", + "src": "1832:6:43", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -11087,11 +11087,11 @@ }, { "constant": false, - "id": 9029, + "id": 11325, "name": "minLn", "nodeType": "VariableDeclaration", - "scope": 9162, - "src": "1851:10:32", + "scope": 11458, + "src": "1848:10:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11099,10 +11099,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9028, + "id": 11324, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1851:4:32", + "src": "1848:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11113,11 +11113,11 @@ }, { "constant": false, - "id": 9031, + "id": 11327, "name": "maxLn", "nodeType": "VariableDeclaration", - "scope": 9162, - "src": "1863:10:32", + "scope": 11458, + "src": "1860:10:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11125,10 +11125,10 @@ "typeString": "uint256" }, "typeName": { - "id": 9030, + "id": 11326, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1863:4:32", + "src": "1860:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11138,20 +11138,20 @@ "visibility": "internal" } ], - "src": "1834:40:32" + "src": "1831:40:43" }, "payable": false, "returnParameters": { - "id": 9035, + "id": 11331, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9034, + "id": 11330, "name": "", "nodeType": "VariableDeclaration", - "scope": 9162, - "src": "1897:4:32", + "scope": 11458, + "src": "1894:4:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11159,10 +11159,10 @@ "typeString": "bool" }, "typeName": { - "id": 9033, + "id": 11329, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1897:4:32", + "src": "1894:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11172,20 +11172,20 @@ "visibility": "internal" } ], - "src": "1896:6:32" + "src": "1893:6:43" }, - "scope": 9163, - "src": "1811:999:32", + "scope": 11459, + "src": "1808:999:43", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 9164, - "src": "51:2761:32" + "scope": 11460, + "src": "50:2759:43" } ], - "src": "0:2813:32" + "src": "0:2810:43" }, "compiler": { "name": "solc", @@ -11200,5 +11200,5 @@ } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:53:22.111Z" + "updatedAt": "2018-12-06T13:15:33.741Z" } \ No newline at end of file diff --git a/build/contracts/Wallets.json b/build/contracts/Wallets.json index c5ade7c2..595a3043 100644 --- a/build/contracts/Wallets.json +++ b/build/contracts/Wallets.json @@ -3,8 +3,13 @@ "abi": [ { "constant": false, - "inputs": [], - "name": "renounceOwnership", + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "transferPrimary", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -27,7 +32,7 @@ { "constant": true, "inputs": [], - "name": "owner", + "name": "primary", "outputs": [ { "name": "", @@ -38,20 +43,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [], "payable": false, @@ -79,29 +70,12 @@ "anonymous": false, "inputs": [ { - "indexed": true, - "name": "previousOwner", - "type": "address" - } - ], - "name": "OwnershipRenounced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", + "indexed": false, + "name": "recipient", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "PrimaryTransferred", "type": "event" }, { @@ -142,24 +116,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5060008054600160a060020a0319163390811790915561003b90600190640100000000610040810204565b6100be565b600054600160a060020a0316331461005757600080fd5b60ff82166000818152600160209081526040918290208054600160a060020a031916600160a060020a038616908117909155825190815291517ffc3e20229acbcf5bec31a259c022ee755e4f599eb1152c979c853479a38e82d99281900390910190a25050565b610347806100cd6000396000f3006080604052600436106100775763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663684b0dd2811461007c578063715018a6146100a557806389a4fe84146100ba5780638da5cb5b146100e5578063e3ff76e414610116578063f2fde38b14610131575b600080fd5b34801561008857600080fd5b506100a360ff60043516600160a060020a0360243516610152565b005b3480156100b157600080fd5b506100a36101dd565b3480156100c657600080fd5b506100cf610249565b6040805160ff9092168252519081900360200190f35b3480156100f157600080fd5b506100fa61024e565b60408051600160a060020a039092168252519081900360200190f35b34801561012257600080fd5b506100fa60ff6004351661025d565b34801561013d57600080fd5b506100a3600160a060020a036004351661027b565b600054600160a060020a0316331461016957600080fd5b60ff8216600081815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038616908117909155825190815291517ffc3e20229acbcf5bec31a259c022ee755e4f599eb1152c979c853479a38e82d99281900390910190a25050565b600054600160a060020a031633146101f457600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600181565b600054600160a060020a031681565b60ff16600090815260016020526040902054600160a060020a031690565b600054600160a060020a0316331461029257600080fd5b61029b8161029e565b50565b600160a060020a03811615156102b357600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820e4b0192c5a650d4c52558df74a8c4555df5a03cfc1ca912114b2cb49d4f6d3120029", - "deployedBytecode": "0x6080604052600436106100775763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663684b0dd2811461007c578063715018a6146100a557806389a4fe84146100ba5780638da5cb5b146100e5578063e3ff76e414610116578063f2fde38b14610131575b600080fd5b34801561008857600080fd5b506100a360ff60043516600160a060020a0360243516610152565b005b3480156100b157600080fd5b506100a36101dd565b3480156100c657600080fd5b506100cf610249565b6040805160ff9092168252519081900360200190f35b3480156100f157600080fd5b506100fa61024e565b60408051600160a060020a039092168252519081900360200190f35b34801561012257600080fd5b506100fa60ff6004351661025d565b34801561013d57600080fd5b506100a3600160a060020a036004351661027b565b600054600160a060020a0316331461016957600080fd5b60ff8216600081815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038616908117909155825190815291517ffc3e20229acbcf5bec31a259c022ee755e4f599eb1152c979c853479a38e82d99281900390910190a25050565b600054600160a060020a031633146101f457600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600181565b600054600160a060020a031681565b60ff16600090815260016020526040902054600160a060020a031690565b600054600160a060020a0316331461029257600080fd5b61029b8161029e565b50565b600160a060020a03811615156102b357600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820e4b0192c5a650d4c52558df74a8c4555df5a03cfc1ca912114b2cb49d4f6d3120029", - "sourceMap": "91:498:40:-;;;273:78;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;;;;304:40:40;;567:18:45;;304:9:40;;;;:40;:::i;:::-;91:498;;357:130;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;422:12:40;;;;;;;:8;:12;;;;;;;;;:21;;-1:-1:-1;;;;;;422:21:40;-1:-1:-1;;;;;422:21:40;;;;;;;;459;;;;;;;;;;;;;;;;;357:130;;:::o;91:498::-;;;;;;;", - "deployedSourceMap": "91:498:40:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;357:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;357:130:40;;;;;-1:-1:-1;;;;;357:130:40;;;;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;125:43:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;125:43:40;;;;;;;;;;;;;;;;;;;;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;;;;;-1:-1:-1;;;;;238:20:45;;;;;;;;;;;;;;493:94:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;493:94:40;;;;;;;1274:103:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;-1:-1:-1;;;;;1274:103:45;;;;;357:130:40;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;422:12:40;;;;;;;:8;:12;;;;;;;;;:21;;-1:-1:-1;;422:21:40;-1:-1:-1;;;;;422:21:40;;;;;;;;459;;;;;;;;;;;;;;;;;357:130;;:::o;1001:111:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1077:5;;;1058:25;;-1:-1:-1;;;;;1077:5:45;;;;1058:25;;;1105:1;1089:18;;-1:-1:-1;;1089:18:45;;;1001:111::o;125:43:40:-;167:1;125:43;:::o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;493:94:40:-;568:12;;542:7;568:12;;;:8;:12;;;;;;-1:-1:-1;;;;;568:12:40;;493:94::o;1274:103:45:-;719:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;1512:171::-;-1:-1:-1;;;;;1582:23:45;;;;1574:32;;;;;;1638:5;;;1617:38;;-1:-1:-1;;;;;1617:38:45;;;;1638:5;;;1617:38;;;1661:5;:17;;-1:-1:-1;;1661:17:45;-1:-1:-1;;;;;1661:17:45;;;;;;;;;;1512:171::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\ncontract Wallets is Ownable {\n uint8 constant public SERVICE_WALLET_ID = 1;\n\n mapping (uint8 => address) _wallets;\n\n event NewWallet(uint8 indexed ID, address wallet);\n\n constructor() public {\n setWallet(SERVICE_WALLET_ID, msg.sender);\n }\n\n function setWallet(uint8 ID, address wallet) onlyOwner {\n _wallets[ID] = wallet;\n\n emit NewWallet(ID, wallet);\n }\n\n function getWallet(uint8 ID) public view returns(address) {\n return _wallets[ID];\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b5060008054600160a060020a03191633179081905560408051600160a060020a03929092168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d99181900360200190a161007660013364010000000061007b810204565b6100f9565b600054600160a060020a0316331461009257600080fd5b60ff82166000818152600160209081526040918290208054600160a060020a031916600160a060020a038616908117909155825190815291517ffc3e20229acbcf5bec31a259c022ee755e4f599eb1152c979c853479a38e82d99281900390910190a25050565b6102ae806101086000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632348238c8114610071578063684b0dd21461009457806389a4fe84146100bb578063c6dbdf61146100e6578063e3ff76e414610117575b600080fd5b34801561007d57600080fd5b50610092600160a060020a0360043516610132565b005b3480156100a057600080fd5b5061009260ff60043516600160a060020a03602435166101c5565b3480156100c757600080fd5b506100d0610250565b6040805160ff9092168252519081900360200190f35b3480156100f257600080fd5b506100fb610255565b60408051600160a060020a039092168252519081900360200190f35b34801561012357600080fd5b506100fb60ff60043516610264565b600054600160a060020a0316331461014957600080fd5b600160a060020a038116151561015e57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600054600160a060020a031633146101dc57600080fd5b60ff8216600081815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038616908117909155825190815291517ffc3e20229acbcf5bec31a259c022ee755e4f599eb1152c979c853479a38e82d99281900390910190a25050565b600181565b600054600160a060020a031690565b60ff16600090815260016020526040902054600160a060020a0316905600a165627a7a7230582001d265efae8fabc98807d2c25e665ee017c1b8424854f483ad23bb471856f1940029", + "deployedBytecode": "0x60806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632348238c8114610071578063684b0dd21461009457806389a4fe84146100bb578063c6dbdf61146100e6578063e3ff76e414610117575b600080fd5b34801561007d57600080fd5b50610092600160a060020a0360043516610132565b005b3480156100a057600080fd5b5061009260ff60043516600160a060020a03602435166101c5565b3480156100c757600080fd5b506100d0610250565b6040805160ff9092168252519081900360200190f35b3480156100f257600080fd5b506100fb610255565b60408051600160a060020a039092168252519081900360200190f35b34801561012357600080fd5b506100fb60ff60043516610264565b600054600160a060020a0316331461014957600080fd5b600160a060020a038116151561015e57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f4101e71e974f68df5e9730cc223280b41654676bbb052cdcc735c3337e64d2d9916020908290030190a150565b600054600160a060020a031633146101dc57600080fd5b60ff8216600081815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038616908117909155825190815291517ffc3e20229acbcf5bec31a259c022ee755e4f599eb1152c979c853479a38e82d99281900390910190a25050565b600181565b600054600160a060020a031690565b60ff16600090815260016020526040902054600160a060020a0316905600a165627a7a7230582001d265efae8fabc98807d2c25e665ee017c1b8424854f483ad23bb471856f1940029", + "sourceMap": "93:509:51:-;;;277:78;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;385:8:55;:21;;-1:-1:-1;;;;;;385:21:55;396:10;385:21;;;;;417:28;;;-1:-1:-1;;;;;436:8:55;;;;417:28;;;;;;;;;;;;308:40:51;171:1;337:10;308:9;;;;:40;:::i;:::-;93:509;;361:139;586:8:55;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;435:12:51;;;;;;;:8;:12;;;;;;;;;:21;;-1:-1:-1;;;;;;435:21:51;-1:-1:-1;;;;;435:21:51;;;;;;;;472;;;;;;;;;;;;;;;;;361:139;;:::o;93:509::-;;;;;;;", + "deployedSourceMap": "93:509:51:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;855:171:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;855:171:55;-1:-1:-1;;;;;855:171:55;;;;;;;361:139:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;361:139:51;;;;;-1:-1:-1;;;;;361:139:51;;;;;129:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;129:43:51;;;;;;;;;;;;;;;;;;;;;;;664:75:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;664:75:55;;;;;;;;-1:-1:-1;;;;;664:75:55;;;;;;;;;;;;;;506:94:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;506:94:51;;;;;;;855:171:55;586:8;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;-1:-1:-1;;;;;932:23:55;;;;924:32;;;;;;962:8;:20;;-1:-1:-1;;962:20:55;-1:-1:-1;;;;;962:20:55;;;;;;;;;;;993:28;;;1012:8;;;;993:28;;;;;;;;;;;;;855:171;:::o;361:139:51:-;586:8:55;;-1:-1:-1;;;;;586:8:55;572:10;:22;564:31;;;;;;435:12:51;;;;;;;:8;:12;;;;;;;;;:21;;-1:-1:-1;;435:21:51;-1:-1:-1;;;;;435:21:51;;;;;;;;472;;;;;;;;;;;;;;;;;361:139;;:::o;129:43::-;171:1;129:43;:::o;664:75:55:-;704:7;726:8;-1:-1:-1;;;;;726:8:55;664:75;:::o;506:94:51:-;581:12;;555:7;581:12;;;:8;:12;;;;;;-1:-1:-1;;;;;581:12:51;;506:94::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Secondary.sol\";\n\ncontract Wallets is Secondary {\n uint8 constant public SERVICE_WALLET_ID = 1;\n\n mapping (uint8 => address) _wallets;\n\n event NewWallet(uint8 indexed ID, address wallet);\n\n constructor() public {\n setWallet(SERVICE_WALLET_ID, msg.sender);\n }\n\n function setWallet(uint8 ID, address wallet) public onlyPrimary {\n _wallets[ID] = wallet;\n\n emit NewWallet(ID, wallet);\n }\n\n function getWallet(uint8 ID) public view returns(address) {\n return _wallets[ID];\n }\n}\n", "sourcePath": "/home/circleci/code/contracts/wallets/Wallets.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/wallets/Wallets.sol", "exportedSymbols": { "Wallets": [ - 9747 + 12063 ] }, - "id": 9748, + "id": 12064, "nodeType": "SourceUnit", "nodes": [ { - "id": 9687, + "id": 12003, "literals": [ "solidity", "^", @@ -167,16 +141,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:40" + "src": "0:24:51" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 9688, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 12004, "nodeType": "ImportDirective", - "scope": 9748, - "sourceUnit": 10135, - "src": "26:63:40", + "scope": 12064, + "sourceUnit": 12454, + "src": "26:65:51", "symbolAliases": [], "unitAlias": "" }, @@ -186,42 +160,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 9689, - "name": "Ownable", + "id": 12005, + "name": "Secondary", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "111:7:40", + "referencedDeclaration": 12453, + "src": "113:9:51", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" } }, - "id": 9690, + "id": 12006, "nodeType": "InheritanceSpecifier", - "src": "111:7:40" + "src": "113:9:51" } ], "contractDependencies": [ - 10134 + 12453 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 9747, + "id": 12063, "linearizedBaseContracts": [ - 9747, - 10134 + 12063, + 12453 ], "name": "Wallets", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 9693, + "id": 12009, "name": "SERVICE_WALLET_ID", "nodeType": "VariableDeclaration", - "scope": 9747, - "src": "125:43:40", + "scope": 12063, + "src": "129:43:51", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -229,10 +203,10 @@ "typeString": "uint8" }, "typeName": { - "id": 9691, + "id": 12007, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "125:5:40", + "src": "129:5:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -241,14 +215,14 @@ "value": { "argumentTypes": null, "hexValue": "31", - "id": 9692, + "id": 12008, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "167:1:40", + "src": "171:1:51", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -260,11 +234,11 @@ }, { "constant": false, - "id": 9697, + "id": 12013, "name": "_wallets", "nodeType": "VariableDeclaration", - "scope": 9747, - "src": "175:35:40", + "scope": 12063, + "src": "179:35:51", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -272,28 +246,28 @@ "typeString": "mapping(uint8 => address)" }, "typeName": { - "id": 9696, + "id": 12012, "keyType": { - "id": 9694, + "id": 12010, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "184:5:40", + "src": "188:5:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Mapping", - "src": "175:26:40", + "src": "179:26:51", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", "typeString": "mapping(uint8 => address)" }, "valueType": { - "id": 9695, + "id": 12011, "name": "address", "nodeType": "ElementaryTypeName", - "src": "193:7:40", + "src": "197:7:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -306,21 +280,21 @@ { "anonymous": false, "documentation": null, - "id": 9703, + "id": 12019, "name": "NewWallet", "nodeType": "EventDefinition", "parameters": { - "id": 9702, + "id": 12018, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9699, + "id": 12015, "indexed": true, "name": "ID", "nodeType": "VariableDeclaration", - "scope": 9703, - "src": "233:16:40", + "scope": 12019, + "src": "237:16:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -328,10 +302,10 @@ "typeString": "uint8" }, "typeName": { - "id": 9698, + "id": 12014, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "233:5:40", + "src": "237:5:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -342,12 +316,12 @@ }, { "constant": false, - "id": 9701, + "id": 12017, "indexed": false, "name": "wallet", "nodeType": "VariableDeclaration", - "scope": 9703, - "src": "251:14:40", + "scope": 12019, + "src": "255:14:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -355,10 +329,10 @@ "typeString": "address" }, "typeName": { - "id": 9700, + "id": 12016, "name": "address", "nodeType": "ElementaryTypeName", - "src": "251:7:40", + "src": "255:7:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -368,15 +342,15 @@ "visibility": "internal" } ], - "src": "232:34:40" + "src": "236:34:51" }, - "src": "217:50:40" + "src": "221:50:51" }, { "body": { - "id": 9712, + "id": 12028, "nodeType": "Block", - "src": "294:57:40", + "src": "298:57:51", "statements": [ { "expression": { @@ -384,12 +358,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9707, + "id": 12023, "name": "SERVICE_WALLET_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9693, - "src": "314:17:40", + "referencedDeclaration": 12009, + "src": "318:17:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -399,18 +373,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9708, + "id": 12024, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "333:3:40", + "referencedDeclaration": 13441, + "src": "337:3:51", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 9709, + "id": 12025, "isConstant": false, "isLValue": false, "isPure": false, @@ -418,7 +392,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "333:10:40", + "src": "337:10:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -436,18 +410,18 @@ "typeString": "address" } ], - "id": 9706, + "id": 12022, "name": "setWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9734, - "src": "304:9:40", + "referencedDeclaration": 12050, + "src": "308:9:51", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$_t_address_$returns$__$", "typeString": "function (uint8,address)" } }, - "id": 9710, + "id": 12026, "isConstant": false, "isLValue": false, "isPure": false, @@ -455,20 +429,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "304:40:40", + "src": "308:40:51", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9711, + "id": 12027, "nodeType": "ExpressionStatement", - "src": "304:40:40" + "src": "308:40:51" } ] }, "documentation": null, - "id": 9713, + "id": 12029, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -476,34 +450,34 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 9704, + "id": 12020, "nodeType": "ParameterList", "parameters": [], - "src": "284:2:40" + "src": "288:2:51" }, "payable": false, "returnParameters": { - "id": 9705, + "id": 12021, "nodeType": "ParameterList", "parameters": [], - "src": "294:0:40" + "src": "298:0:51" }, - "scope": 9747, - "src": "273:78:40", + "scope": 12063, + "src": "277:78:51", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9733, + "id": 12049, "nodeType": "Block", - "src": "412:75:40", + "src": "425:75:51", "statements": [ { "expression": { "argumentTypes": null, - "id": 9726, + "id": 12042, "isConstant": false, "isLValue": false, "isPure": false, @@ -512,26 +486,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9722, + "id": 12038, "name": "_wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9697, - "src": "422:8:40", + "referencedDeclaration": 12013, + "src": "435:8:51", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", "typeString": "mapping(uint8 => address)" } }, - "id": 9724, + "id": 12040, "indexExpression": { "argumentTypes": null, - "id": 9723, + "id": 12039, "name": "ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9715, - "src": "431:2:40", + "referencedDeclaration": 12031, + "src": "444:2:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -542,7 +516,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "422:12:40", + "src": "435:12:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -552,26 +526,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 9725, + "id": 12041, "name": "wallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9717, - "src": "437:6:40", + "referencedDeclaration": 12033, + "src": "450:6:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "422:21:40", + "src": "435:21:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 9727, + "id": 12043, "nodeType": "ExpressionStatement", - "src": "422:21:40" + "src": "435:21:51" }, { "eventCall": { @@ -579,12 +553,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9729, + "id": 12045, "name": "ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9715, - "src": "469:2:40", + "referencedDeclaration": 12031, + "src": "482:2:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -592,12 +566,12 @@ }, { "argumentTypes": null, - "id": 9730, + "id": 12046, "name": "wallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9717, - "src": "473:6:40", + "referencedDeclaration": 12033, + "src": "486:6:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -615,18 +589,18 @@ "typeString": "address" } ], - "id": 9728, + "id": 12044, "name": "NewWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9703, - "src": "459:9:40", + "referencedDeclaration": 12019, + "src": "472:9:51", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_address_$returns$__$", "typeString": "function (uint8,address)" } }, - "id": 9731, + "id": 12047, "isConstant": false, "isLValue": false, "isPure": false, @@ -634,57 +608,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "459:21:40", + "src": "472:21:51", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9732, + "id": 12048, "nodeType": "EmitStatement", - "src": "454:26:40" + "src": "467:26:51" } ] }, "documentation": null, - "id": 9734, + "id": 12050, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 9720, + "id": 12036, "modifierName": { "argumentTypes": null, - "id": 9719, - "name": "onlyOwner", + "id": 12035, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "402:9:40", + "referencedDeclaration": 12420, + "src": "413:11:51", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "402:9:40" + "src": "413:11:51" } ], "name": "setWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 9718, + "id": 12034, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9715, + "id": 12031, "name": "ID", "nodeType": "VariableDeclaration", - "scope": 9734, - "src": "376:8:40", + "scope": 12050, + "src": "380:8:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -692,10 +666,10 @@ "typeString": "uint8" }, "typeName": { - "id": 9714, + "id": 12030, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "376:5:40", + "src": "380:5:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -706,11 +680,11 @@ }, { "constant": false, - "id": 9717, + "id": 12033, "name": "wallet", "nodeType": "VariableDeclaration", - "scope": 9734, - "src": "386:14:40", + "scope": 12050, + "src": "390:14:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -718,10 +692,10 @@ "typeString": "address" }, "typeName": { - "id": 9716, + "id": 12032, "name": "address", "nodeType": "ElementaryTypeName", - "src": "386:7:40", + "src": "390:7:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -731,52 +705,52 @@ "visibility": "internal" } ], - "src": "375:26:40" + "src": "379:26:51" }, "payable": false, "returnParameters": { - "id": 9721, + "id": 12037, "nodeType": "ParameterList", "parameters": [], - "src": "412:0:40" + "src": "425:0:51" }, - "scope": 9747, - "src": "357:130:40", + "scope": 12063, + "src": "361:139:51", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9745, + "id": 12061, "nodeType": "Block", - "src": "551:36:40", + "src": "564:36:51", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9741, + "id": 12057, "name": "_wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9697, - "src": "568:8:40", + "referencedDeclaration": 12013, + "src": "581:8:51", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", "typeString": "mapping(uint8 => address)" } }, - "id": 9743, + "id": 12059, "indexExpression": { "argumentTypes": null, - "id": 9742, + "id": 12058, "name": "ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9736, - "src": "577:2:40", + "referencedDeclaration": 12052, + "src": "590:2:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -787,21 +761,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "568:12:40", + "src": "581:12:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 9740, - "id": 9744, + "functionReturnParameters": 12056, + "id": 12060, "nodeType": "Return", - "src": "561:19:40" + "src": "574:19:51" } ] }, "documentation": null, - "id": 9746, + "id": 12062, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -809,16 +783,16 @@ "name": "getWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 9737, + "id": 12053, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9736, + "id": 12052, "name": "ID", "nodeType": "VariableDeclaration", - "scope": 9746, - "src": "512:8:40", + "scope": 12062, + "src": "525:8:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -826,10 +800,10 @@ "typeString": "uint8" }, "typeName": { - "id": 9735, + "id": 12051, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "512:5:40", + "src": "525:5:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -839,20 +813,20 @@ "visibility": "internal" } ], - "src": "511:10:40" + "src": "524:10:51" }, "payable": false, "returnParameters": { - "id": 9740, + "id": 12056, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9739, + "id": 12055, "name": "", "nodeType": "VariableDeclaration", - "scope": 9746, - "src": "542:7:40", + "scope": 12062, + "src": "555:7:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -860,10 +834,10 @@ "typeString": "address" }, "typeName": { - "id": 9738, + "id": 12054, "name": "address", "nodeType": "ElementaryTypeName", - "src": "542:7:40", + "src": "555:7:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -873,33 +847,33 @@ "visibility": "internal" } ], - "src": "541:9:40" + "src": "554:9:51" }, - "scope": 9747, - "src": "493:94:40", + "scope": 12063, + "src": "506:94:51", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 9748, - "src": "91:498:40" + "scope": 12064, + "src": "93:509:51" } ], - "src": "0:590:40" + "src": "0:603:51" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/wallets/Wallets.sol", "exportedSymbols": { "Wallets": [ - 9747 + 12063 ] }, - "id": 9748, + "id": 12064, "nodeType": "SourceUnit", "nodes": [ { - "id": 9687, + "id": 12003, "literals": [ "solidity", "^", @@ -907,16 +881,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:40" + "src": "0:24:51" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 9688, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "file": "openzeppelin-solidity/contracts/ownership/Secondary.sol", + "id": 12004, "nodeType": "ImportDirective", - "scope": 9748, - "sourceUnit": 10135, - "src": "26:63:40", + "scope": 12064, + "sourceUnit": 12454, + "src": "26:65:51", "symbolAliases": [], "unitAlias": "" }, @@ -926,42 +900,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 9689, - "name": "Ownable", + "id": 12005, + "name": "Secondary", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10134, - "src": "111:7:40", + "referencedDeclaration": 12453, + "src": "113:9:51", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$10134", - "typeString": "contract Ownable" + "typeIdentifier": "t_contract$_Secondary_$12453", + "typeString": "contract Secondary" } }, - "id": 9690, + "id": 12006, "nodeType": "InheritanceSpecifier", - "src": "111:7:40" + "src": "113:9:51" } ], "contractDependencies": [ - 10134 + 12453 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 9747, + "id": 12063, "linearizedBaseContracts": [ - 9747, - 10134 + 12063, + 12453 ], "name": "Wallets", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 9693, + "id": 12009, "name": "SERVICE_WALLET_ID", "nodeType": "VariableDeclaration", - "scope": 9747, - "src": "125:43:40", + "scope": 12063, + "src": "129:43:51", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -969,10 +943,10 @@ "typeString": "uint8" }, "typeName": { - "id": 9691, + "id": 12007, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "125:5:40", + "src": "129:5:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -981,14 +955,14 @@ "value": { "argumentTypes": null, "hexValue": "31", - "id": 9692, + "id": 12008, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "167:1:40", + "src": "171:1:51", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1000,11 +974,11 @@ }, { "constant": false, - "id": 9697, + "id": 12013, "name": "_wallets", "nodeType": "VariableDeclaration", - "scope": 9747, - "src": "175:35:40", + "scope": 12063, + "src": "179:35:51", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1012,28 +986,28 @@ "typeString": "mapping(uint8 => address)" }, "typeName": { - "id": 9696, + "id": 12012, "keyType": { - "id": 9694, + "id": 12010, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "184:5:40", + "src": "188:5:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Mapping", - "src": "175:26:40", + "src": "179:26:51", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", "typeString": "mapping(uint8 => address)" }, "valueType": { - "id": 9695, + "id": 12011, "name": "address", "nodeType": "ElementaryTypeName", - "src": "193:7:40", + "src": "197:7:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1046,21 +1020,21 @@ { "anonymous": false, "documentation": null, - "id": 9703, + "id": 12019, "name": "NewWallet", "nodeType": "EventDefinition", "parameters": { - "id": 9702, + "id": 12018, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9699, + "id": 12015, "indexed": true, "name": "ID", "nodeType": "VariableDeclaration", - "scope": 9703, - "src": "233:16:40", + "scope": 12019, + "src": "237:16:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1068,10 +1042,10 @@ "typeString": "uint8" }, "typeName": { - "id": 9698, + "id": 12014, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "233:5:40", + "src": "237:5:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1082,12 +1056,12 @@ }, { "constant": false, - "id": 9701, + "id": 12017, "indexed": false, "name": "wallet", "nodeType": "VariableDeclaration", - "scope": 9703, - "src": "251:14:40", + "scope": 12019, + "src": "255:14:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1095,10 +1069,10 @@ "typeString": "address" }, "typeName": { - "id": 9700, + "id": 12016, "name": "address", "nodeType": "ElementaryTypeName", - "src": "251:7:40", + "src": "255:7:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1108,15 +1082,15 @@ "visibility": "internal" } ], - "src": "232:34:40" + "src": "236:34:51" }, - "src": "217:50:40" + "src": "221:50:51" }, { "body": { - "id": 9712, + "id": 12028, "nodeType": "Block", - "src": "294:57:40", + "src": "298:57:51", "statements": [ { "expression": { @@ -1124,12 +1098,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9707, + "id": 12023, "name": "SERVICE_WALLET_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9693, - "src": "314:17:40", + "referencedDeclaration": 12009, + "src": "318:17:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1139,18 +1113,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9708, + "id": 12024, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10488, - "src": "333:3:40", + "referencedDeclaration": 13441, + "src": "337:3:51", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 9709, + "id": 12025, "isConstant": false, "isLValue": false, "isPure": false, @@ -1158,7 +1132,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "333:10:40", + "src": "337:10:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1176,18 +1150,18 @@ "typeString": "address" } ], - "id": 9706, + "id": 12022, "name": "setWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9734, - "src": "304:9:40", + "referencedDeclaration": 12050, + "src": "308:9:51", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$_t_address_$returns$__$", "typeString": "function (uint8,address)" } }, - "id": 9710, + "id": 12026, "isConstant": false, "isLValue": false, "isPure": false, @@ -1195,20 +1169,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "304:40:40", + "src": "308:40:51", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9711, + "id": 12027, "nodeType": "ExpressionStatement", - "src": "304:40:40" + "src": "308:40:51" } ] }, "documentation": null, - "id": 9713, + "id": 12029, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1216,34 +1190,34 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 9704, + "id": 12020, "nodeType": "ParameterList", "parameters": [], - "src": "284:2:40" + "src": "288:2:51" }, "payable": false, "returnParameters": { - "id": 9705, + "id": 12021, "nodeType": "ParameterList", "parameters": [], - "src": "294:0:40" + "src": "298:0:51" }, - "scope": 9747, - "src": "273:78:40", + "scope": 12063, + "src": "277:78:51", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9733, + "id": 12049, "nodeType": "Block", - "src": "412:75:40", + "src": "425:75:51", "statements": [ { "expression": { "argumentTypes": null, - "id": 9726, + "id": 12042, "isConstant": false, "isLValue": false, "isPure": false, @@ -1252,26 +1226,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9722, + "id": 12038, "name": "_wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9697, - "src": "422:8:40", + "referencedDeclaration": 12013, + "src": "435:8:51", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", "typeString": "mapping(uint8 => address)" } }, - "id": 9724, + "id": 12040, "indexExpression": { "argumentTypes": null, - "id": 9723, + "id": 12039, "name": "ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9715, - "src": "431:2:40", + "referencedDeclaration": 12031, + "src": "444:2:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1282,7 +1256,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "422:12:40", + "src": "435:12:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1292,26 +1266,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 9725, + "id": 12041, "name": "wallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9717, - "src": "437:6:40", + "referencedDeclaration": 12033, + "src": "450:6:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "422:21:40", + "src": "435:21:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 9727, + "id": 12043, "nodeType": "ExpressionStatement", - "src": "422:21:40" + "src": "435:21:51" }, { "eventCall": { @@ -1319,12 +1293,12 @@ "arguments": [ { "argumentTypes": null, - "id": 9729, + "id": 12045, "name": "ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9715, - "src": "469:2:40", + "referencedDeclaration": 12031, + "src": "482:2:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1332,12 +1306,12 @@ }, { "argumentTypes": null, - "id": 9730, + "id": 12046, "name": "wallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9717, - "src": "473:6:40", + "referencedDeclaration": 12033, + "src": "486:6:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1355,18 +1329,18 @@ "typeString": "address" } ], - "id": 9728, + "id": 12044, "name": "NewWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9703, - "src": "459:9:40", + "referencedDeclaration": 12019, + "src": "472:9:51", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_address_$returns$__$", "typeString": "function (uint8,address)" } }, - "id": 9731, + "id": 12047, "isConstant": false, "isLValue": false, "isPure": false, @@ -1374,57 +1348,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "459:21:40", + "src": "472:21:51", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 9732, + "id": 12048, "nodeType": "EmitStatement", - "src": "454:26:40" + "src": "467:26:51" } ] }, "documentation": null, - "id": 9734, + "id": 12050, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 9720, + "id": 12036, "modifierName": { "argumentTypes": null, - "id": 9719, - "name": "onlyOwner", + "id": 12035, + "name": "onlyPrimary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "402:9:40", + "referencedDeclaration": 12420, + "src": "413:11:51", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "402:9:40" + "src": "413:11:51" } ], "name": "setWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 9718, + "id": 12034, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9715, + "id": 12031, "name": "ID", "nodeType": "VariableDeclaration", - "scope": 9734, - "src": "376:8:40", + "scope": 12050, + "src": "380:8:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1432,10 +1406,10 @@ "typeString": "uint8" }, "typeName": { - "id": 9714, + "id": 12030, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "376:5:40", + "src": "380:5:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1446,11 +1420,11 @@ }, { "constant": false, - "id": 9717, + "id": 12033, "name": "wallet", "nodeType": "VariableDeclaration", - "scope": 9734, - "src": "386:14:40", + "scope": 12050, + "src": "390:14:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1458,10 +1432,10 @@ "typeString": "address" }, "typeName": { - "id": 9716, + "id": 12032, "name": "address", "nodeType": "ElementaryTypeName", - "src": "386:7:40", + "src": "390:7:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1471,52 +1445,52 @@ "visibility": "internal" } ], - "src": "375:26:40" + "src": "379:26:51" }, "payable": false, "returnParameters": { - "id": 9721, + "id": 12037, "nodeType": "ParameterList", "parameters": [], - "src": "412:0:40" + "src": "425:0:51" }, - "scope": 9747, - "src": "357:130:40", + "scope": 12063, + "src": "361:139:51", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 9745, + "id": 12061, "nodeType": "Block", - "src": "551:36:40", + "src": "564:36:51", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 9741, + "id": 12057, "name": "_wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9697, - "src": "568:8:40", + "referencedDeclaration": 12013, + "src": "581:8:51", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", "typeString": "mapping(uint8 => address)" } }, - "id": 9743, + "id": 12059, "indexExpression": { "argumentTypes": null, - "id": 9742, + "id": 12058, "name": "ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 9736, - "src": "577:2:40", + "referencedDeclaration": 12052, + "src": "590:2:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1527,21 +1501,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "568:12:40", + "src": "581:12:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 9740, - "id": 9744, + "functionReturnParameters": 12056, + "id": 12060, "nodeType": "Return", - "src": "561:19:40" + "src": "574:19:51" } ] }, "documentation": null, - "id": 9746, + "id": 12062, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1549,16 +1523,16 @@ "name": "getWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 9737, + "id": 12053, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9736, + "id": 12052, "name": "ID", "nodeType": "VariableDeclaration", - "scope": 9746, - "src": "512:8:40", + "scope": 12062, + "src": "525:8:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1566,10 +1540,10 @@ "typeString": "uint8" }, "typeName": { - "id": 9735, + "id": 12051, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "512:5:40", + "src": "525:5:51", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1579,20 +1553,20 @@ "visibility": "internal" } ], - "src": "511:10:40" + "src": "524:10:51" }, "payable": false, "returnParameters": { - "id": 9740, + "id": 12056, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9739, + "id": 12055, "name": "", "nodeType": "VariableDeclaration", - "scope": 9746, - "src": "542:7:40", + "scope": 12062, + "src": "555:7:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1600,10 +1574,10 @@ "typeString": "address" }, "typeName": { - "id": 9738, + "id": 12054, "name": "address", "nodeType": "ElementaryTypeName", - "src": "542:7:40", + "src": "555:7:51", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1613,20 +1587,20 @@ "visibility": "internal" } ], - "src": "541:9:40" + "src": "554:9:51" }, - "scope": 9747, - "src": "493:94:40", + "scope": 12063, + "src": "506:94:51", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 9748, - "src": "91:498:40" + "scope": 12064, + "src": "93:509:51" } ], - "src": "0:590:40" + "src": "0:603:51" }, "compiler": { "name": "solc", @@ -1641,5 +1615,5 @@ } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-27T04:56:22.019Z" + "updatedAt": "2018-12-06T13:20:48.541Z" } \ No newline at end of file